xref: /linux-6.15/include/linux/pkeys.h (revision d4ffd5df)
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