Changeset 9700578 in rtems for c/src/lib/include
- Timestamp:
- 10/30/95 21:54:45 (28 years ago)
- Branches:
- 4.10, 4.11, 4.8, 4.9, 5, master
- Children:
- c4808ca
- Parents:
- ea74482
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
c/src/lib/include/ringbuf.h
rea74482 r9700578 11 11 12 12 #ifndef RINGBUF_QUEUE_LENGTH 13 #define RINGBUF_QUEUE_LENGTH 20013 #define RINGBUF_QUEUE_LENGTH 128 14 14 #endif 15 15 16 16 typedef struct { 17 17 char buffer[RINGBUF_QUEUE_LENGTH]; 18 int head;19 int tail;18 volatile int head; 19 volatile int tail; 20 20 } Ring_buffer_t; 21 21 … … 28 28 ( (_buffer)->head == (_buffer)->tail ) 29 29 30 #define Ring_buffer_Is_full( _buffer ) \ 31 ( (_buffer)->head == ((_buffer)->tail + 1) % RINGBUF_QUEUE_LENGTH ) 32 30 33 #define Ring_buffer_Add_character( _buffer, _ch ) \ 31 34 do { \ 32 (_buffer)->buffer[ (_buffer)->tail ] = (_ch); \ 33 (_buffer)->tail = ((_buffer)->tail+1) % RINGBUF_QUEUE_LENGTH; \ 35 rtems_unsigned32 isrlevel; \ 36 \ 37 rtems_interrupt_disable( isrlevel ); \ 38 (_buffer)->tail = ((_buffer)->tail+1) % RINGBUF_QUEUE_LENGTH; \ 39 (_buffer)->buffer[ (_buffer)->tail ] = (_ch); \ 40 rtems_interrupt_enable( isrlevel ); \ 34 41 } while ( 0 ) 35 42 36 43 #define Ring_buffer_Remove_character( _buffer, _ch ) \ 37 44 do { \ 38 (_ch) = (_buffer)->buffer[ (_buffer)->head ]; \ 39 (_buffer)->head = ((_buffer)->head+1) % RINGBUF_QUEUE_LENGTH; \ 45 rtems_unsigned32 isrlevel; \ 46 \ 47 rtems_interrupt_disable( isrlevel ); \ 48 (_buffer)->head = ((_buffer)->head+1) % RINGBUF_QUEUE_LENGTH; \ 49 (_ch) = (_buffer)->buffer[ (_buffer)->head ]; \ 50 rtems_interrupt_enable( isrlevel ); \ 40 51 } while ( 0 ) 41 52
Note: See TracChangeset
for help on using the changeset viewer.