WISP ERT (Client)  1.0.0
The WISP Extended Runtime (WISP side)
queue.h File Reference
#include "defs.h"

Go to the source code of this file.

Data Structures

struct  wio_queue_t
 WIO circular queue type. More...
 

Macros

#define WIO_QUEUE_AT(queue, type, index)   ((type*)(queue->data+index*queue->item_size))
 WIO queue member helper marco. More...
 
#define WIO_QUEUE_BEGIN(queue, type)   WIO_QUEUE_AT(queue, type, ((queue->begin==0)?(queue->capacity-1):(queue->begin-1)))
 WIO queue begin helper marco. More...
 
#define WIO_QUEUE_END(queue, type)   WIO_QUEUE_AT(queue, type, queue->end)
 WIO queue end helper marco. More...
 

Functions

wio_status_t wio_queue_init (wio_queue_t *self, uint16_t item_size, uint16_t capacity)
 Initialize a WIO queue. More...
 
wio_status_t wio_queue_fini (wio_queue_t *self)
 Finalize a WIO queue. More...
 
wio_status_t wio_queue_push (wio_queue_t *self, const void *item)
 Push an item into the queue. More...
 
wio_status_t wio_queue_pop (wio_queue_t *self, void *_item)
 Pop an item from the queue. More...
 

Macro Definition Documentation

◆ WIO_QUEUE_AT

#define WIO_QUEUE_AT (   queue,
  type,
  index 
)    ((type*)(queue->data+index*queue->item_size))

WIO queue member helper marco.

◆ WIO_QUEUE_BEGIN

#define WIO_QUEUE_BEGIN (   queue,
  type 
)    WIO_QUEUE_AT(queue, type, ((queue->begin==0)?(queue->capacity-1):(queue->begin-1)))

WIO queue begin helper marco.

◆ WIO_QUEUE_END

#define WIO_QUEUE_END (   queue,
  type 
)    WIO_QUEUE_AT(queue, type, queue->end)

WIO queue end helper marco.

Function Documentation

◆ wio_queue_fini()

wio_status_t wio_queue_fini ( wio_queue_t self)

Finalize a WIO queue.

Parameters
selfWIO queue instance.

◆ wio_queue_init()

wio_status_t wio_queue_init ( wio_queue_t self,
uint16_t  item_size,
uint16_t  capacity 
)

Initialize a WIO queue.

Parameters
selfWIO queue instance.
item_sizeQueue item size.
capacityQueue capacity.

◆ wio_queue_pop()

wio_status_t wio_queue_pop ( wio_queue_t self,
void *  _item 
)

Pop an item from the queue.

Parameters
selfWIO queue instance.
_itemItem to be popped from the queue.

◆ wio_queue_push()

wio_status_t wio_queue_push ( wio_queue_t self,
const void *  item 
)

Push an item into the queue.

Parameters
selfWIO queue instance.
itemItem to be pushed into the queue.