1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2*4882a593Smuzhiyun #ifndef _UAPI_PR_H 3*4882a593Smuzhiyun #define _UAPI_PR_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <linux/types.h> 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun enum pr_type { 8*4882a593Smuzhiyun PR_WRITE_EXCLUSIVE = 1, 9*4882a593Smuzhiyun PR_EXCLUSIVE_ACCESS = 2, 10*4882a593Smuzhiyun PR_WRITE_EXCLUSIVE_REG_ONLY = 3, 11*4882a593Smuzhiyun PR_EXCLUSIVE_ACCESS_REG_ONLY = 4, 12*4882a593Smuzhiyun PR_WRITE_EXCLUSIVE_ALL_REGS = 5, 13*4882a593Smuzhiyun PR_EXCLUSIVE_ACCESS_ALL_REGS = 6, 14*4882a593Smuzhiyun }; 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun struct pr_reservation { 17*4882a593Smuzhiyun __u64 key; 18*4882a593Smuzhiyun __u32 type; 19*4882a593Smuzhiyun __u32 flags; 20*4882a593Smuzhiyun }; 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun struct pr_registration { 23*4882a593Smuzhiyun __u64 old_key; 24*4882a593Smuzhiyun __u64 new_key; 25*4882a593Smuzhiyun __u32 flags; 26*4882a593Smuzhiyun __u32 __pad; 27*4882a593Smuzhiyun }; 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun struct pr_preempt { 30*4882a593Smuzhiyun __u64 old_key; 31*4882a593Smuzhiyun __u64 new_key; 32*4882a593Smuzhiyun __u32 type; 33*4882a593Smuzhiyun __u32 flags; 34*4882a593Smuzhiyun }; 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun struct pr_clear { 37*4882a593Smuzhiyun __u64 key; 38*4882a593Smuzhiyun __u32 flags; 39*4882a593Smuzhiyun __u32 __pad; 40*4882a593Smuzhiyun }; 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun #define PR_FL_IGNORE_KEY (1 << 0) /* ignore existing key */ 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun #define IOC_PR_REGISTER _IOW('p', 200, struct pr_registration) 45*4882a593Smuzhiyun #define IOC_PR_RESERVE _IOW('p', 201, struct pr_reservation) 46*4882a593Smuzhiyun #define IOC_PR_RELEASE _IOW('p', 202, struct pr_reservation) 47*4882a593Smuzhiyun #define IOC_PR_PREEMPT _IOW('p', 203, struct pr_preempt) 48*4882a593Smuzhiyun #define IOC_PR_PREEMPT_ABORT _IOW('p', 204, struct pr_preempt) 49*4882a593Smuzhiyun #define IOC_PR_CLEAR _IOW('p', 205, struct pr_clear) 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun #endif /* _UAPI_PR_H */ 52