Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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 */