EmbLogic's Blog

Basic request queue function

Queue creation and deletion
request_queue_t *blk_init_queue(request_fn_proc *request, spinlock_t *lock);

 

The arguments are, of course, the request  function for this queue and a spinlock that controls access to the  queue. 

This function allocates memory (quite a bit of memory,  actually) and can fail because of this; you should

 always check the  return value before attempting to use the queue.
 As part of the initialization of a request queue, you can set the  field queuedata 
(which is a void  * pointer) to any value you like. This field is the request  
queue's equivalent to the  private_data we have seen in other structures. 
To return a request queue to the system (at module unload time,  generally), call  blk_cleanup_queue :
 void blk_cleanup_queue(request_queue_t *);

After this call, your driver sees no more requests from the given  
queue and should not reference it again.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>