• Home
  • Raw
  • Download

Lines Matching refs:fd

39 	int r, fd;  in mfd_assert_new()  local
41 fd = sys_memfd_create(name, flags); in mfd_assert_new()
42 if (fd < 0) { in mfd_assert_new()
48 r = ftruncate(fd, sz); in mfd_assert_new()
54 return fd; in mfd_assert_new()
59 int r, fd; in mfd_assert_reopen_fd() local
64 fd = open(path, O_RDWR); in mfd_assert_reopen_fd()
65 if (fd < 0) { in mfd_assert_reopen_fd()
70 return fd; in mfd_assert_reopen_fd()
86 static unsigned int mfd_assert_get_seals(int fd) in mfd_assert_get_seals() argument
90 r = fcntl(fd, F_GET_SEALS); in mfd_assert_get_seals()
92 printf("GET_SEALS(%d) failed: %m\n", fd); in mfd_assert_get_seals()
99 static void mfd_assert_has_seals(int fd, unsigned int seals) in mfd_assert_has_seals() argument
103 s = mfd_assert_get_seals(fd); in mfd_assert_has_seals()
105 printf("%u != %u = GET_SEALS(%d)\n", seals, s, fd); in mfd_assert_has_seals()
110 static void mfd_assert_add_seals(int fd, unsigned int seals) in mfd_assert_add_seals() argument
115 s = mfd_assert_get_seals(fd); in mfd_assert_add_seals()
116 r = fcntl(fd, F_ADD_SEALS, seals); in mfd_assert_add_seals()
118 printf("ADD_SEALS(%d, %u -> %u) failed: %m\n", fd, s, seals); in mfd_assert_add_seals()
123 static void mfd_fail_add_seals(int fd, unsigned int seals) in mfd_fail_add_seals() argument
128 r = fcntl(fd, F_GET_SEALS); in mfd_fail_add_seals()
134 r = fcntl(fd, F_ADD_SEALS, seals); in mfd_fail_add_seals()
137 fd, s, seals); in mfd_fail_add_seals()
142 static void mfd_assert_size(int fd, size_t size) in mfd_assert_size() argument
147 r = fstat(fd, &st); in mfd_assert_size()
149 printf("fstat(%d) failed: %m\n", fd); in mfd_assert_size()
158 static int mfd_assert_dup(int fd) in mfd_assert_dup() argument
162 r = dup(fd); in mfd_assert_dup()
164 printf("dup(%d) failed: %m\n", fd); in mfd_assert_dup()
171 static void *mfd_assert_mmap_shared(int fd) in mfd_assert_mmap_shared() argument
179 fd, in mfd_assert_mmap_shared()
189 static void *mfd_assert_mmap_private(int fd) in mfd_assert_mmap_private() argument
197 fd, in mfd_assert_mmap_private()
207 static int mfd_assert_open(int fd, int flags, mode_t mode) in mfd_assert_open() argument
212 sprintf(buf, "/proc/self/fd/%d", fd); in mfd_assert_open()
222 static void mfd_fail_open(int fd, int flags, mode_t mode) in mfd_fail_open() argument
227 sprintf(buf, "/proc/self/fd/%d", fd); in mfd_fail_open()
235 static void mfd_assert_read(int fd) in mfd_assert_read() argument
241 l = read(fd, buf, sizeof(buf)); in mfd_assert_read()
252 fd, in mfd_assert_read()
265 fd, in mfd_assert_read()
275 static void mfd_assert_read_shared(int fd) in mfd_assert_read_shared() argument
284 fd, in mfd_assert_read_shared()
293 static void mfd_assert_fork_private_write(int fd) in mfd_assert_fork_private_write() argument
302 fd, in mfd_assert_fork_private_write()
327 static void mfd_assert_write(int fd) in mfd_assert_write() argument
339 l = write(fd, "\0\0\0\0", 4); in mfd_assert_write()
351 fd, in mfd_assert_write()
365 fd, in mfd_assert_write()
380 fd, in mfd_assert_write()
397 r = fallocate(fd, in mfd_assert_write()
407 static void mfd_fail_write(int fd) in mfd_fail_write() argument
414 l = write(fd, "data", 4); in mfd_fail_write()
425 fd, in mfd_fail_write()
437 fd, in mfd_fail_write()
450 fd, in mfd_fail_write()
461 r = fallocate(fd, in mfd_fail_write()
471 static void mfd_assert_shrink(int fd) in mfd_assert_shrink() argument
475 r = ftruncate(fd, mfd_def_size / 2); in mfd_assert_shrink()
481 mfd_assert_size(fd, mfd_def_size / 2); in mfd_assert_shrink()
483 fd2 = mfd_assert_open(fd, in mfd_assert_shrink()
488 mfd_assert_size(fd, 0); in mfd_assert_shrink()
491 static void mfd_fail_shrink(int fd) in mfd_fail_shrink() argument
495 r = ftruncate(fd, mfd_def_size / 2); in mfd_fail_shrink()
501 mfd_fail_open(fd, in mfd_fail_shrink()
506 static void mfd_assert_grow(int fd) in mfd_assert_grow() argument
510 r = ftruncate(fd, mfd_def_size * 2); in mfd_assert_grow()
516 mfd_assert_size(fd, mfd_def_size * 2); in mfd_assert_grow()
518 r = fallocate(fd, in mfd_assert_grow()
527 mfd_assert_size(fd, mfd_def_size * 4); in mfd_assert_grow()
530 static void mfd_fail_grow(int fd) in mfd_fail_grow() argument
534 r = ftruncate(fd, mfd_def_size * 2); in mfd_fail_grow()
540 r = fallocate(fd, in mfd_fail_grow()
550 static void mfd_assert_grow_write(int fd) in mfd_assert_grow_write() argument
565 l = pwrite(fd, buf, mfd_def_size * 8, 0); in mfd_assert_grow_write()
571 mfd_assert_size(fd, mfd_def_size * 8); in mfd_assert_grow_write()
574 static void mfd_fail_grow_write(int fd) in mfd_fail_grow_write() argument
589 l = pwrite(fd, buf, mfd_def_size * 8, 0); in mfd_fail_grow_write()
646 int fd; in test_create() local
663 fd = mfd_assert_new("", 0, 0); in test_create()
664 close(fd); in test_create()
674 fd = mfd_assert_new("", 0, MFD_CLOEXEC); in test_create()
675 close(fd); in test_create()
678 fd = mfd_assert_new("", 0, MFD_ALLOW_SEALING); in test_create()
679 close(fd); in test_create()
682 fd = mfd_assert_new("", 0, MFD_ALLOW_SEALING | MFD_CLOEXEC); in test_create()
683 close(fd); in test_create()
692 int fd; in test_basic() local
696 fd = mfd_assert_new("kern_memfd_basic", in test_basic()
701 mfd_assert_has_seals(fd, 0); in test_basic()
702 mfd_assert_add_seals(fd, F_SEAL_SHRINK | in test_basic()
704 mfd_assert_has_seals(fd, F_SEAL_SHRINK | in test_basic()
708 mfd_assert_add_seals(fd, F_SEAL_SHRINK | in test_basic()
710 mfd_assert_has_seals(fd, F_SEAL_SHRINK | in test_basic()
714 mfd_assert_add_seals(fd, F_SEAL_GROW | F_SEAL_SEAL); in test_basic()
715 mfd_assert_has_seals(fd, F_SEAL_SHRINK | in test_basic()
721 mfd_fail_add_seals(fd, F_SEAL_GROW); in test_basic()
722 mfd_fail_add_seals(fd, 0); in test_basic()
724 close(fd); in test_basic()
727 fd = mfd_assert_new("kern_memfd_basic", in test_basic()
730 mfd_assert_has_seals(fd, F_SEAL_SEAL); in test_basic()
731 mfd_fail_add_seals(fd, F_SEAL_SHRINK | in test_basic()
734 mfd_assert_has_seals(fd, F_SEAL_SEAL); in test_basic()
735 close(fd); in test_basic()
744 int fd; in test_seal_write() local
748 fd = mfd_assert_new("kern_memfd_seal_write", in test_seal_write()
751 mfd_assert_has_seals(fd, 0); in test_seal_write()
752 mfd_assert_add_seals(fd, F_SEAL_WRITE); in test_seal_write()
753 mfd_assert_has_seals(fd, F_SEAL_WRITE); in test_seal_write()
755 mfd_assert_read(fd); in test_seal_write()
756 mfd_fail_write(fd); in test_seal_write()
757 mfd_assert_shrink(fd); in test_seal_write()
758 mfd_assert_grow(fd); in test_seal_write()
759 mfd_fail_grow_write(fd); in test_seal_write()
761 close(fd); in test_seal_write()
770 int fd, fd2; in test_seal_future_write() local
775 fd = mfd_assert_new("kern_memfd_seal_future_write", in test_seal_future_write()
779 p = mfd_assert_mmap_shared(fd); in test_seal_future_write()
781 mfd_assert_has_seals(fd, 0); in test_seal_future_write()
783 mfd_assert_add_seals(fd, F_SEAL_FUTURE_WRITE); in test_seal_future_write()
784 mfd_assert_has_seals(fd, F_SEAL_FUTURE_WRITE); in test_seal_future_write()
787 mfd_assert_read(fd); in test_seal_future_write()
788 mfd_assert_read_shared(fd); in test_seal_future_write()
789 mfd_fail_write(fd); in test_seal_future_write()
791 fd2 = mfd_assert_reopen_fd(fd); in test_seal_future_write()
797 mfd_assert_fork_private_write(fd); in test_seal_future_write()
801 close(fd); in test_seal_future_write()
810 int fd; in test_seal_shrink() local
814 fd = mfd_assert_new("kern_memfd_seal_shrink", in test_seal_shrink()
817 mfd_assert_has_seals(fd, 0); in test_seal_shrink()
818 mfd_assert_add_seals(fd, F_SEAL_SHRINK); in test_seal_shrink()
819 mfd_assert_has_seals(fd, F_SEAL_SHRINK); in test_seal_shrink()
821 mfd_assert_read(fd); in test_seal_shrink()
822 mfd_assert_write(fd); in test_seal_shrink()
823 mfd_fail_shrink(fd); in test_seal_shrink()
824 mfd_assert_grow(fd); in test_seal_shrink()
825 mfd_assert_grow_write(fd); in test_seal_shrink()
827 close(fd); in test_seal_shrink()
836 int fd; in test_seal_grow() local
840 fd = mfd_assert_new("kern_memfd_seal_grow", in test_seal_grow()
843 mfd_assert_has_seals(fd, 0); in test_seal_grow()
844 mfd_assert_add_seals(fd, F_SEAL_GROW); in test_seal_grow()
845 mfd_assert_has_seals(fd, F_SEAL_GROW); in test_seal_grow()
847 mfd_assert_read(fd); in test_seal_grow()
848 mfd_assert_write(fd); in test_seal_grow()
849 mfd_assert_shrink(fd); in test_seal_grow()
850 mfd_fail_grow(fd); in test_seal_grow()
851 mfd_fail_grow_write(fd); in test_seal_grow()
853 close(fd); in test_seal_grow()
862 int fd; in test_seal_resize() local
866 fd = mfd_assert_new("kern_memfd_seal_resize", in test_seal_resize()
869 mfd_assert_has_seals(fd, 0); in test_seal_resize()
870 mfd_assert_add_seals(fd, F_SEAL_SHRINK | F_SEAL_GROW); in test_seal_resize()
871 mfd_assert_has_seals(fd, F_SEAL_SHRINK | F_SEAL_GROW); in test_seal_resize()
873 mfd_assert_read(fd); in test_seal_resize()
874 mfd_assert_write(fd); in test_seal_resize()
875 mfd_fail_shrink(fd); in test_seal_resize()
876 mfd_fail_grow(fd); in test_seal_resize()
877 mfd_fail_grow_write(fd); in test_seal_resize()
879 close(fd); in test_seal_resize()
888 int fd, fd2; in test_share_dup() local
892 fd = mfd_assert_new("kern_memfd_share_dup", in test_share_dup()
895 mfd_assert_has_seals(fd, 0); in test_share_dup()
897 fd2 = mfd_assert_dup(fd); in test_share_dup()
900 mfd_assert_add_seals(fd, F_SEAL_WRITE); in test_share_dup()
901 mfd_assert_has_seals(fd, F_SEAL_WRITE); in test_share_dup()
905 mfd_assert_has_seals(fd, F_SEAL_WRITE | F_SEAL_SHRINK); in test_share_dup()
908 mfd_assert_add_seals(fd, F_SEAL_SEAL); in test_share_dup()
909 mfd_assert_has_seals(fd, F_SEAL_WRITE | F_SEAL_SHRINK | F_SEAL_SEAL); in test_share_dup()
912 mfd_fail_add_seals(fd, F_SEAL_GROW); in test_share_dup()
914 mfd_fail_add_seals(fd, F_SEAL_SEAL); in test_share_dup()
919 mfd_fail_add_seals(fd, F_SEAL_GROW); in test_share_dup()
920 close(fd); in test_share_dup()
929 int fd; in test_share_mmap() local
934 fd = mfd_assert_new("kern_memfd_share_mmap", in test_share_mmap()
937 mfd_assert_has_seals(fd, 0); in test_share_mmap()
940 p = mfd_assert_mmap_shared(fd); in test_share_mmap()
941 mfd_fail_add_seals(fd, F_SEAL_WRITE); in test_share_mmap()
942 mfd_assert_has_seals(fd, 0); in test_share_mmap()
943 mfd_assert_add_seals(fd, F_SEAL_SHRINK); in test_share_mmap()
944 mfd_assert_has_seals(fd, F_SEAL_SHRINK); in test_share_mmap()
948 p = mfd_assert_mmap_private(fd); in test_share_mmap()
949 mfd_assert_add_seals(fd, F_SEAL_WRITE); in test_share_mmap()
950 mfd_assert_has_seals(fd, F_SEAL_WRITE | F_SEAL_SHRINK); in test_share_mmap()
953 close(fd); in test_share_mmap()
964 int fd, fd2; in test_share_open() local
968 fd = mfd_assert_new("kern_memfd_share_open", in test_share_open()
971 mfd_assert_has_seals(fd, 0); in test_share_open()
973 fd2 = mfd_assert_open(fd, O_RDWR, 0); in test_share_open()
974 mfd_assert_add_seals(fd, F_SEAL_WRITE); in test_share_open()
975 mfd_assert_has_seals(fd, F_SEAL_WRITE); in test_share_open()
979 mfd_assert_has_seals(fd, F_SEAL_WRITE | F_SEAL_SHRINK); in test_share_open()
982 close(fd); in test_share_open()
983 fd = mfd_assert_open(fd2, O_RDONLY, 0); in test_share_open()
985 mfd_fail_add_seals(fd, F_SEAL_SEAL); in test_share_open()
986 mfd_assert_has_seals(fd, F_SEAL_WRITE | F_SEAL_SHRINK); in test_share_open()
990 fd2 = mfd_assert_open(fd, O_RDWR, 0); in test_share_open()
993 mfd_assert_has_seals(fd, F_SEAL_WRITE | F_SEAL_SHRINK | F_SEAL_SEAL); in test_share_open()
997 close(fd); in test_share_open()
1006 int fd; in test_share_fork() local
1011 fd = mfd_assert_new("kern_memfd_share_fork", in test_share_fork()
1014 mfd_assert_has_seals(fd, 0); in test_share_fork()
1017 mfd_assert_add_seals(fd, F_SEAL_SEAL); in test_share_fork()
1018 mfd_assert_has_seals(fd, F_SEAL_SEAL); in test_share_fork()
1020 mfd_fail_add_seals(fd, F_SEAL_WRITE); in test_share_fork()
1021 mfd_assert_has_seals(fd, F_SEAL_SEAL); in test_share_fork()
1025 mfd_fail_add_seals(fd, F_SEAL_WRITE); in test_share_fork()
1026 mfd_assert_has_seals(fd, F_SEAL_SEAL); in test_share_fork()
1028 close(fd); in test_share_fork()