7.块设备驱动的I/O请求处理
1.使用请求队列
块设备驱动在使用请求队列的场景下,会用blk_init_queue()初始化reqyest_queue,而函数的第一个参数就是请求处理函数的指针。request_queue会作为参数传递给我们在调用blk_init_queue()时指定的请求处理函数,块设备驱动请求处理函数的原型为:
static void xxx_req(struct request_queue *q);
这个函数不能由驱动自己调用,只有当内核认为是时候让驱动处理对设备的读写等操作时,他才调用这个函数。该函数的主要工作就是发起与request对应的块设备I/O动作(但是具体的I/O工作不一定要在该函数内同步完成)。 块设备驱动请求函数例程
static void msb_submit_req(struct request_queue *q)
{
struct memstick_dev *card = q->queu
共有 0 条评论