• Home
  • History
  • Annotate
  • 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