48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
//
|
|
// Created by CFIF on 20.04.2022.
|
|
//
|
|
|
|
#ifndef XfcArray_H
|
|
#define XfcArray_H
|
|
|
|
#include "stdint.h"
|
|
#include "stdbool.h"
|
|
|
|
typedef struct {
|
|
uint8_t *data;
|
|
uint16_t begin;
|
|
uint16_t end;
|
|
uint16_t limit;
|
|
} tXfcArray;
|
|
|
|
|
|
#define XfcArrayCreateStatic(NAME, LENGTH) \
|
|
uint8_t NAME##_Data[LENGTH]; \
|
|
XfcArray NAME = { .data = NAME##_Data, .begin= 0, .end = 0, .limit = sizeof(NAME##_Data)};
|
|
|
|
void XfcArrayInit(tXfcArray *array, uint8_t *memAlloc, uint16_t limit);
|
|
|
|
#define XfcArrayInitStatic(ENV, MEM) XfcArrayInit(ENV,MEM,sizeof(MEM))
|
|
|
|
void XfcArrayClear(tXfcArray *array);
|
|
|
|
bool XfcArrayNotFull(tXfcArray *array);
|
|
|
|
uint16_t XfcArrayGetDataSize(tXfcArray *array);
|
|
|
|
uint8_t *XfcGetTail(tXfcArray *array);
|
|
|
|
bool XfcArrayAddByte(tXfcArray *array, uint8_t value);
|
|
|
|
uint16_t XfcArrayAddBytes(tXfcArray *array, uint8_t *bytes, uint16_t length);
|
|
|
|
uint16_t XfcArrayAddLength(tXfcArray *array, uint16_t length);
|
|
|
|
uint16_t XfcArrayGetSpace(tXfcArray *array);
|
|
|
|
uint16_t XfcArrayGetBytesFront(tXfcArray *array, uint8_t *bytes, uint16_t length);
|
|
|
|
void XfcArrayRemoveBytesFront(tXfcArray *env, uint16_t count);
|
|
|
|
#endif //XfcArray_H
|