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