Skip to content

File syn_spi_queue.c

FileList > drivers > syn_spi_queue.c

Go to the source code of this file

Non-blocking SPI transaction queue driver implementation.

  • #include "syn_spi_queue.h"
  • #include "../port/syn_port_gpio.h"
  • #include "../port/syn_port_spi.h"
  • #include <string.h>

Public Functions

Type Name
SYN_Status syn_spi_queue_cancel_all (SYN_SPI_Queue * q)
Cancel all pending transactions in queue.
size_t syn_spi_queue_count (const SYN_SPI_Queue * q)
Query current pending transaction count.
SYN_Status syn_spi_queue_enqueue (SYN_SPI_Queue * q, const SYN_SPI_Transaction * tx)
Enqueue an SPI transaction for non-blocking execution.
SYN_Status syn_spi_queue_init (SYN_SPI_Queue * q, uint8_t bus)
Initialize an SPI transaction queue for a bus.
SYN_Status syn_spi_queue_process (SYN_SPI_Queue * q)
Process queue state machine (triggers pending transaction if idle).

Public Functions Documentation

function syn_spi_queue_cancel_all

Cancel all pending transactions in queue.

SYN_Status syn_spi_queue_cancel_all (
    SYN_SPI_Queue * q
) 

Parameters:

  • q Pointer to initialized queue handle.

Returns:

SYN_OK on success.


function syn_spi_queue_count

Query current pending transaction count.

size_t syn_spi_queue_count (
    const SYN_SPI_Queue * q
) 

Parameters:

  • q Pointer to queue handle.

Returns:

Number of queued items (0 if NULL or empty).


function syn_spi_queue_enqueue

Enqueue an SPI transaction for non-blocking execution.

SYN_Status syn_spi_queue_enqueue (
    SYN_SPI_Queue * q,
    const SYN_SPI_Transaction * tx
) 

Parameters:

  • q Pointer to initialized queue handle.
  • tx Transaction descriptor.

Returns:

SYN_OK if enqueued, SYN_BUSY if queue is full, SYN_INVALID_PARAM on invalid inputs.


function syn_spi_queue_init

Initialize an SPI transaction queue for a bus.

SYN_Status syn_spi_queue_init (
    SYN_SPI_Queue * q,
    uint8_t bus
) 

Parameters:

  • q Pointer to queue handle.
  • bus Target SPI bus index.

Returns:

SYN_OK on success, SYN_INVALID_PARAM if q is NULL.


function syn_spi_queue_process

Process queue state machine (triggers pending transaction if idle).

SYN_Status syn_spi_queue_process (
    SYN_SPI_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_spi_queue.c