ChibiOS/HAL  6.1.0
io_queue Struct Reference

Generic I/O queue structure. More...

#include <hal_queues.h>

Collaboration diagram for io_queue:
Collaboration graph

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...
 

Detailed Description

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.

Field Documentation

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
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().