]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - zone.h
Adding the new vm
[xonotic/darkplaces.git] / zone.h
diff --git a/zone.h b/zone.h
index c76867d24e164879ed5550c1b2b9fccf364cb210..36ef32657bc3917dc7b7d9b3e59189ca52f5af62 100644 (file)
--- a/zone.h
+++ b/zone.h
@@ -40,8 +40,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 typedef struct memheader_s
 {
-       // next memheader in chain belonging to pool
-       struct memheader_s *chain;
+       // next and previous memheaders in chain belonging to pool
+       struct memheader_s *next;
+       struct memheader_s *prev;
        // pool this memheader belongs to
        struct mempool_s *pool;
 #if MEMCLUMPING
@@ -51,10 +52,10 @@ typedef struct memheader_s
        // size of the memory after the header (excluding header and sentinel2)
        int size;
        // file name and line where Mem_Alloc was called
-       char *filename;
+       const char *filename;
        int fileline;
        // should always be MEMHEADER_SENTINEL1
-       int sentinel1;
+       unsigned int sentinel1;
        // immediately followed by data, which is followed by a MEMHEADER_SENTINEL2 byte
 }
 memheader_t;
@@ -65,12 +66,12 @@ typedef struct memclump_s
        // contents of the clump
        qbyte block[MEMCLUMPSIZE];
        // should always be MEMCLUMP_SENTINEL
-       int sentinel1;
+       unsigned int sentinel1;
        // if a bit is on, it means that the MEMUNIT bytes it represents are
        // allocated, otherwise free
        int bits[MEMBITINTS];
        // should always be MEMCLUMP_SENTINEL
-       int sentinel2;
+       unsigned int sentinel2;
        // if this drops to 0, the clump is freed
        int blocksinuse;
        // largest block of memory available (this is reset to an optimistic
@@ -85,7 +86,7 @@ memclump_t;
 typedef struct mempool_s
 {
        // should always be MEMHEADER_SENTINEL1
-       int sentinel1;
+       unsigned int sentinel1;
        // chain of individual memory allocations
        struct memheader_s *chain;
 #if MEMCLUMPING
@@ -103,10 +104,10 @@ typedef struct mempool_s
        // linked into global mempool list
        struct mempool_s *next;
        // file name and line where Mem_AllocPool was called
-       char *filename;
+       const char *filename;
        int fileline;
        // should always be MEMHEADER_SENTINEL1
-       int sentinel2;
+       unsigned int sentinel2;
 }
 mempool_t;
 
@@ -118,13 +119,13 @@ 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, int size, char *filename, int fileline);
-void _Mem_Free(void *data, char *filename, int fileline);
-mempool_t *_Mem_AllocPool(char *name, char *filename, int fileline);
-void _Mem_FreePool(mempool_t **pool, char *filename, int fileline);
-void _Mem_EmptyPool(mempool_t *pool, char *filename, int fileline);
-void _Mem_CheckSentinels(void *data, char *filename, int fileline);
-void _Mem_CheckSentinelsGlobal(char *filename, int fileline);
+void *_Mem_Alloc(mempool_t *pool, int size, const char *filename, int fileline);
+void _Mem_Free(void *data, const char *filename, int fileline);
+mempool_t *_Mem_AllocPool(const char *name, const char *filename, int fileline);
+void _Mem_FreePool(mempool_t **pool, const char *filename, int fileline);
+void _Mem_EmptyPool(mempool_t *pool, const char *filename, int fileline);
+void _Mem_CheckSentinels(void *data, const char *filename, int fileline);
+void _Mem_CheckSentinelsGlobal(const char *filename, int fileline);
 
 // used for temporary allocations
 mempool_t *tempmempool;
@@ -136,5 +137,8 @@ extern mempool_t *zonemempool;
 #define Z_Malloc(size) Mem_Alloc(zonemempool,size)
 #define Z_Free(data) Mem_Free(data)
 
+extern struct cvar_s developer_memory;
+extern struct cvar_s developer_memorydebug;
+
 #endif