Files
Cesarus85--ringfall-mjolnir-vr/source/memory/memory_pool.c
T
2026-07-14 12:40:47 -07:00

145 lines
3.5 KiB
C

/*
MEMORY_POOL.C
symbols in this file:
0010DB50 0010:
_memory_pool_allocation_size (0000)
0010DB60 0050:
_memory_pool_initialize (0000)
0010DBB0 0010:
_memory_pool_get_free_size (0000)
0010DBC0 0020:
_memory_pool_get_used_size (0000)
0010DBE0 0030:
_memory_pool_get_contiguous_free_size (0000)
0010DC10 0010:
_code_0010dc10 (0000)
0010DC20 0030:
_code_0010dc20 (0000)
0010DC50 0170:
_code_0010dc50 (0000)
0010DDC0 00b0:
_code_0010ddc0 (0000)
0010DE70 0040:
_memory_pool_new (0000)
0010DEB0 0030:
_memory_pool_delete (0000)
0010DEE0 00e0:
_memory_pool_block_allocate (0000)
0010DFC0 00a0:
_memory_pool_block_free (0000)
0010E060 0060:
_memory_pool_compact (0000)
0010E0C0 0120:
_memory_pool_block_reallocate (0000)
0027E458 0041:
??_C@_0EB@NADHALE@?$CIbyte?5?$CK?$CJblock?$CLblock?9?$DOsize?$DM?$DN?$CIbyte@ (0000)
0027E49C 002a:
??_C@_0CK@LLMKELFI@?$CIbyte?5?$CK?$CJblock?$DO?$DN?$CIbyte?5?$CK?$CJpool?9?$DObas@ (0000)
0027E4C8 0032:
??_C@_0DC@HIOFDAGC@block?9?$DOtrailer_signature?$DN?$DNBLOCK_@ (0000)
0027E4FC 0030:
??_C@_0DA@IHOELNEF@block?9?$DOheader_signature?$DN?$DNBLOCK_H@ (0000)
0027E52C 002d:
??_C@_0CN@BLDKBJCH@block?9?$DOnext_block?5?$HM?$HM?5pool?9?$DOlast_@ (0000)
0027E55C 0026:
??_C@_0CG@CJPANJAP@block?9?$DOprevious_block?$DN?$DNprevious_@ (0000)
0027E584 000d:
??_C@_0N@EHOFABCJ@pool?9?$DOsize?$DO0?$AA@ (0000)
0027E594 0020:
??_C@_0CA@HGIACAOK@pool?9?$DOsignature?$DN?$DNPOOL_SIGNATURE?$AA@ (0000)
0027E5B4 0024:
??_C@_0CE@POLAKNJH@c?3?2halo?2SOURCE?2memory?2memory_poo@ (0000)
0027E5D8 000c:
??_C@_0M@MJBIHABJ@other_block?$AA@ (0000)
0027E5E4 0025:
??_C@_0CF@IJNEMAOG@expected?5reference?5?$CF08x?5but?5got?5@ (0000)
0027E60C 001a:
??_C@_0BK@MFLHGBFC@reference?5?$CG?$CG?5?$CI?$CKreference?$CJ?$AA@ (0000)
0027E628 0013:
??_C@_0BD@IKFFHLNA@pool?9?$DOfree_size?$DO?$DN0?$AA@ (0000)
0027E63C 001c:
??_C@_0BM@JADHFLPK@pool?9?$DOfree_size?$DM?$DNpool?9?$DOsize?$AA@ (0000)
0027E658 001c:
??_C@_0BM@HDOIAFHN@actual_new_size?$DOblock?9?$DOsize?$AA@ (0000)
0027E674 0032:
??_C@_0DC@FAPCJHLD@pool?9?$DOfree_size?$DO?$DN0?5?$CG?$CG?5pool?9?$DOfree@ (0000)
0027E6A8 000c:
??_C@_0M@PJCPCKMH@new_size?$DO?$DN0?$AA@ (0000)
*/
/* ---------- headers */
#include "cseries.h"
#include "memory_pool.h"
/* ---------- constants */
/* ---------- macros */
/* ---------- structures */
/* ---------- prototypes */
/* ---------- globals */
/* ---------- public code */
long memory_pool_allocation_size(
long size)
{
return size+sizeof(struct memory_pool);
}
void memory_pool_initialize(
struct memory_pool *pool,
char const *name,
long size)
{
csmemset(pool, 0, sizeof(struct memory_pool));
pool->signature = 'pool';
csstrncpy(pool->name, name, sizeof(pool->name)-1);
pool->base_address = pool+1;
pool->size = size;
pool->free_size = size;
pool->first_block = NULL;
pool->last_block = NULL;
}
struct memory_pool *memory_pool_new(
char const *name,
long size)
{
struct memory_pool *pool = match_malloc(
"c:\\halo\\SOURCE\\memory\\memory_pool.c",
70,
memory_pool_allocation_size(size));
if (pool)
{
memory_pool_initialize(pool, name, size);
}
return pool;
}
long memory_pool_get_free_size(
struct memory_pool *pool)
{
return pool->free_size;
}
long memory_pool_get_used_size(
struct memory_pool *pool)
{
return !pool->last_block ? 0 : (unsigned long)pool->last_block + pool->last_block->size - (unsigned long)pool->base_address;
}
long memory_pool_get_contiguous_free_size(
struct memory_pool *pool)
{
return pool->size - memory_pool_get_used_size(pool);
}
/* ---------- private code */