我想编写一个小型的 Linux 驱动程序扩展。更具体地说:我想将主机和 M.2-nvme-ssd 之间的所有通信写入用户空间文件中。不过 nvme 驱动程序相当大,我很难确定从哪里开始。
我的一位同事对 SD 卡做了类似的事情。他在主机收到卡的响应并即将结束操作后跟踪IO(函数是sdhci_request_done
)。跟踪显示带有操作码、数据和时间戳的请求和响应。像这样的事情将是我的目标。
我发现了跟踪 IO 的程序,但它们在用户空间中运行。这是一个问题,因为我可能会直接从驱动程序向卡发送消息。
所以我的问题是:我在哪里进入主机驱动程序来获取数据,而不延迟操作或分配太多内存。或者是否有一个驱动程序功能可以做到这一点?