1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
266d37570SDave Hansen #ifndef _LINUX_PKEYS_H
366d37570SDave Hansen #define _LINUX_PKEYS_H
466d37570SDave Hansen
5555934a7SMichael Ellerman #include <linux/mm.h>
666d37570SDave Hansen
7*d4ffd5dfSJiashuo Liang #define ARCH_DEFAULT_PKEY 0
8*d4ffd5dfSJiashuo Liang
966d37570SDave Hansen #ifdef CONFIG_ARCH_HAS_PKEYS
1066d37570SDave Hansen #include <asm/pkeys.h>
1166d37570SDave Hansen #else /* ! CONFIG_ARCH_HAS_PKEYS */
1266d37570SDave Hansen #define arch_max_pkey() (1)
1362b5f7d0SDave Hansen #define execute_only_pkey(mm) (0)
1462b5f7d0SDave Hansen #define arch_override_mprotect_pkey(vma, prot, pkey) (0)
1562b5f7d0SDave Hansen #define PKEY_DEDICATED_EXECUTE_ONLY 0
16a8502b67SDave Hansen #define ARCH_VM_PKEY_FLAGS 0
17e8c24d3aSDave Hansen
vma_pkey(struct vm_area_struct * vma)18dbec10e5SMichael Ellerman static inline int vma_pkey(struct vm_area_struct *vma)
19dbec10e5SMichael Ellerman {
20dbec10e5SMichael Ellerman return 0;
21dbec10e5SMichael Ellerman }
22dbec10e5SMichael Ellerman
mm_pkey_is_allocated(struct mm_struct * mm,int pkey)23e8c24d3aSDave Hansen static inline bool mm_pkey_is_allocated(struct mm_struct *mm, int pkey)
24e8c24d3aSDave Hansen {
25e8c24d3aSDave Hansen return (pkey == 0);
26e8c24d3aSDave Hansen }
27e8c24d3aSDave Hansen
mm_pkey_alloc(struct mm_struct * mm)28e8c24d3aSDave Hansen static inline int mm_pkey_alloc(struct mm_struct *mm)
29e8c24d3aSDave Hansen {
30e8c24d3aSDave Hansen return -1;
31e8c24d3aSDave Hansen }
32e8c24d3aSDave Hansen
mm_pkey_free(struct mm_struct * mm,int pkey)33e8c24d3aSDave Hansen static inline int mm_pkey_free(struct mm_struct *mm, int pkey)
34e8c24d3aSDave Hansen {
35e8c24d3aSDave Hansen return -EINVAL;
36e8c24d3aSDave Hansen }
37e8c24d3aSDave Hansen
arch_set_user_pkey_access(struct task_struct * tsk,int pkey,unsigned long init_val)38e8c24d3aSDave Hansen static inline int arch_set_user_pkey_access(struct task_struct *tsk, int pkey,
39e8c24d3aSDave Hansen unsigned long init_val)
40e8c24d3aSDave Hansen {
41e8c24d3aSDave Hansen return 0;
42e8c24d3aSDave Hansen }
43e8c24d3aSDave Hansen
arch_pkeys_enabled(void)444414ef95SMichael Ellerman static inline bool arch_pkeys_enabled(void)
454414ef95SMichael Ellerman {
464414ef95SMichael Ellerman return false;
474414ef95SMichael Ellerman }
484414ef95SMichael Ellerman
4966d37570SDave Hansen #endif /* ! CONFIG_ARCH_HAS_PKEYS */
5066d37570SDave Hansen
5166d37570SDave Hansen #endif /* _LINUX_PKEYS_H */
52