Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
0002 #ifndef _UAPI_PR_H
0003 #define _UAPI_PR_H
0004 
0005 #include <linux/types.h>
0006 
0007 enum pr_type {
0008     PR_WRITE_EXCLUSIVE      = 1,
0009     PR_EXCLUSIVE_ACCESS     = 2,
0010     PR_WRITE_EXCLUSIVE_REG_ONLY = 3,
0011     PR_EXCLUSIVE_ACCESS_REG_ONLY    = 4,
0012     PR_WRITE_EXCLUSIVE_ALL_REGS = 5,
0013     PR_EXCLUSIVE_ACCESS_ALL_REGS    = 6,
0014 };
0015 
0016 struct pr_reservation {
0017     __u64   key;
0018     __u32   type;
0019     __u32   flags;
0020 };
0021 
0022 struct pr_registration {
0023     __u64   old_key;
0024     __u64   new_key;
0025     __u32   flags;
0026     __u32   __pad;
0027 };
0028 
0029 struct pr_preempt {
0030     __u64   old_key;
0031     __u64   new_key;
0032     __u32   type;
0033     __u32   flags;
0034 };
0035 
0036 struct pr_clear {
0037     __u64   key;
0038     __u32   flags;
0039     __u32   __pad;
0040 };
0041 
0042 #define PR_FL_IGNORE_KEY    (1 << 0)    /* ignore existing key */
0043 
0044 #define IOC_PR_REGISTER     _IOW('p', 200, struct pr_registration)
0045 #define IOC_PR_RESERVE      _IOW('p', 201, struct pr_reservation)
0046 #define IOC_PR_RELEASE      _IOW('p', 202, struct pr_reservation)
0047 #define IOC_PR_PREEMPT      _IOW('p', 203, struct pr_preempt)
0048 #define IOC_PR_PREEMPT_ABORT    _IOW('p', 204, struct pr_preempt)
0049 #define IOC_PR_CLEAR        _IOW('p', 205, struct pr_clear)
0050 
0051 #endif /* _UAPI_PR_H */