File syn_i2c_queue.h¶
FileList > drivers > syn_i2c_queue.h
Go to the source code of this file
Non-blocking I2C transaction queue driver for multi-client bus access.
#include "../common/syn_defs.h"#include "../port/syn_port_i2c.h"#include "../port/syn_port_i2c_async.h"#include <stdbool.h>#include <stddef.h>#include <stdint.h>
Classes¶
| Type | Name |
|---|---|
| struct | SYN_I2C_Queue I2C Transaction Queue instance handle. |
| struct | SYN_I2C_Transaction I2C Transaction Descriptor. |
Public Types¶
| Type | Name |
|---|---|
| typedef void(* | SYN_I2C_Queue_Callback I2C queue completion callback signature. |
Public Functions¶
| Type | Name |
|---|---|
| SYN_Status | syn_i2c_queue_cancel_all (SYN_I2C_Queue * q) Cancel all pending transactions in queue. |
| size_t | syn_i2c_queue_count (const SYN_I2C_Queue * q) Query current pending transaction count. |
| SYN_Status | syn_i2c_queue_enqueue (SYN_I2C_Queue * q, const SYN_I2C_Transaction * tx) Enqueue a transaction for non-blocking execution. |
| SYN_Status | syn_i2c_queue_init (SYN_I2C_Queue * q, uint8_t bus) Initialize an I2C transaction queue for a bus. |
| SYN_Status | syn_i2c_queue_process (SYN_I2C_Queue * q) Process queue state machine (triggers pending transaction if idle). |
Macros¶
| Type | Name |
|---|---|
| define | SYN_I2C_QUEUE_MAX_DEPTH 16 |
Public Types Documentation¶
typedef SYN_I2C_Queue_Callback¶
I2C queue completion callback signature.
Parameters:
busI2C bus index.resultSYN_OK on success, error status code on failure.user_dataContext pointer passed with transaction descriptor.
Public Functions Documentation¶
function syn_i2c_queue_cancel_all¶
Cancel all pending transactions in queue.
Parameters:
qPointer to initialized queue handle.
Returns:
SYN_OK on success.
function syn_i2c_queue_count¶
Query current pending transaction count.
Parameters:
qPointer to queue handle.
Returns:
Number of queued items (0 if NULL or empty).
function syn_i2c_queue_enqueue¶
Enqueue a transaction for non-blocking execution.
Parameters:
qPointer to initialized queue handle.txTransaction descriptor.
Returns:
SYN_OK if enqueued, SYN_FULL if queue is full, SYN_INVALID_PARAM on invalid inputs.
function syn_i2c_queue_init¶
Initialize an I2C transaction queue for a bus.
Parameters:
qPointer to queue handle.busTarget I2C bus index.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if q is NULL.
function syn_i2c_queue_process¶
Process queue state machine (triggers pending transaction if idle).
Parameters:
qPointer to initialized queue handle.
Returns:
SYN_OK on success.
Macro Definition Documentation¶
define SYN_I2C_QUEUE_MAX_DEPTH¶
Maximum pending transactions per I2C queue instance
The documentation for this class was generated from the following file src/syntropic/drivers/syn_i2c_queue.h