1
0
Fork 0
mirror of https://github.com/ii64/gouring.git synced 2025-04-26 05:42:48 +02:00

fix(nvme): constant folds for uring, ioctl cmd ops

This commit is contained in:
Xeffy Chen 2023-04-16 10:44:49 +07:00
parent c85becd14b
commit 8f4508a832
Signed by: Xeffy
GPG key ID: E41C08AD390E7C49
2 changed files with 17 additions and 21 deletions
examples/nvme
nvme

View file

@ -37,7 +37,7 @@ func DoNvmeGetInfo(devPath string) error {
cmd nvme.NvmePassthruCmd
)
nsidRet, err := sys_ioctl(fd, uintptr(nvme.NVME_IOCTL_ID), 0)
nsidRet, err := sys_ioctl(fd, uintptr(nvme.NVME_IOCTL_ID()), 0)
if err != nil {
return err
}
@ -52,7 +52,7 @@ func DoNvmeGetInfo(devPath string) error {
Cdw11: nvme.NVME_CSI_NVM << nvme.NVME_IDENTIFY_CSI_SHIFT,
TimeoutMs: nvme.NVME_DEFAULT_IOCTL_TIMEOUT,
}
_, err = sys_ioctl(fd, uintptr(nvme.NVME_IOCTL_ADMIN_CMD), uintptr(unsafe.Pointer(&cmd)))
_, err = sys_ioctl(fd, uintptr(nvme.NVME_IOCTL_ADMIN_CMD()), uintptr(unsafe.Pointer(&cmd)))
if err != nil {
return err
}
@ -83,7 +83,7 @@ func DoIoUring(devPath string) error {
sqe := ring.GetSqe()
uring.PrepRead(sqe, fd, &buf[0], len(buf), 0)
sqe.SetCmdOp(uint32(nvme.NVME_URING_CMD_IO))
sqe.SetCmdOp(uint32(nvme.NVME_URING_CMD_IO()))
sqe.Opcode = uring.IORING_OP_URING_CMD
var off uint64 = 0

View file

@ -35,25 +35,21 @@ func _SizeChecker() {
_ = x[SizeofNvmeIdNs-0x1000]
}
// Can this NVME_URING_CMD_* folds into constant literal?
func NVME_IOCTL_ID() int { return ioctl.IO('N', 0x40) }
func NVME_IOCTL_ADMIN_CMD() int { return ioctl.IOWR('N', 0x41, int(SizeofNvmeAdminCmd)) }
func NVME_IOCTL_SUBMIT_IO() int { return ioctl.IOW('N', 0x42, int(SizeofNvmeUserIo)) }
func NVME_IOCTL_IO_CMD() int { return ioctl.IOR('N', 0x43, int(SizeofNvmePassthruCmd)) }
func NVME_IOCTL_RESET() int { return ioctl.IO('N', 0x44) }
func NVME_IOCTL_SUBSYS_RESET() int { return ioctl.IO('N', 0x45) }
func NVME_IOCTL_RESCAN() int { return ioctl.IO('N', 0x46) }
func NVME_IOCTL_ADMIN64_CMD() int { return ioctl.IOWR('N', 0x47, int(SizeofNvmePassthruCmd64)) }
func NVME_IOCTL_IO64_CMD() int { return ioctl.IOWR('N', 0x48, int(SizeofNvmePassthruCmd64)) }
func NVME_IOCTL_IO64_CMD_VEC() int { return ioctl.IOWR('N', 0x49, int(SizeofNvmePassthruCmd64)) }
var (
NVME_IOCTL_ID = ioctl.IO('N', 0x40)
NVME_IOCTL_ADMIN_CMD = ioctl.IOWR('N', 0x41, int(SizeofNvmeAdminCmd))
NVME_IOCTL_SUBMIT_IO = ioctl.IOW('N', 0x42, int(SizeofNvmeUserIo))
NVME_IOCTL_IO_CMD = ioctl.IOR('N', 0x43, int(SizeofNvmePassthruCmd))
NVME_IOCTL_RESET = ioctl.IO('N', 0x44)
NVME_IOCTL_SUBSYS_RESET = ioctl.IO('N', 0x45)
NVME_IOCTL_RESCAN = ioctl.IO('N', 0x46)
NVME_IOCTL_ADMIN64_CMD = ioctl.IOWR('N', 0x47, int(SizeofNvmePassthruCmd64))
NVME_IOCTL_IO64_CMD = ioctl.IOWR('N', 0x48, int(SizeofNvmePassthruCmd64))
NVME_IOCTL_IO64_CMD_VEC = ioctl.IOWR('N', 0x49, int(SizeofNvmePassthruCmd64))
NVME_URING_CMD_IO = ioctl.IOWR('N', 0x80, int(SizeofNvmeUringCmd))
NVME_URING_CMD_IO_VEC = ioctl.IOWR('N', 0x81, int(SizeofNvmeUringCmd))
NVME_URING_CMD_ADMIN = ioctl.IOWR('N', 0x82, int(SizeofNvmeUringCmd))
NVME_URING_CMD_ADMIN_VEC = ioctl.IOWR('N', 0x83, int(SizeofNvmeUringCmd))
)
func NVME_URING_CMD_IO() int { return ioctl.IOWR('N', 0x80, int(SizeofNvmeUringCmd)) }
func NVME_URING_CMD_IO_VEC() int { return ioctl.IOWR('N', 0x81, int(SizeofNvmeUringCmd)) }
func NVME_URING_CMD_ADMIN() int { return ioctl.IOWR('N', 0x82, int(SizeofNvmeUringCmd)) }
func NVME_URING_CMD_ADMIN_VEC() int { return ioctl.IOWR('N', 0x83, int(SizeofNvmeUringCmd)) }
// nvme_admin_opcode
const (