Skip to main content

nvme_cli_sys/
bindings.rs

1// automatically generated by rust-bindgen 0.72.1
2
3// @generated by util/bindings; do not edit manually.
4// Regenerate with: ./util/generate_bindings.sh
5#![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/// struct nvme_telemetry_log_page_hdr - structure for telemetry log page
663/// @lpi: Log page identifier
664/// @iee_oui: IEEE OUI Identifier
665/// @dalb1: Data area 1 last block
666/// @dalb2: Data area 2 last block
667/// @dalb3: Data area 3 last block
668/// @dalb4: Data area 4 last block
669/// @ctrlavail: Controller initiated data available
670/// @ctrldgn: Controller initiated telemetry Data Generation Number
671/// @rsnident: Reason Identifier
672/// @telemetry_dataarea: Contains telemetry data block
673///
674/// This structure can be used for both telemetry host-initiated log page
675/// and controller-initiated log page.
676#[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/// struct nvme_event_agg_log_page - is common for both
1122/// predictable latency event aggregate log and endurance
1123/// group event aggregate log
1124/// @num_entries: indicates the number of entries in the list.
1125/// @entries: indicates NVMSET ID or ENDURANCE Group ID entries
1126#[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/// struct nvme_zns_lbafe -
2248/// zsze:
2249/// zdes:
2250#[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/// struct nvme_zns_id_ns -  Zoned Namespace Command Set Specific
2258///                          Identify Namespace Data Structure
2259/// @zoc: Zone Operation Characteristics
2260/// @ozcs: Optional Zoned Command Support
2261/// @mar: Maximum Active Resources
2262/// @mor: Maximum Open Resources
2263/// @rrl: Reset Recommended Limit
2264/// @frl: Finish Recommended Limit
2265/// @lbafe: LBA Format Extension
2266/// @vs: Vendor Specific
2267#[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/// struct nvme_zns_id_ctrl -
2316/// @zasl:
2317#[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/// struct nvme_zns_changed_zone_log - ZNS Changed Zone List log
2333/// @nrzid:
2334/// @zid:
2335#[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/// enum nvme_zns_zt -
2353#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2354pub enum nvme_zns_zt {
2355    NVME_ZONE_TYPE_SEQWRITE_REQ = 2,
2356}
2357#[repr(u32)]
2358/// enum nvme_zns_za -
2359#[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/// enum nvme_zns_zs -
2368#[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/// struct nvme_zns_desc -
2379#[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/// struct nvme_zone_report -
2393#[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}