ChibiOS 21.11.4
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.
volatile size_t q_counter
 Resources counter.
uint8_t * q_buffer
 Pointer to the queue buffer.
uint8_t * q_top
 Pointer to the first location after the buffer.
uint8_t * q_wrptr
 Write pointer.
uint8_t * q_rdptr
 Read pointer.
qnotify_t q_notify
 Data notification callback.
void * q_link
 Application defined field.

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

◆ q_waiting

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

◆ q_counter

volatile size_t io_queue::q_counter

◆ q_buffer

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

◆ q_top

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

◆ q_wrptr

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

◆ q_rdptr

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

◆ q_notify

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

◆ q_link

void* io_queue::q_link

Application defined field.

Definition at line 84 of file hal_queues.h.

Referenced by __bsio_onotify(), iqObjectInit(), and oqObjectInit().