summaryrefslogtreecommitdiff
path: root/include/TRK_MINNOW_DOLPHIN/utils/common/CircleBuffer.h
blob: 0e4e4c090955988465e935bb0d865c97f82e9ab3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#ifndef UTILS_COMMON_CIRCLEBUFFER_H
#define UTILS_COMMON_CIRCLEBUFFER_H

#include <types.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef struct CircleBuffer {
    u8* read_ptr;
    u8* write_ptr;
    u8* start_ptr;
    u32 size;
    s32 mBytesToRead;
    u32 mBytesToWrite;
    u32 mCriticalSection;
} CircleBuffer;

int CircleBufferReadBytes(CircleBuffer*, u8*, u32);
int CircleBufferWriteBytes(CircleBuffer*, u8*, u32);
void CircleBufferInitialize(CircleBuffer*, u8*, s32);
u32 CBGetBytesAvailableForRead(CircleBuffer*);

#ifdef __cplusplus
}
#endif

#endif /* UTILS_COMMON_CIRCLEBUFFER_H */