ChibiOS/HAL  6.1.0
io_buffers_queue Struct Reference

Structure of a generic buffers queue. More...

#include <hal_buffers.h>

Collaboration diagram for io_buffers_queue:
Collaboration graph

Data Fields

threads_queue_t waiting
 Queue of waiting threads. More...
 
bool suspended
 Queue suspended state flag. More...
 
volatile size_t bcounter
 Active buffers counter. More...
 
uint8_t * bwrptr
 Buffer write pointer. More...
 
uint8_t * brdptr
 Buffer read pointer. More...
 
uint8_t * btop
 Pointer to the buffers boundary. More...
 
size_t bsize
 Size of buffers. More...
 
size_t bn
 Number of buffers. More...
 
uint8_t * buffers
 Queue of buffer objects. More...
 
uint8_t * ptr
 Pointer for R/W sequential access. More...
 
uint8_t * top
 Boundary for R/W sequential access. More...
 
bqnotify_t notify
 Data notification callback. More...
 
void * link
 Application defined field. More...
 

Detailed Description

Structure of a generic buffers queue.

Definition at line 59 of file hal_buffers.h.

Field Documentation

bool io_buffers_queue::suspended

Queue suspended state flag.

Definition at line 67 of file hal_buffers.h.

Referenced by ibqGetFullBufferTimeoutS(), ibqObjectInit(), obqGetEmptyBufferTimeoutS(), and obqObjectInit().

volatile size_t io_buffers_queue::bcounter
uint8_t* io_buffers_queue::bwrptr
uint8_t* io_buffers_queue::brdptr
uint8_t* io_buffers_queue::btop
size_t io_buffers_queue::bsize

Size of buffers.

Note
The buffer size must be not lower than sizeof(size_t) + 2 because the first bytes are used to store the used size of the buffer.

Definition at line 90 of file hal_buffers.h.

Referenced by ibqObjectInit(), ibqPostFullBufferI(), ibqReleaseEmptyBufferS(), obqGetEmptyBufferTimeoutS(), obqObjectInit(), obqPostFullBufferS(), obqPutTimeout(), obqReleaseEmptyBufferI(), obqTryFlushI(), and obqWriteTimeout().

size_t io_buffers_queue::bn

Number of buffers.

Definition at line 94 of file hal_buffers.h.

Referenced by ibqObjectInit(), and obqObjectInit().

uint8_t* io_buffers_queue::buffers
uint8_t* io_buffers_queue::ptr

Pointer for R/W sequential access.

Note
It is NULL if a new buffer must be fetched from the queue.

Definition at line 103 of file hal_buffers.h.

Referenced by ibqGetFullBufferTimeoutS(), ibqGetTimeout(), ibqObjectInit(), ibqReadTimeout(), ibqReleaseEmptyBufferS(), ibqResetI(), obqFlush(), obqGetEmptyBufferTimeoutS(), obqObjectInit(), obqPostFullBufferS(), obqPutTimeout(), obqResetI(), obqTryFlushI(), and obqWriteTimeout().

uint8_t* io_buffers_queue::top
bqnotify_t io_buffers_queue::notify

Data notification callback.

Definition at line 111 of file hal_buffers.h.

Referenced by ibqObjectInit(), ibqReleaseEmptyBufferS(), obqObjectInit(), and obqPostFullBufferS().

void* io_buffers_queue::link

Application defined field.

Definition at line 115 of file hal_buffers.h.

Referenced by ibqObjectInit(), and obqObjectInit().