1#![allow(unsafe_op_in_unsafe_fn)]
6
7#[repr(C)]
8#[derive(Default)]
9pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
10impl<T> __IncompleteArrayField<T> {
11 #[inline]
12 pub const fn new() -> Self {
13 __IncompleteArrayField(::std::marker::PhantomData, [])
14 }
15
16 #[inline]
17 pub fn as_ptr(&self) -> *const T {
18 self as *const _ as *const T
19 }
20
21 #[inline]
22 pub fn as_mut_ptr(&mut self) -> *mut T {
23 self as *mut _ as *mut T
24 }
25
26 #[inline]
27 pub unsafe fn as_slice(&self, len: usize) -> &[T] {
28 ::std::slice::from_raw_parts(self.as_ptr(), len)
29 }
30
31 #[inline]
32 pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
33 ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
34 }
35}
36impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
37 fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
38 fmt.write_str("__IncompleteArrayField")
39 }
40}
41pub const NVME_DISC_SUBSYS_NAME: &[u8; 37] = b"nqn.2014-08.org.nvmexpress.discovery\0";
42pub const NVME_RDMA_IP_PORT: u32 = 4420;
43pub const NVME_DISC_IP_PORT: u32 = 8009;
44pub const NVME_NSID_ALL: u32 = 4294967295;
45pub const NVME_NUM_IOCS_COMBINATIONS: u32 = 512;
46pub const NVME_AQ_DEPTH: u32 = 32;
47pub const NVME_NR_AEN_COMMANDS: u32 = 1;
48pub const NVME_AQ_BLK_MQ_DEPTH: u32 = 31;
49pub const NVME_AQ_MQ_TAG_DEPTH: u32 = 30;
50pub const NVME_NVM_IOSQES: u32 = 6;
51pub const NVME_NVM_IOCQES: u32 = 4;
52pub const NVME_NIDT_EUI64_LEN: u32 = 8;
53pub const NVME_NIDT_NGUID_LEN: u32 = 16;
54pub const NVME_NIDT_UUID_LEN: u32 = 16;
55pub const NVME_NIDT_CSI_LEN: u32 = 1;
56pub const NVME_MAX_NVMSET: u32 = 31;
57pub const NVME_MAX_UUID_ENTRIES: u32 = 128;
58pub const NVME_MAX_CHANGED_NAMESPACES: u32 = 1024;
59pub const NVME_ANA_LOG_RGO: u32 = 1;
60pub const NVME_DSM_MAX_RANGES: u32 = 256;
61pub const NVME_IDENTIFY_DATA_SIZE: u32 = 4096;
62pub const NVME_CNTLID_MIN: u32 = 1;
63pub const NVME_CNTLID_MAX: u32 = 65519;
64pub const NVME_CNTLID_DYNAMIC: u32 = 65535;
65pub const NVME_ZNS_CHANGED_ZONES_MAX: u32 = 511;
66pub const NVM_TTYPE_NAME_MAX: u32 = 48;
67pub const NVM_TTYPE_MAX: u32 = 63;
68pub const NVM_MMTYPE_LEN: u32 = 8;
69pub const NVM_CTRL_FILE: &[u8; 22] = b"/dev/lightnvm/control\0";
70pub const NVM_IOCTL: u8 = 76u8;
71pub const NVM_VERSION_MAJOR: u32 = 1;
72pub const NVM_VERSION_MINOR: u32 = 0;
73pub const NVM_VERSION_PATCHLEVEL: u32 = 0;
74pub type __u8 = ::std::os::raw::c_uchar;
75pub type __u16 = ::std::os::raw::c_ushort;
76pub type __u32 = ::std::os::raw::c_uint;
77pub type __u64 = ::std::os::raw::c_ulonglong;
78pub type __le16 = __u16;
79pub type __le32 = __u32;
80pub type __le64 = __u64;
81#[repr(u32)]
82#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
83pub enum nvme_subsys_type {
84 NVME_NQN_DISC = 1,
85 NVME_NQN_NVME = 2,
86}
87pub const NVME_IOCS_NVM: _bindgen_ty_8 = _bindgen_ty_8::NVME_IOCS_NVM;
88pub const NVME_IOCS_ZONED: _bindgen_ty_8 = _bindgen_ty_8::NVME_IOCS_ZONED;
89#[repr(u32)]
90#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
91pub enum _bindgen_ty_8 {
92 NVME_IOCS_NVM = 0,
93 NVME_IOCS_ZONED = 2,
94}
95pub const NVME_REG_CAP: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_CAP;
96pub const NVME_REG_VS: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_VS;
97pub const NVME_REG_INTMS: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_INTMS;
98pub const NVME_REG_INTMC: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_INTMC;
99pub const NVME_REG_CC: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_CC;
100pub const NVME_REG_CSTS: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_CSTS;
101pub const NVME_REG_NSSR: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_NSSR;
102pub const NVME_REG_AQA: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_AQA;
103pub const NVME_REG_ASQ: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_ASQ;
104pub const NVME_REG_ACQ: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_ACQ;
105pub const NVME_REG_CMBLOC: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_CMBLOC;
106pub const NVME_REG_CMBSZ: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_CMBSZ;
107pub const NVME_REG_BPINFO: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_BPINFO;
108pub const NVME_REG_BPRSEL: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_BPRSEL;
109pub const NVME_REG_BPMBL: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_BPMBL;
110pub const NVME_REG_CMBMSC: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_CMBMSC;
111pub const NVME_REG_CMBSTS: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_CMBSTS;
112pub const NVME_REG_PMRCAP: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_PMRCAP;
113pub const NVME_REG_PMRCTL: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_PMRCTL;
114pub const NVME_REG_PMRSTS: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_PMRSTS;
115pub const NVME_REG_PMREBS: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_PMREBS;
116pub const NVME_REG_PMRSWTP: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_PMRSWTP;
117pub const NVME_REG_PMRMSCL: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_PMRMSCL;
118pub const NVME_REG_PMRMSCU: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_PMRMSCU;
119pub const NVME_REG_DBS: _bindgen_ty_9 = _bindgen_ty_9::NVME_REG_DBS;
120#[repr(u32)]
121#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
122pub enum _bindgen_ty_9 {
123 NVME_REG_CAP = 0,
124 NVME_REG_VS = 8,
125 NVME_REG_INTMS = 12,
126 NVME_REG_INTMC = 16,
127 NVME_REG_CC = 20,
128 NVME_REG_CSTS = 28,
129 NVME_REG_NSSR = 32,
130 NVME_REG_AQA = 36,
131 NVME_REG_ASQ = 40,
132 NVME_REG_ACQ = 48,
133 NVME_REG_CMBLOC = 56,
134 NVME_REG_CMBSZ = 60,
135 NVME_REG_BPINFO = 64,
136 NVME_REG_BPRSEL = 68,
137 NVME_REG_BPMBL = 72,
138 NVME_REG_CMBMSC = 80,
139 NVME_REG_CMBSTS = 88,
140 NVME_REG_PMRCAP = 3584,
141 NVME_REG_PMRCTL = 3588,
142 NVME_REG_PMRSTS = 3592,
143 NVME_REG_PMREBS = 3596,
144 NVME_REG_PMRSWTP = 3600,
145 NVME_REG_PMRMSCL = 3604,
146 NVME_REG_PMRMSCU = 3608,
147 NVME_REG_DBS = 4096,
148}
149pub const NVME_CC_ENABLE: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_ENABLE;
150pub const NVME_CC_CSS_NVM: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_CSS_NVM;
151pub const NVME_CC_EN_SHIFT: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_CSS_NVM;
152pub const NVME_CC_CSS_SHIFT: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_CSS_SHIFT;
153pub const NVME_CC_MPS_SHIFT: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_MPS_SHIFT;
154pub const NVME_CC_AMS_SHIFT: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_AMS_SHIFT;
155pub const NVME_CC_SHN_SHIFT: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_SHN_SHIFT;
156pub const NVME_CC_IOSQES_SHIFT: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_IOSQES_SHIFT;
157pub const NVME_CC_IOCQES_SHIFT: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_IOCQES_SHIFT;
158pub const NVME_CC_AMS_RR: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_CSS_NVM;
159pub const NVME_CC_AMS_WRRU: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_AMS_WRRU;
160pub const NVME_CC_AMS_VS: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_AMS_VS;
161pub const NVME_CC_SHN_NONE: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_CSS_NVM;
162pub const NVME_CC_SHN_NORMAL: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_SHN_NORMAL;
163pub const NVME_CC_SHN_ABRUPT: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_SHN_ABRUPT;
164pub const NVME_CC_SHN_MASK: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_SHN_MASK;
165pub const NVME_CC_IOSQES: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_IOSQES;
166pub const NVME_CC_IOCQES: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_IOCQES;
167pub const NVME_CSTS_RDY: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_ENABLE;
168pub const NVME_CSTS_CFS: _bindgen_ty_10 = _bindgen_ty_10::NVME_CSTS_CFS;
169pub const NVME_CSTS_NSSRO: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_IOSQES_SHIFT;
170pub const NVME_CSTS_PP: _bindgen_ty_10 = _bindgen_ty_10::NVME_CSTS_PP;
171pub const NVME_CSTS_SHST_NORMAL: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_CSS_NVM;
172pub const NVME_CSTS_SHST_OCCUR: _bindgen_ty_10 = _bindgen_ty_10::NVME_CC_CSS_SHIFT;
173pub const NVME_CSTS_SHST_CMPLT: _bindgen_ty_10 = _bindgen_ty_10::NVME_CSTS_SHST_CMPLT;
174pub const NVME_CSTS_SHST_MASK: _bindgen_ty_10 = _bindgen_ty_10::NVME_CSTS_SHST_MASK;
175#[repr(u32)]
176#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
177pub enum _bindgen_ty_10 {
178 NVME_CC_ENABLE = 1,
179 NVME_CC_CSS_NVM = 0,
180 NVME_CC_CSS_SHIFT = 4,
181 NVME_CC_MPS_SHIFT = 7,
182 NVME_CC_AMS_SHIFT = 11,
183 NVME_CC_SHN_SHIFT = 14,
184 NVME_CC_IOSQES_SHIFT = 16,
185 NVME_CC_IOCQES_SHIFT = 20,
186 NVME_CC_AMS_WRRU = 2048,
187 NVME_CC_AMS_VS = 14336,
188 NVME_CC_SHN_NORMAL = 16384,
189 NVME_CC_SHN_ABRUPT = 32768,
190 NVME_CC_SHN_MASK = 49152,
191 NVME_CC_IOSQES = 393216,
192 NVME_CC_IOCQES = 4194304,
193 NVME_CSTS_CFS = 2,
194 NVME_CSTS_PP = 32,
195 NVME_CSTS_SHST_CMPLT = 8,
196 NVME_CSTS_SHST_MASK = 12,
197}
198#[repr(C)]
199#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
200pub struct nvme_id_power_state {
201 pub max_power: __le16,
202 pub rsvd2: __u8,
203 pub flags: __u8,
204 pub entry_lat: __le32,
205 pub exit_lat: __le32,
206 pub read_tput: __u8,
207 pub read_lat: __u8,
208 pub write_tput: __u8,
209 pub write_lat: __u8,
210 pub idle_power: __le16,
211 pub idle_scale: __u8,
212 pub rsvd19: __u8,
213 pub active_power: __le16,
214 pub active_work_scale: __u8,
215 pub rsvd23: [__u8; 9usize],
216}
217pub const NVME_PS_FLAGS_MAX_POWER_SCALE: _bindgen_ty_11 =
218 _bindgen_ty_11::NVME_PS_FLAGS_MAX_POWER_SCALE;
219pub const NVME_PS_FLAGS_NON_OP_STATE: _bindgen_ty_11 = _bindgen_ty_11::NVME_PS_FLAGS_NON_OP_STATE;
220#[repr(u32)]
221#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
222pub enum _bindgen_ty_11 {
223 NVME_PS_FLAGS_MAX_POWER_SCALE = 1,
224 NVME_PS_FLAGS_NON_OP_STATE = 2,
225}
226#[repr(C)]
227#[derive(Debug, Copy, Clone, Hash, PartialEq)]
228pub struct nvme_id_ctrl {
229 pub vid: __le16,
230 pub ssvid: __le16,
231 pub sn: [::std::os::raw::c_char; 20usize],
232 pub mn: [::std::os::raw::c_char; 40usize],
233 pub fr: [::std::os::raw::c_char; 8usize],
234 pub rab: __u8,
235 pub ieee: [__u8; 3usize],
236 pub cmic: __u8,
237 pub mdts: __u8,
238 pub cntlid: __le16,
239 pub ver: __le32,
240 pub rtd3r: __le32,
241 pub rtd3e: __le32,
242 pub oaes: __le32,
243 pub ctratt: __le32,
244 pub rrls: __le16,
245 pub rsvd102: [__u8; 9usize],
246 pub cntrltype: __u8,
247 pub fguid: [::std::os::raw::c_char; 16usize],
248 pub crdt1: __le16,
249 pub crdt2: __le16,
250 pub crdt3: __le16,
251 pub rsvd134: [__u8; 119usize],
252 pub nvmsr: __u8,
253 pub vwci: __u8,
254 pub mec: __u8,
255 pub oacs: __le16,
256 pub acl: __u8,
257 pub aerl: __u8,
258 pub frmw: __u8,
259 pub lpa: __u8,
260 pub elpe: __u8,
261 pub npss: __u8,
262 pub avscc: __u8,
263 pub apsta: __u8,
264 pub wctemp: __le16,
265 pub cctemp: __le16,
266 pub mtfa: __le16,
267 pub hmpre: __le32,
268 pub hmmin: __le32,
269 pub tnvmcap: [__u8; 16usize],
270 pub unvmcap: [__u8; 16usize],
271 pub rpmbs: __le32,
272 pub edstt: __le16,
273 pub dsto: __u8,
274 pub fwug: __u8,
275 pub kas: __le16,
276 pub hctma: __le16,
277 pub mntmt: __le16,
278 pub mxtmt: __le16,
279 pub sanicap: __le32,
280 pub hmminds: __le32,
281 pub hmmaxd: __le16,
282 pub nsetidmax: __le16,
283 pub endgidmax: __le16,
284 pub anatt: __u8,
285 pub anacap: __u8,
286 pub anagrpmax: __le32,
287 pub nanagrpid: __le32,
288 pub pels: __le32,
289 pub domainid: __le16,
290 pub rsvd358: [__u8; 10usize],
291 pub megcap: [__u8; 16usize],
292 pub rsvd384: [__u8; 128usize],
293 pub sqes: __u8,
294 pub cqes: __u8,
295 pub maxcmd: __le16,
296 pub nn: __le32,
297 pub oncs: __le16,
298 pub fuses: __le16,
299 pub fna: __u8,
300 pub vwc: __u8,
301 pub awun: __le16,
302 pub awupf: __le16,
303 pub icsvscc: __u8,
304 pub nwpc: __u8,
305 pub acwu: __le16,
306 pub ocfs: __le16,
307 pub sgls: __le32,
308 pub mnan: __le32,
309 pub maxdna: [__u8; 16usize],
310 pub maxcna: __le32,
311 pub rsvd564: [__u8; 204usize],
312 pub subnqn: [::std::os::raw::c_char; 256usize],
313 pub rsvd1024: [__u8; 768usize],
314 pub ioccsz: __le32,
315 pub iorcsz: __le32,
316 pub icdoff: __le16,
317 pub fcatt: __u8,
318 pub msdbd: __u8,
319 pub ofcs: __le16,
320 pub rsvd1806: [__u8; 242usize],
321 pub psd: [nvme_id_power_state; 32usize],
322 pub vs: [__u8; 1024usize],
323}
324impl Default for nvme_id_ctrl {
325 fn default() -> Self {
326 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
327 unsafe {
328 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
329 s.assume_init()
330 }
331 }
332}
333pub const NVME_CTRL_ONCS_COMPARE: _bindgen_ty_12 = _bindgen_ty_12::NVME_CTRL_ONCS_COMPARE;
334pub const NVME_CTRL_ONCS_WRITE_UNCORRECTABLE: _bindgen_ty_12 =
335 _bindgen_ty_12::NVME_CTRL_ONCS_WRITE_UNCORRECTABLE;
336pub const NVME_CTRL_ONCS_DSM: _bindgen_ty_12 = _bindgen_ty_12::NVME_CTRL_ONCS_DSM;
337pub const NVME_CTRL_ONCS_WRITE_ZEROES: _bindgen_ty_12 = _bindgen_ty_12::NVME_CTRL_ONCS_WRITE_ZEROES;
338pub const NVME_CTRL_ONCS_TIMESTAMP: _bindgen_ty_12 = _bindgen_ty_12::NVME_CTRL_ONCS_TIMESTAMP;
339pub const NVME_CTRL_VWC_PRESENT: _bindgen_ty_12 = _bindgen_ty_12::NVME_CTRL_ONCS_COMPARE;
340pub const NVME_CTRL_OACS_SEC_SUPP: _bindgen_ty_12 = _bindgen_ty_12::NVME_CTRL_ONCS_COMPARE;
341pub const NVME_CTRL_OACS_DIRECTIVES: _bindgen_ty_12 = _bindgen_ty_12::NVME_CTRL_OACS_DIRECTIVES;
342pub const NVME_CTRL_OACS_DBBUF_SUPP: _bindgen_ty_12 = _bindgen_ty_12::NVME_CTRL_OACS_DBBUF_SUPP;
343pub const NVME_CTRL_LPA_CMD_EFFECTS_LOG: _bindgen_ty_12 =
344 _bindgen_ty_12::NVME_CTRL_ONCS_WRITE_UNCORRECTABLE;
345pub const NVME_CTRL_CTRATT_128_ID: _bindgen_ty_12 = _bindgen_ty_12::NVME_CTRL_ONCS_COMPARE;
346pub const NVME_CTRL_CTRATT_NON_OP_PSP: _bindgen_ty_12 =
347 _bindgen_ty_12::NVME_CTRL_ONCS_WRITE_UNCORRECTABLE;
348pub const NVME_CTRL_CTRATT_NVM_SETS: _bindgen_ty_12 = _bindgen_ty_12::NVME_CTRL_ONCS_DSM;
349pub const NVME_CTRL_CTRATT_READ_RECV_LVLS: _bindgen_ty_12 =
350 _bindgen_ty_12::NVME_CTRL_ONCS_WRITE_ZEROES;
351pub const NVME_CTRL_CTRATT_ENDURANCE_GROUPS: _bindgen_ty_12 =
352 _bindgen_ty_12::NVME_CTRL_CTRATT_ENDURANCE_GROUPS;
353pub const NVME_CTRL_CTRATT_PREDICTABLE_LAT: _bindgen_ty_12 =
354 _bindgen_ty_12::NVME_CTRL_OACS_DIRECTIVES;
355pub const NVME_CTRL_CTRATT_NAMESPACE_GRANULARITY: _bindgen_ty_12 =
356 _bindgen_ty_12::NVME_CTRL_CTRATT_NAMESPACE_GRANULARITY;
357pub const NVME_CTRL_CTRATT_UUID_LIST: _bindgen_ty_12 = _bindgen_ty_12::NVME_CTRL_CTRATT_UUID_LIST;
358#[repr(u32)]
359#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
360pub enum _bindgen_ty_12 {
361 NVME_CTRL_ONCS_COMPARE = 1,
362 NVME_CTRL_ONCS_WRITE_UNCORRECTABLE = 2,
363 NVME_CTRL_ONCS_DSM = 4,
364 NVME_CTRL_ONCS_WRITE_ZEROES = 8,
365 NVME_CTRL_ONCS_TIMESTAMP = 64,
366 NVME_CTRL_OACS_DIRECTIVES = 32,
367 NVME_CTRL_OACS_DBBUF_SUPP = 256,
368 NVME_CTRL_CTRATT_ENDURANCE_GROUPS = 16,
369 NVME_CTRL_CTRATT_NAMESPACE_GRANULARITY = 128,
370 NVME_CTRL_CTRATT_UUID_LIST = 512,
371}
372#[repr(C)]
373#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
374pub struct nvme_lbaf {
375 pub ms: __le16,
376 pub ds: __u8,
377 pub rp: __u8,
378}
379#[repr(C)]
380#[derive(Debug, Copy, Clone, Hash, PartialEq)]
381pub struct nvme_id_ns {
382 pub nsze: __le64,
383 pub ncap: __le64,
384 pub nuse: __le64,
385 pub nsfeat: __u8,
386 pub nlbaf: __u8,
387 pub flbas: __u8,
388 pub mc: __u8,
389 pub dpc: __u8,
390 pub dps: __u8,
391 pub nmic: __u8,
392 pub rescap: __u8,
393 pub fpi: __u8,
394 pub dlfeat: __u8,
395 pub nawun: __le16,
396 pub nawupf: __le16,
397 pub nacwu: __le16,
398 pub nabsn: __le16,
399 pub nabo: __le16,
400 pub nabspf: __le16,
401 pub noiob: __le16,
402 pub nvmcap: [__u8; 16usize],
403 pub npwg: __le16,
404 pub npwa: __le16,
405 pub npdg: __le16,
406 pub npda: __le16,
407 pub nows: __le16,
408 pub mssrl: __le16,
409 pub mcl: __le32,
410 pub msrc: __u8,
411 pub rsvd81: [__u8; 11usize],
412 pub anagrpid: __le32,
413 pub rsvd96: [__u8; 3usize],
414 pub nsattr: __u8,
415 pub nvmsetid: __le16,
416 pub endgid: __le16,
417 pub nguid: [__u8; 16usize],
418 pub eui64: [__u8; 8usize],
419 pub lbaf: [nvme_lbaf; 64usize],
420 pub vs: [__u8; 3712usize],
421}
422impl Default for nvme_id_ns {
423 fn default() -> Self {
424 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
425 unsafe {
426 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
427 s.assume_init()
428 }
429 }
430}
431#[repr(C)]
432#[derive(Debug, Copy, Clone, Hash, PartialEq)]
433pub struct nvme_cmd_set_independent_id_ns {
434 pub nsfeat: __u8,
435 pub nmic: __u8,
436 pub rescap: __u8,
437 pub fpi: __u8,
438 pub anagrpid: __le32,
439 pub nsattr: __u8,
440 pub rsvd9: __u8,
441 pub nvmsetid: __le16,
442 pub endgid: __le16,
443 pub nstat: __u8,
444 pub rsvd15: [__u8; 4081usize],
445}
446impl Default for nvme_cmd_set_independent_id_ns {
447 fn default() -> Self {
448 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
449 unsafe {
450 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
451 s.assume_init()
452 }
453 }
454}
455#[repr(C)]
456#[derive(Debug, Copy, Clone, Hash, PartialEq)]
457pub struct nvme_id_iocs {
458 pub iocs: [__le64; 512usize],
459}
460impl Default for nvme_id_iocs {
461 fn default() -> Self {
462 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
463 unsafe {
464 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
465 s.assume_init()
466 }
467 }
468}
469pub const NVME_ID_CNS_NS: _bindgen_ty_13 = _bindgen_ty_13::NVME_ID_CNS_NS;
470pub const NVME_ID_CNS_CTRL: _bindgen_ty_13 = _bindgen_ty_13::NVME_ID_CNS_CTRL;
471pub const NVME_ID_CNS_NS_ACTIVE_LIST: _bindgen_ty_13 = _bindgen_ty_13::NVME_ID_CNS_NS_ACTIVE_LIST;
472pub const NVME_ID_CNS_NS_DESC_LIST: _bindgen_ty_13 = _bindgen_ty_13::NVME_ID_CNS_NS_DESC_LIST;
473pub const NVME_ID_CNS_NVMSET_LIST: _bindgen_ty_13 = _bindgen_ty_13::NVME_ID_CNS_NVMSET_LIST;
474pub const NVME_ID_CNS_CSI_ID_NS: _bindgen_ty_13 = _bindgen_ty_13::NVME_ID_CNS_CSI_ID_NS;
475pub const NVME_ID_CNS_CSI_ID_CTRL: _bindgen_ty_13 = _bindgen_ty_13::NVME_ID_CNS_CSI_ID_CTRL;
476pub const NVME_ID_CNS_CSI_NS_ACTIVE_LIST: _bindgen_ty_13 =
477 _bindgen_ty_13::NVME_ID_CNS_CSI_NS_ACTIVE_LIST;
478pub const NVME_ID_CNS_CS_INDEPENDENT_ID_NS: _bindgen_ty_13 =
479 _bindgen_ty_13::NVME_ID_CNS_CS_INDEPENDENT_ID_NS;
480pub const NVME_ID_CNS_NS_PRESENT_LIST: _bindgen_ty_13 = _bindgen_ty_13::NVME_ID_CNS_NS_PRESENT_LIST;
481pub const NVME_ID_CNS_NS_PRESENT: _bindgen_ty_13 = _bindgen_ty_13::NVME_ID_CNS_NS_PRESENT;
482pub const NVME_ID_CNS_CTRL_NS_LIST: _bindgen_ty_13 = _bindgen_ty_13::NVME_ID_CNS_CTRL_NS_LIST;
483pub const NVME_ID_CNS_CTRL_LIST: _bindgen_ty_13 = _bindgen_ty_13::NVME_ID_CNS_CTRL_LIST;
484pub const NVME_ID_CNS_PRIMARY_CTRL_CAPS: _bindgen_ty_13 =
485 _bindgen_ty_13::NVME_ID_CNS_PRIMARY_CTRL_CAPS;
486pub const NVME_ID_CNS_SCNDRY_CTRL_LIST: _bindgen_ty_13 =
487 _bindgen_ty_13::NVME_ID_CNS_SCNDRY_CTRL_LIST;
488pub const NVME_ID_CNS_NS_GRANULARITY: _bindgen_ty_13 = _bindgen_ty_13::NVME_ID_CNS_NS_GRANULARITY;
489pub const NVME_ID_CNS_UUID_LIST: _bindgen_ty_13 = _bindgen_ty_13::NVME_ID_CNS_UUID_LIST;
490pub const NVME_ID_CNS_DOMAIN_LIST: _bindgen_ty_13 = _bindgen_ty_13::NVME_ID_CNS_DOMAIN_LIST;
491pub const NVME_ID_CNS_ENDURANCE_GROUP_ID: _bindgen_ty_13 =
492 _bindgen_ty_13::NVME_ID_CNS_ENDURANCE_GROUP_ID;
493pub const NVME_ID_CNS_CSI_NS_PRESENT_LIST: _bindgen_ty_13 =
494 _bindgen_ty_13::NVME_ID_CNS_CSI_NS_PRESENT_LIST;
495pub const NVME_ID_CNS_CSI_NS_PRESENT: _bindgen_ty_13 = _bindgen_ty_13::NVME_ID_CNS_CSI_NS_PRESENT;
496pub const NVME_ID_CNS_CSI: _bindgen_ty_13 = _bindgen_ty_13::NVME_ID_CNS_CSI;
497#[repr(u32)]
498#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
499pub enum _bindgen_ty_13 {
500 NVME_ID_CNS_NS = 0,
501 NVME_ID_CNS_CTRL = 1,
502 NVME_ID_CNS_NS_ACTIVE_LIST = 2,
503 NVME_ID_CNS_NS_DESC_LIST = 3,
504 NVME_ID_CNS_NVMSET_LIST = 4,
505 NVME_ID_CNS_CSI_ID_NS = 5,
506 NVME_ID_CNS_CSI_ID_CTRL = 6,
507 NVME_ID_CNS_CSI_NS_ACTIVE_LIST = 7,
508 NVME_ID_CNS_CS_INDEPENDENT_ID_NS = 8,
509 NVME_ID_CNS_NS_PRESENT_LIST = 16,
510 NVME_ID_CNS_NS_PRESENT = 17,
511 NVME_ID_CNS_CTRL_NS_LIST = 18,
512 NVME_ID_CNS_CTRL_LIST = 19,
513 NVME_ID_CNS_PRIMARY_CTRL_CAPS = 20,
514 NVME_ID_CNS_SCNDRY_CTRL_LIST = 21,
515 NVME_ID_CNS_NS_GRANULARITY = 22,
516 NVME_ID_CNS_UUID_LIST = 23,
517 NVME_ID_CNS_DOMAIN_LIST = 24,
518 NVME_ID_CNS_ENDURANCE_GROUP_ID = 25,
519 NVME_ID_CNS_CSI_NS_PRESENT_LIST = 26,
520 NVME_ID_CNS_CSI_NS_PRESENT = 27,
521 NVME_ID_CNS_CSI = 28,
522}
523pub const NVME_DIR_IDENTIFY: _bindgen_ty_14 = _bindgen_ty_14::NVME_DIR_IDENTIFY;
524pub const NVME_DIR_STREAMS: _bindgen_ty_14 = _bindgen_ty_14::NVME_DIR_STREAMS;
525pub const NVME_DIR_SND_ID_OP_ENABLE: _bindgen_ty_14 = _bindgen_ty_14::NVME_DIR_STREAMS;
526pub const NVME_DIR_SND_ST_OP_REL_ID: _bindgen_ty_14 = _bindgen_ty_14::NVME_DIR_STREAMS;
527pub const NVME_DIR_SND_ST_OP_REL_RSC: _bindgen_ty_14 = _bindgen_ty_14::NVME_DIR_SND_ST_OP_REL_RSC;
528pub const NVME_DIR_RCV_ID_OP_PARAM: _bindgen_ty_14 = _bindgen_ty_14::NVME_DIR_STREAMS;
529pub const NVME_DIR_RCV_ST_OP_PARAM: _bindgen_ty_14 = _bindgen_ty_14::NVME_DIR_STREAMS;
530pub const NVME_DIR_RCV_ST_OP_STATUS: _bindgen_ty_14 = _bindgen_ty_14::NVME_DIR_SND_ST_OP_REL_RSC;
531pub const NVME_DIR_RCV_ST_OP_RESOURCE: _bindgen_ty_14 = _bindgen_ty_14::NVME_DIR_RCV_ST_OP_RESOURCE;
532pub const NVME_DIR_ENDIR: _bindgen_ty_14 = _bindgen_ty_14::NVME_DIR_STREAMS;
533#[repr(u32)]
534#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
535pub enum _bindgen_ty_14 {
536 NVME_DIR_IDENTIFY = 0,
537 NVME_DIR_STREAMS = 1,
538 NVME_DIR_SND_ST_OP_REL_RSC = 2,
539 NVME_DIR_RCV_ST_OP_RESOURCE = 3,
540}
541pub const NVME_NS_FEAT_THIN: _bindgen_ty_15 = _bindgen_ty_15::NVME_NS_FEAT_THIN;
542pub const NVME_NS_FLBAS_LBA_MASK: _bindgen_ty_15 = _bindgen_ty_15::NVME_NS_FLBAS_LBA_MASK;
543pub const NVME_NS_FLBAS_META_EXT: _bindgen_ty_15 = _bindgen_ty_15::NVME_NS_FLBAS_META_EXT;
544pub const NVME_LBAF_RP_BEST: _bindgen_ty_15 = _bindgen_ty_15::NVME_LBAF_RP_BEST;
545pub const NVME_LBAF_RP_BETTER: _bindgen_ty_15 = _bindgen_ty_15::NVME_NS_FEAT_THIN;
546pub const NVME_LBAF_RP_GOOD: _bindgen_ty_15 = _bindgen_ty_15::NVME_LBAF_RP_GOOD;
547pub const NVME_LBAF_RP_DEGRADED: _bindgen_ty_15 = _bindgen_ty_15::NVME_LBAF_RP_DEGRADED;
548pub const NVME_NS_DPC_PI_LAST: _bindgen_ty_15 = _bindgen_ty_15::NVME_NS_FLBAS_META_EXT;
549pub const NVME_NS_DPC_PI_FIRST: _bindgen_ty_15 = _bindgen_ty_15::NVME_NS_DPC_PI_FIRST;
550pub const NVME_NS_DPC_PI_TYPE3: _bindgen_ty_15 = _bindgen_ty_15::NVME_NS_DPC_PI_TYPE3;
551pub const NVME_NS_DPC_PI_TYPE2: _bindgen_ty_15 = _bindgen_ty_15::NVME_LBAF_RP_GOOD;
552pub const NVME_NS_DPC_PI_TYPE1: _bindgen_ty_15 = _bindgen_ty_15::NVME_NS_FEAT_THIN;
553pub const NVME_NS_DPS_PI_FIRST: _bindgen_ty_15 = _bindgen_ty_15::NVME_NS_DPC_PI_FIRST;
554pub const NVME_NS_DPS_PI_MASK: _bindgen_ty_15 = _bindgen_ty_15::NVME_NS_DPS_PI_MASK;
555pub const NVME_NS_DPS_PI_TYPE1: _bindgen_ty_15 = _bindgen_ty_15::NVME_NS_FEAT_THIN;
556pub const NVME_NS_DPS_PI_TYPE2: _bindgen_ty_15 = _bindgen_ty_15::NVME_LBAF_RP_GOOD;
557pub const NVME_NS_DPS_PI_TYPE3: _bindgen_ty_15 = _bindgen_ty_15::NVME_LBAF_RP_DEGRADED;
558#[repr(u32)]
559#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
560pub enum _bindgen_ty_15 {
561 NVME_NS_FEAT_THIN = 1,
562 NVME_NS_FLBAS_LBA_MASK = 15,
563 NVME_NS_FLBAS_META_EXT = 16,
564 NVME_LBAF_RP_BEST = 0,
565 NVME_LBAF_RP_GOOD = 2,
566 NVME_LBAF_RP_DEGRADED = 3,
567 NVME_NS_DPC_PI_FIRST = 8,
568 NVME_NS_DPC_PI_TYPE3 = 4,
569 NVME_NS_DPS_PI_MASK = 7,
570}
571#[repr(C)]
572#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
573pub struct nvme_ns_id_desc {
574 pub nidt: __u8,
575 pub nidl: __u8,
576 pub reserved: __le16,
577}
578pub const NVME_NIDT_EUI64: _bindgen_ty_16 = _bindgen_ty_16::NVME_NIDT_EUI64;
579pub const NVME_NIDT_NGUID: _bindgen_ty_16 = _bindgen_ty_16::NVME_NIDT_NGUID;
580pub const NVME_NIDT_UUID: _bindgen_ty_16 = _bindgen_ty_16::NVME_NIDT_UUID;
581pub const NVME_NIDT_CSI: _bindgen_ty_16 = _bindgen_ty_16::NVME_NIDT_CSI;
582#[repr(u32)]
583#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
584pub enum _bindgen_ty_16 {
585 NVME_NIDT_EUI64 = 1,
586 NVME_NIDT_NGUID = 2,
587 NVME_NIDT_UUID = 3,
588 NVME_NIDT_CSI = 4,
589}
590#[repr(C)]
591#[derive(Debug, Copy, Clone, Hash, PartialEq)]
592pub struct nvme_nvmset_attr_entry {
593 pub id: __le16,
594 pub endurance_group_id: __le16,
595 pub rsvd4: [__u8; 4usize],
596 pub random_4k_read_typical: __le32,
597 pub opt_write_size: __le32,
598 pub total_nvmset_cap: [__u8; 16usize],
599 pub unalloc_nvmset_cap: [__u8; 16usize],
600 pub rsvd48: [__u8; 80usize],
601}
602impl Default for nvme_nvmset_attr_entry {
603 fn default() -> Self {
604 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
605 unsafe {
606 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
607 s.assume_init()
608 }
609 }
610}
611#[repr(C)]
612#[derive(Debug, Copy, Clone, Hash, PartialEq)]
613pub struct nvme_id_nvmset {
614 pub nid: __u8,
615 pub rsvd1: [__u8; 127usize],
616 pub ent: [nvme_nvmset_attr_entry; 31usize],
617}
618impl Default for nvme_id_nvmset {
619 fn default() -> Self {
620 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
621 unsafe {
622 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
623 s.assume_init()
624 }
625 }
626}
627#[repr(C)]
628#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
629pub struct nvme_id_ns_granularity_list_entry {
630 pub namespace_size_granularity: __le64,
631 pub namespace_capacity_granularity: __le64,
632}
633#[repr(C)]
634#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
635pub struct nvme_id_ns_granularity_list {
636 pub attributes: __le32,
637 pub num_descriptors: __u8,
638 pub rsvd: [__u8; 27usize],
639 pub entry: [nvme_id_ns_granularity_list_entry; 16usize],
640}
641#[repr(C)]
642#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
643pub struct nvme_id_uuid_list_entry {
644 pub header: __u8,
645 pub rsvd1: [__u8; 15usize],
646 pub uuid: [__u8; 16usize],
647}
648#[repr(C)]
649#[derive(Debug, Copy, Clone, Hash, PartialEq)]
650pub struct nvme_id_uuid_list {
651 pub entry: [nvme_id_uuid_list_entry; 128usize],
652}
653impl Default for nvme_id_uuid_list {
654 fn default() -> Self {
655 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
656 unsafe {
657 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
658 s.assume_init()
659 }
660 }
661}
662#[repr(C)]
677#[derive(Debug)]
678pub struct nvme_telemetry_log_page_hdr {
679 pub lpi: __u8,
680 pub rsvd: [__u8; 4usize],
681 pub iee_oui: [__u8; 3usize],
682 pub dalb1: __le16,
683 pub dalb2: __le16,
684 pub dalb3: __le16,
685 pub rsvd1: [__u8; 2usize],
686 pub dalb4: __le32,
687 pub rsvd2: [__u8; 362usize],
688 pub ctrlavail: __u8,
689 pub ctrldgn: __u8,
690 pub rsnident: [__u8; 128usize],
691 pub telemetry_dataarea: __IncompleteArrayField<__u8>,
692}
693impl Default for nvme_telemetry_log_page_hdr {
694 fn default() -> Self {
695 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
696 unsafe {
697 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
698 s.assume_init()
699 }
700 }
701}
702#[repr(C)]
703#[derive(Debug, Copy, Clone, Hash, PartialEq)]
704pub struct nvme_endurance_group_log {
705 pub critical_warning: __u8,
706 pub rsvd1: [__u8; 2usize],
707 pub avl_spare: __u8,
708 pub avl_spare_threshold: __u8,
709 pub percent_used: __u8,
710 pub rsvd6: [__u8; 26usize],
711 pub endurance_estimate: [__u8; 16usize],
712 pub data_units_read: [__u8; 16usize],
713 pub data_units_written: [__u8; 16usize],
714 pub media_units_written: [__u8; 16usize],
715 pub host_read_cmds: [__u8; 16usize],
716 pub host_write_cmds: [__u8; 16usize],
717 pub media_data_integrity_err: [__u8; 16usize],
718 pub num_err_info_log_entries: [__u8; 16usize],
719 pub rsvd160: [__u8; 352usize],
720}
721impl Default for nvme_endurance_group_log {
722 fn default() -> Self {
723 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
724 unsafe {
725 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
726 s.assume_init()
727 }
728 }
729}
730#[repr(C)]
731#[derive(Debug, Copy, Clone, Hash, PartialEq)]
732pub struct nvme_smart_log {
733 pub critical_warning: __u8,
734 pub temperature: [__u8; 2usize],
735 pub avail_spare: __u8,
736 pub spare_thresh: __u8,
737 pub percent_used: __u8,
738 pub endu_grp_crit_warn_sumry: __u8,
739 pub rsvd7: [__u8; 25usize],
740 pub data_units_read: [__u8; 16usize],
741 pub data_units_written: [__u8; 16usize],
742 pub host_reads: [__u8; 16usize],
743 pub host_writes: [__u8; 16usize],
744 pub ctrl_busy_time: [__u8; 16usize],
745 pub power_cycles: [__u8; 16usize],
746 pub power_on_hours: [__u8; 16usize],
747 pub unsafe_shutdowns: [__u8; 16usize],
748 pub media_errors: [__u8; 16usize],
749 pub num_err_log_entries: [__u8; 16usize],
750 pub warning_temp_time: __le32,
751 pub critical_comp_time: __le32,
752 pub temp_sensor: [__le16; 8usize],
753 pub thm_temp1_trans_count: __le32,
754 pub thm_temp2_trans_count: __le32,
755 pub thm_temp1_total_time: __le32,
756 pub thm_temp2_total_time: __le32,
757 pub rsvd232: [__u8; 280usize],
758}
759impl Default for nvme_smart_log {
760 fn default() -> Self {
761 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
762 unsafe {
763 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
764 s.assume_init()
765 }
766 }
767}
768#[repr(C, packed)]
769#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
770pub struct nvme_self_test_res {
771 pub dsts: __u8,
772 pub seg: __u8,
773 pub vdi: __u8,
774 pub rsvd3: __u8,
775 pub poh: __le64,
776 pub nsid: __le32,
777 pub flba: __le64,
778 pub sct: __u8,
779 pub sc: __u8,
780 pub vs: [__u8; 2usize],
781}
782pub const NVME_ST_CODE_SHIFT: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_CODE_SHIFT;
783pub const NVME_ST_CODE_SHORT_OP: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_CODE_SHORT_OP;
784pub const NVME_ST_CODE_EXT_OP: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_CODE_EXT_OP;
785pub const NVME_ST_CODE_VS: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_CODE_VS;
786pub const NVME_ST_RES_MASK: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_RES_MASK;
787pub const NVME_ST_RES_NO_ERR: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_RES_NO_ERR;
788pub const NVME_ST_RES_ABORTED: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_CODE_SHORT_OP;
789pub const NVME_ST_RES_CLR: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_CODE_EXT_OP;
790pub const NVME_ST_RES_NS_REMOVED: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_RES_NS_REMOVED;
791pub const NVME_ST_RES_ABORTED_FORMAT: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_CODE_SHIFT;
792pub const NVME_ST_RES_FATAL_ERR: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_RES_FATAL_ERR;
793pub const NVME_ST_RES_UNKNOWN_SEG_FAIL: _bindgen_ty_17 =
794 _bindgen_ty_17::NVME_ST_RES_UNKNOWN_SEG_FAIL;
795pub const NVME_ST_RES_KNOWN_SEG_FAIL: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_RES_KNOWN_SEG_FAIL;
796pub const NVME_ST_RES_ABORTED_UNKNOWN: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_RES_ABORTED_UNKNOWN;
797pub const NVME_ST_RES_ABORTED_SANITIZE: _bindgen_ty_17 =
798 _bindgen_ty_17::NVME_ST_RES_ABORTED_SANITIZE;
799pub const NVME_ST_RES_NOT_USED: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_RES_MASK;
800pub const NVME_ST_VALID_NSID: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_CODE_SHORT_OP;
801pub const NVME_ST_VALID_FLBA: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_CODE_EXT_OP;
802pub const NVME_ST_VALID_SCT: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_CODE_SHIFT;
803pub const NVME_ST_VALID_SC: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_RES_ABORTED_UNKNOWN;
804pub const NVME_ST_REPORTS: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_REPORTS;
805pub const NVME_ST_LOG_ENTRY_SIZE: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_LOG_ENTRY_SIZE;
806pub const NVME_ST_LOG_HEAD_SIZE: _bindgen_ty_17 = _bindgen_ty_17::NVME_ST_CODE_SHIFT;
807#[repr(u32)]
808#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
809pub enum _bindgen_ty_17 {
810 NVME_ST_CODE_SHIFT = 4,
811 NVME_ST_CODE_SHORT_OP = 1,
812 NVME_ST_CODE_EXT_OP = 2,
813 NVME_ST_CODE_VS = 14,
814 NVME_ST_RES_MASK = 15,
815 NVME_ST_RES_NO_ERR = 0,
816 NVME_ST_RES_NS_REMOVED = 3,
817 NVME_ST_RES_FATAL_ERR = 5,
818 NVME_ST_RES_UNKNOWN_SEG_FAIL = 6,
819 NVME_ST_RES_KNOWN_SEG_FAIL = 7,
820 NVME_ST_RES_ABORTED_UNKNOWN = 8,
821 NVME_ST_RES_ABORTED_SANITIZE = 9,
822 NVME_ST_REPORTS = 20,
823 NVME_ST_LOG_ENTRY_SIZE = 28,
824}
825#[repr(C, packed)]
826#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
827pub struct nvme_self_test_log {
828 pub crnt_dev_selftest_oprn: __u8,
829 pub crnt_dev_selftest_compln: __u8,
830 pub rsvd2: [__u8; 2usize],
831 pub result: [nvme_self_test_res; 20usize],
832}
833#[repr(C)]
834#[derive(Debug, Copy, Clone, Hash, PartialEq)]
835pub struct nvme_fw_slot_info_log {
836 pub afi: __u8,
837 pub rsvd1: [__u8; 7usize],
838 pub frs: [__le64; 7usize],
839 pub rsvd64: [__u8; 448usize],
840}
841impl Default for nvme_fw_slot_info_log {
842 fn default() -> Self {
843 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
844 unsafe {
845 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
846 s.assume_init()
847 }
848 }
849}
850#[repr(C)]
851#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
852pub struct nvme_lba_status_desc {
853 pub dslba: __le64,
854 pub nlb: __le32,
855 pub rsvd_12: __u8,
856 pub status: __u8,
857 pub rsvd_15_14: [__u8; 2usize],
858}
859#[repr(C)]
860#[derive(Debug, Default)]
861pub struct nvme_lba_status {
862 pub nlsd: __le32,
863 pub cmpc: __u8,
864 pub rsvd_7_5: [__u8; 3usize],
865 pub descs: __IncompleteArrayField<nvme_lba_status_desc>,
866}
867pub const NVME_NS_NO_WRITE_PROTECT: _bindgen_ty_18 = _bindgen_ty_18::NVME_NS_NO_WRITE_PROTECT;
868pub const NVME_NS_WRITE_PROTECT: _bindgen_ty_18 = _bindgen_ty_18::NVME_NS_WRITE_PROTECT;
869pub const NVME_NS_WRITE_PROTECT_POWER_CYCLE: _bindgen_ty_18 =
870 _bindgen_ty_18::NVME_NS_WRITE_PROTECT_POWER_CYCLE;
871pub const NVME_NS_WRITE_PROTECT_PERMANENT: _bindgen_ty_18 =
872 _bindgen_ty_18::NVME_NS_WRITE_PROTECT_PERMANENT;
873#[repr(u32)]
874#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
875pub enum _bindgen_ty_18 {
876 NVME_NS_NO_WRITE_PROTECT = 0,
877 NVME_NS_WRITE_PROTECT = 1,
878 NVME_NS_WRITE_PROTECT_POWER_CYCLE = 2,
879 NVME_NS_WRITE_PROTECT_PERMANENT = 3,
880}
881#[repr(C)]
882#[derive(Debug, Copy, Clone, Hash, PartialEq)]
883pub struct nvme_changed_ns_list_log {
884 pub log: [__le32; 1024usize],
885}
886impl Default for nvme_changed_ns_list_log {
887 fn default() -> Self {
888 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
889 unsafe {
890 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
891 s.assume_init()
892 }
893 }
894}
895pub const NVME_CMD_EFFECTS_CSUPP: _bindgen_ty_19 = _bindgen_ty_19::NVME_CMD_EFFECTS_CSUPP;
896pub const NVME_CMD_EFFECTS_LBCC: _bindgen_ty_19 = _bindgen_ty_19::NVME_CMD_EFFECTS_LBCC;
897pub const NVME_CMD_EFFECTS_NCC: _bindgen_ty_19 = _bindgen_ty_19::NVME_CMD_EFFECTS_NCC;
898pub const NVME_CMD_EFFECTS_NIC: _bindgen_ty_19 = _bindgen_ty_19::NVME_CMD_EFFECTS_NIC;
899pub const NVME_CMD_EFFECTS_CCC: _bindgen_ty_19 = _bindgen_ty_19::NVME_CMD_EFFECTS_CCC;
900pub const NVME_CMD_EFFECTS_CSE_MASK: _bindgen_ty_19 = _bindgen_ty_19::NVME_CMD_EFFECTS_CSE_MASK;
901pub const NVME_CMD_EFFECTS_UUID_SEL: _bindgen_ty_19 = _bindgen_ty_19::NVME_CMD_EFFECTS_UUID_SEL;
902#[repr(u32)]
903#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
904pub enum _bindgen_ty_19 {
905 NVME_CMD_EFFECTS_CSUPP = 1,
906 NVME_CMD_EFFECTS_LBCC = 2,
907 NVME_CMD_EFFECTS_NCC = 4,
908 NVME_CMD_EFFECTS_NIC = 8,
909 NVME_CMD_EFFECTS_CCC = 16,
910 NVME_CMD_EFFECTS_CSE_MASK = 196608,
911 NVME_CMD_EFFECTS_UUID_SEL = 524288,
912}
913#[repr(C)]
914#[derive(Debug, Copy, Clone, Hash, PartialEq)]
915pub struct nvme_effects_log {
916 pub acs: [__le32; 256usize],
917 pub iocs: [__le32; 256usize],
918 pub resv: [__u8; 2048usize],
919}
920impl Default for nvme_effects_log {
921 fn default() -> Self {
922 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
923 unsafe {
924 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
925 s.assume_init()
926 }
927 }
928}
929#[repr(u32)]
930#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
931pub enum nvme_ana_state {
932 NVME_ANA_OPTIMIZED = 1,
933 NVME_ANA_NONOPTIMIZED = 2,
934 NVME_ANA_INACCESSIBLE = 3,
935 NVME_ANA_PERSISTENT_LOSS = 4,
936 NVME_ANA_CHANGE = 15,
937}
938#[repr(C)]
939#[derive(Debug, Default)]
940pub struct nvme_ana_group_desc {
941 pub grpid: __le32,
942 pub nnsids: __le32,
943 pub chgcnt: __le64,
944 pub state: __u8,
945 pub rsvd17: [__u8; 15usize],
946 pub nsids: __IncompleteArrayField<__le32>,
947}
948#[repr(C)]
949#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
950pub struct nvme_ana_rsp_hdr {
951 pub chgcnt: __le64,
952 pub ngrps: __le16,
953 pub rsvd10: [__le16; 3usize],
954}
955#[repr(C, packed)]
956#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
957pub struct nvme_fw_commit_event {
958 pub old_fw_rev: __le64,
959 pub new_fw_rev: __le64,
960 pub fw_commit_action: __u8,
961 pub fw_slot: __u8,
962 pub sct_fw: __u8,
963 pub sc_fw: __u8,
964 pub vndr_assign_fw_commit_rc: __le16,
965}
966#[repr(C)]
967#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
968pub struct nvme_time_stamp_change_event {
969 pub previous_timestamp: __le64,
970 pub ml_secs_since_reset: __le64,
971}
972#[repr(C, packed)]
973#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
974pub struct nvme_power_on_reset_info_list {
975 pub cid: __le16,
976 pub fw_act: __u8,
977 pub op_in_prog: __u8,
978 pub rsvd4: [__u8; 12usize],
979 pub ctrl_power_cycle: __le32,
980 pub power_on_ml_seconds: __le64,
981 pub ctrl_time_stamp: __le64,
982}
983#[repr(C)]
984#[derive(Debug, Copy, Clone, Hash, PartialEq)]
985pub struct nvme_nss_hw_err_event {
986 pub nss_hw_err_event_code: __le16,
987 pub rsvd2: [__u8; 2usize],
988 pub add_hw_err_info: *mut __u8,
989}
990impl Default for nvme_nss_hw_err_event {
991 fn default() -> Self {
992 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
993 unsafe {
994 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
995 s.assume_init()
996 }
997 }
998}
999#[repr(C)]
1000#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1001pub struct nvme_change_ns_event {
1002 pub nsmgt_cdw10: __le32,
1003 pub rsvd4: [__u8; 4usize],
1004 pub nsze: __le64,
1005 pub rsvd16: [__u8; 8usize],
1006 pub nscap: __le64,
1007 pub flbas: __u8,
1008 pub dps: __u8,
1009 pub nmic: __u8,
1010 pub rsvd35: __u8,
1011 pub ana_grp_id: __le32,
1012 pub nvmset_id: __le16,
1013 pub rsvd42: __le16,
1014 pub nsid: __le32,
1015}
1016#[repr(C)]
1017#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1018pub struct nvme_format_nvm_start_event {
1019 pub nsid: __le32,
1020 pub fna: __u8,
1021 pub rsvd5: [__u8; 3usize],
1022 pub format_nvm_cdw10: __le32,
1023}
1024#[repr(C)]
1025#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1026pub struct nvme_format_nvm_compln_event {
1027 pub nsid: __le32,
1028 pub smallest_fpi: __u8,
1029 pub format_nvm_status: __u8,
1030 pub compln_info: __le16,
1031 pub status_field: __le32,
1032}
1033#[repr(C)]
1034#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1035pub struct nvme_sanitize_start_event {
1036 pub sani_cap: __le32,
1037 pub sani_cdw10: __le32,
1038 pub sani_cdw11: __le32,
1039}
1040#[repr(C)]
1041#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1042pub struct nvme_sanitize_compln_event {
1043 pub sani_prog: __le16,
1044 pub sani_status: __le16,
1045 pub cmpln_info: __le16,
1046 pub rsvd6: [__u8; 2usize],
1047}
1048#[repr(C)]
1049#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1050pub struct nvme_thermal_exc_event {
1051 pub over_temp: __u8,
1052 pub threshold: __u8,
1053}
1054#[repr(C, packed)]
1055#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1056pub struct nvme_persistent_event_entry_head {
1057 pub etype: __u8,
1058 pub etype_rev: __u8,
1059 pub ehl: __u8,
1060 pub rsvd3: __u8,
1061 pub ctrl_id: __le16,
1062 pub etimestamp: __le64,
1063 pub rsvd14: [__u8; 6usize],
1064 pub vsil: __le16,
1065 pub el: __le16,
1066}
1067#[repr(C, packed)]
1068#[derive(Debug, Copy, Clone, Hash, PartialEq)]
1069pub struct nvme_persistent_event_log_head {
1070 pub log_id: __u8,
1071 pub rsvd1: [__u8; 3usize],
1072 pub tnev: __le32,
1073 pub tll: __le64,
1074 pub log_rev: __u8,
1075 pub rsvd17: __u8,
1076 pub head_len: __le16,
1077 pub timestamp: __le64,
1078 pub poh: [__u8; 16usize],
1079 pub pcc: __le64,
1080 pub vid: __le16,
1081 pub ssvid: __le16,
1082 pub sn: [__u8; 20usize],
1083 pub mn: [__u8; 40usize],
1084 pub subnqn: [__u8; 256usize],
1085 pub gen_number: __le16,
1086 pub rci: __le32,
1087 pub rsvd378: [__u8; 102usize],
1088 pub supp_event_bm: [__u8; 32usize],
1089}
1090impl Default for nvme_persistent_event_log_head {
1091 fn default() -> Self {
1092 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1093 unsafe {
1094 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1095 s.assume_init()
1096 }
1097 }
1098}
1099#[repr(u32)]
1100#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1101pub enum nvme_persistent_event_types {
1102 NVME_SMART_HEALTH_EVENT = 1,
1103 NVME_FW_COMMIT_EVENT = 2,
1104 NVME_TIMESTAMP_EVENT = 3,
1105 NVME_POWER_ON_RESET_EVENT = 4,
1106 NVME_NSS_HW_ERROR_EVENT = 5,
1107 NVME_CHANGE_NS_EVENT = 6,
1108 NVME_FORMAT_START_EVENT = 7,
1109 NVME_FORMAT_COMPLETION_EVENT = 8,
1110 NVME_SANITIZE_START_EVENT = 9,
1111 NVME_SANITIZE_COMPLETION_EVENT = 10,
1112 NVME_THERMAL_EXCURSION_EVENT = 13,
1113}
1114#[repr(u32)]
1115#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1116pub enum nvme_persistent_event_log_actions {
1117 NVME_PEVENT_LOG_READ = 0,
1118 NVME_PEVENT_LOG_EST_CTX_AND_READ = 1,
1119 NVME_PEVENT_LOG_RELEASE_CTX = 2,
1120}
1121#[repr(C)]
1127#[derive(Debug, Default)]
1128pub struct nvme_event_agg_log_page {
1129 pub num_entries: __le64,
1130 pub entries: __IncompleteArrayField<__le16>,
1131}
1132#[repr(C)]
1133#[derive(Debug, Copy, Clone, Hash, PartialEq)]
1134pub struct nvme_predlat_per_nvmset_log_page {
1135 pub status: __u8,
1136 pub rsvd1: __u8,
1137 pub event_type: __le16,
1138 pub rsvd4: [__u8; 28usize],
1139 pub dtwin_rtyp: __le64,
1140 pub dtwin_wtyp: __le64,
1141 pub dtwin_timemax: __le64,
1142 pub ndwin_timemin_high: __le64,
1143 pub ndwin_timemin_low: __le64,
1144 pub rsvd72: [__u8; 56usize],
1145 pub dtwin_restimate: __le64,
1146 pub dtwin_westimate: __le64,
1147 pub dtwin_testimate: __le64,
1148 pub rsvd152: [__u8; 360usize],
1149}
1150impl Default for nvme_predlat_per_nvmset_log_page {
1151 fn default() -> Self {
1152 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1153 unsafe {
1154 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1155 s.assume_init()
1156 }
1157 }
1158}
1159#[repr(C)]
1160#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1161pub struct nvme_lba_status_range_desc {
1162 pub rslba: __le64,
1163 pub rnlb: __le32,
1164 pub rsvd12: [__u8; 4usize],
1165}
1166#[repr(C)]
1167#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1168pub struct nvme_lba_status_ns_element {
1169 pub neid: __le32,
1170 pub nlrd: __le32,
1171 pub ratype: __u8,
1172 pub rsvd9: [__u8; 7usize],
1173}
1174#[repr(C)]
1175#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1176pub struct nvme_lba_status_hdr {
1177 pub lslplen: __le32,
1178 pub nlslne: __le32,
1179 pub estulb: __le32,
1180 pub rsvd12: [__u8; 2usize],
1181 pub lsgc: __le16,
1182}
1183#[repr(C)]
1184#[derive(Debug, Copy, Clone, Hash, PartialEq)]
1185pub struct nvme_resv_notif_log {
1186 pub log_page_count: __le64,
1187 pub resv_notif_log_type: __u8,
1188 pub num_logs: __u8,
1189 pub rsvd10: [__u8; 2usize],
1190 pub nsid: __le32,
1191 pub rsvd16: [__u8; 48usize],
1192}
1193impl Default for nvme_resv_notif_log {
1194 fn default() -> Self {
1195 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1196 unsafe {
1197 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1198 s.assume_init()
1199 }
1200 }
1201}
1202#[repr(C)]
1203#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1204pub struct nvme_boot_part_hdr {
1205 pub lid: __u8,
1206 pub rsvd1: [__u8; 3usize],
1207 pub bpinfo: __le32,
1208 pub rsvd8: [__u8; 8usize],
1209}
1210pub const NVME_SMART_CRIT_SPARE: _bindgen_ty_20 = _bindgen_ty_20::NVME_SMART_CRIT_SPARE;
1211pub const NVME_SMART_CRIT_TEMPERATURE: _bindgen_ty_20 = _bindgen_ty_20::NVME_SMART_CRIT_TEMPERATURE;
1212pub const NVME_SMART_CRIT_RELIABILITY: _bindgen_ty_20 = _bindgen_ty_20::NVME_SMART_CRIT_RELIABILITY;
1213pub const NVME_SMART_CRIT_MEDIA: _bindgen_ty_20 = _bindgen_ty_20::NVME_SMART_CRIT_MEDIA;
1214pub const NVME_SMART_CRIT_VOLATILE_MEMORY: _bindgen_ty_20 =
1215 _bindgen_ty_20::NVME_SMART_CRIT_VOLATILE_MEMORY;
1216#[repr(u32)]
1217#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1218pub enum _bindgen_ty_20 {
1219 NVME_SMART_CRIT_SPARE = 1,
1220 NVME_SMART_CRIT_TEMPERATURE = 2,
1221 NVME_SMART_CRIT_RELIABILITY = 4,
1222 NVME_SMART_CRIT_MEDIA = 8,
1223 NVME_SMART_CRIT_VOLATILE_MEMORY = 16,
1224}
1225pub const NVME_AER_ERROR: _bindgen_ty_21 = _bindgen_ty_21::NVME_AER_ERROR;
1226pub const NVME_AER_SMART: _bindgen_ty_21 = _bindgen_ty_21::NVME_AER_SMART;
1227pub const NVME_AER_CSS: _bindgen_ty_21 = _bindgen_ty_21::NVME_AER_CSS;
1228pub const NVME_AER_VS: _bindgen_ty_21 = _bindgen_ty_21::NVME_AER_VS;
1229#[repr(u32)]
1230#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1231pub enum _bindgen_ty_21 {
1232 NVME_AER_ERROR = 0,
1233 NVME_AER_SMART = 1,
1234 NVME_AER_CSS = 6,
1235 NVME_AER_VS = 7,
1236}
1237#[repr(C)]
1238#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1239pub struct nvme_lba_range_type {
1240 pub type_: __u8,
1241 pub attributes: __u8,
1242 pub rsvd2: [__u8; 14usize],
1243 pub slba: __le64,
1244 pub nlb: __le64,
1245 pub guid: [__u8; 16usize],
1246 pub rsvd48: [__u8; 16usize],
1247}
1248pub const NVME_LBART_TYPE_FS: _bindgen_ty_22 = _bindgen_ty_22::NVME_LBART_TYPE_FS;
1249pub const NVME_LBART_TYPE_RAID: _bindgen_ty_22 = _bindgen_ty_22::NVME_LBART_TYPE_RAID;
1250pub const NVME_LBART_TYPE_CACHE: _bindgen_ty_22 = _bindgen_ty_22::NVME_LBART_TYPE_CACHE;
1251pub const NVME_LBART_TYPE_SWAP: _bindgen_ty_22 = _bindgen_ty_22::NVME_LBART_TYPE_SWAP;
1252pub const NVME_LBART_ATTRIB_TEMP: _bindgen_ty_22 = _bindgen_ty_22::NVME_LBART_TYPE_FS;
1253pub const NVME_LBART_ATTRIB_HIDE: _bindgen_ty_22 = _bindgen_ty_22::NVME_LBART_TYPE_RAID;
1254#[repr(u32)]
1255#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1256pub enum _bindgen_ty_22 {
1257 NVME_LBART_TYPE_FS = 1,
1258 NVME_LBART_TYPE_RAID = 2,
1259 NVME_LBART_TYPE_CACHE = 3,
1260 NVME_LBART_TYPE_SWAP = 4,
1261}
1262#[repr(C)]
1263#[derive(Debug, Copy, Clone, Hash, PartialEq)]
1264pub struct nvme_plm_config {
1265 pub enable_event: __le16,
1266 pub rsvd2: [__u8; 30usize],
1267 pub dtwin_reads_thresh: __le64,
1268 pub dtwin_writes_thresh: __le64,
1269 pub dtwin_time_thresh: __le64,
1270 pub rsvd56: [__u8; 456usize],
1271}
1272impl Default for nvme_plm_config {
1273 fn default() -> Self {
1274 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1275 unsafe {
1276 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1277 s.assume_init()
1278 }
1279 }
1280}
1281#[repr(C)]
1282#[derive(Debug, Default)]
1283pub struct nvme_reservation_status {
1284 pub gen_: __le32,
1285 pub rtype: __u8,
1286 pub regctl: [__u8; 2usize],
1287 pub resv5: [__u8; 2usize],
1288 pub ptpls: __u8,
1289 pub resv10: [__u8; 13usize],
1290 pub regctl_ds: __IncompleteArrayField<nvme_reservation_status__bindgen_ty_1>,
1291}
1292#[repr(C)]
1293#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1294pub struct nvme_reservation_status__bindgen_ty_1 {
1295 pub cntlid: __le16,
1296 pub rcsts: __u8,
1297 pub resv3: [__u8; 5usize],
1298 pub hostid: __le64,
1299 pub rkey: __le64,
1300}
1301#[repr(C)]
1302#[derive(Debug)]
1303pub struct nvme_reservation_status_ext {
1304 pub gen_: __le32,
1305 pub rtype: __u8,
1306 pub regctl: [__u8; 2usize],
1307 pub resv5: [__u8; 2usize],
1308 pub ptpls: __u8,
1309 pub resv10: [__u8; 14usize],
1310 pub resv24: [__u8; 40usize],
1311 pub regctl_eds: __IncompleteArrayField<nvme_reservation_status_ext__bindgen_ty_1>,
1312}
1313#[repr(C)]
1314#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1315pub struct nvme_reservation_status_ext__bindgen_ty_1 {
1316 pub cntlid: __le16,
1317 pub rcsts: __u8,
1318 pub resv3: [__u8; 5usize],
1319 pub rkey: __le64,
1320 pub hostid: [__u8; 16usize],
1321 pub resv32: [__u8; 32usize],
1322}
1323impl Default for nvme_reservation_status_ext {
1324 fn default() -> Self {
1325 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1326 unsafe {
1327 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1328 s.assume_init()
1329 }
1330 }
1331}
1332#[repr(u32)]
1333#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1334pub enum nvme_async_event_type {
1335 NVME_AER_TYPE_ERROR = 0,
1336 NVME_AER_TYPE_SMART = 1,
1337 NVME_AER_TYPE_NOTICE = 2,
1338}
1339#[repr(u32)]
1340#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1341pub enum nvme_opcode {
1342 nvme_cmd_flush = 0,
1343 nvme_cmd_write = 1,
1344 nvme_cmd_read = 2,
1345 nvme_cmd_write_uncor = 4,
1346 nvme_cmd_compare = 5,
1347 nvme_cmd_write_zeroes = 8,
1348 nvme_cmd_dsm = 9,
1349 nvme_cmd_verify = 12,
1350 nvme_cmd_resv_register = 13,
1351 nvme_cmd_resv_report = 14,
1352 nvme_cmd_resv_acquire = 17,
1353 nvme_cmd_resv_release = 21,
1354 nvme_cmd_copy = 25,
1355 nvme_zns_cmd_mgmt_send = 121,
1356 nvme_zns_cmd_mgmt_recv = 122,
1357 nvme_zns_cmd_append = 125,
1358}
1359pub const NVME_SGL_FMT_ADDRESS: _bindgen_ty_23 = _bindgen_ty_23::NVME_SGL_FMT_ADDRESS;
1360pub const NVME_SGL_FMT_OFFSET: _bindgen_ty_23 = _bindgen_ty_23::NVME_SGL_FMT_OFFSET;
1361pub const NVME_SGL_FMT_TRANSPORT_A: _bindgen_ty_23 = _bindgen_ty_23::NVME_SGL_FMT_TRANSPORT_A;
1362pub const NVME_SGL_FMT_INVALIDATE: _bindgen_ty_23 = _bindgen_ty_23::NVME_SGL_FMT_INVALIDATE;
1363#[repr(u32)]
1364#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1365pub enum _bindgen_ty_23 {
1366 NVME_SGL_FMT_ADDRESS = 0,
1367 NVME_SGL_FMT_OFFSET = 1,
1368 NVME_SGL_FMT_TRANSPORT_A = 10,
1369 NVME_SGL_FMT_INVALIDATE = 15,
1370}
1371pub const NVME_SGL_FMT_DATA_DESC: _bindgen_ty_24 = _bindgen_ty_24::NVME_SGL_FMT_DATA_DESC;
1372pub const NVME_SGL_FMT_SEG_DESC: _bindgen_ty_24 = _bindgen_ty_24::NVME_SGL_FMT_SEG_DESC;
1373pub const NVME_SGL_FMT_LAST_SEG_DESC: _bindgen_ty_24 = _bindgen_ty_24::NVME_SGL_FMT_LAST_SEG_DESC;
1374pub const NVME_KEY_SGL_FMT_DATA_DESC: _bindgen_ty_24 = _bindgen_ty_24::NVME_KEY_SGL_FMT_DATA_DESC;
1375pub const NVME_TRANSPORT_SGL_DATA_DESC: _bindgen_ty_24 =
1376 _bindgen_ty_24::NVME_TRANSPORT_SGL_DATA_DESC;
1377#[repr(u32)]
1378#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1379pub enum _bindgen_ty_24 {
1380 NVME_SGL_FMT_DATA_DESC = 0,
1381 NVME_SGL_FMT_SEG_DESC = 2,
1382 NVME_SGL_FMT_LAST_SEG_DESC = 3,
1383 NVME_KEY_SGL_FMT_DATA_DESC = 4,
1384 NVME_TRANSPORT_SGL_DATA_DESC = 5,
1385}
1386#[repr(C)]
1387#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1388pub struct nvme_sgl_desc {
1389 pub addr: __le64,
1390 pub length: __le32,
1391 pub rsvd: [__u8; 3usize],
1392 pub type_: __u8,
1393}
1394#[repr(C)]
1395#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1396pub struct nvme_keyed_sgl_desc {
1397 pub addr: __le64,
1398 pub length: [__u8; 3usize],
1399 pub key: [__u8; 4usize],
1400 pub type_: __u8,
1401}
1402#[repr(C)]
1403#[derive(Copy, Clone)]
1404pub union nvme_data_ptr {
1405 pub __bindgen_anon_1: nvme_data_ptr__bindgen_ty_1,
1406 pub sgl: nvme_sgl_desc,
1407 pub ksgl: nvme_keyed_sgl_desc,
1408}
1409#[repr(C)]
1410#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1411pub struct nvme_data_ptr__bindgen_ty_1 {
1412 pub prp1: __le64,
1413 pub prp2: __le64,
1414}
1415impl Default for nvme_data_ptr {
1416 fn default() -> Self {
1417 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1418 unsafe {
1419 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1420 s.assume_init()
1421 }
1422 }
1423}
1424pub const NVME_CMD_FUSE_FIRST: _bindgen_ty_25 = _bindgen_ty_25::NVME_CMD_FUSE_FIRST;
1425pub const NVME_CMD_FUSE_SECOND: _bindgen_ty_25 = _bindgen_ty_25::NVME_CMD_FUSE_SECOND;
1426pub const NVME_CMD_SGL_METABUF: _bindgen_ty_25 = _bindgen_ty_25::NVME_CMD_SGL_METABUF;
1427pub const NVME_CMD_SGL_METASEG: _bindgen_ty_25 = _bindgen_ty_25::NVME_CMD_SGL_METASEG;
1428pub const NVME_CMD_SGL_ALL: _bindgen_ty_25 = _bindgen_ty_25::NVME_CMD_SGL_ALL;
1429#[repr(u32)]
1430#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1431pub enum _bindgen_ty_25 {
1432 NVME_CMD_FUSE_FIRST = 1,
1433 NVME_CMD_FUSE_SECOND = 2,
1434 NVME_CMD_SGL_METABUF = 64,
1435 NVME_CMD_SGL_METASEG = 128,
1436 NVME_CMD_SGL_ALL = 192,
1437}
1438pub const NVME_RW_LR: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_LR;
1439pub const NVME_RW_FUA: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_FUA;
1440pub const NVME_RW_DEAC: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_DEAC;
1441pub const NVME_RW_DSM_FREQ_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_DSM_FREQ_UNSPEC;
1442pub const NVME_RW_DSM_FREQ_TYPICAL: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_DSM_FREQ_TYPICAL;
1443pub const NVME_RW_DSM_FREQ_RARE: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_DSM_FREQ_RARE;
1444pub const NVME_RW_DSM_FREQ_READS: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_DSM_FREQ_READS;
1445pub const NVME_RW_DSM_FREQ_WRITES: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_DSM_FREQ_WRITES;
1446pub const NVME_RW_DSM_FREQ_RW: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_DSM_FREQ_RW;
1447pub const NVME_RW_DSM_FREQ_ONCE: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_DSM_FREQ_ONCE;
1448pub const NVME_RW_DSM_FREQ_PREFETCH: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_DSM_FREQ_PREFETCH;
1449pub const NVME_RW_DSM_FREQ_TEMP: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_DSM_FREQ_TEMP;
1450pub const NVME_RW_DSM_LATENCY_NONE: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_DSM_FREQ_UNSPEC;
1451pub const NVME_RW_DSM_LATENCY_IDLE: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_DSM_LATENCY_IDLE;
1452pub const NVME_RW_DSM_LATENCY_NORM: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_DSM_LATENCY_NORM;
1453pub const NVME_RW_DSM_LATENCY_LOW: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_DSM_LATENCY_LOW;
1454pub const NVME_RW_DSM_SEQ_REQ: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_DSM_SEQ_REQ;
1455pub const NVME_RW_DSM_COMPRESSED: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_DSM_COMPRESSED;
1456pub const NVME_RW_PIREMAP: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_DEAC;
1457pub const NVME_RW_PRINFO_PRCHK_REF: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_PRINFO_PRCHK_REF;
1458pub const NVME_RW_PRINFO_PRCHK_APP: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_PRINFO_PRCHK_APP;
1459pub const NVME_RW_PRINFO_PRCHK_GUARD: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_PRINFO_PRCHK_GUARD;
1460pub const NVME_RW_PRINFO_PRACT: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_PRINFO_PRACT;
1461pub const NVME_RW_DTYPE_STREAMS: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_DSM_LATENCY_IDLE;
1462pub const NVME_RW_STORAGE_TAG_CHECK: _bindgen_ty_26 = _bindgen_ty_26::NVME_RW_STORAGE_TAG_CHECK;
1463#[repr(u32)]
1464#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1465pub enum _bindgen_ty_26 {
1466 NVME_RW_LR = 32768,
1467 NVME_RW_FUA = 16384,
1468 NVME_RW_DEAC = 512,
1469 NVME_RW_DSM_FREQ_UNSPEC = 0,
1470 NVME_RW_DSM_FREQ_TYPICAL = 1,
1471 NVME_RW_DSM_FREQ_RARE = 2,
1472 NVME_RW_DSM_FREQ_READS = 3,
1473 NVME_RW_DSM_FREQ_WRITES = 4,
1474 NVME_RW_DSM_FREQ_RW = 5,
1475 NVME_RW_DSM_FREQ_ONCE = 6,
1476 NVME_RW_DSM_FREQ_PREFETCH = 7,
1477 NVME_RW_DSM_FREQ_TEMP = 8,
1478 NVME_RW_DSM_LATENCY_IDLE = 16,
1479 NVME_RW_DSM_LATENCY_NORM = 32,
1480 NVME_RW_DSM_LATENCY_LOW = 48,
1481 NVME_RW_DSM_SEQ_REQ = 64,
1482 NVME_RW_DSM_COMPRESSED = 128,
1483 NVME_RW_PRINFO_PRCHK_REF = 1024,
1484 NVME_RW_PRINFO_PRCHK_APP = 2048,
1485 NVME_RW_PRINFO_PRCHK_GUARD = 4096,
1486 NVME_RW_PRINFO_PRACT = 8192,
1487 NVME_RW_STORAGE_TAG_CHECK = 256,
1488}
1489pub const NVME_DSMGMT_IDR: _bindgen_ty_27 = _bindgen_ty_27::NVME_DSMGMT_IDR;
1490pub const NVME_DSMGMT_IDW: _bindgen_ty_27 = _bindgen_ty_27::NVME_DSMGMT_IDW;
1491pub const NVME_DSMGMT_AD: _bindgen_ty_27 = _bindgen_ty_27::NVME_DSMGMT_AD;
1492#[repr(u32)]
1493#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1494pub enum _bindgen_ty_27 {
1495 NVME_DSMGMT_IDR = 1,
1496 NVME_DSMGMT_IDW = 2,
1497 NVME_DSMGMT_AD = 4,
1498}
1499#[repr(C)]
1500#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1501pub struct nvme_dsm_range {
1502 pub cattr: __le32,
1503 pub nlb: __le32,
1504 pub slba: __le64,
1505}
1506#[repr(C)]
1507#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1508pub struct nvme_copy_range {
1509 pub rsvd0: [__u8; 8usize],
1510 pub slba: __le64,
1511 pub nlb: __le16,
1512 pub rsvd18: [__u8; 6usize],
1513 pub eilbrt: __le32,
1514 pub elbatm: __le16,
1515 pub elbat: __le16,
1516}
1517#[repr(C)]
1518#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1519pub struct nvme_feat_auto_pst {
1520 pub entries: [__le64; 32usize],
1521}
1522#[repr(C)]
1523#[derive(Debug, Default)]
1524pub struct nvme_mi_host_metadata_element_desc {
1525 pub type_: __u8,
1526 pub rev: __u8,
1527 pub len: __u16,
1528 pub val: __IncompleteArrayField<__u8>,
1529}
1530#[repr(C)]
1531#[derive(Debug, Default)]
1532pub struct nvme_mi_host_metadata {
1533 pub ndesc: __u8,
1534 pub rsvd1: __u8,
1535 pub descs: __IncompleteArrayField<nvme_mi_host_metadata_element_desc>,
1536}
1537pub const NVME_MI_CTRL_METADATA_OS_CTRL_NAME: _bindgen_ty_28 =
1538 _bindgen_ty_28::NVME_MI_CTRL_METADATA_OS_CTRL_NAME;
1539pub const NVME_MI_CTRL_METADATA_OS_DRIVER_NAME: _bindgen_ty_28 =
1540 _bindgen_ty_28::NVME_MI_CTRL_METADATA_OS_DRIVER_NAME;
1541pub const NVME_MI_CTRL_METADATA_OS_DRIVER_VER: _bindgen_ty_28 =
1542 _bindgen_ty_28::NVME_MI_CTRL_METADATA_OS_DRIVER_VER;
1543pub const NVME_MI_CTRL_METADATA_PRE_BOOT_CTRL_NAME: _bindgen_ty_28 =
1544 _bindgen_ty_28::NVME_MI_CTRL_METADATA_PRE_BOOT_CTRL_NAME;
1545pub const NVME_MI_CTRL_METADATA_PRE_BOOT_DRIVER_NAME: _bindgen_ty_28 =
1546 _bindgen_ty_28::NVME_MI_CTRL_METADATA_PRE_BOOT_DRIVER_NAME;
1547pub const NVME_MI_CTRL_METADATA_PRE_BOOT_DRIVER_VER: _bindgen_ty_28 =
1548 _bindgen_ty_28::NVME_MI_CTRL_METADATA_PRE_BOOT_DRIVER_VER;
1549pub const NVME_MI_NS_METADATA_OS_NS_NAME: _bindgen_ty_28 =
1550 _bindgen_ty_28::NVME_MI_CTRL_METADATA_OS_CTRL_NAME;
1551pub const NVME_MI_NS_METADATA_PRE_BOOT_NS_NAME: _bindgen_ty_28 =
1552 _bindgen_ty_28::NVME_MI_CTRL_METADATA_OS_DRIVER_NAME;
1553#[repr(u32)]
1554#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1555pub enum _bindgen_ty_28 {
1556 NVME_MI_CTRL_METADATA_OS_CTRL_NAME = 1,
1557 NVME_MI_CTRL_METADATA_OS_DRIVER_NAME = 2,
1558 NVME_MI_CTRL_METADATA_OS_DRIVER_VER = 3,
1559 NVME_MI_CTRL_METADATA_PRE_BOOT_CTRL_NAME = 4,
1560 NVME_MI_CTRL_METADATA_PRE_BOOT_DRIVER_NAME = 5,
1561 NVME_MI_CTRL_METADATA_PRE_BOOT_DRIVER_VER = 6,
1562}
1563pub const NVME_HOST_MEM_ENABLE: _bindgen_ty_29 = _bindgen_ty_29::NVME_HOST_MEM_ENABLE;
1564pub const NVME_HOST_MEM_RETURN: _bindgen_ty_29 = _bindgen_ty_29::NVME_HOST_MEM_RETURN;
1565#[repr(u32)]
1566#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1567pub enum _bindgen_ty_29 {
1568 NVME_HOST_MEM_ENABLE = 1,
1569 NVME_HOST_MEM_RETURN = 2,
1570}
1571#[repr(u32)]
1572#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1573pub enum nvme_admin_opcode {
1574 nvme_admin_delete_sq = 0,
1575 nvme_admin_create_sq = 1,
1576 nvme_admin_get_log_page = 2,
1577 nvme_admin_delete_cq = 4,
1578 nvme_admin_create_cq = 5,
1579 nvme_admin_identify = 6,
1580 nvme_admin_abort_cmd = 8,
1581 nvme_admin_set_features = 9,
1582 nvme_admin_get_features = 10,
1583 nvme_admin_async_event = 12,
1584 nvme_admin_ns_mgmt = 13,
1585 nvme_admin_activate_fw = 16,
1586 nvme_admin_download_fw = 17,
1587 nvme_admin_dev_self_test = 20,
1588 nvme_admin_ns_attach = 21,
1589 nvme_admin_keep_alive = 24,
1590 nvme_admin_directive_send = 25,
1591 nvme_admin_directive_recv = 26,
1592 nvme_admin_virtual_mgmt = 28,
1593 nvme_admin_nvme_mi_send = 29,
1594 nvme_admin_nvme_mi_recv = 30,
1595 nvme_admin_capacity_mgmt = 32,
1596 nvme_admin_lockdown_cmd = 36,
1597 nvme_admin_dbbuf = 124,
1598 nvme_admin_format_nvm = 128,
1599 nvme_admin_security_send = 129,
1600 nvme_admin_security_recv = 130,
1601 nvme_admin_sanitize_nvm = 132,
1602 nvme_admin_get_lba_status = 134,
1603}
1604pub const NVME_QUEUE_PHYS_CONTIG: _bindgen_ty_30 = _bindgen_ty_30::NVME_QUEUE_PHYS_CONTIG;
1605pub const NVME_CQ_IRQ_ENABLED: _bindgen_ty_30 = _bindgen_ty_30::NVME_CQ_IRQ_ENABLED;
1606pub const NVME_SQ_PRIO_URGENT: _bindgen_ty_30 = _bindgen_ty_30::NVME_SQ_PRIO_URGENT;
1607pub const NVME_SQ_PRIO_HIGH: _bindgen_ty_30 = _bindgen_ty_30::NVME_CQ_IRQ_ENABLED;
1608pub const NVME_SQ_PRIO_MEDIUM: _bindgen_ty_30 = _bindgen_ty_30::NVME_SQ_PRIO_MEDIUM;
1609pub const NVME_SQ_PRIO_LOW: _bindgen_ty_30 = _bindgen_ty_30::NVME_SQ_PRIO_LOW;
1610pub const NVME_LOG_SUPPORTED_PAGES: _bindgen_ty_30 = _bindgen_ty_30::NVME_SQ_PRIO_URGENT;
1611pub const NVME_LOG_ERROR: _bindgen_ty_30 = _bindgen_ty_30::NVME_QUEUE_PHYS_CONTIG;
1612pub const NVME_LOG_SMART: _bindgen_ty_30 = _bindgen_ty_30::NVME_CQ_IRQ_ENABLED;
1613pub const NVME_LOG_FW_SLOT: _bindgen_ty_30 = _bindgen_ty_30::NVME_LOG_FW_SLOT;
1614pub const NVME_LOG_CHANGED_NS: _bindgen_ty_30 = _bindgen_ty_30::NVME_SQ_PRIO_MEDIUM;
1615pub const NVME_LOG_CMD_EFFECTS: _bindgen_ty_30 = _bindgen_ty_30::NVME_LOG_CMD_EFFECTS;
1616pub const NVME_LOG_DEVICE_SELF_TEST: _bindgen_ty_30 = _bindgen_ty_30::NVME_SQ_PRIO_LOW;
1617pub const NVME_LOG_TELEMETRY_HOST: _bindgen_ty_30 = _bindgen_ty_30::NVME_LOG_TELEMETRY_HOST;
1618pub const NVME_LOG_TELEMETRY_CTRL: _bindgen_ty_30 = _bindgen_ty_30::NVME_LOG_TELEMETRY_CTRL;
1619pub const NVME_LOG_ENDURANCE_GROUP: _bindgen_ty_30 = _bindgen_ty_30::NVME_LOG_ENDURANCE_GROUP;
1620pub const NVME_LOG_PRELAT_PER_NVMSET: _bindgen_ty_30 = _bindgen_ty_30::NVME_LOG_PRELAT_PER_NVMSET;
1621pub const NVME_LOG_ANA: _bindgen_ty_30 = _bindgen_ty_30::NVME_LOG_ANA;
1622pub const NVME_LOG_PRELAT_EVENT_AGG: _bindgen_ty_30 = _bindgen_ty_30::NVME_LOG_PRELAT_EVENT_AGG;
1623pub const NVME_LOG_PERSISTENT_EVENT: _bindgen_ty_30 = _bindgen_ty_30::NVME_LOG_PERSISTENT_EVENT;
1624pub const NVME_LOG_LBA_STATUS: _bindgen_ty_30 = _bindgen_ty_30::NVME_LOG_LBA_STATUS;
1625pub const NVME_LOG_ENDURANCE_GROUP_EVENT_AGG: _bindgen_ty_30 =
1626 _bindgen_ty_30::NVME_LOG_ENDURANCE_GROUP_EVENT_AGG;
1627pub const NVME_LOG_BOOT_PARTITION: _bindgen_ty_30 = _bindgen_ty_30::NVME_LOG_BOOT_PARTITION;
1628pub const NVME_LOG_FID_SUPPORT_EFFECTS: _bindgen_ty_30 =
1629 _bindgen_ty_30::NVME_LOG_FID_SUPPORT_EFFECTS;
1630pub const NVME_LOG_DISC: _bindgen_ty_30 = _bindgen_ty_30::NVME_LOG_DISC;
1631pub const NVME_LOG_RESERVATION: _bindgen_ty_30 = _bindgen_ty_30::NVME_LOG_RESERVATION;
1632pub const NVME_LOG_SANITIZE: _bindgen_ty_30 = _bindgen_ty_30::NVME_LOG_SANITIZE;
1633pub const NVME_LOG_ZONE_CHANGED_LIST: _bindgen_ty_30 = _bindgen_ty_30::NVME_LOG_ZONE_CHANGED_LIST;
1634pub const NVME_FWACT_REPL: _bindgen_ty_30 = _bindgen_ty_30::NVME_SQ_PRIO_URGENT;
1635pub const NVME_FWACT_REPL_ACTV: _bindgen_ty_30 = _bindgen_ty_30::NVME_LOG_TELEMETRY_CTRL;
1636pub const NVME_FWACT_ACTV: _bindgen_ty_30 = _bindgen_ty_30::NVME_FWACT_ACTV;
1637#[repr(u32)]
1638#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1639pub enum _bindgen_ty_30 {
1640 NVME_QUEUE_PHYS_CONTIG = 1,
1641 NVME_CQ_IRQ_ENABLED = 2,
1642 NVME_SQ_PRIO_URGENT = 0,
1643 NVME_SQ_PRIO_MEDIUM = 4,
1644 NVME_SQ_PRIO_LOW = 6,
1645 NVME_LOG_FW_SLOT = 3,
1646 NVME_LOG_CMD_EFFECTS = 5,
1647 NVME_LOG_TELEMETRY_HOST = 7,
1648 NVME_LOG_TELEMETRY_CTRL = 8,
1649 NVME_LOG_ENDURANCE_GROUP = 9,
1650 NVME_LOG_PRELAT_PER_NVMSET = 10,
1651 NVME_LOG_ANA = 12,
1652 NVME_LOG_PRELAT_EVENT_AGG = 11,
1653 NVME_LOG_PERSISTENT_EVENT = 13,
1654 NVME_LOG_LBA_STATUS = 14,
1655 NVME_LOG_ENDURANCE_GROUP_EVENT_AGG = 15,
1656 NVME_LOG_BOOT_PARTITION = 21,
1657 NVME_LOG_FID_SUPPORT_EFFECTS = 18,
1658 NVME_LOG_DISC = 112,
1659 NVME_LOG_RESERVATION = 128,
1660 NVME_LOG_SANITIZE = 129,
1661 NVME_LOG_ZONE_CHANGED_LIST = 191,
1662 NVME_FWACT_ACTV = 16,
1663}
1664#[repr(u8)]
1665#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1666pub enum nvme_feat {
1667 NVME_FEAT_NONE = 0,
1668 NVME_FEAT_ARBITRATION = 1,
1669 NVME_FEAT_POWER_MGMT = 2,
1670 NVME_FEAT_LBA_RANGE = 3,
1671 NVME_FEAT_TEMP_THRESH = 4,
1672 NVME_FEAT_ERR_RECOVERY = 5,
1673 NVME_FEAT_VOLATILE_WC = 6,
1674 NVME_FEAT_NUM_QUEUES = 7,
1675 NVME_FEAT_IRQ_COALESCE = 8,
1676 NVME_FEAT_IRQ_CONFIG = 9,
1677 NVME_FEAT_WRITE_ATOMIC = 10,
1678 NVME_FEAT_ASYNC_EVENT = 11,
1679 NVME_FEAT_AUTO_PST = 12,
1680 NVME_FEAT_HOST_MEM_BUF = 13,
1681 NVME_FEAT_TIMESTAMP = 14,
1682 NVME_FEAT_KATO = 15,
1683 NVME_FEAT_HCTM = 16,
1684 NVME_FEAT_NOPSC = 17,
1685 NVME_FEAT_RRL = 18,
1686 NVME_FEAT_PLM_CONFIG = 19,
1687 NVME_FEAT_PLM_WINDOW = 20,
1688 NVME_LBA_STATUS_INFO = 21,
1689 NVME_FEAT_HOST_BEHAVIOR = 22,
1690 NVME_FEAT_SANITIZE = 23,
1691 NVME_FEAT_ENDURANCE = 24,
1692 NVME_FEAT_IOCS_PROFILE = 25,
1693 NVME_FEAT_SPINUP_CONTROL = 26,
1694 NVME_FEAT_SW_PROGRESS = 128,
1695 NVME_FEAT_HOST_ID = 129,
1696 NVME_FEAT_RESV_MASK = 130,
1697 NVME_FEAT_RESV_PERSIST = 131,
1698 NVME_FEAT_WRITE_PROTECT = 132,
1699 NVME_MI_FEAT_CTRL_METADATA = 126,
1700 NVME_MI_FEAT_NS_METADATA = 127,
1701}
1702pub const NVME_NO_LOG_LSP: _bindgen_ty_31 = _bindgen_ty_31::NVME_NO_LOG_LSP;
1703pub const NVME_NO_LOG_LPO: _bindgen_ty_31 = _bindgen_ty_31::NVME_NO_LOG_LSP;
1704pub const NVME_LOG_ANA_LSP_RGO: _bindgen_ty_31 = _bindgen_ty_31::NVME_LOG_ANA_LSP_RGO;
1705pub const NVME_TELEM_LSP_CREATE: _bindgen_ty_31 = _bindgen_ty_31::NVME_LOG_ANA_LSP_RGO;
1706#[repr(u32)]
1707#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1708pub enum _bindgen_ty_31 {
1709 NVME_NO_LOG_LSP = 0,
1710 NVME_LOG_ANA_LSP_RGO = 1,
1711}
1712pub const NVME_SANITIZE_NO_DEALLOC: _bindgen_ty_32 = _bindgen_ty_32::NVME_SANITIZE_NO_DEALLOC;
1713pub const NVME_SANITIZE_OIPBP: _bindgen_ty_32 = _bindgen_ty_32::NVME_SANITIZE_OIPBP;
1714pub const NVME_SANITIZE_OWPASS_SHIFT: _bindgen_ty_32 = _bindgen_ty_32::NVME_SANITIZE_OWPASS_SHIFT;
1715pub const NVME_SANITIZE_AUSE: _bindgen_ty_32 = _bindgen_ty_32::NVME_SANITIZE_AUSE;
1716pub const NVME_SANITIZE_ACT_CRYPTO_ERASE: _bindgen_ty_32 =
1717 _bindgen_ty_32::NVME_SANITIZE_OWPASS_SHIFT;
1718pub const NVME_SANITIZE_ACT_OVERWRITE: _bindgen_ty_32 = _bindgen_ty_32::NVME_SANITIZE_ACT_OVERWRITE;
1719pub const NVME_SANITIZE_ACT_BLOCK_ERASE: _bindgen_ty_32 =
1720 _bindgen_ty_32::NVME_SANITIZE_ACT_BLOCK_ERASE;
1721pub const NVME_SANITIZE_ACT_EXIT: _bindgen_ty_32 = _bindgen_ty_32::NVME_SANITIZE_ACT_EXIT;
1722pub const NVME_SANITIZE_LOG_DATA_LEN: _bindgen_ty_32 = _bindgen_ty_32::NVME_SANITIZE_LOG_DATA_LEN;
1723pub const NVME_SANITIZE_LOG_GLOBAL_DATA_ERASED: _bindgen_ty_32 =
1724 _bindgen_ty_32::NVME_SANITIZE_OIPBP;
1725pub const NVME_SANITIZE_LOG_NUM_CMPLTED_PASS_MASK: _bindgen_ty_32 =
1726 _bindgen_ty_32::NVME_SANITIZE_LOG_NUM_CMPLTED_PASS_MASK;
1727pub const NVME_SANITIZE_LOG_STATUS_MASK: _bindgen_ty_32 =
1728 _bindgen_ty_32::NVME_SANITIZE_LOG_STATUS_MASK;
1729pub const NVME_SANITIZE_LOG_NEVER_SANITIZED: _bindgen_ty_32 =
1730 _bindgen_ty_32::NVME_SANITIZE_LOG_NEVER_SANITIZED;
1731pub const NVME_SANITIZE_LOG_COMPLETED_SUCCESS: _bindgen_ty_32 =
1732 _bindgen_ty_32::NVME_SANITIZE_ACT_EXIT;
1733pub const NVME_SANITIZE_LOG_IN_PROGESS: _bindgen_ty_32 =
1734 _bindgen_ty_32::NVME_SANITIZE_ACT_BLOCK_ERASE;
1735pub const NVME_SANITIZE_LOG_COMPLETED_FAILED: _bindgen_ty_32 =
1736 _bindgen_ty_32::NVME_SANITIZE_ACT_OVERWRITE;
1737pub const NVME_SANITIZE_LOG_ND_COMPLETED_SUCCESS: _bindgen_ty_32 =
1738 _bindgen_ty_32::NVME_SANITIZE_OWPASS_SHIFT;
1739#[repr(u32)]
1740#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1741pub enum _bindgen_ty_32 {
1742 NVME_SANITIZE_NO_DEALLOC = 512,
1743 NVME_SANITIZE_OIPBP = 256,
1744 NVME_SANITIZE_OWPASS_SHIFT = 4,
1745 NVME_SANITIZE_AUSE = 8,
1746 NVME_SANITIZE_ACT_OVERWRITE = 3,
1747 NVME_SANITIZE_ACT_BLOCK_ERASE = 2,
1748 NVME_SANITIZE_ACT_EXIT = 1,
1749 NVME_SANITIZE_LOG_DATA_LEN = 20,
1750 NVME_SANITIZE_LOG_NUM_CMPLTED_PASS_MASK = 248,
1751 NVME_SANITIZE_LOG_STATUS_MASK = 7,
1752 NVME_SANITIZE_LOG_NEVER_SANITIZED = 0,
1753}
1754#[repr(C)]
1755#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1756pub struct nvme_host_mem_buf_desc {
1757 pub addr: __le64,
1758 pub size: __le32,
1759 pub rsvd: [__u8; 4usize],
1760}
1761#[repr(C)]
1762#[derive(Debug, Copy, Clone, Hash, PartialEq)]
1763pub struct nvme_sanitize_log_page {
1764 pub progress: __le16,
1765 pub status: __le16,
1766 pub cdw10_info: __le32,
1767 pub est_ovrwrt_time: __le32,
1768 pub est_blk_erase_time: __le32,
1769 pub est_crypto_erase_time: __le32,
1770 pub est_ovrwrt_time_with_no_deallocate: __le32,
1771 pub est_blk_erase_time_with_no_deallocate: __le32,
1772 pub est_crypto_erase_time_with_no_deallocate: __le32,
1773 pub rsvd32: [__u8; 480usize],
1774}
1775impl Default for nvme_sanitize_log_page {
1776 fn default() -> Self {
1777 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1778 unsafe {
1779 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1780 s.assume_init()
1781 }
1782 }
1783}
1784#[repr(C)]
1785#[derive(Debug, Copy, Clone, Hash, PartialEq)]
1786pub struct nvme_effects_log_page {
1787 pub acs: [__le32; 256usize],
1788 pub iocs: [__le32; 256usize],
1789 pub resv: [__u8; 2048usize],
1790}
1791impl Default for nvme_effects_log_page {
1792 fn default() -> Self {
1793 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1794 unsafe {
1795 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1796 s.assume_init()
1797 }
1798 }
1799}
1800#[repr(C)]
1801#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1802pub struct nvme_error_log_page {
1803 pub error_count: __le64,
1804 pub sqid: __le16,
1805 pub cmdid: __le16,
1806 pub status_field: __le16,
1807 pub parm_error_location: __le16,
1808 pub lba: __le64,
1809 pub nsid: __le32,
1810 pub vs: __u8,
1811 pub trtype: __u8,
1812 pub resv: [__u8; 2usize],
1813 pub cs: __le64,
1814 pub trtype_spec_info: __le16,
1815 pub resv2: [__u8; 22usize],
1816}
1817#[repr(C)]
1818#[derive(Debug, Copy, Clone, Hash, PartialEq)]
1819pub struct nvme_firmware_log_page {
1820 pub afi: __u8,
1821 pub resv: [__u8; 7usize],
1822 pub frs: [[__u8; 8usize]; 7usize],
1823 pub resv2: [__u8; 448usize],
1824}
1825impl Default for nvme_firmware_log_page {
1826 fn default() -> Self {
1827 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1828 unsafe {
1829 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1830 s.assume_init()
1831 }
1832 }
1833}
1834#[repr(C)]
1835#[derive(Debug, Copy, Clone, Hash, PartialEq)]
1836pub struct nvme_host_mem_buffer {
1837 pub hsize: __le32,
1838 pub hmdlal: __le32,
1839 pub hmdlau: __le32,
1840 pub hmdlec: __le32,
1841 pub rsvd16: [__u8; 4080usize],
1842}
1843impl Default for nvme_host_mem_buffer {
1844 fn default() -> Self {
1845 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1846 unsafe {
1847 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1848 s.assume_init()
1849 }
1850 }
1851}
1852#[repr(C)]
1853#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1854pub struct nvme_auto_pst {
1855 pub data: __le32,
1856 pub rsvd: [__u8; 4usize],
1857}
1858#[repr(C)]
1859#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1860pub struct nvme_timestamp {
1861 pub timestamp: [__u8; 6usize],
1862 pub attr: __u8,
1863 pub rsvd: __u8,
1864}
1865#[repr(C)]
1866#[derive(Debug, Copy, Clone, Hash, PartialEq)]
1867pub struct nvme_controller_list {
1868 pub num: __le16,
1869 pub identifier: [__le16; 2047usize],
1870}
1871impl Default for nvme_controller_list {
1872 fn default() -> Self {
1873 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1874 unsafe {
1875 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1876 s.assume_init()
1877 }
1878 }
1879}
1880#[repr(C)]
1881#[derive(Debug, Copy, Clone, Hash, PartialEq)]
1882pub struct nvme_primary_ctrl_caps {
1883 pub cntlid: __le16,
1884 pub portid: __le16,
1885 pub crt: __u8,
1886 pub rsvd5: [__u8; 27usize],
1887 pub vqfrt: __le32,
1888 pub vqrfa: __le32,
1889 pub vqrfap: __le16,
1890 pub vqprt: __le16,
1891 pub vqfrsm: __le16,
1892 pub vqgran: __le16,
1893 pub rsvd48: [__u8; 16usize],
1894 pub vifrt: __le32,
1895 pub virfa: __le32,
1896 pub virfap: __le16,
1897 pub viprt: __le16,
1898 pub vifrsm: __le16,
1899 pub vigran: __le16,
1900 pub rsvd80: [__u8; 4016usize],
1901}
1902impl Default for nvme_primary_ctrl_caps {
1903 fn default() -> Self {
1904 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1905 unsafe {
1906 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1907 s.assume_init()
1908 }
1909 }
1910}
1911#[repr(C)]
1912#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1913pub struct nvme_secondary_controller_entry {
1914 pub scid: __le16,
1915 pub pcid: __le16,
1916 pub scs: __u8,
1917 pub rsvd5: [__u8; 3usize],
1918 pub vfn: __le16,
1919 pub nvq: __le16,
1920 pub nvi: __le16,
1921 pub rsvd14: [__u8; 18usize],
1922}
1923#[repr(C)]
1924#[derive(Debug, Copy, Clone, Hash, PartialEq)]
1925pub struct nvme_secondary_controllers_list {
1926 pub num: __u8,
1927 pub rsvd: [__u8; 31usize],
1928 pub sc_entry: [nvme_secondary_controller_entry; 127usize],
1929}
1930impl Default for nvme_secondary_controllers_list {
1931 fn default() -> Self {
1932 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1933 unsafe {
1934 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1935 s.assume_init()
1936 }
1937 }
1938}
1939#[repr(C)]
1940#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
1941pub struct nvme_bar_cap {
1942 pub mqes: __le16,
1943 pub ams_cqr: __u8,
1944 pub to: __u8,
1945 pub bps_css_nssrs_dstrd: __le16,
1946 pub mpsmax_mpsmin: __u8,
1947 pub rsvd_cmbs_pmrs: __u8,
1948}
1949#[repr(C)]
1950#[derive(Debug, Copy, Clone, Hash, PartialEq)]
1951pub struct nvme_endurance_group_list {
1952 pub num: __le16,
1953 pub identifier: [__le16; 2047usize],
1954}
1955impl Default for nvme_endurance_group_list {
1956 fn default() -> Self {
1957 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1958 unsafe {
1959 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1960 s.assume_init()
1961 }
1962 }
1963}
1964pub const NVME_SCT_GENERIC: _bindgen_ty_33 = _bindgen_ty_33::NVME_SCT_GENERIC;
1965pub const NVME_SCT_CMD_SPECIFIC: _bindgen_ty_33 = _bindgen_ty_33::NVME_SCT_CMD_SPECIFIC;
1966pub const NVME_SCT_MEDIA: _bindgen_ty_33 = _bindgen_ty_33::NVME_SCT_MEDIA;
1967pub const NVME_SCT_PATH: _bindgen_ty_33 = _bindgen_ty_33::NVME_SCT_PATH;
1968#[repr(u32)]
1969#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1970pub enum _bindgen_ty_33 {
1971 NVME_SCT_GENERIC = 0,
1972 NVME_SCT_CMD_SPECIFIC = 1,
1973 NVME_SCT_MEDIA = 2,
1974 NVME_SCT_PATH = 3,
1975}
1976pub const NVME_SC_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_SUCCESS;
1977pub const NVME_SC_INVALID_OPCODE: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_INVALID_OPCODE;
1978pub const NVME_SC_INVALID_FIELD: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_INVALID_FIELD;
1979pub const NVME_SC_CMDID_CONFLICT: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_CMDID_CONFLICT;
1980pub const NVME_SC_DATA_XFER_ERROR: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_DATA_XFER_ERROR;
1981pub const NVME_SC_POWER_LOSS: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_POWER_LOSS;
1982pub const NVME_SC_INTERNAL: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_INTERNAL;
1983pub const NVME_SC_ABORT_REQ: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_ABORT_REQ;
1984pub const NVME_SC_ABORT_QUEUE: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_ABORT_QUEUE;
1985pub const NVME_SC_FUSED_FAIL: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_FUSED_FAIL;
1986pub const NVME_SC_FUSED_MISSING: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_FUSED_MISSING;
1987pub const NVME_SC_INVALID_NS: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_INVALID_NS;
1988pub const NVME_SC_CMD_SEQ_ERROR: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_CMD_SEQ_ERROR;
1989pub const NVME_SC_SGL_INVALID_LAST: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_SGL_INVALID_LAST;
1990pub const NVME_SC_SGL_INVALID_COUNT: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_SGL_INVALID_COUNT;
1991pub const NVME_SC_SGL_INVALID_DATA: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_SGL_INVALID_DATA;
1992pub const NVME_SC_SGL_INVALID_METADATA: _bindgen_ty_34 =
1993 _bindgen_ty_34::NVME_SC_SGL_INVALID_METADATA;
1994pub const NVME_SC_SGL_INVALID_TYPE: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_SGL_INVALID_TYPE;
1995pub const NVME_SC_CMB_INVALID_USE: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_CMB_INVALID_USE;
1996pub const NVME_SC_PRP_INVALID_OFFSET: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_PRP_INVALID_OFFSET;
1997pub const NVME_SC_ATOMIC_WRITE_UNIT_EXCEEDED: _bindgen_ty_34 =
1998 _bindgen_ty_34::NVME_SC_ATOMIC_WRITE_UNIT_EXCEEDED;
1999pub const NVME_SC_OPERATION_DENIED: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_OPERATION_DENIED;
2000pub const NVME_SC_SGL_INVALID_OFFSET: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_SGL_INVALID_OFFSET;
2001pub const NVME_SC_INCONSISTENT_HOST_ID: _bindgen_ty_34 =
2002 _bindgen_ty_34::NVME_SC_INCONSISTENT_HOST_ID;
2003pub const NVME_SC_KEEP_ALIVE_EXPIRED: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_KEEP_ALIVE_EXPIRED;
2004pub const NVME_SC_KEEP_ALIVE_INVALID: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_KEEP_ALIVE_INVALID;
2005pub const NVME_SC_PREEMPT_ABORT: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_PREEMPT_ABORT;
2006pub const NVME_SC_SANITIZE_FAILED: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_SANITIZE_FAILED;
2007pub const NVME_SC_SANITIZE_IN_PROGRESS: _bindgen_ty_34 =
2008 _bindgen_ty_34::NVME_SC_SANITIZE_IN_PROGRESS;
2009pub const NVME_SC_SGL_DATA_BLK_GRAN_INVALID: _bindgen_ty_34 =
2010 _bindgen_ty_34::NVME_SC_SGL_DATA_BLK_GRAN_INVALID;
2011pub const NVME_SC_CMD_NOT_SUP_QUEUE_IN_CMB: _bindgen_ty_34 =
2012 _bindgen_ty_34::NVME_SC_CMD_NOT_SUP_QUEUE_IN_CMB;
2013pub const NVME_SC_NS_WRITE_PROTECTED: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_NS_WRITE_PROTECTED;
2014pub const NVME_SC_CMD_INTERRUPTED: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_CMD_INTERRUPTED;
2015pub const NVME_SC_TRANSIENT_TRANSPORT: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_TRANSIENT_TRANSPORT;
2016pub const NVME_SC_PROHIBITED_BY_CMD_AND_FEAT: _bindgen_ty_34 =
2017 _bindgen_ty_34::NVME_SC_PROHIBITED_BY_CMD_AND_FEAT;
2018pub const NVME_SC_ADMIN_CMD_MEDIA_NOT_READY: _bindgen_ty_34 =
2019 _bindgen_ty_34::NVME_SC_ADMIN_CMD_MEDIA_NOT_READY;
2020pub const NVME_SC_LBA_RANGE: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_LBA_RANGE;
2021pub const NVME_SC_CAP_EXCEEDED: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_CAP_EXCEEDED;
2022pub const NVME_SC_NS_NOT_READY: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_NS_NOT_READY;
2023pub const NVME_SC_RESERVATION_CONFLICT: _bindgen_ty_34 =
2024 _bindgen_ty_34::NVME_SC_RESERVATION_CONFLICT;
2025pub const NVME_SC_FORMAT_IN_PROGRESS: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_FORMAT_IN_PROGRESS;
2026pub const NVME_SC_CQ_INVALID: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_CQ_INVALID;
2027pub const NVME_SC_QID_INVALID: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_QID_INVALID;
2028pub const NVME_SC_QUEUE_SIZE: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_QUEUE_SIZE;
2029pub const NVME_SC_ABORT_LIMIT: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_ABORT_LIMIT;
2030pub const NVME_SC_ABORT_MISSING: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_ABORT_MISSING;
2031pub const NVME_SC_ASYNC_LIMIT: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_ASYNC_LIMIT;
2032pub const NVME_SC_FIRMWARE_SLOT: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_FIRMWARE_SLOT;
2033pub const NVME_SC_FIRMWARE_IMAGE: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_FIRMWARE_IMAGE;
2034pub const NVME_SC_INVALID_VECTOR: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_INVALID_VECTOR;
2035pub const NVME_SC_INVALID_LOG_PAGE: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_INVALID_LOG_PAGE;
2036pub const NVME_SC_INVALID_FORMAT: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_INVALID_FORMAT;
2037pub const NVME_SC_FW_NEEDS_CONV_RESET: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_FW_NEEDS_CONV_RESET;
2038pub const NVME_SC_INVALID_QUEUE: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_INVALID_QUEUE;
2039pub const NVME_SC_FEATURE_NOT_SAVEABLE: _bindgen_ty_34 =
2040 _bindgen_ty_34::NVME_SC_FEATURE_NOT_SAVEABLE;
2041pub const NVME_SC_FEATURE_NOT_CHANGEABLE: _bindgen_ty_34 =
2042 _bindgen_ty_34::NVME_SC_FEATURE_NOT_CHANGEABLE;
2043pub const NVME_SC_FEATURE_NOT_PER_NS: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_FEATURE_NOT_PER_NS;
2044pub const NVME_SC_FW_NEEDS_SUBSYS_RESET: _bindgen_ty_34 =
2045 _bindgen_ty_34::NVME_SC_FW_NEEDS_SUBSYS_RESET;
2046pub const NVME_SC_FW_NEEDS_RESET: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_FW_NEEDS_RESET;
2047pub const NVME_SC_FW_NEEDS_MAX_TIME: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_FW_NEEDS_MAX_TIME;
2048pub const NVME_SC_FW_ACTIVATE_PROHIBITED: _bindgen_ty_34 =
2049 _bindgen_ty_34::NVME_SC_FW_ACTIVATE_PROHIBITED;
2050pub const NVME_SC_OVERLAPPING_RANGE: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_OVERLAPPING_RANGE;
2051pub const NVME_SC_NS_INSUFFICIENT_CAP: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_NS_INSUFFICIENT_CAP;
2052pub const NVME_SC_NS_ID_UNAVAILABLE: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_NS_ID_UNAVAILABLE;
2053pub const NVME_SC_NS_ALREADY_ATTACHED: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_NS_ALREADY_ATTACHED;
2054pub const NVME_SC_NS_IS_PRIVATE: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_NS_IS_PRIVATE;
2055pub const NVME_SC_NS_NOT_ATTACHED: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_NS_NOT_ATTACHED;
2056pub const NVME_SC_THIN_PROV_NOT_SUPP: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_THIN_PROV_NOT_SUPP;
2057pub const NVME_SC_CTRL_LIST_INVALID: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_CTRL_LIST_INVALID;
2058pub const NVME_SC_DEVICE_SELF_TEST_IN_PROGRESS: _bindgen_ty_34 =
2059 _bindgen_ty_34::NVME_SC_DEVICE_SELF_TEST_IN_PROGRESS;
2060pub const NVME_SC_BP_WRITE_PROHIBITED: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_BP_WRITE_PROHIBITED;
2061pub const NVME_SC_INVALID_CTRL_ID: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_INVALID_CTRL_ID;
2062pub const NVME_SC_INVALID_SECONDARY_CTRL_STATE: _bindgen_ty_34 =
2063 _bindgen_ty_34::NVME_SC_INVALID_SECONDARY_CTRL_STATE;
2064pub const NVME_SC_INVALID_NUM_CTRL_RESOURCE: _bindgen_ty_34 =
2065 _bindgen_ty_34::NVME_SC_INVALID_NUM_CTRL_RESOURCE;
2066pub const NVME_SC_INVALID_RESOURCE_ID: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_INVALID_RESOURCE_ID;
2067pub const NVME_SC_PMR_SAN_PROHIBITED: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_PMR_SAN_PROHIBITED;
2068pub const NVME_SC_ANA_INVALID_GROUP_ID: _bindgen_ty_34 =
2069 _bindgen_ty_34::NVME_SC_ANA_INVALID_GROUP_ID;
2070pub const NVME_SC_ANA_ATTACH_FAIL: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_ANA_ATTACH_FAIL;
2071pub const NVME_SC_INSUFFICIENT_CAP: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_INSUFFICIENT_CAP;
2072pub const NVME_SC_NS_ATTACHMENT_LIMIT_EXCEEDED: _bindgen_ty_34 =
2073 _bindgen_ty_34::NVME_SC_NS_ATTACHMENT_LIMIT_EXCEEDED;
2074pub const NVME_SC_PROHIBIT_CMD_EXEC_NOT_SUPPORTED: _bindgen_ty_34 =
2075 _bindgen_ty_34::NVME_SC_PROHIBIT_CMD_EXEC_NOT_SUPPORTED;
2076pub const NVME_SC_IOCS_NOT_SUPPORTED: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_IOCS_NOT_SUPPORTED;
2077pub const NVME_SC_IOCS_NOT_ENABLED: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_IOCS_NOT_ENABLED;
2078pub const NVME_SC_IOCS_COMBINATION_REJECTED: _bindgen_ty_34 =
2079 _bindgen_ty_34::NVME_SC_IOCS_COMBINATION_REJECTED;
2080pub const NVME_SC_INVALID_IOCS: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_INVALID_IOCS;
2081pub const NVME_SC_ID_UNAVAILABLE: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_ID_UNAVAILABLE;
2082pub const NVME_SC_BAD_ATTRIBUTES: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_BAD_ATTRIBUTES;
2083pub const NVME_SC_INVALID_PI: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_INVALID_PI;
2084pub const NVME_SC_READ_ONLY: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_READ_ONLY;
2085pub const NVME_SC_CMD_SIZE_LIMIT_EXCEEDED: _bindgen_ty_34 =
2086 _bindgen_ty_34::NVME_SC_CMD_SIZE_LIMIT_EXCEEDED;
2087pub const NVME_SC_CONNECT_FORMAT: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_BAD_ATTRIBUTES;
2088pub const NVME_SC_CONNECT_CTRL_BUSY: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_INVALID_PI;
2089pub const NVME_SC_CONNECT_INVALID_PARAM: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_READ_ONLY;
2090pub const NVME_SC_CONNECT_RESTART_DISC: _bindgen_ty_34 =
2091 _bindgen_ty_34::NVME_SC_CMD_SIZE_LIMIT_EXCEEDED;
2092pub const NVME_SC_CONNECT_INVALID_HOST: _bindgen_ty_34 =
2093 _bindgen_ty_34::NVME_SC_CONNECT_INVALID_HOST;
2094pub const NVME_SC_DISCOVERY_RESTART: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_DISCOVERY_RESTART;
2095pub const NVME_SC_AUTH_REQUIRED: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_AUTH_REQUIRED;
2096pub const NVME_SC_ZONE_BOUNDARY_ERROR: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_ZONE_BOUNDARY_ERROR;
2097pub const NVME_SC_ZONE_IS_FULL: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_ZONE_IS_FULL;
2098pub const NVME_SC_ZONE_IS_READ_ONLY: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_ZONE_IS_READ_ONLY;
2099pub const NVME_SC_ZONE_IS_OFFLINE: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_ZONE_IS_OFFLINE;
2100pub const NVME_SC_ZONE_INVALID_WRITE: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_ZONE_INVALID_WRITE;
2101pub const NVME_SC_TOO_MANY_ACTIVE_ZONES: _bindgen_ty_34 =
2102 _bindgen_ty_34::NVME_SC_TOO_MANY_ACTIVE_ZONES;
2103pub const NVME_SC_TOO_MANY_OPEN_ZONES: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_TOO_MANY_OPEN_ZONES;
2104pub const NVME_SC_ZONE_INVALID_STATE_TRANSITION: _bindgen_ty_34 =
2105 _bindgen_ty_34::NVME_SC_ZONE_INVALID_STATE_TRANSITION;
2106pub const NVME_SC_WRITE_FAULT: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_WRITE_FAULT;
2107pub const NVME_SC_READ_ERROR: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_READ_ERROR;
2108pub const NVME_SC_GUARD_CHECK: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_GUARD_CHECK;
2109pub const NVME_SC_APPTAG_CHECK: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_APPTAG_CHECK;
2110pub const NVME_SC_REFTAG_CHECK: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_REFTAG_CHECK;
2111pub const NVME_SC_COMPARE_FAILED: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_COMPARE_FAILED;
2112pub const NVME_SC_ACCESS_DENIED: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_ACCESS_DENIED;
2113pub const NVME_SC_UNWRITTEN_BLOCK: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_UNWRITTEN_BLOCK;
2114pub const NVME_SC_STORAGE_TAG_CHECK: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_STORAGE_TAG_CHECK;
2115pub const NVME_SC_INTERNAL_PATH_ERROR: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_INTERNAL_PATH_ERROR;
2116pub const NVME_SC_ANA_PERSISTENT_LOSS: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_ANA_PERSISTENT_LOSS;
2117pub const NVME_SC_ANA_INACCESSIBLE: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_ANA_INACCESSIBLE;
2118pub const NVME_SC_ANA_TRANSITION: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_ANA_TRANSITION;
2119pub const NVME_SC_CTRL_PATHING_ERROR: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_CTRL_PATHING_ERROR;
2120pub const NVME_SC_HOST_PATHING_ERROR: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_HOST_PATHING_ERROR;
2121pub const NVME_SC_HOST_CMD_ABORT: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_HOST_CMD_ABORT;
2122pub const NVME_SC_CRD: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_CRD;
2123pub const NVME_SC_DNR: _bindgen_ty_34 = _bindgen_ty_34::NVME_SC_DNR;
2124#[repr(u32)]
2125#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2126pub enum _bindgen_ty_34 {
2127 NVME_SC_SUCCESS = 0,
2128 NVME_SC_INVALID_OPCODE = 1,
2129 NVME_SC_INVALID_FIELD = 2,
2130 NVME_SC_CMDID_CONFLICT = 3,
2131 NVME_SC_DATA_XFER_ERROR = 4,
2132 NVME_SC_POWER_LOSS = 5,
2133 NVME_SC_INTERNAL = 6,
2134 NVME_SC_ABORT_REQ = 7,
2135 NVME_SC_ABORT_QUEUE = 8,
2136 NVME_SC_FUSED_FAIL = 9,
2137 NVME_SC_FUSED_MISSING = 10,
2138 NVME_SC_INVALID_NS = 11,
2139 NVME_SC_CMD_SEQ_ERROR = 12,
2140 NVME_SC_SGL_INVALID_LAST = 13,
2141 NVME_SC_SGL_INVALID_COUNT = 14,
2142 NVME_SC_SGL_INVALID_DATA = 15,
2143 NVME_SC_SGL_INVALID_METADATA = 16,
2144 NVME_SC_SGL_INVALID_TYPE = 17,
2145 NVME_SC_CMB_INVALID_USE = 18,
2146 NVME_SC_PRP_INVALID_OFFSET = 19,
2147 NVME_SC_ATOMIC_WRITE_UNIT_EXCEEDED = 20,
2148 NVME_SC_OPERATION_DENIED = 21,
2149 NVME_SC_SGL_INVALID_OFFSET = 22,
2150 NVME_SC_INCONSISTENT_HOST_ID = 24,
2151 NVME_SC_KEEP_ALIVE_EXPIRED = 25,
2152 NVME_SC_KEEP_ALIVE_INVALID = 26,
2153 NVME_SC_PREEMPT_ABORT = 27,
2154 NVME_SC_SANITIZE_FAILED = 28,
2155 NVME_SC_SANITIZE_IN_PROGRESS = 29,
2156 NVME_SC_SGL_DATA_BLK_GRAN_INVALID = 30,
2157 NVME_SC_CMD_NOT_SUP_QUEUE_IN_CMB = 31,
2158 NVME_SC_NS_WRITE_PROTECTED = 32,
2159 NVME_SC_CMD_INTERRUPTED = 33,
2160 NVME_SC_TRANSIENT_TRANSPORT = 34,
2161 NVME_SC_PROHIBITED_BY_CMD_AND_FEAT = 35,
2162 NVME_SC_ADMIN_CMD_MEDIA_NOT_READY = 36,
2163 NVME_SC_LBA_RANGE = 128,
2164 NVME_SC_CAP_EXCEEDED = 129,
2165 NVME_SC_NS_NOT_READY = 130,
2166 NVME_SC_RESERVATION_CONFLICT = 131,
2167 NVME_SC_FORMAT_IN_PROGRESS = 132,
2168 NVME_SC_CQ_INVALID = 256,
2169 NVME_SC_QID_INVALID = 257,
2170 NVME_SC_QUEUE_SIZE = 258,
2171 NVME_SC_ABORT_LIMIT = 259,
2172 NVME_SC_ABORT_MISSING = 260,
2173 NVME_SC_ASYNC_LIMIT = 261,
2174 NVME_SC_FIRMWARE_SLOT = 262,
2175 NVME_SC_FIRMWARE_IMAGE = 263,
2176 NVME_SC_INVALID_VECTOR = 264,
2177 NVME_SC_INVALID_LOG_PAGE = 265,
2178 NVME_SC_INVALID_FORMAT = 266,
2179 NVME_SC_FW_NEEDS_CONV_RESET = 267,
2180 NVME_SC_INVALID_QUEUE = 268,
2181 NVME_SC_FEATURE_NOT_SAVEABLE = 269,
2182 NVME_SC_FEATURE_NOT_CHANGEABLE = 270,
2183 NVME_SC_FEATURE_NOT_PER_NS = 271,
2184 NVME_SC_FW_NEEDS_SUBSYS_RESET = 272,
2185 NVME_SC_FW_NEEDS_RESET = 273,
2186 NVME_SC_FW_NEEDS_MAX_TIME = 274,
2187 NVME_SC_FW_ACTIVATE_PROHIBITED = 275,
2188 NVME_SC_OVERLAPPING_RANGE = 276,
2189 NVME_SC_NS_INSUFFICIENT_CAP = 277,
2190 NVME_SC_NS_ID_UNAVAILABLE = 278,
2191 NVME_SC_NS_ALREADY_ATTACHED = 280,
2192 NVME_SC_NS_IS_PRIVATE = 281,
2193 NVME_SC_NS_NOT_ATTACHED = 282,
2194 NVME_SC_THIN_PROV_NOT_SUPP = 283,
2195 NVME_SC_CTRL_LIST_INVALID = 284,
2196 NVME_SC_DEVICE_SELF_TEST_IN_PROGRESS = 285,
2197 NVME_SC_BP_WRITE_PROHIBITED = 286,
2198 NVME_SC_INVALID_CTRL_ID = 287,
2199 NVME_SC_INVALID_SECONDARY_CTRL_STATE = 288,
2200 NVME_SC_INVALID_NUM_CTRL_RESOURCE = 289,
2201 NVME_SC_INVALID_RESOURCE_ID = 290,
2202 NVME_SC_PMR_SAN_PROHIBITED = 291,
2203 NVME_SC_ANA_INVALID_GROUP_ID = 292,
2204 NVME_SC_ANA_ATTACH_FAIL = 293,
2205 NVME_SC_INSUFFICIENT_CAP = 294,
2206 NVME_SC_NS_ATTACHMENT_LIMIT_EXCEEDED = 295,
2207 NVME_SC_PROHIBIT_CMD_EXEC_NOT_SUPPORTED = 296,
2208 NVME_SC_IOCS_NOT_SUPPORTED = 297,
2209 NVME_SC_IOCS_NOT_ENABLED = 298,
2210 NVME_SC_IOCS_COMBINATION_REJECTED = 299,
2211 NVME_SC_INVALID_IOCS = 300,
2212 NVME_SC_ID_UNAVAILABLE = 301,
2213 NVME_SC_BAD_ATTRIBUTES = 384,
2214 NVME_SC_INVALID_PI = 385,
2215 NVME_SC_READ_ONLY = 386,
2216 NVME_SC_CMD_SIZE_LIMIT_EXCEEDED = 387,
2217 NVME_SC_CONNECT_INVALID_HOST = 388,
2218 NVME_SC_DISCOVERY_RESTART = 400,
2219 NVME_SC_AUTH_REQUIRED = 401,
2220 NVME_SC_ZONE_BOUNDARY_ERROR = 440,
2221 NVME_SC_ZONE_IS_FULL = 441,
2222 NVME_SC_ZONE_IS_READ_ONLY = 442,
2223 NVME_SC_ZONE_IS_OFFLINE = 443,
2224 NVME_SC_ZONE_INVALID_WRITE = 444,
2225 NVME_SC_TOO_MANY_ACTIVE_ZONES = 445,
2226 NVME_SC_TOO_MANY_OPEN_ZONES = 446,
2227 NVME_SC_ZONE_INVALID_STATE_TRANSITION = 447,
2228 NVME_SC_WRITE_FAULT = 640,
2229 NVME_SC_READ_ERROR = 641,
2230 NVME_SC_GUARD_CHECK = 642,
2231 NVME_SC_APPTAG_CHECK = 643,
2232 NVME_SC_REFTAG_CHECK = 644,
2233 NVME_SC_COMPARE_FAILED = 645,
2234 NVME_SC_ACCESS_DENIED = 646,
2235 NVME_SC_UNWRITTEN_BLOCK = 647,
2236 NVME_SC_STORAGE_TAG_CHECK = 648,
2237 NVME_SC_INTERNAL_PATH_ERROR = 768,
2238 NVME_SC_ANA_PERSISTENT_LOSS = 769,
2239 NVME_SC_ANA_INACCESSIBLE = 770,
2240 NVME_SC_ANA_TRANSITION = 771,
2241 NVME_SC_CTRL_PATHING_ERROR = 864,
2242 NVME_SC_HOST_PATHING_ERROR = 880,
2243 NVME_SC_HOST_CMD_ABORT = 881,
2244 NVME_SC_CRD = 6144,
2245 NVME_SC_DNR = 16384,
2246}
2247#[repr(C)]
2251#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
2252pub struct nvme_zns_lbafe {
2253 pub zsze: __le64,
2254 pub zdes: __u8,
2255 pub rsvd9: [__u8; 7usize],
2256}
2257#[repr(C)]
2268#[derive(Debug, Copy, Clone, Hash, PartialEq)]
2269pub struct nvme_zns_id_ns {
2270 pub zoc: __le16,
2271 pub ozcs: __le16,
2272 pub mar: __le32,
2273 pub mor: __le32,
2274 pub rrl: __le32,
2275 pub frl: __le32,
2276 pub rrl1: __le32,
2277 pub rrl2: __le32,
2278 pub rrl3: __le32,
2279 pub frl1: __le32,
2280 pub frl2: __le32,
2281 pub frl3: __le32,
2282 pub rsvd44: [__u8; 2772usize],
2283 pub lbafe: [nvme_zns_lbafe; 64usize],
2284 pub vs: [__u8; 256usize],
2285}
2286impl Default for nvme_zns_id_ns {
2287 fn default() -> Self {
2288 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2289 unsafe {
2290 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2291 s.assume_init()
2292 }
2293 }
2294}
2295#[repr(C)]
2296#[derive(Debug, Copy, Clone, Hash, PartialEq)]
2297pub struct nvme_id_ctrl_nvm {
2298 pub vsl: __u8,
2299 pub wzsl: __u8,
2300 pub wusl: __u8,
2301 pub dmrl: __u8,
2302 pub dmrsl: __le32,
2303 pub dmsl: __le64,
2304 pub rsvd16: [__u8; 4080usize],
2305}
2306impl Default for nvme_id_ctrl_nvm {
2307 fn default() -> Self {
2308 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2309 unsafe {
2310 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2311 s.assume_init()
2312 }
2313 }
2314}
2315#[repr(C)]
2318#[derive(Debug, Copy, Clone, Hash, PartialEq)]
2319pub struct nvme_zns_id_ctrl {
2320 pub zasl: __u8,
2321 pub rsvd1: [__u8; 4095usize],
2322}
2323impl Default for nvme_zns_id_ctrl {
2324 fn default() -> Self {
2325 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2326 unsafe {
2327 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2328 s.assume_init()
2329 }
2330 }
2331}
2332#[repr(C)]
2336#[derive(Debug, Copy, Clone, Hash, PartialEq)]
2337pub struct nvme_zns_changed_zone_log {
2338 pub nrzid: __le16,
2339 pub rsvd2: [__u8; 6usize],
2340 pub zid: [__le64; 511usize],
2341}
2342impl Default for nvme_zns_changed_zone_log {
2343 fn default() -> Self {
2344 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2345 unsafe {
2346 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2347 s.assume_init()
2348 }
2349 }
2350}
2351#[repr(u32)]
2352#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2354pub enum nvme_zns_zt {
2355 NVME_ZONE_TYPE_SEQWRITE_REQ = 2,
2356}
2357#[repr(u32)]
2358#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2360pub enum nvme_zns_za {
2361 NVME_ZNS_ZA_ZFC = 1,
2362 NVME_ZNS_ZA_FZR = 2,
2363 NVME_ZNS_ZA_RZR = 4,
2364 NVME_ZNS_ZA_ZDEV = 128,
2365}
2366#[repr(u32)]
2367#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2369pub enum nvme_zns_zs {
2370 NVME_ZNS_ZS_EMPTY = 1,
2371 NVME_ZNS_ZS_IMPL_OPEN = 2,
2372 NVME_ZNS_ZS_EXPL_OPEN = 3,
2373 NVME_ZNS_ZS_CLOSED = 4,
2374 NVME_ZNS_ZS_READ_ONLY = 13,
2375 NVME_ZNS_ZS_FULL = 14,
2376 NVME_ZNS_ZS_OFFLINE = 15,
2377}
2378#[repr(C)]
2380#[derive(Debug, Default, Copy, Clone, Hash, PartialEq)]
2381pub struct nvme_zns_desc {
2382 pub zt: __u8,
2383 pub zs: __u8,
2384 pub za: __u8,
2385 pub zai: __u8,
2386 pub rsvd4: [__u8; 4usize],
2387 pub zcap: __le64,
2388 pub zslba: __le64,
2389 pub wp: __le64,
2390 pub rsvd32: [__u8; 32usize],
2391}
2392#[repr(C)]
2394#[derive(Debug)]
2395pub struct nvme_zone_report {
2396 pub nr_zones: __le64,
2397 pub resv8: [__u8; 56usize],
2398 pub entries: __IncompleteArrayField<nvme_zns_desc>,
2399}
2400impl Default for nvme_zone_report {
2401 fn default() -> Self {
2402 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2403 unsafe {
2404 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2405 s.assume_init()
2406 }
2407 }
2408}
2409#[repr(u32)]
2410#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2411pub enum nvme_zns_send_action {
2412 NVME_ZNS_ZSA_CLOSE = 1,
2413 NVME_ZNS_ZSA_FINISH = 2,
2414 NVME_ZNS_ZSA_OPEN = 3,
2415 NVME_ZNS_ZSA_RESET = 4,
2416 NVME_ZNS_ZSA_OFFLINE = 5,
2417 NVME_ZNS_ZSA_SET_DESC_EXT = 16,
2418}
2419#[repr(u32)]
2420#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2421pub enum nvme_zns_recv_action {
2422 NVME_ZNS_ZRA_REPORT_ZONES = 0,
2423 NVME_ZNS_ZRA_EXTENDED_REPORT_ZONES = 1,
2424}
2425#[repr(u32)]
2426#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2427pub enum nvme_zns_report_options {
2428 NVME_ZNS_ZRAS_REPORT_ALL = 0,
2429 NVME_ZNS_ZRAS_REPORT_EMPTY = 1,
2430 NVME_ZNS_ZRAS_REPORT_IMPL_OPENED = 2,
2431 NVME_ZNS_ZRAS_REPORT_EXPL_OPENED = 3,
2432 NVME_ZNS_ZRAS_REPORT_CLOSED = 4,
2433 NVME_ZNS_ZRAS_REPORT_FULL = 5,
2434 NVME_ZNS_ZRAS_REPORT_READ_ONLY = 6,
2435 NVME_ZNS_ZRAS_REPORT_OFFLINE = 7,
2436}
2437#[repr(C)]
2438#[derive(Debug, Copy, Clone, Hash, PartialEq)]
2439pub struct nvme_id_domain_attr_entry {
2440 pub dom_id: __le16,
2441 pub rsvd2: [__u8; 14usize],
2442 pub dom_cap: [__u8; 16usize],
2443 pub unalloc_dom_cap: [__u8; 16usize],
2444 pub max_egrp_dom_cap: [__u8; 16usize],
2445 pub rsvd64: [__u8; 64usize],
2446}
2447impl Default for nvme_id_domain_attr_entry {
2448 fn default() -> Self {
2449 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2450 unsafe {
2451 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2452 s.assume_init()
2453 }
2454 }
2455}
2456#[repr(C)]
2457#[derive(Debug)]
2458pub struct nvme_id_domain_list {
2459 pub num_entries: __u8,
2460 pub rsvd1: [__u8; 127usize],
2461 pub domain_attr: __IncompleteArrayField<nvme_id_domain_attr_entry>,
2462}
2463impl Default for nvme_id_domain_list {
2464 fn default() -> Self {
2465 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2466 unsafe {
2467 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2468 s.assume_init()
2469 }
2470 }
2471}
2472pub const NVME_FID_EFFECTS_FSUPP: _bindgen_ty_35 = _bindgen_ty_35::NVME_FID_EFFECTS_FSUPP;
2473pub const NVME_FID_EFFECTS_UDCC: _bindgen_ty_35 = _bindgen_ty_35::NVME_FID_EFFECTS_UDCC;
2474pub const NVME_FID_EFFECTS_NCC: _bindgen_ty_35 = _bindgen_ty_35::NVME_FID_EFFECTS_NCC;
2475pub const NVME_FID_EFFECTS_NIC: _bindgen_ty_35 = _bindgen_ty_35::NVME_FID_EFFECTS_NIC;
2476pub const NVME_FID_EFFECTS_CCC: _bindgen_ty_35 = _bindgen_ty_35::NVME_FID_EFFECTS_CCC;
2477pub const NVME_FID_EFFECTS_UUID_SEL: _bindgen_ty_35 = _bindgen_ty_35::NVME_FID_EFFECTS_UUID_SEL;
2478pub const NVME_FID_SCOPE_SHIFT: _bindgen_ty_35 = _bindgen_ty_35::NVME_FID_SCOPE_SHIFT;
2479pub const NVME_FID_SCOPE_MASK: _bindgen_ty_35 = _bindgen_ty_35::NVME_FID_SCOPE_MASK;
2480pub const NVME_FID_SCOPE_NS: _bindgen_ty_35 = _bindgen_ty_35::NVME_FID_EFFECTS_FSUPP;
2481pub const NVME_FID_SCOPE_CTRL: _bindgen_ty_35 = _bindgen_ty_35::NVME_FID_EFFECTS_UDCC;
2482pub const NVME_FID_SCOPE_NVM_SET: _bindgen_ty_35 = _bindgen_ty_35::NVME_FID_EFFECTS_NCC;
2483pub const NVME_FID_SCOPE_ENDGRP: _bindgen_ty_35 = _bindgen_ty_35::NVME_FID_EFFECTS_NIC;
2484pub const NVME_FID_SCOPE_DOMAIN: _bindgen_ty_35 = _bindgen_ty_35::NVME_FID_EFFECTS_CCC;
2485pub const NVME_FID_SCOPE_NSS: _bindgen_ty_35 = _bindgen_ty_35::NVME_FID_SCOPE_NSS;
2486#[repr(u32)]
2487#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2488pub enum _bindgen_ty_35 {
2489 NVME_FID_EFFECTS_FSUPP = 1,
2490 NVME_FID_EFFECTS_UDCC = 2,
2491 NVME_FID_EFFECTS_NCC = 4,
2492 NVME_FID_EFFECTS_NIC = 8,
2493 NVME_FID_EFFECTS_CCC = 16,
2494 NVME_FID_EFFECTS_UUID_SEL = 524288,
2495 NVME_FID_SCOPE_SHIFT = 20,
2496 NVME_FID_SCOPE_MASK = 4095,
2497 NVME_FID_SCOPE_NSS = 32,
2498}
2499#[repr(C)]
2500#[derive(Debug, Copy, Clone, Hash, PartialEq)]
2501pub struct nvme_fid_support_effects {
2502 pub fid_support: [__le32; 256usize],
2503}
2504impl Default for nvme_fid_support_effects {
2505 fn default() -> Self {
2506 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2507 unsafe {
2508 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2509 s.assume_init()
2510 }
2511 }
2512}
2513#[repr(C)]
2514#[derive(Debug, Copy, Clone, Hash, PartialEq)]
2515pub struct nvme_support_log_pages {
2516 pub lid_support: [__le32; 256usize],
2517}
2518impl Default for nvme_support_log_pages {
2519 fn default() -> Self {
2520 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2521 unsafe {
2522 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2523 s.assume_init()
2524 }
2525 }
2526}
2527pub const NVM_DEVICE_ACTIVE: _bindgen_ty_36 = _bindgen_ty_36::NVM_DEVICE_ACTIVE;
2528#[repr(u32)]
2529#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2530pub enum _bindgen_ty_36 {
2531 NVM_DEVICE_ACTIVE = 1,
2532}
2533pub const NVM_CONFIG_TYPE_SIMPLE: _bindgen_ty_37 = _bindgen_ty_37::NVM_CONFIG_TYPE_SIMPLE;
2534pub const NVM_CONFIG_TYPE_EXTENDED: _bindgen_ty_37 = _bindgen_ty_37::NVM_CONFIG_TYPE_EXTENDED;
2535#[repr(u32)]
2536#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2537pub enum _bindgen_ty_37 {
2538 NVM_CONFIG_TYPE_SIMPLE = 0,
2539 NVM_CONFIG_TYPE_EXTENDED = 1,
2540}
2541pub const NVM_TARGET_FACTORY: _bindgen_ty_38 = _bindgen_ty_38::NVM_TARGET_FACTORY;
2542#[repr(u32)]
2543#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2544pub enum _bindgen_ty_38 {
2545 NVM_TARGET_FACTORY = 1,
2546}
2547pub const NVM_FACTORY_ERASE_ONLY_USER: _bindgen_ty_39 = _bindgen_ty_39::NVM_FACTORY_ERASE_ONLY_USER;
2548pub const NVM_FACTORY_RESET_HOST_BLKS: _bindgen_ty_39 = _bindgen_ty_39::NVM_FACTORY_RESET_HOST_BLKS;
2549pub const NVM_FACTORY_RESET_GRWN_BBLKS: _bindgen_ty_39 =
2550 _bindgen_ty_39::NVM_FACTORY_RESET_GRWN_BBLKS;
2551pub const NVM_FACTORY_NR_BITS: _bindgen_ty_39 = _bindgen_ty_39::NVM_FACTORY_NR_BITS;
2552#[repr(u32)]
2553#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2554pub enum _bindgen_ty_39 {
2555 NVM_FACTORY_ERASE_ONLY_USER = 1,
2556 NVM_FACTORY_RESET_HOST_BLKS = 2,
2557 NVM_FACTORY_RESET_GRWN_BBLKS = 4,
2558 NVM_FACTORY_NR_BITS = 8,
2559}
2560pub const NVM_INFO_CMD: _bindgen_ty_40 = _bindgen_ty_40::NVM_INFO_CMD;
2561pub const NVM_GET_DEVICES_CMD: _bindgen_ty_40 = _bindgen_ty_40::NVM_GET_DEVICES_CMD;
2562pub const NVM_DEV_CREATE_CMD: _bindgen_ty_40 = _bindgen_ty_40::NVM_DEV_CREATE_CMD;
2563pub const NVM_DEV_REMOVE_CMD: _bindgen_ty_40 = _bindgen_ty_40::NVM_DEV_REMOVE_CMD;
2564pub const NVM_DEV_INIT_CMD: _bindgen_ty_40 = _bindgen_ty_40::NVM_DEV_INIT_CMD;
2565pub const NVM_DEV_FACTORY_CMD: _bindgen_ty_40 = _bindgen_ty_40::NVM_DEV_FACTORY_CMD;
2566#[repr(u32)]
2567#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2568pub enum _bindgen_ty_40 {
2569 NVM_INFO_CMD = 32,
2570 NVM_GET_DEVICES_CMD = 33,
2571 NVM_DEV_CREATE_CMD = 34,
2572 NVM_DEV_REMOVE_CMD = 35,
2573 NVM_DEV_INIT_CMD = 36,
2574 NVM_DEV_FACTORY_CMD = 37,
2575}