1 /* SPDX-License-Identifier: GPL-2.0 */ << 2 #ifndef _LINUX_PKEYS_H 1 #ifndef _LINUX_PKEYS_H 3 #define _LINUX_PKEYS_H 2 #define _LINUX_PKEYS_H 4 3 5 #include <linux/mm.h> !! 4 #include <linux/mm_types.h> 6 !! 5 #include <asm/mmu_context.h> 7 #define ARCH_DEFAULT_PKEY 0 << 8 6 9 #ifdef CONFIG_ARCH_HAS_PKEYS 7 #ifdef CONFIG_ARCH_HAS_PKEYS 10 #include <asm/pkeys.h> 8 #include <asm/pkeys.h> 11 #else /* ! CONFIG_ARCH_HAS_PKEYS */ 9 #else /* ! CONFIG_ARCH_HAS_PKEYS */ 12 #define arch_max_pkey() (1) 10 #define arch_max_pkey() (1) 13 #define execute_only_pkey(mm) (0) 11 #define execute_only_pkey(mm) (0) 14 #define arch_override_mprotect_pkey(vma, prot, 12 #define arch_override_mprotect_pkey(vma, prot, pkey) (0) 15 #define PKEY_DEDICATED_EXECUTE_ONLY 0 13 #define PKEY_DEDICATED_EXECUTE_ONLY 0 16 #define ARCH_VM_PKEY_FLAGS 0 14 #define ARCH_VM_PKEY_FLAGS 0 17 15 18 static inline int vma_pkey(struct vm_area_stru << 19 { << 20 return 0; << 21 } << 22 << 23 static inline bool mm_pkey_is_allocated(struct 16 static inline bool mm_pkey_is_allocated(struct mm_struct *mm, int pkey) 24 { 17 { 25 return (pkey == 0); 18 return (pkey == 0); 26 } 19 } 27 20 28 static inline int mm_pkey_alloc(struct mm_stru 21 static inline int mm_pkey_alloc(struct mm_struct *mm) 29 { 22 { 30 return -1; 23 return -1; 31 } 24 } 32 25 33 static inline int mm_pkey_free(struct mm_struc 26 static inline int mm_pkey_free(struct mm_struct *mm, int pkey) 34 { 27 { 35 return -EINVAL; 28 return -EINVAL; 36 } 29 } 37 30 38 static inline int arch_set_user_pkey_access(st 31 static inline int arch_set_user_pkey_access(struct task_struct *tsk, int pkey, 39 unsigned long init_val 32 unsigned long init_val) 40 { 33 { 41 return 0; 34 return 0; 42 } 35 } 43 36 44 static inline bool arch_pkeys_enabled(void) !! 37 static inline void copy_init_pkru_to_fpregs(void) 45 { 38 { 46 return false; << 47 } 39 } 48 40 49 #endif /* ! CONFIG_ARCH_HAS_PKEYS */ 41 #endif /* ! CONFIG_ARCH_HAS_PKEYS */ 50 42 51 #endif /* _LINUX_PKEYS_H */ 43 #endif /* _LINUX_PKEYS_H */ 52 44
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.