mu/kernel.soso/fifobuffer.h
Kartik Agaram 46bb1d3157 5650 - support a second OS: soso
https://github.com/ozkl/soso

+ Much smaller than Linux; builds instantly
+ Supports graphics
- No network support
- Doesn't work on a cloud server (yet?)
2019-09-14 01:45:55 -07:00

26 lines
738 B
C

#ifndef FIFOBUFFER_H
#define FIFOBUFFER_H
#include "common.h"
typedef struct FifoBuffer
{
uint8* data;
uint32 writeIndex;
uint32 readIndex;
uint32 capacity;
uint32 usedBytes;
} FifoBuffer;
FifoBuffer* FifoBuffer_create(uint32 capacity);
void FifoBuffer_destroy(FifoBuffer* fifoBuffer);
void FifoBuffer_clear(FifoBuffer* fifoBuffer);
BOOL FifoBuffer_isEmpty(FifoBuffer* fifoBuffer);
uint32 FifoBuffer_getSize(FifoBuffer* fifoBuffer);
uint32 FifoBuffer_getCapacity(FifoBuffer* fifoBuffer);
uint32 FifoBuffer_getFree(FifoBuffer* fifoBuffer);
int32 FifoBuffer_enqueue(FifoBuffer* fifoBuffer, uint8* data, uint32 size);
int32 FifoBuffer_dequeue(FifoBuffer* fifoBuffer, uint8* data, uint32 size);
#endif // FIFOBUFFER_H