Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1#ifndef _UAPI_PR_H
2#define _UAPI_PR_H
3
4#include <linux/types.h>
5
6enum pr_type {
7 PR_WRITE_EXCLUSIVE = 1,
8 PR_EXCLUSIVE_ACCESS = 2,
9 PR_WRITE_EXCLUSIVE_REG_ONLY = 3,
10 PR_EXCLUSIVE_ACCESS_REG_ONLY = 4,
11 PR_WRITE_EXCLUSIVE_ALL_REGS = 5,
12 PR_EXCLUSIVE_ACCESS_ALL_REGS = 6,
13};
14
15struct pr_reservation {
16 __u64 key;
17 __u32 type;
18 __u32 flags;
19};
20
21struct pr_registration {
22 __u64 old_key;
23 __u64 new_key;
24 __u32 flags;
25 __u32 __pad;
26};
27
28struct pr_preempt {
29 __u64 old_key;
30 __u64 new_key;
31 __u32 type;
32 __u32 flags;
33};
34
35struct pr_clear {
36 __u64 key;
37 __u32 flags;
38 __u32 __pad;
39};
40
41#define PR_FL_IGNORE_KEY (1 << 0) /* ignore existing key */
42
43#define IOC_PR_REGISTER _IOW('p', 200, struct pr_registration)
44#define IOC_PR_RESERVE _IOW('p', 201, struct pr_reservation)
45#define IOC_PR_RELEASE _IOW('p', 202, struct pr_reservation)
46#define IOC_PR_PREEMPT _IOW('p', 203, struct pr_preempt)
47#define IOC_PR_PREEMPT_ABORT _IOW('p', 204, struct pr_preempt)
48#define IOC_PR_CLEAR _IOW('p', 205, struct pr_clear)
49
50#endif /* _UAPI_PR_H */