如何在 Linux 驱动程序中列出 MMC 分区?
How can I list MMC partitions in a Linux driver?
我正在尝试读取存储在 eMMC 上的 U-Boot 环境,但我不知道如何列出磁盘。我正在创建的驱动程序与 mmc 设备驱动程序分开 (/dev/mmcblk0p1)。
我已经发现 mmcblk0
的分区是 struct mmc_part entries in struct mmc_card. Basically I'm searching for the mmc variant of __mtd_next_device。
编辑 1:
我发现我可以得到一个 block_device struct through bdget,但是 gendisk
指向 NULL
。
struct block_device *my_bdevice;
struct gendisk *my_gdisk;
my_bdevice = bdget(179);
my_gdisk = part_to_disk(my_bdevice->bd_part);
if (!my_gdisk) goto end; // Goes to end..
在我上面的代码中,my_bdevice = bdget(179);
是错误的:
dev_t devt = blk_lookup_devt("mmcblk0", 0);
my_bdevice = bdget(devt);
我正在尝试读取存储在 eMMC 上的 U-Boot 环境,但我不知道如何列出磁盘。我正在创建的驱动程序与 mmc 设备驱动程序分开 (/dev/mmcblk0p1)。
我已经发现 mmcblk0
的分区是 struct mmc_part entries in struct mmc_card. Basically I'm searching for the mmc variant of __mtd_next_device。
编辑 1:
我发现我可以得到一个 block_device struct through bdget,但是 gendisk
指向 NULL
。
struct block_device *my_bdevice;
struct gendisk *my_gdisk;
my_bdevice = bdget(179);
my_gdisk = part_to_disk(my_bdevice->bd_part);
if (!my_gdisk) goto end; // Goes to end..
在我上面的代码中,my_bdevice = bdget(179);
是错误的:
dev_t devt = blk_lookup_devt("mmcblk0", 0);
my_bdevice = bdget(devt);