1
0
mirror of https://github.com/Yours3lf/rpi-vk-driver.git synced 2024-12-12 00:08:54 +01:00
rpi-vk-driver/driver/ConsecutivePoolAllocator.h

31 lines
956 B
C
Raw Normal View History

2018-05-20 16:09:41 +02:00
#pragma once
#if defined (__cplusplus)
extern "C" {
#endif
#include "CustomAssert.h"
#include <stdint.h>
typedef struct ConsecutivePoolAllocator
{
2020-06-08 19:54:57 +02:00
void* buf; //preallocated buffer
void* nextFreeBlock;
2018-05-20 16:09:41 +02:00
unsigned blockSize;
unsigned size; //size is exact multiple of block size
2020-05-29 22:49:16 +02:00
unsigned numFreeBlocks;
2018-05-20 16:09:41 +02:00
} ConsecutivePoolAllocator;
2020-06-08 19:54:57 +02:00
ConsecutivePoolAllocator createConsecutivePoolAllocator(void* b, unsigned bs, unsigned s);
2018-08-26 15:11:43 +02:00
void destroyConsecutivePoolAllocator(ConsecutivePoolAllocator* pa);
uint32_t consecutivePoolAllocate(ConsecutivePoolAllocator* pa, uint32_t numBlocks);
2018-08-26 15:11:43 +02:00
void consecutivePoolFree(ConsecutivePoolAllocator* pa, void* p, uint32_t numBlocks);
uint32_t consecutivePoolReAllocate(ConsecutivePoolAllocator* pa, void* currentMem, uint32_t currNumBlocks, uint32_t newNumBlocks);
2020-03-05 22:18:26 +01:00
void CPAdebugPrint(ConsecutivePoolAllocator* pa);
void* getCPAptrFromOffset(ConsecutivePoolAllocator* pa, uint32_t offset);
2018-05-20 16:09:41 +02:00
#if defined (__cplusplus)
}
#endif