鉴于磁盘上的分区,我想检索dev_t
整个磁盘的结构。这是给blkext
司机的,比如nvme
.
就像是:
dev_t part_disk;
dev_t whole_disk = get_whole_disk_dev_t(part_disk);
我希望我的界面get_whole_disk_dev_t()
是:
参数dev_t
::part_disk
返回dev_t
::whole_disk
我提出的算法:
dev_t
从即“/dev/nvme1n1p3”获取分区磁盘的路径。我找不到任何 API 来获取路径dev_t
。- 做一些字符串操作来删除“p3”,给出整个磁盘的路径
- 传递整个磁盘的 path_name
blk_lookup_devt
以获取整个磁盘的路径dev_t
。
IEwhole_disk=blk_lookup_devt(path_name,0)
这是正确的方法还是有更好的方法?如果是前者,那么我该如何获取路径dev_t
?
PS:我需要在设备驱动程序中实现它(即在内核上下文中)。在用户空间中,我知道我可以使用udev
API。