Annotation of quake1/zone.h, revision 1.1

1.1     ! root        1: /*
        !             2:  memory allocation
        !             3: 
        !             4: 
        !             5: H_??? The hunk manages the entire memory block given to quake.  It must be
        !             6: contiguous.  Memory can be allocated from either the low or high end in a
        !             7: stack fashion.  The only way memory is released is by resetting one of the
        !             8: pointers.
        !             9: 
        !            10: Hunk allocations should be given a name, so the Hunk_Print () function
        !            11: can display usage.
        !            12: 
        !            13: Hunk allocations are guaranteed to be 16 byte aligned.
        !            14: 
        !            15: The video buffers are allocated high to avoid leaving a hole underneath
        !            16: server allocations when changing to a higher video mode.
        !            17: 
        !            18: 
        !            19: Z_??? Zone memory functions used for small, dynamic allocations like text
        !            20: strings from command input.  There is only about 48K for it, allocated at
        !            21: the very bottom of the hunk.
        !            22: 
        !            23: Cache_??? Cache memory is for objects that can be dynamically loaded and
        !            24: can usefully stay persistant between levels.  The size of the cache
        !            25: fluctuates from level to level.
        !            26: 
        !            27: To allocate a cachable object
        !            28: 
        !            29: 
        !            30: Temp_??? Temp memory is used for file loading and surface caching.  The size
        !            31: of the cache memory is adjusted so that there is a minimum of 512k remaining
        !            32: for temp memory.
        !            33: 
        !            34: 
        !            35: ------ Top of Memory -------
        !            36: 
        !            37: high hunk allocations
        !            38: 
        !            39: <--- high hunk reset point held by vid
        !            40: 
        !            41: video buffer
        !            42: 
        !            43: z buffer
        !            44: 
        !            45: surface cache
        !            46: 
        !            47: <--- high hunk used
        !            48: 
        !            49: cachable memory
        !            50: 
        !            51: <--- low hunk used
        !            52: 
        !            53: client and server low hunk allocations
        !            54: 
        !            55: <-- low hunk reset point held by host
        !            56: 
        !            57: startup hunk allocations
        !            58: 
        !            59: Zone block
        !            60: 
        !            61: ----- Bottom of Memory -----
        !            62: 
        !            63: 
        !            64: 
        !            65: */
        !            66: 
        !            67: void Memory_Init (void *buf, int size);
        !            68: 
        !            69: void Z_Free (void *ptr);
        !            70: void *Z_Malloc (int size);                     // returns 0 filled memory
        !            71: void *Z_TagMalloc (int size, int tag);
        !            72: 
        !            73: void Z_DumpHeap (void);
        !            74: void Z_CheckHeap (void);
        !            75: int Z_FreeMemory (void);
        !            76: 
        !            77: void *Hunk_Alloc (int size);           // returns 0 filled memory
        !            78: void *Hunk_AllocName (int size, char *name);
        !            79: 
        !            80: void *Hunk_HighAllocName (int size, char *name);
        !            81: 
        !            82: int    Hunk_LowMark (void);
        !            83: void Hunk_FreeToLowMark (int mark);
        !            84: 
        !            85: int    Hunk_HighMark (void);
        !            86: void Hunk_FreeToHighMark (int mark);
        !            87: 
        !            88: void *Hunk_TempAlloc (int size);
        !            89: 
        !            90: void Hunk_Check (void);
        !            91: 
        !            92: typedef struct cache_user_s
        !            93: {
        !            94:        void    *data;
        !            95: } cache_user_t;
        !            96: 
        !            97: void Cache_Flush (void);
        !            98: 
        !            99: void *Cache_Check (cache_user_t *c);
        !           100: // returns the cached data, and moves to the head of the LRU list
        !           101: // if present, otherwise returns NULL
        !           102: 
        !           103: void Cache_Free (cache_user_t *c);
        !           104: 
        !           105: void *Cache_Alloc (cache_user_t *c, int size, char *name);
        !           106: // Returns NULL if all purgable data was tossed and there still
        !           107: // wasn't enough room.
        !           108: 
        !           109: void Cache_Report (void);
        !           110: 
        !           111: 
        !           112: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.