The following example demonstrates how to initialize and utilize a memory pool.
#include <stdio.h> #include "ST_API.h" /* 16 KB global memory buffer */ UINT8 BufferedMemory[16 * 1024]; /* 4 MB block located at address 0x10000 */ PVOID HiMemoryAddress = (PVOID) 0x00010000; SIZE HiMemorySize = 4 * 1048576; int main(void) { ULONG TotalSize, FreeSize; /* Initialization */ arInit(); stInit(); /* Initialize BufferedMemory */ stMemoryInit(BufferedMemory, sizeof(BufferedMemory)); /* Initialize HiMemory */ stMemoryInit(HiMemoryAddress, HiMemorySize); /* Allocate 1 KB from BufferedMemory */ stMemoryAlloc(BufferedMemory, 1024); /* Allocate 32 KB from HiMemory */ stMemoryAlloc(HiMemoryAddress, 32 * 1024); /* Print memory capacity information for BufferedMemory */ stMemoryGetInfo(BufferedMemory, &TotalSize, &FreeSize); printf("BufferedMemory: %i/%i\n", FreeSize, TotalSize); /* Print memory capacity information for HiMemory */ stMemoryGetInfo(HiMemoryAddress, &TotalSize, &FreeSize); printf("HiMemory: %i/%i\n", FreeSize, TotalSize); /* Deinitialization */ arDeinit(); return 0; }