X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=zone.h;h=6caa039087b83085bd86f53fc5e5429ad551d76b;hb=ef1593610d977fe10d1f9225ab4f9111b02ef3fc;hp=c2f11907e413060c0fc8864ee7cec8e97263eda1;hpb=d3edab857eac367d4968f05f3e32ac2a9aa385b6;p=xonotic%2Fdarkplaces.git diff --git a/zone.h b/zone.h index c2f11907..6caa0390 100644 --- a/zone.h +++ b/zone.h @@ -21,6 +21,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #ifndef ZONE_H #define ZONE_H +extern qboolean mem_bigendian; + // div0: heap overflow detection paranoia #define MEMPARANOIA 0 @@ -30,6 +32,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. typedef struct memheader_s { + // address returned by Chunk_Alloc (may be significantly before this header to satisify alignment) + void *baseaddress; // next and previous memheaders in chain belonging to pool struct memheader_s *next; struct memheader_s *prev; @@ -74,7 +78,9 @@ typedef struct mempool_s } mempool_t; -#define Mem_Alloc(pool,size) _Mem_Alloc(pool, size, __FILE__, __LINE__) +#define Mem_Alloc(pool,size) _Mem_Alloc(pool, NULL, size, 16, __FILE__, __LINE__) +#define Mem_Memalign(pool,alignment,size) _Mem_Alloc(pool, NULL, size, alignment, __FILE__, __LINE__) +#define Mem_Realloc(pool,data,size) _Mem_Alloc(pool, data, size, 16, __FILE__, __LINE__) #define Mem_Free(mem) _Mem_Free(mem, __FILE__, __LINE__) #define Mem_CheckSentinels(data) _Mem_CheckSentinels(data, __FILE__, __LINE__) #define Mem_CheckSentinelsGlobal() _Mem_CheckSentinelsGlobal(__FILE__, __LINE__) @@ -82,7 +88,7 @@ mempool_t; #define Mem_FreePool(pool) _Mem_FreePool(pool, __FILE__, __LINE__) #define Mem_EmptyPool(pool) _Mem_EmptyPool(pool, __FILE__, __LINE__) -void *_Mem_Alloc(mempool_t *pool, size_t size, const char *filename, int fileline); +void *_Mem_Alloc(mempool_t *pool, void *data, size_t size, size_t alignment, const char *filename, int fileline); void _Mem_Free(void *data, const char *filename, int fileline); mempool_t *_Mem_AllocPool(const char *name, int flags, mempool_t *parent, const char *filename, int fileline); void _Mem_FreePool(mempool_t **pool, const char *filename, int fileline);