2008年1月7日 星期一

device without request queue

Some devices have no real need for a request queue. They can hande requests directly as they are generated.

However, the request queue must still be created. The queue will not be used to handle the actual requests, but it contains other infrastructure needed by the block subsystem

(1) create queue
request_queue_t *blk_alloc_queue(int gfp_mask);

(2) set up the request function
typedef int (make_request_fn) (request_queue_t *q, struct bio *bio);

(3) To arrange for your driver's function to be called
void blk_queue_make_request(request_queue_t *q, make_request_fn *func);

(4) when your driver shuts down, be sure to return the request queue to the system
void blk_put_queue(request_queue_t *queue);

沒有留言: