1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _LINUX_PKEYS_H 3#define _LINUX_PKEYS_H 4 5#include <linux/mm_types.h> 6#include <asm/mmu_context.h> 7 8#ifdef CONFIG_ARCH_HAS_PKEYS 9#include <asm/pkeys.h> 10#else /* ! CONFIG_ARCH_HAS_PKEYS */ 11#define arch_max_pkey() (1) 12#define execute_only_pkey(mm) (0) 13#define arch_override_mprotect_pkey(vma, prot, pkey) (0) 14#define PKEY_DEDICATED_EXECUTE_ONLY 0 15#define ARCH_VM_PKEY_FLAGS 0 16 17static inline bool mm_pkey_is_allocated(struct mm_struct *mm, int pkey) 18{ 19 return (pkey == 0); 20} 21 22static inline int mm_pkey_alloc(struct mm_struct *mm) 23{ 24 return -1; 25} 26 27static inline int mm_pkey_free(struct mm_struct *mm, int pkey) 28{ 29 return -EINVAL; 30} 31 32static inline int arch_set_user_pkey_access(struct task_struct *tsk, int pkey, 33 unsigned long init_val) 34{ 35 return 0; 36} 37 38static inline void copy_init_pkru_to_fpregs(void) 39{ 40} 41 42#endif /* ! CONFIG_ARCH_HAS_PKEYS */ 43 44#endif /* _LINUX_PKEYS_H */ 45