mirror of
https://github.com/Cesarus85/ringfall-mjolnir-vr.git
synced 2026-10-18 15:00:26 +02:00
145 lines
3.5 KiB
C
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 */
|