Pogosim
Loading...
Searching...
No Matches
FifoBuffer.h File Reference

Go to the source code of this file.

Macros

#define FifoBuffer_typedef(T, NAME)
#define FifoBuffer_init(BUF, S, T, BUFMEM)
#define FifoBuffer_write(BUF, ELEM)
#define FifoBuffer_read(BUF, ELEM)
#define FifoBuffer_peek(BUF, ELEM, INDEX)
#define FifoBuffer_flush(BUF)
#define FifoBuffer_count(BUF)
#define FifoBuffer_is_full(BUF)
#define FifoBuffer_is_empty(BUF)
#define FifoBuffer_overflow(BUF)

Macro Definition Documentation

◆ FifoBuffer_count

#define FifoBuffer_count ( BUF)
Value:
(BUF->write_count-BUF->read_count)

◆ FifoBuffer_flush

#define FifoBuffer_flush ( BUF)
Value:
BUF->start = 0; \
BUF->end = 0; \
BUF->read_count=0;\
BUF->write_count=0;

◆ FifoBuffer_init

#define FifoBuffer_init ( BUF,
S,
T,
BUFMEM )
Value:
BUF->size = S; \
BUF->start = 0; \
BUF->end = 0; \
BUF->read_count=0;\
BUF->write_count=0;\
BUF->elems = (T*)BUFMEM

◆ FifoBuffer_is_empty

#define FifoBuffer_is_empty ( BUF)
Value:
#define FifoBuffer_count(BUF)
Definition FifoBuffer.h:51

◆ FifoBuffer_is_full

#define FifoBuffer_is_full ( BUF)
Value:
(FifoBuffer_count(BUF)==BUF->size)

◆ FifoBuffer_overflow

#define FifoBuffer_overflow ( BUF)
Value:
(FifoBuffer_count(BUF)>=BUF->size)

◆ FifoBuffer_peek

#define FifoBuffer_peek ( BUF,
ELEM,
INDEX )
Value:
ELEM=BUF->elems[BUF->start+INDEX];

◆ FifoBuffer_read

#define FifoBuffer_read ( BUF,
ELEM )
Value:
ELEM=BUF->elems[BUF->start];\
BUF->read_count++;\
BUF->start=(BUF->start+1)%BUF->size;

◆ FifoBuffer_typedef

#define FifoBuffer_typedef ( T,
NAME )
Value:
typedef struct { \
int size; \
int start; \
int end; \
int write_count;\
int read_count;\
T* elems; \
} NAME

POGOBOT

Copyright © 2022 Sorbonne Université ISIR This file is licensed under the Expat License, sometimes known as the MIT License. Please refer to file LICENCE for details.

orignal code from : https://github.com/jeethridge/embedded-c-generic-fifo

◆ FifoBuffer_write

#define FifoBuffer_write ( BUF,
ELEM )
Value:
BUF->elems[BUF->end]=ELEM;\
BUF->write_count++;\
BUF->end=(BUF->end+1)%BUF->size;