/Linux-v5.15/tools/testing/selftests/sgx/ |
D | load.c | 22 void encl_delete(struct encl *encl) in encl_delete() argument 24 if (encl->encl_base) in encl_delete() 25 munmap((void *)encl->encl_base, encl->encl_size); in encl_delete() 27 if (encl->bin) in encl_delete() 28 munmap(encl->bin, encl->bin_size); in encl_delete() 30 if (encl->fd) in encl_delete() 31 close(encl->fd); in encl_delete() 33 if (encl->segment_tbl) in encl_delete() 34 free(encl->segment_tbl); in encl_delete() 36 memset(encl, 0, sizeof(*encl)); in encl_delete() [all …]
|
D | main.h | 16 struct encl { struct 33 void encl_delete(struct encl *ctx); argument 34 bool encl_load(const char *path, struct encl *encl); 35 bool encl_measure(struct encl *encl); 36 bool encl_build(struct encl *encl);
|
D | main.c | 111 struct encl encl; in FIXTURE() local 125 if (!encl_load("test_encl.elf", &self->encl)) { in FIXTURE_SETUP() 126 encl_delete(&self->encl); in FIXTURE_SETUP() 130 for (i = 0; i < self->encl.nr_segments; i++) { in FIXTURE_SETUP() 131 seg = &self->encl.segment_tbl[i]; in FIXTURE_SETUP() 136 if (!encl_measure(&self->encl)) in FIXTURE_SETUP() 139 if (!encl_build(&self->encl)) in FIXTURE_SETUP() 145 for (i = 0; i < self->encl.nr_segments; i++) { in FIXTURE_SETUP() 146 struct encl_segment *seg = &self->encl.segment_tbl[i]; in FIXTURE_SETUP() 148 addr = mmap((void *)self->encl.encl_base + seg->offset, seg->size, in FIXTURE_SETUP() [all …]
|
D | sigstruct.c | 289 static bool mrenclave_segment(EVP_MD_CTX *ctx, struct encl *encl, in mrenclave_segment() argument 299 if (!mrenclave_eextend(ctx, offset, encl->src + offset)) in mrenclave_segment() 306 bool encl_measure(struct encl *encl) in encl_measure() argument 310 struct sgx_sigstruct *sigstruct = &encl->sigstruct; in encl_measure() 344 if (!mrenclave_ecreate(ctx, encl->src_size)) in encl_measure() 347 for (i = 0; i < encl->nr_segments; i++) { in encl_measure() 348 struct encl_segment *seg = &encl->segment_tbl[i]; in encl_measure() 350 if (!mrenclave_segment(ctx, encl, seg)) in encl_measure()
|
/Linux-v5.15/arch/x86/kernel/cpu/sgx/ |
D | encl.c | 24 struct sgx_encl *encl = encl_page->encl; in __sgx_encl_eldu() local 31 page_index = PFN_DOWN(encl_page->desc - encl_page->encl->base); in __sgx_encl_eldu() 33 page_index = PFN_DOWN(encl->size); in __sgx_encl_eldu() 35 ret = sgx_encl_get_backing(encl, page_index, &b); in __sgx_encl_eldu() 71 struct sgx_encl *encl = encl_page->encl; in sgx_encl_eldu() local 86 list_move(&encl_page->va_page->list, &encl->va_pages); in sgx_encl_eldu() 93 static struct sgx_encl_page *sgx_encl_load_page(struct sgx_encl *encl, in sgx_encl_load_page() argument 101 entry = xa_load(&encl->page_array, PFN_DOWN(addr)); in sgx_encl_load_page() 121 if (!(encl->secs.epc_page)) { in sgx_encl_load_page() 122 epc_page = sgx_encl_eldu(&encl->secs, NULL); in sgx_encl_load_page() [all …]
|
D | ioctl.c | 20 static struct sgx_va_page *sgx_encl_grow(struct sgx_encl *encl) 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 static 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); in sgx_encl_create() 71 list_add(&va_page->list, &encl->va_pages); in sgx_encl_create() 84 encl->backing = backing; in sgx_encl_create() [all …]
|
D | driver.c | 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->mm_list); in sgx_open() 31 spin_lock_init(&encl->mm_lock); in sgx_open() 33 ret = init_srcu_struct(&encl->srcu); in sgx_open() [all …]
|
D | main.c | 86 struct sgx_encl *encl = page->encl; in sgx_reclaimer_age() local 91 idx = srcu_read_lock(&encl->srcu); in sgx_reclaimer_age() 93 list_for_each_entry_rcu(encl_mm, &encl->mm_list, list) { in sgx_reclaimer_age() 107 srcu_read_unlock(&encl->srcu, idx); in sgx_reclaimer_age() 119 struct sgx_encl *encl = page->encl; in sgx_reclaimer_block() local 126 mm_list_version = encl->mm_list_version; in sgx_reclaimer_block() 131 idx = srcu_read_lock(&encl->srcu); in sgx_reclaimer_block() 133 list_for_each_entry_rcu(encl_mm, &encl->mm_list, list) { in sgx_reclaimer_block() 140 if (!ret && encl == vma->vm_private_data) in sgx_reclaimer_block() 148 srcu_read_unlock(&encl->srcu, idx); in sgx_reclaimer_block() [all …]
|
D | encl.h | 32 struct sgx_encl *encl; member 44 struct sgx_encl *encl; member 103 int sgx_encl_may_map(struct sgx_encl *encl, unsigned long start, 107 int sgx_encl_mm_add(struct sgx_encl *encl, struct mm_struct *mm); 108 int sgx_encl_get_backing(struct sgx_encl *encl, unsigned long page_index,
|
D | Makefile | 3 encl.o \
|