ChibiOS/HAL 9.0.0
hal_queues.h File Reference

I/O Queues macros and structures. More...

Go to the source code of this file.

Data Structures

struct  io_queue
 Generic I/O queue structure. More...

Macros

Queue functions returned status value
#define Q_OK   MSG_OK
 Operation successful.
#define Q_TIMEOUT   MSG_TIMEOUT
 Timeout condition.
#define Q_RESET   MSG_RESET
 Queue has been reset.
#define Q_EMPTY   MSG_TIMEOUT
 Queue empty.
#define Q_FULL   MSG_TIMEOUT
 Queue full,.
Macro Functions
#define qSizeX(qp)
 Returns the queue's buffer size.
#define qSpaceI(qp)
 Queue space.
#define qGetLink(qp)
 Returns the queue application-defined link.
#define qSetLink(qp, lk)
 Sets the queue application-defined link.
#define iqGetFullI(iqp)
 Returns the filled space into an input queue.
#define iqGetEmptyI(iqp)
 Returns the empty space into an input queue.
#define iqIsEmptyI(iqp)
 Evaluates to true if the specified input queue is empty.
#define iqIsFullI(iqp)
 Evaluates to true if the specified input queue is full.
#define iqGet(iqp)
 Input queue read.
#define oqGetFullI(oqp)
 Returns the filled space into an output queue.
#define oqGetEmptyI(oqp)
 Returns the empty space into an output queue.
#define oqIsEmptyI(oqp)
 Evaluates to true if the specified output queue is empty.
#define oqIsFullI(oqp)
 Evaluates to true if the specified output queue is full.
#define oqPut(oqp, b)
 Output queue write.

Typedefs

typedef struct io_queue io_queue_t
 Type of a generic I/O queue structure.
typedef void(* qnotify_t) (io_queue_t *qp)
 Queue notification callback type.
typedef io_queue_t input_queue_t
 Type of an input queue structure.
typedef io_queue_t output_queue_t
 Type of an output queue structure.

Functions

void iqObjectInit (input_queue_t *iqp, uint8_t *bp, size_t size, qnotify_t infy, void *link)
 Initializes an input queue.
void iqResetI (input_queue_t *iqp)
 Resets an input queue.
msg_t iqPutI (input_queue_t *iqp, uint8_t b)
 Input queue write.
msg_t iqGetI (input_queue_t *iqp)
 Input queue non-blocking read.
msg_t iqGetTimeout (input_queue_t *iqp, sysinterval_t timeout)
 Input queue read with timeout.
size_t iqReadI (input_queue_t *iqp, uint8_t *bp, size_t n)
 Input queue non-blocking read.
size_t iqReadTimeout (input_queue_t *iqp, uint8_t *bp, size_t n, sysinterval_t timeout)
 Input queue read with timeout.
void oqObjectInit (output_queue_t *oqp, uint8_t *bp, size_t size, qnotify_t onfy, void *link)
 Initializes an output queue.
void oqResetI (output_queue_t *oqp)
 Resets an output queue.
msg_t oqPutI (output_queue_t *oqp, uint8_t b)
 Output queue non-blocking write.
msg_t oqPutTimeout (output_queue_t *oqp, uint8_t b, sysinterval_t timeout)
 Output queue write with timeout.
msg_t oqGetI (output_queue_t *oqp)
 Output queue read.
size_t oqWriteI (output_queue_t *oqp, const uint8_t *bp, size_t n)
 Output queue non-blocking write.
size_t oqWriteTimeout (output_queue_t *oqp, const uint8_t *bp, size_t n, sysinterval_t timeout)
 Output queue write with timeout.

Detailed Description

I/O Queues macros and structures.

Definition in file hal_queues.h.