Files
CCU621M/BSP/ringfifo/ringfifo.h
T

30 lines
744 B
C

#ifndef RING_FIFO_H
#define RING_FIFO_H
#include <stdbool.h>
#include <stdint.h>
typedef void (*lock_fun)(void);
typedef struct
{
uint8_t *buf;
uint32_t buf_size;
uint32_t occupy_size;
uint8_t *pwrite;
uint8_t *pread;
void (*lock)(void);
void (*unlock)(void);
}_fifo_t;
void fifo_register(_fifo_t *pfifo, uint8_t *pfifo_buf, uint32_t size,
lock_fun lock, lock_fun unlock);
void fifo_release(_fifo_t *pfifo);
uint32_t fifo_write(_fifo_t *pfifo, const uint8_t *pbuf, uint32_t size);
uint32_t fifo_read(_fifo_t *pfifo, uint8_t *pbuf, uint32_t size);
uint32_t fifo_get_total_size(_fifo_t *pfifo);
uint32_t fifo_get_free_size(_fifo_t *pfifo);
uint32_t fifo_get_occupy_size(_fifo_t *pfifo);
#endif