Circular queue

3 messages, 3 authors, 2007-07-26 · open the first message on its own page

Circular queue

From: David H. Lynch Jr. <hidden>
Date: 2007-07-24 08:21:08

    Is there a standard linux datastructure and routines to manage
circular queues ?

    I have a device that is not fundimentally different from a serial
character device
    except it is faster and the fundimental data type is 36 bits large.

    I have coded my own routines to setup and maintain a simple circular
queue,
    but I was hoping that there might be something more standard that
already exists.

    Anyone know of anything ?
   

   





-- 
Dave Lynch 					  	    DLA Systems
Software Development:  				         Embedded Linux
717.627.3770 	       dhlii@dlasys.net 	  http://www.dlasys.net
fax: 1.253.369.9244 			           Cell: 1.717.587.7774
Over 25 years' experience in platforms, languages, and technologies too numerous to list.

"Any intelligent fool can make things bigger and more complex... It takes a touch of genius - and a lot of courage to move in the opposite direction."
Albert Einstein

Re: Circular queue

From: Misbah khan <hidden>
Date: 2007-07-25 06:26:36

hi ....

Yes ofcourse there is a data structure for circular buffer implementation in
the driver but for the version 2.6.10 and onwards. Just see the
documentation on header file <linux/kfifo.h> I myself never tried with this
,where in i had implimented a circular buffer in the kernel and you need to
take care with the read index and write index. I suggest you to built your
own circular buffer insted on relaying on the standered because as far as i
know you should not relay on something new and untested . If you feel any
problem in the implementation i can help you in that. 

regard 
Misbah


David H. Lynch Jr.-2 wrote:
    Is there a standard linux datastructure and routines to manage
circular queues ?

    I have a device that is not fundimentally different from a serial
character device
    except it is faster and the fundimental data type is 36 bits large.

    I have coded my own routines to setup and maintain a simple circular
queue,
    but I was hoping that there might be something more standard that
already exists.

    Anyone know of anything ?
   

   





-- 
Dave Lynch 					  	    DLA Systems
Software Development:  				         Embedded Linux
717.627.3770 	       dhlii@dlasys.net 	  http://www.dlasys.net
fax: 1.253.369.9244 			           Cell: 1.717.587.7774
Over 25 years' experience in platforms, languages, and technologies too
numerous to list.

"Any intelligent fool can make things bigger and more complex... It takes
a touch of genius - and a lot of courage to move in the opposite
direction."
Albert Einstein

_______________________________________________
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded
-- 
View this message in context: http://www.nabble.com/Circular-queue-tf4134423.html#a11777050
Sent from the linuxppc-embedded mailing list archive at Nabble.com.

Re: Circular queue

From: David Hawkins <hidden>
Date: 2007-07-26 19:56:23

David H. Lynch Jr. wrote:
    Is there a standard linux datastructure and routines to manage
circular queues ?

    I have a device that is not fundimentally different from a serial
character device
    except it is faster and the fundimental data type is 36 bits large.

    I have coded my own routines to setup and maintain a simple circular
queue,
    but I was hoping that there might be something more standard that
already exists.

    Anyone know of anything ?
Hi David,

Have you looked at the linked-list support? You can use it
for a circular queue.

I just copied the following comments from some driver examples
I wrote a while back:

http://www.ovro.caltech.edu/~dwh/correlator/software/driver_design.tar.gz
http://www.ovro.caltech.edu/~dwh/correlator/pdf/LNX-723-Hawkins.pdf

  simple_page_buffer.c

  *-----------------------------------------------------------------
  * References:
  * [1] "Linux device drivers", 3rd Ed, J. Corbet, A. Rubini,
  *      G. Kroah-Hartman, 2005
  * [2] "Linux kernel development", 2nd Ed., R. Love.
  *-----------------------------------------------------------------
  */

  * For details on linked-lists, see p295 [1] and p345 [2].

I didn't look at the code again, but I'm pretty sure I used the
linked list for a circular buffer.

Cheers
Dave
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help