These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / include / uapi / linux / pr.h
1 #ifndef _UAPI_PR_H
2 #define _UAPI_PR_H
3
4 enum pr_type {
5         PR_WRITE_EXCLUSIVE              = 1,
6         PR_EXCLUSIVE_ACCESS             = 2,
7         PR_WRITE_EXCLUSIVE_REG_ONLY     = 3,
8         PR_EXCLUSIVE_ACCESS_REG_ONLY    = 4,
9         PR_WRITE_EXCLUSIVE_ALL_REGS     = 5,
10         PR_EXCLUSIVE_ACCESS_ALL_REGS    = 6,
11 };
12
13 struct pr_reservation {
14         __u64   key;
15         __u32   type;
16         __u32   flags;
17 };
18
19 struct pr_registration {
20         __u64   old_key;
21         __u64   new_key;
22         __u32   flags;
23         __u32   __pad;
24 };
25
26 struct pr_preempt {
27         __u64   old_key;
28         __u64   new_key;
29         __u32   type;
30         __u32   flags;
31 };
32
33 struct pr_clear {
34         __u64   key;
35         __u32   flags;
36         __u32   __pad;
37 };
38
39 #define PR_FL_IGNORE_KEY        (1 << 0)        /* ignore existing key */
40
41 #define IOC_PR_REGISTER         _IOW('p', 200, struct pr_registration)
42 #define IOC_PR_RESERVE          _IOW('p', 201, struct pr_reservation)
43 #define IOC_PR_RELEASE          _IOW('p', 202, struct pr_reservation)
44 #define IOC_PR_PREEMPT          _IOW('p', 203, struct pr_preempt)
45 #define IOC_PR_PREEMPT_ABORT    _IOW('p', 204, struct pr_preempt)
46 #define IOC_PR_CLEAR            _IOW('p', 205, struct pr_clear)
47
48 #endif /* _UAPI_PR_H */