xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/nvme_ioctl.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_NVME_IOCTL_H
8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_LINUX_NVME_IOCTL_H
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
10*8d67ca89SAndroid Build Coastguard Worker struct nvme_user_io {
11*8d67ca89SAndroid Build Coastguard Worker   __u8 opcode;
12*8d67ca89SAndroid Build Coastguard Worker   __u8 flags;
13*8d67ca89SAndroid Build Coastguard Worker   __u16 control;
14*8d67ca89SAndroid Build Coastguard Worker   __u16 nblocks;
15*8d67ca89SAndroid Build Coastguard Worker   __u16 rsvd;
16*8d67ca89SAndroid Build Coastguard Worker   __u64 metadata;
17*8d67ca89SAndroid Build Coastguard Worker   __u64 addr;
18*8d67ca89SAndroid Build Coastguard Worker   __u64 slba;
19*8d67ca89SAndroid Build Coastguard Worker   __u32 dsmgmt;
20*8d67ca89SAndroid Build Coastguard Worker   __u32 reftag;
21*8d67ca89SAndroid Build Coastguard Worker   __u16 apptag;
22*8d67ca89SAndroid Build Coastguard Worker   __u16 appmask;
23*8d67ca89SAndroid Build Coastguard Worker };
24*8d67ca89SAndroid Build Coastguard Worker struct nvme_passthru_cmd {
25*8d67ca89SAndroid Build Coastguard Worker   __u8 opcode;
26*8d67ca89SAndroid Build Coastguard Worker   __u8 flags;
27*8d67ca89SAndroid Build Coastguard Worker   __u16 rsvd1;
28*8d67ca89SAndroid Build Coastguard Worker   __u32 nsid;
29*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw2;
30*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw3;
31*8d67ca89SAndroid Build Coastguard Worker   __u64 metadata;
32*8d67ca89SAndroid Build Coastguard Worker   __u64 addr;
33*8d67ca89SAndroid Build Coastguard Worker   __u32 metadata_len;
34*8d67ca89SAndroid Build Coastguard Worker   __u32 data_len;
35*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw10;
36*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw11;
37*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw12;
38*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw13;
39*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw14;
40*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw15;
41*8d67ca89SAndroid Build Coastguard Worker   __u32 timeout_ms;
42*8d67ca89SAndroid Build Coastguard Worker   __u32 result;
43*8d67ca89SAndroid Build Coastguard Worker };
44*8d67ca89SAndroid Build Coastguard Worker struct nvme_passthru_cmd64 {
45*8d67ca89SAndroid Build Coastguard Worker   __u8 opcode;
46*8d67ca89SAndroid Build Coastguard Worker   __u8 flags;
47*8d67ca89SAndroid Build Coastguard Worker   __u16 rsvd1;
48*8d67ca89SAndroid Build Coastguard Worker   __u32 nsid;
49*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw2;
50*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw3;
51*8d67ca89SAndroid Build Coastguard Worker   __u64 metadata;
52*8d67ca89SAndroid Build Coastguard Worker   __u64 addr;
53*8d67ca89SAndroid Build Coastguard Worker   __u32 metadata_len;
54*8d67ca89SAndroid Build Coastguard Worker   union {
55*8d67ca89SAndroid Build Coastguard Worker     __u32 data_len;
56*8d67ca89SAndroid Build Coastguard Worker     __u32 vec_cnt;
57*8d67ca89SAndroid Build Coastguard Worker   };
58*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw10;
59*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw11;
60*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw12;
61*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw13;
62*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw14;
63*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw15;
64*8d67ca89SAndroid Build Coastguard Worker   __u32 timeout_ms;
65*8d67ca89SAndroid Build Coastguard Worker   __u32 rsvd2;
66*8d67ca89SAndroid Build Coastguard Worker   __u64 result;
67*8d67ca89SAndroid Build Coastguard Worker };
68*8d67ca89SAndroid Build Coastguard Worker struct nvme_uring_cmd {
69*8d67ca89SAndroid Build Coastguard Worker   __u8 opcode;
70*8d67ca89SAndroid Build Coastguard Worker   __u8 flags;
71*8d67ca89SAndroid Build Coastguard Worker   __u16 rsvd1;
72*8d67ca89SAndroid Build Coastguard Worker   __u32 nsid;
73*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw2;
74*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw3;
75*8d67ca89SAndroid Build Coastguard Worker   __u64 metadata;
76*8d67ca89SAndroid Build Coastguard Worker   __u64 addr;
77*8d67ca89SAndroid Build Coastguard Worker   __u32 metadata_len;
78*8d67ca89SAndroid Build Coastguard Worker   __u32 data_len;
79*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw10;
80*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw11;
81*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw12;
82*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw13;
83*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw14;
84*8d67ca89SAndroid Build Coastguard Worker   __u32 cdw15;
85*8d67ca89SAndroid Build Coastguard Worker   __u32 timeout_ms;
86*8d67ca89SAndroid Build Coastguard Worker   __u32 rsvd2;
87*8d67ca89SAndroid Build Coastguard Worker };
88*8d67ca89SAndroid Build Coastguard Worker #define nvme_admin_cmd nvme_passthru_cmd
89*8d67ca89SAndroid Build Coastguard Worker #define NVME_IOCTL_ID _IO('N', 0x40)
90*8d67ca89SAndroid Build Coastguard Worker #define NVME_IOCTL_ADMIN_CMD _IOWR('N', 0x41, struct nvme_admin_cmd)
91*8d67ca89SAndroid Build Coastguard Worker #define NVME_IOCTL_SUBMIT_IO _IOW('N', 0x42, struct nvme_user_io)
92*8d67ca89SAndroid Build Coastguard Worker #define NVME_IOCTL_IO_CMD _IOWR('N', 0x43, struct nvme_passthru_cmd)
93*8d67ca89SAndroid Build Coastguard Worker #define NVME_IOCTL_RESET _IO('N', 0x44)
94*8d67ca89SAndroid Build Coastguard Worker #define NVME_IOCTL_SUBSYS_RESET _IO('N', 0x45)
95*8d67ca89SAndroid Build Coastguard Worker #define NVME_IOCTL_RESCAN _IO('N', 0x46)
96*8d67ca89SAndroid Build Coastguard Worker #define NVME_IOCTL_ADMIN64_CMD _IOWR('N', 0x47, struct nvme_passthru_cmd64)
97*8d67ca89SAndroid Build Coastguard Worker #define NVME_IOCTL_IO64_CMD _IOWR('N', 0x48, struct nvme_passthru_cmd64)
98*8d67ca89SAndroid Build Coastguard Worker #define NVME_IOCTL_IO64_CMD_VEC _IOWR('N', 0x49, struct nvme_passthru_cmd64)
99*8d67ca89SAndroid Build Coastguard Worker #define NVME_URING_CMD_IO _IOWR('N', 0x80, struct nvme_uring_cmd)
100*8d67ca89SAndroid Build Coastguard Worker #define NVME_URING_CMD_IO_VEC _IOWR('N', 0x81, struct nvme_uring_cmd)
101*8d67ca89SAndroid Build Coastguard Worker #define NVME_URING_CMD_ADMIN _IOWR('N', 0x82, struct nvme_uring_cmd)
102*8d67ca89SAndroid Build Coastguard Worker #define NVME_URING_CMD_ADMIN_VEC _IOWR('N', 0x83, struct nvme_uring_cmd)
103*8d67ca89SAndroid Build Coastguard Worker #endif
104