Skip to content

File syn_i2c_queue.c

FileList > drivers > syn_i2c_queue.c

Go to the source code of this file

Non-blocking I2C transaction queue driver implementation.

  • #include "syn_i2c_queue.h"
  • #include "../port/syn_port_i2c.h"
  • #include <string.h>

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

Public Functions Documentation

function syn_i2c_queue_cancel_all

Cancel all pending transactions in queue.

SYN_Status syn_i2c_queue_cancel_all (
    SYN_I2C_Queue * q
) 

Parameters:

  • q Pointer to initialized queue handle.

Returns:

SYN_OK on success.


function syn_i2c_queue_count

Query current pending transaction count.

size_t syn_i2c_queue_count (
    const SYN_I2C_Queue * q
) 

Parameters:

  • q Pointer 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.

SYN_Status syn_i2c_queue_enqueue (
    SYN_I2C_Queue * q,
    const SYN_I2C_Transaction * tx
) 

Parameters:

  • q Pointer to initialized queue handle.
  • tx Transaction 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.

SYN_Status syn_i2c_queue_init (
    SYN_I2C_Queue * q,
    uint8_t bus
) 

Parameters:

  • q Pointer to queue handle.
  • bus Target 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).

SYN_Status syn_i2c_queue_process (
    SYN_I2C_Queue * q
) 

Parameters:

  • q Pointer to initialized queue handle.

Returns:

SYN_OK on success.



The documentation for this class was generated from the following file src/syntropic/drivers/syn_i2c_queue.c