/kernel/linux/linux-6.6/tools/testing/selftests/sgx/ |
H A D | load.c | 22 void encl_delete(struct encl *encl) in encl_delete() argument 26 if (encl->encl_base) in encl_delete() 27 munmap((void *)encl->encl_base, encl->encl_size); in encl_delete() 29 if (encl->bin) in encl_delete() 30 munmap(encl->bin, encl->bin_size); in encl_delete() 32 if (encl->fd) in encl_delete() 33 close(encl in encl_delete() 44 encl_map_bin(const char *path, struct encl *encl) encl_map_bin() argument 80 encl_ioc_create(struct encl *encl) encl_ioc_create() argument 106 encl_ioc_add_pages(struct encl *encl, struct encl_segment *seg) encl_ioc_add_pages() argument 137 encl_get_entry(struct encl *encl, const char *symbol) encl_get_entry() argument 177 encl_load(const char *path, struct encl *encl, unsigned long heap_size) encl_load() argument 318 encl_map_area(struct encl *encl) encl_map_area() argument 339 encl_build(struct encl *encl) encl_build() argument [all...] |
H A D | main.h | 20 struct encl { struct 37 void encl_delete(struct encl *ctx); 38 bool encl_load(const char *path, struct encl *encl, unsigned long heap_size); 39 bool encl_measure(struct encl *encl); 40 bool encl_build(struct encl *encl); 41 uint64_t encl_get_entry(struct encl *encl, cons [all...] |
H A D | main.c | 137 static off_t encl_get_tcs_offset(struct encl *encl) in encl_get_tcs_offset() argument 141 for (i = 0; i < encl->nr_segments; i++) { in encl_get_tcs_offset() 142 struct encl_segment *seg = &encl->segment_tbl[i]; in encl_get_tcs_offset() 156 static off_t encl_get_data_offset(struct encl *encl) in encl_get_data_offset() argument 160 for (i = 1; i < encl->nr_segments; i++) { in encl_get_data_offset() 161 struct encl_segment *seg = &encl->segment_tbl[i]; in encl_get_data_offset() 171 struct encl encl; in FIXTURE() local 175 setup_test_encl(unsigned long heap_size, struct encl *encl, struct __test_metadata *_metadata) setup_test_encl() argument [all...] |
H A D | sigstruct.c | 295 static bool mrenclave_segment(EVP_MD_CTX *ctx, struct encl *encl, in mrenclave_segment() argument 314 bool encl_measure(struct encl *encl) in encl_measure() argument 318 struct sgx_sigstruct *sigstruct = &encl->sigstruct; in encl_measure() 352 if (!mrenclave_ecreate(ctx, encl->src_size)) in encl_measure() 355 for (i = 0; i < encl->nr_segments; i++) { in encl_measure() 356 struct encl_segment *seg = &encl->segment_tbl[i]; in encl_measure() 358 if (!mrenclave_segment(ctx, encl, seg)) in encl_measure()
|
/kernel/linux/linux-6.6/arch/x86/kernel/cpu/sgx/ |
H A D | encl.c | 11 #include "encl.h" 15 static int sgx_encl_lookup_backing(struct sgx_encl *encl, unsigned long page_index, 29 * @encl: Enclave to which PCMD page belongs 58 static int reclaimer_writing_to_pcmd(struct sgx_encl *encl, in reclaimer_writing_to_pcmd() argument 83 if (addr == encl->base + encl->size) in reclaimer_writing_to_pcmd() 86 entry = xa_load(&encl->page_array, PFN_DOWN(addr)); in reclaimer_writing_to_pcmd() 110 static inline pgoff_t sgx_encl_get_backing_page_pcmd_offset(struct sgx_encl *encl, in sgx_encl_get_backing_page_pcmd_offset() argument 113 pgoff_t epc_end_off = encl->size + sizeof(struct sgx_secs); in sgx_encl_get_backing_page_pcmd_offset() 121 static inline void sgx_encl_truncate_backing_page(struct sgx_encl *encl, unsigne argument 137 struct sgx_encl *encl = encl_page->encl; __sgx_encl_eldu() local 216 struct sgx_encl *encl = encl_page->encl; sgx_encl_eldu() local 243 sgx_encl_load_secs(struct sgx_encl *encl) sgx_encl_load_secs() argument 253 __sgx_encl_load_page(struct sgx_encl *encl, struct sgx_encl_page *entry) __sgx_encl_load_page() argument 280 sgx_encl_load_page_in_vma(struct sgx_encl *encl, unsigned long addr, unsigned long vm_flags) sgx_encl_load_page_in_vma() argument 302 sgx_encl_load_page(struct sgx_encl *encl, unsigned long addr) sgx_encl_load_page() argument 327 sgx_encl_eaug_page(struct vm_area_struct *vma, struct sgx_encl *encl, unsigned long addr) sgx_encl_eaug_page() argument 436 struct sgx_encl *encl; sgx_vma_fault() local 489 struct sgx_encl *encl = vma->vm_private_data; sgx_vma_open() local 522 sgx_encl_may_map(struct sgx_encl *encl, unsigned long start, unsigned long end, unsigned long vm_flags) sgx_encl_may_map() argument 576 sgx_encl_debug_read(struct sgx_encl *encl, struct sgx_encl_page *page, unsigned long addr, void *data) sgx_encl_debug_read() argument 590 sgx_encl_debug_write(struct sgx_encl *encl, struct sgx_encl_page *page, unsigned long addr, void *data) sgx_encl_debug_write() argument 606 sgx_encl_reserve_page(struct sgx_encl *encl, unsigned long addr, unsigned long vm_flags) sgx_encl_reserve_page() argument 631 struct sgx_encl *encl = vma->vm_private_data; sgx_vma_access() local 702 struct sgx_encl *encl = container_of(ref, struct sgx_encl, refcount); sgx_encl_release() local 815 sgx_encl_find_mm(struct sgx_encl *encl, struct mm_struct *mm) sgx_encl_find_mm() argument 836 sgx_encl_mm_add(struct sgx_encl *encl, struct mm_struct *mm) sgx_encl_mm_add() argument 925 sgx_encl_cpumask(struct sgx_encl *encl) sgx_encl_cpumask() argument 949 sgx_encl_get_backing_page(struct sgx_encl *encl, pgoff_t index) sgx_encl_get_backing_page() argument 971 __sgx_encl_get_backing(struct sgx_encl *encl, unsigned long page_index, struct sgx_backing *backing) __sgx_encl_get_backing() argument 1000 sgx_encl_get_mem_cgroup(struct sgx_encl *encl) sgx_encl_get_mem_cgroup() argument 1062 sgx_encl_alloc_backing(struct sgx_encl *encl, unsigned long page_index, struct sgx_backing *backing) sgx_encl_alloc_backing() argument 1094 sgx_encl_lookup_backing(struct sgx_encl *encl, unsigned long page_index, struct sgx_backing *backing) sgx_encl_lookup_backing() argument 1139 struct sgx_encl *encl = page->encl; sgx_encl_test_and_clear_young() local 1158 sgx_encl_page_alloc(struct sgx_encl *encl, unsigned long offset, u64 secinfo_flags) sgx_encl_page_alloc() argument 1199 sgx_zap_enclave_ptes(struct sgx_encl *encl, unsigned long addr) sgx_zap_enclave_ptes() argument [all...] |
H A D | ioctl.c | 17 #include "encl.h" 20 struct sgx_va_page *sgx_encl_grow(struct sgx_encl *encl, bool reclaim) in sgx_encl_grow() argument 28 if (!(encl->page_cnt % SGX_VA_SLOT_COUNT)) { in sgx_encl_grow() 40 WARN_ON_ONCE(encl->page_cnt % SGX_VA_SLOT_COUNT); in sgx_encl_grow() 42 encl->page_cnt++; in sgx_encl_grow() 46 void sgx_encl_shrink(struct sgx_encl *encl, struct sgx_va_page *va_page) in sgx_encl_shrink() argument 48 encl->page_cnt--; in sgx_encl_shrink() 57 static int sgx_encl_create(struct sgx_encl *encl, struct sgx_secs *secs) in sgx_encl_create() argument 67 va_page = sgx_encl_grow(encl, true); in sgx_encl_create() 71 list_add(&va_page->list, &encl in sgx_encl_create() 147 sgx_ioc_enclave_create(struct sgx_encl *encl, void __user *arg) sgx_ioc_enclave_create() argument 199 __sgx_encl_add_page(struct sgx_encl *encl, struct sgx_encl_page *encl_page, struct sgx_epc_page *epc_page, struct sgx_secinfo *secinfo, unsigned long src) __sgx_encl_add_page() argument 239 __sgx_encl_extend(struct sgx_encl *encl, struct sgx_epc_page *epc_page) __sgx_encl_extend() argument 259 sgx_encl_add_page(struct sgx_encl *encl, unsigned long src, unsigned long offset, struct sgx_secinfo *secinfo, unsigned long flags) sgx_encl_add_page() argument 349 sgx_validate_offset_length(struct sgx_encl *encl, unsigned long offset, unsigned long length) sgx_validate_offset_length() argument 407 sgx_ioc_enclave_add_pages(struct sgx_encl *encl, void __user *arg) sgx_ioc_enclave_add_pages() argument 484 sgx_encl_init(struct sgx_encl *encl, struct sgx_sigstruct *sigstruct, void *token) sgx_encl_init() argument 592 sgx_ioc_enclave_init(struct sgx_encl *encl, void __user *arg) sgx_ioc_enclave_init() argument 656 sgx_ioc_enclave_provision(struct sgx_encl *encl, void __user *arg) sgx_ioc_enclave_provision() argument 671 sgx_ioc_sgx2_ready(struct sgx_encl *encl) sgx_ioc_sgx2_ready() argument 693 sgx_enclave_etrack(struct sgx_encl *encl) sgx_enclave_etrack() argument 735 sgx_enclave_restrict_permissions(struct sgx_encl *encl, struct sgx_enclave_restrict_permissions *modp) sgx_enclave_restrict_permissions() argument 842 sgx_ioc_enclave_restrict_permissions(struct sgx_encl *encl, void __user *arg) sgx_ioc_enclave_restrict_permissions() argument 890 sgx_enclave_modify_types(struct sgx_encl *encl, struct sgx_enclave_modify_types *modt) sgx_enclave_modify_types() argument 1051 sgx_ioc_enclave_modify_types(struct sgx_encl *encl, void __user *arg) sgx_ioc_enclave_modify_types() argument 1090 sgx_encl_remove_pages(struct sgx_encl *encl, struct sgx_enclave_remove_pages *params) sgx_encl_remove_pages() argument 1198 sgx_ioc_enclave_remove_pages(struct sgx_encl *encl, void __user *arg) sgx_ioc_enclave_remove_pages() argument 1227 struct sgx_encl *encl = filep->private_data; sgx_ioctl() local [all...] |
H A D | driver.c | 11 #include "encl.h" 19 struct sgx_encl *encl; in sgx_open() local 22 encl = kzalloc(sizeof(*encl), GFP_KERNEL); in sgx_open() 23 if (!encl) in sgx_open() 26 kref_init(&encl->refcount); in sgx_open() 27 xa_init(&encl->page_array); in sgx_open() 28 mutex_init(&encl->lock); in sgx_open() 29 INIT_LIST_HEAD(&encl->va_pages); in sgx_open() 30 INIT_LIST_HEAD(&encl in sgx_open() 46 struct sgx_encl *encl = file->private_data; sgx_release() local 86 struct sgx_encl *encl = file->private_data; sgx_mmap() local [all...] |
H A D | main.c | 18 #include "encl.h" 112 struct sgx_encl *encl = page->encl; in sgx_reclaimer_age() local 117 idx = srcu_read_lock(&encl->srcu); in sgx_reclaimer_age() 119 list_for_each_entry_rcu(encl_mm, &encl->mm_list, list) { in sgx_reclaimer_age() 133 srcu_read_unlock(&encl->srcu, idx); in sgx_reclaimer_age() 145 struct sgx_encl *encl = page->encl; in sgx_reclaimer_block() local 148 sgx_zap_enclave_ptes(encl, addr); in sgx_reclaimer_block() 150 mutex_lock(&encl in sgx_reclaimer_block() 201 struct sgx_encl *encl = encl_page->encl; sgx_encl_ewb() local 254 struct sgx_encl *encl = encl_page->encl; sgx_reclaimer_write() local [all...] |
H A D | encl.h | 33 struct sgx_encl *encl; member 45 struct sgx_encl *encl; member 103 int sgx_encl_may_map(struct sgx_encl *encl, unsigned long start, 108 int sgx_encl_mm_add(struct sgx_encl *encl, struct mm_struct *mm); 109 const cpumask_t *sgx_encl_cpumask(struct sgx_encl *encl); 110 int sgx_encl_alloc_backing(struct sgx_encl *encl, unsigned long page_index, 115 struct sgx_encl_page *sgx_encl_page_alloc(struct sgx_encl *encl, 118 void sgx_zap_enclave_ptes(struct sgx_encl *encl, unsigned long addr); 124 struct sgx_encl_page *sgx_encl_load_page(struct sgx_encl *encl, 126 struct sgx_va_page *sgx_encl_grow(struct sgx_encl *encl, boo [all...] |