linux内核模块无法找到“ nvme_ns”结构

时间:2019-10-07 00:33:48

标签: c linux-kernel include kernel-module nvme

我正在编写一个模块,在该模块中,我将使用大号和小号访问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

我在这里想念什么?

0 个答案:

没有答案