#include <linux/debugfs.h>
#include <linux/mm_types.h>
#include <linux/pkeys.h>
#include <uapi/asm-generic/mman-common.h>
#include <asm/cpufeature.h>
#include <asm/mmu_context.h>
int __execute_only_pkey(struct mm_struct *mm)
{ … }
static inline bool vma_is_pkey_exec_only(struct vm_area_struct *vma)
{ … }
int __arch_override_mprotect_pkey(struct vm_area_struct *vma, int prot, int pkey)
{ … }
#define PKRU_AD_MASK(pkey) …
u32 init_pkru_value = …;
static ssize_t init_pkru_read_file(struct file *file, char __user *user_buf,
size_t count, loff_t *ppos)
{ … }
static ssize_t init_pkru_write_file(struct file *file,
const char __user *user_buf, size_t count, loff_t *ppos)
{ … }
static const struct file_operations fops_init_pkru = …;
static int __init create_init_pkru_value(void)
{ … }
late_initcall(create_init_pkru_value);
static __init int setup_init_pkru(char *opt)
{ … }
__setup(…);