• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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