XenevaOS
Loading...
Searching...
No Matches
circbuf.h
Go to the documentation of this file.
1
30#ifndef __CIRC_BUF_H__
31#define __CIRC_BUF_H__
32
33#include <stdint.h>
34
35#if defined(__GNUC__) || defined(__clang__)
36#include <stddef.h>
37#ifndef __cplusplus
38#include <stdbool.h>
39#endif
40#endif
41
42
43typedef struct _circ_buf_ {
45 size_t head;
46 size_t tail;
47 size_t max;
48 bool full;
50
51
52/*
53* AuAdvancePointer -- advances the pointer
54* of the buffer
55* @param cbuf -- Pointer to the circular buffer
56*/
57extern void AuAdvancePointer(CircBuffer *cbuf);
58
59/*
60* AuRetreatPointer -- retreat the pointer of
61* the buffer
62* @param cbuf -- Pointer to the circular buffer
63*/
64extern void AuRetreatPointer(CircBuffer *cbuf);
65
66/*
67* AuCircBufReset -- reset the entire buffer
68* @param cbuf -- Pointer to the circular buffer
69*/
70extern void AuCircBufReset(CircBuffer *cbuf);
71
72/*
73* AuCircBufInitialise -- initialise a new circular buffer
74* @param buffer -- Pointer to the actual buffer pointer
75* @param sz -- size of the buffer
76*/
77extern CircBuffer* AuCircBufInitialise(uint8_t* buffer, size_t sz);
78
79/*
80* AuCircBufFree -- free a circular buffer
81* @param cbuf -- Pointer to the circular buffer
82* to free
83*/
84extern void AuCircBufFree(CircBuffer *cbuf);
85
86/*
87* AuCircBufSize -- returns the circular
88* buffer size
89* @param cbuf -- Pointer to the circular
90* buffer size
91*/
92extern size_t AuCircBufSize(CircBuffer *cbuf);
93
94/*
95* AuCircBufCapacity -- returns the circular
96* buffer capacity
97*/
98extern size_t AuCircBufCapacity(CircBuffer *cbuf);
99
100/*
101* AuCircBufPutData -- puts a data to circular buffer
102* @param cbuf-- Pointer to the circular buffer
103* @param data -- data to put
104*/
105extern void AuCircBufPutData(CircBuffer* cbuf, uint8_t data);
106
107/*
108* AuCircBufPut -- puts data onto circular buffer
109* @param cbuf -- Pointer to the circular buffer
110* @param data -- data to put
111*/
112extern int AuCircBufPut(CircBuffer* cbuf, uint8_t data);
113
114/*
115* AuCircBufGet -- gets a data from circular
116* buffer
117* @param cbuf -- Pointer to the circular buffer
118* @param data -- Pointer to the buffer
119* where to put the data
120*/
121extern int AuCircBufGet(CircBuffer *cbuf, uint8_t *data);
122
123/*
124* CircBufEmpty -- checks if the circular
125* buffer is empty
126* @param cbuf -- Pointer to the circular
127* buffer
128*/
129extern bool CircBufEmpty(CircBuffer *cbuf);
130
131/*
132* CircBufFull -- checks if the circular
133* buffer is full
134* @param cbuf -- Pointer to the circular
135* buffer
136*/
137extern bool CircBufFull(CircBuffer *cbuf);
138
139
140#endif
unsigned char uint8_t
Definition acefiex.h:161
size_t AuCircBufCapacity(CircBuffer *cbuf)
AuCircBufCapacity – returns the circular buffer capacity.
Definition circbuf.cpp:110
CircBuffer * AuCircBufInitialise(uint8_t *buffer, size_t sz)
AuCircBufInitialise – initialise a new circular buffer.
Definition circbuf.cpp:71
bool CircBufEmpty(CircBuffer *cbuf)
CircBufEmpty – checks if the circular buffer is empty.
Definition circbuf.cpp:165
int AuCircBufGet(CircBuffer *cbuf, uint8_t *data)
AuCircBufGet – gets a data from circular buffer.
Definition circbuf.cpp:147
void AuAdvancePointer(CircBuffer *cbuf)
AuAdvancePointer – advances the pointer of the buffer.
Definition circbuf.cpp:38
int AuCircBufPut(CircBuffer *cbuf, uint8_t data)
AuCircBufPut – puts data onto circular buffer.
Definition circbuf.cpp:129
void AuCircBufFree(CircBuffer *cbuf)
AuCircBufFree – free a circular buffer.
Definition circbuf.cpp:84
struct _circ_buf_ CircBuffer
void AuRetreatPointer(CircBuffer *cbuf)
AuRetreatPointer – retreat the pointer of the buffer.
Definition circbuf.cpp:51
void AuCircBufReset(CircBuffer *cbuf)
AuCircBufReset – reset the entire buffer.
Definition circbuf.cpp:60
bool CircBufFull(CircBuffer *cbuf)
CircBufFull – checks if the circular buffer is full.
Definition circbuf.cpp:176
size_t AuCircBufSize(CircBuffer *cbuf)
AuCircBufSize – returns the circular buffer size.
Definition circbuf.cpp:94
void AuCircBufPutData(CircBuffer *cbuf, uint8_t data)
AuCircBufPutData – puts a data to circular buffer.
Definition circbuf.cpp:119
Definition circbuf.h:43
size_t tail
Definition circbuf.h:46
bool full
Definition circbuf.h:48
size_t head
Definition circbuf.h:45
uint8_t * buffer
Definition circbuf.h:44
size_t max
Definition circbuf.h:47