| /linux/arch/x86/include/asm/ |
| H A D | pkru.h | 19 static inline bool __pkru_allows_read(u32 pkru, u16 pkey) in __pkru_allows_read() argument 22 return !(pkru & (PKRU_AD_BIT << pkru_pkey_bits)); in __pkru_allows_read() 25 static inline bool __pkru_allows_write(u32 pkru, u16 pkey) in __pkru_allows_write() argument 32 return !(pkru & ((PKRU_AD_BIT|PKRU_WD_BIT) << pkru_pkey_bits)); in __pkru_allows_write() 42 static inline void write_pkru(u32 pkru) in write_pkru() argument 50 if (pkru != rdpkru()) in write_pkru() 51 wrpkru(pkru); in write_pkru()
|
| H A D | special_insns.h | 72 u32 edx, pkru; in rdpkru() local 75 * "rdpkru" instruction. Places PKRU contents in to EAX, in rdpkru() 78 asm volatile("rdpkru" : "=a" (pkru), "=d" (edx) : "c" (ecx)); in rdpkru() 79 return pkru; in rdpkru() 82 static inline void wrpkru(u32 pkru) in wrpkru() argument 87 * "wrpkru" instruction. Loads contents in EAX to PKRU, in wrpkru() 90 asm volatile("wrpkru" : : "a" (pkru), "c"(ecx), "d"(edx)); in wrpkru() 99 static inline void wrpkru(u32 pkru) in wrpkru() argument
|
| /linux/arch/x86/include/asm/fpu/ |
| H A D | xstate.h | 40 * PKRU is not restored on return to user space because PKRU
|
| H A D | signal.h | 32 extern bool copy_fpstate_to_sigframe(void __user *buf, void __user *fp, int size, u32 pkru);
|
| H A D | types.h | 253 * State component 9: 32-bit PKRU register. The state is 257 u32 pkru; member
|
| /linux/Documentation/core-api/ |
| H A D | protection-keys.rst | 23 (PKRU). Each of these is a 32-bit register storing two bits (Access Disable 26 Being a CPU register, PKRU is inherently thread-local, potentially giving each
|
| /linux/tools/testing/selftests/mm/ |
| H A D | protection_keys.c | 1119 /* Clear XSTATE_BV[PKRU]: */ in become_child() 1121 /* XRSTOR will likely get PKRU back to the init state: */ in become_child() 1346 * correctly changed PKRU, but to an unknown value since in test_ptrace_of_child() 1396 /* Stop and allow the tracer to modify PKRU directly */ in get_pointer_to_instructions() 1406 /* Stop and allow the tracer to clear XSTATE_BV for PKRU */ in test_executing_on_unreadable_memory() 1412 /* Stop and allow the tracer to examine PKRU */ in test_executing_on_unreadable_memory() 1425 /* Modify the PKRU register directly */ in test_executing_on_unreadable_memory() 1449 /* Test that the tracee saw the PKRU value change */ in test_implicit_mprotect_exec_only_memory() 1460 /* Clear the PKRU bit from XSTATE_BV */ in test_implicit_mprotect_exec_only_memory() 1476 /* Test that the tracee saw the PKRU valu in test_implicit_mprotect_exec_only_memory() [all...] |
| H A D | pkey_sighandler_tests.c | 137 * pkru should be the init_pkru value which enabled MPK 0 so in sigusr2_handler() 365 * Verify that the PKRU value set by the application is correctly in test_pkru_preserved_after_sigusr1() 398 /* Ensure the pkru value is the same after returning from signal. */ in thread_sigusr2_self()
|
| H A D | mseal_test.c | 1685 /* sealing doesn't take effect if PKRU allow write. */ in test_seal_discard_ro_anon_on_pkey() 1690 /* sealing will take effect if PKRU deny write. */ in test_seal_discard_ro_anon_on_pkey()
|
| /linux/Documentation/translations/zh_CN/core-api/ |
| H A D | protection-keys.rst | 31 还有一个新的用户可访问寄存器(PKRU),为每个密钥提供两个单独的位(访
|
| /linux/Documentation/arch/x86/ |
| H A D | xstate.rst | 8 Up to AVX-512 and PKRU states, these features are automatically enabled by
|
| /linux/tools/arch/x86/kcpuid/ |
| H A D | cpuid.csv | 354 0xd, 0, eax, 9, xcr0_pkru , XCR0.PKRU: XSAVE PKRU registers 443 0x12, 1, ecx, 9, xfrm_pkru , Enclave XFRM.PKRU (XSAVE PKRU registers)
|
| /linux/tools/testing/selftests/kvm/include/x86/ |
| H A D | processor.h | 689 static inline void wrpkru(u32 pkru) 693 : : "a" (pkru), "c"(0), "d"(0)); in this_cpu_family() 631 wrpkru(u32 pkru) wrpkru() argument
|