相关疑难解决方法(0)

如何在Linux内核中使用生物请求读取扇区

如何创建自己的生物请求以从磁盘驱动器读取扇区?

我正在尝试以下但它冻结了系统.

static void read_bio()
{
    struct bio *b;
    struct page *p;

    b = bio_alloc(GFP_KERNEL, 1);
    if (!b) {
        printk(KERN_INFO "bio allocation failed\n");
    }
    bio_init(b);

    b->bi_sector = 10000;
    b->bi_bdev = bd;    /* "/dev/sda1" */
    b->bi_end_io = bio_end_clone;

    p = alloc_page(GFP_KERNEL);
    if (!p) {
        printk(KERN_INFO "page allocation failed\n");
    }
    bio_add_page(b, p, PAGE_SIZE, 0);
    b->bi_private = p;

    bio_get(b);
    submit_bio(READ, b);
    printk(KERN_DEBUG "submit read request\n");
}
Run Code Online (Sandbox Code Playgroud)

linux kernel driver

10
推荐指数
1
解决办法
2685
查看次数

标签 统计

driver ×1

kernel ×1

linux ×1