Home
last modified time | relevance | path

Searched refs:encl (Results 1 – 10 of 10) sorted by relevance

/Linux-v5.15/tools/testing/selftests/sgx/
Dload.c22 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 …]
Dmain.h16 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);
Dmain.c111 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 …]
Dsigstruct.c289 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/
Dencl.c24 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 …]
Dioctl.c20 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 …]
Ddriver.c19 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 …]
Dmain.c86 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 …]
Dencl.h32 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,
DMakefile3 encl.o \