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