我正在编写一个模块,在该模块中我使用主要和次要编号访问 nvme 设备。
该函数的代码是
src_disk = get_gendisk(MKDEV(si->src_major, si->src_minor), &part);
my_nvme_ns = (struct nvme_ns *)src_disk->private_data;
for (i = 0; i <= 15; i++)
{
printk(KERN_CONT "%02x", my_nvme_ns->head.ids.nvme_ns_ids.nguid[i]);
}
现在,当我尝试访问时my_nvme_ns
,它失败并出现错误
error: dereferencing pointer to incomplete type ‘struct nvme_ns’
printk(KERN_CONT "%02x", my_nvme_ns->head.ids.nvme_ns_ids.nguid[i]);
我已经包含了所有相关文件,包括
#include <linux/nvme.h>
#include <linux/nvme_ioctl.h>
#include <linux/types.h>
使用内核 5.0.0
我在这里想念什么?