Lines Matching defs:ptr

173 		u64 *ptr = (u64 *)(c + i);
174 dprintf1("dump[%03d][@%p]: %016llx\n", i, ptr, *ptr);
461 int sys_mprotect_pkey(void *ptr, size_t size, unsigned long orig_prot,
467 ptr, size, orig_prot, pkey);
470 sret = syscall(__NR_pkey_mprotect, ptr, size, orig_prot, pkey);
587 int mprotect_pkey(void *ptr, size_t size, unsigned long orig_prot,
595 ret = sys_mprotect_pkey(ptr, size, orig_prot, pkey);
597 ptr, size, orig_prot, pkey, ret);
613 ret = sys_mprotect_pkey(ptr, size, orig_prot, pkey);
615 ptr, size, orig_prot, pkey, ret);
624 void *ptr;
631 void record_pkey_malloc(void *ptr, long size, int prot)
660 (int)(rec - pkey_malloc_records), rec, ptr, size);
661 rec->ptr = ptr;
668 void free_pkey_malloc(void *ptr)
672 dprintf3("%s(%p)\n", __func__, ptr);
675 dprintf4("looking for ptr %p at record[%ld/%p]: {%p, %ld}\n",
676 ptr, i, rec, rec->ptr, rec->size);
677 if ((ptr < rec->ptr) ||
678 (ptr >= rec->ptr + rec->size))
681 dprintf3("found ptr %p at record[%ld/%p]: {%p, %ld}\n",
682 ptr, i, rec, rec->ptr, rec->size);
684 ret = munmap(rec->ptr, rec->size);
687 dprintf3("clearing rec->ptr, rec: %p\n", rec);
688 rec->ptr = NULL;
689 dprintf3("done clearing rec->ptr, rec: %p\n", rec);
698 void *ptr;
705 ptr = mmap(NULL, size, prot, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
706 pkey_assert(ptr != (void *)-1);
707 ret = mprotect_pkey((void *)ptr, PAGE_SIZE, prot, pkey);
709 record_pkey_malloc(ptr, size, prot);
712 dprintf1("%s() for pkey %d @ %p\n", __func__, pkey, ptr);
713 return ptr;
719 void *ptr;
728 ptr = mmap(NULL, size, PROT_NONE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
729 pkey_assert(ptr != (void *)-1);
730 record_pkey_malloc(ptr, size, prot);
731 mprotect_pkey(ptr, size, prot, pkey);
733 dprintf1("unaligned ptr: %p\n", ptr);
734 ptr = ALIGN_PTR_UP(ptr, HPAGE_SIZE);
735 dprintf1(" aligned ptr: %p\n", ptr);
736 ret = madvise(ptr, HPAGE_SIZE, MADV_HUGEPAGE);
738 ret = madvise(ptr, HPAGE_SIZE, MADV_WILLNEED);
740 memset(ptr, 0, HPAGE_SIZE);
742 dprintf1("mmap()'d thp for pkey %d @ %p\n", pkey, ptr);
743 return ptr;
799 void *ptr;
808 ptr = mmap(NULL, size, PROT_NONE, flags, -1, 0);
809 pkey_assert(ptr != (void *)-1);
810 mprotect_pkey(ptr, size, prot, pkey);
812 record_pkey_malloc(ptr, size, prot);
814 dprintf1("mmap()'d hugetlbfs for pkey %d @ %p\n", pkey, ptr);
815 return ptr;
820 void *ptr;
829 ptr = mmap(0, size, prot, MAP_SHARED, fd, 0);
830 pkey_assert(ptr != (void *)-1);
832 mprotect_pkey(ptr, size, prot, pkey);
834 record_pkey_malloc(ptr, size, prot);
836 dprintf1("mmap()'d for pkey %d @ %p\n", pkey, ptr);
838 return ptr;
954 __attribute__((noinline)) int read_ptr(int *ptr)
960 return *ptr;
963 void test_pkey_alloc_free_attach_pkey0(int *ptr, u16 pkey)
1003 err = sys_mprotect_pkey(ptr, size, PROT_READ, 0);
1005 err = sys_mprotect_pkey(ptr, size, PROT_WRITE, 0);
1007 err = sys_mprotect_pkey(ptr, size, PROT_EXEC, 0);
1009 err = sys_mprotect_pkey(ptr, size, PROT_READ|PROT_WRITE, 0);
1011 err = sys_mprotect_pkey(ptr, size, PROT_READ|PROT_WRITE|PROT_EXEC, 0);
1015 void test_read_of_write_disabled_region(int *ptr, u16 pkey)
1021 ptr_contents = read_ptr(ptr);
1022 dprintf1("*ptr: %d\n", ptr_contents);
1025 void test_read_of_access_disabled_region(int *ptr, u16 pkey)
1029 dprintf1("disabling access to PKEY[%02d], doing read @ %p\n", pkey, ptr);
1032 ptr_contents = read_ptr(ptr);
1033 dprintf1("*ptr: %d\n", ptr_contents);
1037 void test_read_of_access_disabled_region_with_page_already_mapped(int *ptr,
1043 pkey, ptr);
1044 ptr_contents = read_ptr(ptr);
1045 dprintf1("reading ptr before disabling the read : %d\n",
1049 ptr_contents = read_ptr(ptr);
1050 dprintf1("*ptr: %d\n", ptr_contents);
1054 void test_write_of_write_disabled_region_with_page_already_mapped(int *ptr,
1057 *ptr = __LINE__;
1061 *ptr = __LINE__;
1065 void test_write_of_write_disabled_region(int *ptr, u16 pkey)
1069 *ptr = __LINE__;
1072 void test_write_of_access_disabled_region(int *ptr, u16 pkey)
1076 *ptr = __LINE__;
1080 void test_write_of_access_disabled_region_with_page_already_mapped(int *ptr,
1083 *ptr = __LINE__;
1087 *ptr = __LINE__;
1091 void test_kernel_write_of_access_disabled_region(int *ptr, u16 pkey)
1099 ret = read(test_fd, ptr, 1);
1103 void test_kernel_write_of_write_disabled_region(int *ptr, u16 pkey)
1109 ret = read(test_fd, ptr, 100);
1116 void test_kernel_gup_of_access_disabled_region(int *ptr, u16 pkey)
1128 iov.iov_base = ptr;
1138 void test_kernel_gup_write_to_write_disabled_region(int *ptr, u16 pkey)
1146 *ptr = some_int;
1148 futex_ret = syscall(SYS_futex, ptr, FUTEX_WAIT, some_int-1, NULL,
1156 void test_pkey_syscalls_on_non_allocated_pkey(int *ptr, u16 pkey)
1173 err = sys_mprotect_pkey(ptr, PAGE_SIZE, PROT_READ, i);
1179 void test_pkey_syscalls_bad_args(int *ptr, u16 pkey)
1185 err = sys_mprotect_pkey(ptr, PAGE_SIZE, PROT_READ, bad_pkey);
1205 void test_pkey_alloc_exhaust(int *ptr, u16 pkey)
1311 void test_pkey_init_state(int *ptr, u16 pkey)
1349 void test_mprotect_with_pkey_0(int *ptr, u16 pkey)
1367 mprotect_pkey(ptr, size, prot, 0);
1370 mprotect_pkey(ptr, size, prot, pkey);
1373 void test_ptrace_of_child(int *ptr, u16 pkey)
1419 * Try to access the pkey-protected "ptr" via ptrace:
1421 ret = ptrace(PTRACE_PEEKDATA, child_pid, ptr, ignored);
1425 peek_result = read_ptr(ptr);
1470 void test_executing_on_unreadable_memory(int *ptr, u16 pkey)
1480 dprintf2("ptr (%p) contents@%d: %x\n", p1, __LINE__, ptr_contents);
1497 void test_implicit_mprotect_exec_only_memory(int *ptr, u16 pkey)
1509 dprintf2("ptr (%p) contents@%d: %x\n", p1, __LINE__, ptr_contents);
1546 void test_ptrace_modifies_pkru(int *ptr, u16 pkey)
1668 void test_mprotect_pkey_on_unsupported_cpu(int *ptr, u16 pkey)
1678 sret = syscall(__NR_pkey_mprotect, ptr, size, PROT_READ, pkey);
1682 void (*pkey_tests[])(int *ptr, u16 pkey) = {
1710 int *ptr;
1723 ptr = malloc_pkey(PAGE_SIZE, prot, pkey);
1725 pkey_tests[test_nr](ptr, pkey);
1726 dprintf1("freeing test memory: %p\n", ptr);
1727 free_pkey_malloc(ptr);
1760 int *ptr;
1764 ptr = mmap(NULL, size, PROT_NONE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
1765 assert(ptr != (void *)-1);
1766 test_mprotect_pkey_on_unsupported_cpu(ptr, 1);