Lines Matching full:enclave

27  * reclaimer_writing_to_pcmd() - Query if any enclave page associated with
29 * @encl: Enclave to which PCMD page belongs
30 * @start_addr: Address of enclave page using first entry within the PCMD page
32 * When an enclave page is reclaimed some Paging Crypto MetaData (PCMD) is
33 * stored. The PCMD data of a reclaimed enclave page contains enough
35 * it is loaded back into the Enclave Page Cache (EPC).
37 * The backing storage to which enclave pages are reclaimed is laid out as
39 * Encrypted enclave pages:SECS page:PCMD pages
42 * PAGE_SIZE/sizeof(struct sgx_pcmd) enclave pages.
46 * a check if an enclave page sharing the PCMD page is in the process of being
50 * intends to reclaim that enclave page - it means that the PCMD page
51 * associated with that enclave page is about to get some data and thus
54 * Context: Enclave mutex (&sgx_encl->lock) must be held.
79 * started and completed with enclave mutex held so in reclaimer_writing_to_pcmd()
105 * Calculate byte offset of a PCMD struct associated with an enclave page. PCMD's
107 * visible enclave pages, there's one extra page slot for SECS, before PCMD
152 * Address of enclave page using the first entry within the PCMD page. in __sgx_encl_eldu()
240 * to protect the enclave states including SECS and ensure the SECS page is
315 * sgx_encl_eaug_page() - Dynamically add page to initialized enclave
317 * @encl: enclave accessing the page
320 * When an initialized enclave accesses a page with no backing EPC page
345 * phase. The enclave decides the permissions by the means of in sgx_encl_eaug_page()
450 * The page_array keeps track of all enclave pages, whether they in sgx_vma_fault()
453 * a new enclave page. This is only possible for an initialized in sgx_vma_fault()
454 * enclave that will be checked for right away. in sgx_vma_fault()
506 * @encl: an enclave pointer
511 * Iterate through the enclave pages contained within [@start, @end) to verify
514 * permissions of any of the enclave pages within the given address range.
516 * An enclave creator must declare the strongest permissions that will be
517 * needed for each enclave page. This ensures that mappings have the identical
532 /* Disallow mapping outside enclave's address range. */ in sgx_encl_may_map()
539 * conflict with the enclave page permissions. in sgx_encl_may_map()
604 * Load an enclave page to EPC if required, and take encl->lock.
694 * sgx_encl_release - Destroy an enclave instance
698 * enclave and the instance itself.
781 * The enclave itself can remove encl_mm. Note, objects can't be moved in sgx_mmu_notifier_release()
842 * Even though a single enclave may be mapped into an mm more than once, in sgx_encl_mm_add()
883 * sgx_encl_cpumask() - Query which CPUs might be accessing the enclave
884 * @encl: the enclave
888 * copies a page from the enclave page cache to regular main memory but
893 * when an enclave is exited via ENCLU[EEXIT] or an Asynchronous Enclave
894 * Exit (AEX). Exiting an enclave will thus ensure cached linear-to-physical
899 * When the ENCLS[ETRACK] function is issued on an enclave the hardware
900 * tracks threads operating inside the enclave at that time. The SGX
902 * exited the enclave in order to flush the mappings before a function such
909 * accessing the enclave.
910 * 3) Send IPI to identified CPUs, kicking them out of the enclave and
917 * enclave with fresh linear-to-physical address mappings.
921 * of the above flow with the enclave's mutex.
960 * @encl: an enclave pointer
961 * @page_index: enclave page index
965 * Crypto MetaData (PCMD) of an enclave page.
997 * in the enclave's mm_list. When not called from ksgxd, just returns
1015 * Search the enclave's mm_list to find an mm associated with in sgx_encl_get_mem_cgroup()
1016 * this enclave to charge the allocation to. in sgx_encl_get_mem_cgroup()
1035 * the enclave, set memcg to the current active mem_cgroup. in sgx_encl_get_mem_cgroup()
1047 * @encl: an enclave pointer
1048 * @page_index: enclave page index
1052 * mms in the enclave's mm_list prior to any backing page allocation,
1054 * enclave. Create a backing page for loading data back into an EPC page with
1079 * @encl: an enclave pointer
1080 * @page_index: enclave page index
1128 * @page: enclave page to be tested for recent access
1130 * Checks the Access (A) bit from the PTE corresponding to the enclave page and
1191 * sgx_zap_enclave_ptes() - remove PTEs mapping the address from enclave
1192 * @encl: the enclave
1195 * Multiple VMAs may have an enclave page mapped. Remove the PTE mapping
1235 * @reclaim: Reclaim EPC pages directly if none available. Enclave
1307 * sgx_encl_free_epc_page - free an EPC page assigned to an enclave
1310 * Free an EPC page assigned to an enclave. It does EREMOVE for the page, and