xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/sed-opal.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPI_SED_OPAL_H
8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_SED_OPAL_H
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
10*8d67ca89SAndroid Build Coastguard Worker #define OPAL_KEY_MAX 256
11*8d67ca89SAndroid Build Coastguard Worker #define OPAL_MAX_LRS 9
12*8d67ca89SAndroid Build Coastguard Worker enum opal_mbr {
13*8d67ca89SAndroid Build Coastguard Worker   OPAL_MBR_ENABLE = 0x0,
14*8d67ca89SAndroid Build Coastguard Worker   OPAL_MBR_DISABLE = 0x01,
15*8d67ca89SAndroid Build Coastguard Worker };
16*8d67ca89SAndroid Build Coastguard Worker enum opal_mbr_done_flag {
17*8d67ca89SAndroid Build Coastguard Worker   OPAL_MBR_NOT_DONE = 0x0,
18*8d67ca89SAndroid Build Coastguard Worker   OPAL_MBR_DONE = 0x01
19*8d67ca89SAndroid Build Coastguard Worker };
20*8d67ca89SAndroid Build Coastguard Worker enum opal_user {
21*8d67ca89SAndroid Build Coastguard Worker   OPAL_ADMIN1 = 0x0,
22*8d67ca89SAndroid Build Coastguard Worker   OPAL_USER1 = 0x01,
23*8d67ca89SAndroid Build Coastguard Worker   OPAL_USER2 = 0x02,
24*8d67ca89SAndroid Build Coastguard Worker   OPAL_USER3 = 0x03,
25*8d67ca89SAndroid Build Coastguard Worker   OPAL_USER4 = 0x04,
26*8d67ca89SAndroid Build Coastguard Worker   OPAL_USER5 = 0x05,
27*8d67ca89SAndroid Build Coastguard Worker   OPAL_USER6 = 0x06,
28*8d67ca89SAndroid Build Coastguard Worker   OPAL_USER7 = 0x07,
29*8d67ca89SAndroid Build Coastguard Worker   OPAL_USER8 = 0x08,
30*8d67ca89SAndroid Build Coastguard Worker   OPAL_USER9 = 0x09,
31*8d67ca89SAndroid Build Coastguard Worker };
32*8d67ca89SAndroid Build Coastguard Worker enum opal_lock_state {
33*8d67ca89SAndroid Build Coastguard Worker   OPAL_RO = 0x01,
34*8d67ca89SAndroid Build Coastguard Worker   OPAL_RW = 0x02,
35*8d67ca89SAndroid Build Coastguard Worker   OPAL_LK = 0x04,
36*8d67ca89SAndroid Build Coastguard Worker };
37*8d67ca89SAndroid Build Coastguard Worker enum opal_lock_flags {
38*8d67ca89SAndroid Build Coastguard Worker   OPAL_SAVE_FOR_LOCK = 0x01,
39*8d67ca89SAndroid Build Coastguard Worker };
40*8d67ca89SAndroid Build Coastguard Worker enum opal_key_type {
41*8d67ca89SAndroid Build Coastguard Worker   OPAL_INCLUDED = 0,
42*8d67ca89SAndroid Build Coastguard Worker   OPAL_KEYRING,
43*8d67ca89SAndroid Build Coastguard Worker };
44*8d67ca89SAndroid Build Coastguard Worker struct opal_key {
45*8d67ca89SAndroid Build Coastguard Worker   __u8 lr;
46*8d67ca89SAndroid Build Coastguard Worker   __u8 key_len;
47*8d67ca89SAndroid Build Coastguard Worker   __u8 key_type;
48*8d67ca89SAndroid Build Coastguard Worker   __u8 __align[5];
49*8d67ca89SAndroid Build Coastguard Worker   __u8 key[OPAL_KEY_MAX];
50*8d67ca89SAndroid Build Coastguard Worker };
51*8d67ca89SAndroid Build Coastguard Worker enum opal_revert_lsp_opts {
52*8d67ca89SAndroid Build Coastguard Worker   OPAL_PRESERVE = 0x01,
53*8d67ca89SAndroid Build Coastguard Worker };
54*8d67ca89SAndroid Build Coastguard Worker struct opal_lr_act {
55*8d67ca89SAndroid Build Coastguard Worker   struct opal_key key;
56*8d67ca89SAndroid Build Coastguard Worker   __u32 sum;
57*8d67ca89SAndroid Build Coastguard Worker   __u8 num_lrs;
58*8d67ca89SAndroid Build Coastguard Worker   __u8 lr[OPAL_MAX_LRS];
59*8d67ca89SAndroid Build Coastguard Worker   __u8 align[2];
60*8d67ca89SAndroid Build Coastguard Worker };
61*8d67ca89SAndroid Build Coastguard Worker struct opal_session_info {
62*8d67ca89SAndroid Build Coastguard Worker   __u32 sum;
63*8d67ca89SAndroid Build Coastguard Worker   __u32 who;
64*8d67ca89SAndroid Build Coastguard Worker   struct opal_key opal_key;
65*8d67ca89SAndroid Build Coastguard Worker };
66*8d67ca89SAndroid Build Coastguard Worker struct opal_user_lr_setup {
67*8d67ca89SAndroid Build Coastguard Worker   __u64 range_start;
68*8d67ca89SAndroid Build Coastguard Worker   __u64 range_length;
69*8d67ca89SAndroid Build Coastguard Worker   __u32 RLE;
70*8d67ca89SAndroid Build Coastguard Worker   __u32 WLE;
71*8d67ca89SAndroid Build Coastguard Worker   struct opal_session_info session;
72*8d67ca89SAndroid Build Coastguard Worker };
73*8d67ca89SAndroid Build Coastguard Worker struct opal_lr_status {
74*8d67ca89SAndroid Build Coastguard Worker   struct opal_session_info session;
75*8d67ca89SAndroid Build Coastguard Worker   __u64 range_start;
76*8d67ca89SAndroid Build Coastguard Worker   __u64 range_length;
77*8d67ca89SAndroid Build Coastguard Worker   __u32 RLE;
78*8d67ca89SAndroid Build Coastguard Worker   __u32 WLE;
79*8d67ca89SAndroid Build Coastguard Worker   __u32 l_state;
80*8d67ca89SAndroid Build Coastguard Worker   __u8 align[4];
81*8d67ca89SAndroid Build Coastguard Worker };
82*8d67ca89SAndroid Build Coastguard Worker struct opal_lock_unlock {
83*8d67ca89SAndroid Build Coastguard Worker   struct opal_session_info session;
84*8d67ca89SAndroid Build Coastguard Worker   __u32 l_state;
85*8d67ca89SAndroid Build Coastguard Worker   __u16 flags;
86*8d67ca89SAndroid Build Coastguard Worker   __u8 __align[2];
87*8d67ca89SAndroid Build Coastguard Worker };
88*8d67ca89SAndroid Build Coastguard Worker struct opal_new_pw {
89*8d67ca89SAndroid Build Coastguard Worker   struct opal_session_info session;
90*8d67ca89SAndroid Build Coastguard Worker   struct opal_session_info new_user_pw;
91*8d67ca89SAndroid Build Coastguard Worker };
92*8d67ca89SAndroid Build Coastguard Worker struct opal_mbr_data {
93*8d67ca89SAndroid Build Coastguard Worker   struct opal_key key;
94*8d67ca89SAndroid Build Coastguard Worker   __u8 enable_disable;
95*8d67ca89SAndroid Build Coastguard Worker   __u8 __align[7];
96*8d67ca89SAndroid Build Coastguard Worker };
97*8d67ca89SAndroid Build Coastguard Worker struct opal_mbr_done {
98*8d67ca89SAndroid Build Coastguard Worker   struct opal_key key;
99*8d67ca89SAndroid Build Coastguard Worker   __u8 done_flag;
100*8d67ca89SAndroid Build Coastguard Worker   __u8 __align[7];
101*8d67ca89SAndroid Build Coastguard Worker };
102*8d67ca89SAndroid Build Coastguard Worker struct opal_shadow_mbr {
103*8d67ca89SAndroid Build Coastguard Worker   struct opal_key key;
104*8d67ca89SAndroid Build Coastguard Worker   const __u64 data;
105*8d67ca89SAndroid Build Coastguard Worker   __u64 offset;
106*8d67ca89SAndroid Build Coastguard Worker   __u64 size;
107*8d67ca89SAndroid Build Coastguard Worker };
108*8d67ca89SAndroid Build Coastguard Worker enum opal_table_ops {
109*8d67ca89SAndroid Build Coastguard Worker   OPAL_READ_TABLE,
110*8d67ca89SAndroid Build Coastguard Worker   OPAL_WRITE_TABLE,
111*8d67ca89SAndroid Build Coastguard Worker };
112*8d67ca89SAndroid Build Coastguard Worker #define OPAL_UID_LENGTH 8
113*8d67ca89SAndroid Build Coastguard Worker struct opal_read_write_table {
114*8d67ca89SAndroid Build Coastguard Worker   struct opal_key key;
115*8d67ca89SAndroid Build Coastguard Worker   const __u64 data;
116*8d67ca89SAndroid Build Coastguard Worker   const __u8 table_uid[OPAL_UID_LENGTH];
117*8d67ca89SAndroid Build Coastguard Worker   __u64 offset;
118*8d67ca89SAndroid Build Coastguard Worker   __u64 size;
119*8d67ca89SAndroid Build Coastguard Worker #define OPAL_TABLE_READ (1 << OPAL_READ_TABLE)
120*8d67ca89SAndroid Build Coastguard Worker #define OPAL_TABLE_WRITE (1 << OPAL_WRITE_TABLE)
121*8d67ca89SAndroid Build Coastguard Worker   __u64 flags;
122*8d67ca89SAndroid Build Coastguard Worker   __u64 priv;
123*8d67ca89SAndroid Build Coastguard Worker };
124*8d67ca89SAndroid Build Coastguard Worker #define OPAL_FL_SUPPORTED 0x00000001
125*8d67ca89SAndroid Build Coastguard Worker #define OPAL_FL_LOCKING_SUPPORTED 0x00000002
126*8d67ca89SAndroid Build Coastguard Worker #define OPAL_FL_LOCKING_ENABLED 0x00000004
127*8d67ca89SAndroid Build Coastguard Worker #define OPAL_FL_LOCKED 0x00000008
128*8d67ca89SAndroid Build Coastguard Worker #define OPAL_FL_MBR_ENABLED 0x00000010
129*8d67ca89SAndroid Build Coastguard Worker #define OPAL_FL_MBR_DONE 0x00000020
130*8d67ca89SAndroid Build Coastguard Worker #define OPAL_FL_SUM_SUPPORTED 0x00000040
131*8d67ca89SAndroid Build Coastguard Worker struct opal_status {
132*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
133*8d67ca89SAndroid Build Coastguard Worker   __u32 reserved;
134*8d67ca89SAndroid Build Coastguard Worker };
135*8d67ca89SAndroid Build Coastguard Worker struct opal_geometry {
136*8d67ca89SAndroid Build Coastguard Worker   __u8 align;
137*8d67ca89SAndroid Build Coastguard Worker   __u32 logical_block_size;
138*8d67ca89SAndroid Build Coastguard Worker   __u64 alignment_granularity;
139*8d67ca89SAndroid Build Coastguard Worker   __u64 lowest_aligned_lba;
140*8d67ca89SAndroid Build Coastguard Worker   __u8 __align[3];
141*8d67ca89SAndroid Build Coastguard Worker };
142*8d67ca89SAndroid Build Coastguard Worker struct opal_discovery {
143*8d67ca89SAndroid Build Coastguard Worker   __u64 data;
144*8d67ca89SAndroid Build Coastguard Worker   __u64 size;
145*8d67ca89SAndroid Build Coastguard Worker };
146*8d67ca89SAndroid Build Coastguard Worker struct opal_revert_lsp {
147*8d67ca89SAndroid Build Coastguard Worker   struct opal_key key;
148*8d67ca89SAndroid Build Coastguard Worker   __u32 options;
149*8d67ca89SAndroid Build Coastguard Worker   __u32 __pad;
150*8d67ca89SAndroid Build Coastguard Worker };
151*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_SAVE _IOW('p', 220, struct opal_lock_unlock)
152*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_LOCK_UNLOCK _IOW('p', 221, struct opal_lock_unlock)
153*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_TAKE_OWNERSHIP _IOW('p', 222, struct opal_key)
154*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_ACTIVATE_LSP _IOW('p', 223, struct opal_lr_act)
155*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_SET_PW _IOW('p', 224, struct opal_new_pw)
156*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_ACTIVATE_USR _IOW('p', 225, struct opal_session_info)
157*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_REVERT_TPR _IOW('p', 226, struct opal_key)
158*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_LR_SETUP _IOW('p', 227, struct opal_user_lr_setup)
159*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_ADD_USR_TO_LR _IOW('p', 228, struct opal_lock_unlock)
160*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_ENABLE_DISABLE_MBR _IOW('p', 229, struct opal_mbr_data)
161*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_ERASE_LR _IOW('p', 230, struct opal_session_info)
162*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_SECURE_ERASE_LR _IOW('p', 231, struct opal_session_info)
163*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_PSID_REVERT_TPR _IOW('p', 232, struct opal_key)
164*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_MBR_DONE _IOW('p', 233, struct opal_mbr_done)
165*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_WRITE_SHADOW_MBR _IOW('p', 234, struct opal_shadow_mbr)
166*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_GENERIC_TABLE_RW _IOW('p', 235, struct opal_read_write_table)
167*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_GET_STATUS _IOR('p', 236, struct opal_status)
168*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_GET_LR_STATUS _IOW('p', 237, struct opal_lr_status)
169*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_GET_GEOMETRY _IOR('p', 238, struct opal_geometry)
170*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_DISCOVERY _IOW('p', 239, struct opal_discovery)
171*8d67ca89SAndroid Build Coastguard Worker #define IOC_OPAL_REVERT_LSP _IOW('p', 240, struct opal_revert_lsp)
172*8d67ca89SAndroid Build Coastguard Worker #endif
173