45 lines
1.2 KiB
C++
45 lines
1.2 KiB
C++
#ifndef __MEMORY_H
|
|
#define __MEMORY_H
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
typedef struct
|
|
{
|
|
int count;
|
|
int size;
|
|
} MemoryHeader;
|
|
/*******************************************************************************
|
|
** ItemSize
|
|
*******************************************************************************/
|
|
inline int
|
|
ItemSize(void* memory)
|
|
{
|
|
return memory ? ((MemoryHeader*)memory)[-1].size : 0;
|
|
}
|
|
/*******************************************************************************
|
|
** NumberOf
|
|
*******************************************************************************/
|
|
inline int
|
|
NumberOf(void* memory)
|
|
{
|
|
return memory ? ((MemoryHeader*)memory)[-1].count : 0;
|
|
}
|
|
/*******************************************************************************
|
|
** MemorySize
|
|
*******************************************************************************/
|
|
inline int
|
|
MemorySize(void* memory)
|
|
{
|
|
return ItemSize(memory) * NumberOf(memory);
|
|
}
|
|
|
|
void* MemoryRealloc(void*, int, int);
|
|
void* MemoryAlloc(int count, int size);
|
|
void MemoryFree(void*);
|
|
void MemoryWrite(void*, FILE*);
|
|
void MemoryWrite(void*, int, int, FILE*);
|
|
void* MemoryRead(FILE*);
|
|
|
|
#endif
|