room101/MEMORY.HPP

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