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()
302 * sgx_encl_eaug_page() - Dynamically add page to initialized enclave
304 * @encl: enclave accessing the page
307 * When an initialized enclave accesses a page with no backing EPC page
332 * phase. The enclave decides the permissions by the means of in sgx_encl_eaug_page()
430 * The page_array keeps track of all enclave pages, whether they in sgx_vma_fault()
433 * a new enclave page. This is only possible for an initialized in sgx_vma_fault()
434 * enclave that will be checked for right away. in sgx_vma_fault()
486 * @encl: an enclave pointer
491 * Iterate through the enclave pages contained within [@start, @end) to verify
494 * permissions of any of the enclave pages within the given address range.
496 * An enclave creator must declare the strongest permissions that will be
497 * needed for each enclave page. This ensures that mappings have the identical
512 /* Disallow mapping outside enclave's address range. */ in sgx_encl_may_map()
519 * conflict with the enclave page permissions. in sgx_encl_may_map()
584 * Load an enclave page to EPC if required, and take encl->lock.
674 * sgx_encl_release - Destroy an enclave instance
678 * enclave and the instance itself.
745 * The enclave itself can remove encl_mm. Note, objects can't be moved in sgx_mmu_notifier_release()
805 * Even though a single enclave may be mapped into an mm more than once, in sgx_encl_mm_add()
846 * sgx_encl_cpumask() - Query which CPUs might be accessing the enclave
847 * @encl: the enclave
851 * copies a page from the enclave page cache to regular main memory but
856 * when an enclave is exited via ENCLU[EEXIT] or an Asynchronous Enclave
857 * Exit (AEX). Exiting an enclave will thus ensure cached linear-to-physical
862 * When the ENCLS[ETRACK] function is issued on an enclave the hardware
863 * tracks threads operating inside the enclave at that time. The SGX
865 * exited the enclave in order to flush the mappings before a function such
872 * accessing the enclave.
873 * 3) Send IPI to identified CPUs, kicking them out of the enclave and
880 * enclave with fresh linear-to-physical address mappings.
884 * of the above flow with the enclave's mutex.
923 * @encl: an enclave pointer
924 * @page_index: enclave page index
928 * Crypto MetaData (PCMD) of an enclave page.
960 * in the enclave's mm_list. When not called from ksgxd, just returns
978 * Search the enclave's mm_list to find an mm associated with in sgx_encl_get_mem_cgroup()
979 * this enclave to charge the allocation to. in sgx_encl_get_mem_cgroup()
998 * the enclave, set memcg to the current active mem_cgroup. in sgx_encl_get_mem_cgroup()
1010 * @encl: an enclave pointer
1011 * @page_index: enclave page index
1015 * mms in the enclave's mm_list prior to any backing page allocation,
1017 * enclave. Create a backing page for loading data back into an EPC page with
1042 * @encl: an enclave pointer
1043 * @page_index: enclave page index
1091 * @page: enclave page to be tested for recent access
1093 * Checks the Access (A) bit from the PTE corresponding to the enclave page and
1154 * sgx_zap_enclave_ptes() - remove PTEs mapping the address from enclave
1155 * @encl: the enclave
1158 * Multiple VMAs may have an enclave page mapped. Remove the PTE mapping
1198 * @reclaim: Reclaim EPC pages directly if none available. Enclave
1270 * sgx_encl_free_epc_page - free an EPC page assigned to an enclave
1273 * Free an EPC page assigned to an enclave. It does EREMOVE for the page, and