| ChibiOS
    19.1.4
    | 
Generic I/O queue structure. More...
#include <hal_queues.h>

| Data Fields | |
| threads_queue_t | q_waiting | 
| Queue of waiting threads.  More... | |
| volatile size_t | q_counter | 
| Resources counter.  More... | |
| uint8_t * | q_buffer | 
| Pointer to the queue buffer.  More... | |
| uint8_t * | q_top | 
| Pointer to the first location after the buffer.  More... | |
| uint8_t * | q_wrptr | 
| Write pointer.  More... | |
| uint8_t * | q_rdptr | 
| Read pointer.  More... | |
| qnotify_t | q_notify | 
| Data notification callback.  More... | |
| void * | q_link | 
| Application defined field.  More... | |
Generic I/O queue structure.
This structure represents a generic Input or Output asymmetrical queue. The queue is asymmetrical because one end is meant to be accessed from a thread context, and thus can be blocking, the other end is accessible from interrupt handlers or from within a kernel lock zone and is non-blocking.
Definition at line 75 of file hal_queues.h.
| threads_queue_t io_queue::q_waiting | 
Queue of waiting threads.
Definition at line 76 of file hal_queues.h.
Referenced by iqGetTimeout(), iqObjectInit(), iqPutI(), iqReadTimeout(), iqResetI(), oqGetI(), oqObjectInit(), oqPutTimeout(), oqResetI(), and oqWriteTimeout().
| volatile size_t io_queue::q_counter | 
Resources counter.
Definition at line 77 of file hal_queues.h.
Referenced by iq_read(), iqGetI(), iqGetTimeout(), iqObjectInit(), iqPutI(), iqResetI(), oq_write(), oqGetI(), oqObjectInit(), oqPutI(), oqPutTimeout(), and oqResetI().
| uint8_t* io_queue::q_buffer | 
Pointer to the queue buffer.
Definition at line 78 of file hal_queues.h.
Referenced by iq_read(), iqGetI(), iqGetTimeout(), iqObjectInit(), iqPutI(), iqResetI(), oq_write(), oqGetI(), oqObjectInit(), oqPutI(), oqPutTimeout(), and oqResetI().
| uint8_t* io_queue::q_top | 
Pointer to the first location after the buffer.
Definition at line 79 of file hal_queues.h.
Referenced by iq_read(), iqGetI(), iqGetTimeout(), iqObjectInit(), iqPutI(), oq_write(), oqGetI(), oqObjectInit(), oqPutI(), and oqPutTimeout().
| uint8_t* io_queue::q_wrptr | 
Write pointer.
Definition at line 81 of file hal_queues.h.
Referenced by iqObjectInit(), iqPutI(), iqResetI(), oq_write(), oqObjectInit(), oqPutI(), oqPutTimeout(), and oqResetI().
| uint8_t* io_queue::q_rdptr | 
Read pointer.
Definition at line 82 of file hal_queues.h.
Referenced by iq_read(), iqGetI(), iqGetTimeout(), iqObjectInit(), iqResetI(), oqGetI(), oqObjectInit(), and oqResetI().
| qnotify_t io_queue::q_notify | 
Data notification callback.
Definition at line 83 of file hal_queues.h.
Referenced by iqGetI(), iqGetTimeout(), iqObjectInit(), iqReadI(), iqReadTimeout(), oqObjectInit(), oqPutI(), oqPutTimeout(), oqWriteI(), and oqWriteTimeout().
| void* io_queue::q_link | 
Application defined field.
Definition at line 84 of file hal_queues.h.
Referenced by iqObjectInit(), and oqObjectInit().