linux_nvme_sys/
ioctl.rs

1use super::*;
2use nix::{ioctl_none, ioctl_readwrite, ioctl_write_ptr};
3
4pub type nvme_admin_cmd = nvme_passthru_cmd;
5
6// #define NVME_IOCTL_ID		_IO('N', 0x40)
7// #define NVME_IOCTL_ADMIN_CMD	_IOWR('N', 0x41, struct nvme_admin_cmd)
8// #define NVME_IOCTL_SUBMIT_IO	_IOW('N', 0x42, struct nvme_user_io)
9// #define NVME_IOCTL_IO_CMD	_IOWR('N', 0x43, struct nvme_passthru_cmd)
10// #define NVME_IOCTL_RESET	_IO('N', 0x44)
11// #define NVME_IOCTL_SUBSYS_RESET	_IO('N', 0x45)
12// #define NVME_IOCTL_RESCAN	_IO('N', 0x46)
13
14ioctl_none!(nvme_ioctl_id, b'N', 0x40);
15ioctl_readwrite!(nvme_ioctl_admin_cmd, b'N', 0x41, nvme_admin_cmd);
16ioctl_write_ptr!(nvme_ioctl_submit_io, b'N', 0x42, nvme_user_io);
17ioctl_readwrite!(nvme_ioctl_io_cmd, b'N', 0x43, nvme_passthru_cmd);
18ioctl_none!(nvme_ioctl_reset, b'N', 0x44);
19ioctl_none!(nvme_ioctl_subsys_reset, b'N', 0x45);
20ioctl_none!(nvme_ioctl_rescan, b'N', 0x46);