Home | History | Annotate | Download | only in linux
      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