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 */ 49