74#ifndef _LISPBM_MEMORY_H_
75#define _LISPBM_MEMORY_H_
114#define LBM_MEMORY_SIZE_BLOCKS_TO_WORDS(X) (16*(X))
115#define LBM_MEMORY_SIZE_64BYTES_TIMES_X(X) (16*(X))
117#define LBM_MEMORY_BITMAP_SIZE(X) (X)
119#define LBM_MEMORY_BITMAP_SIZE(X) ((X)/2)
131#define LBM_MEMORY_SIZE_512 LBM_MEMORY_SIZE_64BYTES_TIMES_X(8)
132#define LBM_MEMORY_SIZE_1K LBM_MEMORY_SIZE_64BYTES_TIMES_X(16)
133#define LBM_MEMORY_SIZE_2K LBM_MEMORY_SIZE_64BYTES_TIMES_X(32)
134#define LBM_MEMORY_SIZE_4K LBM_MEMORY_SIZE_64BYTES_TIMES_X(64)
135#define LBM_MEMORY_SIZE_8K LBM_MEMORY_SIZE_64BYTES_TIMES_X(128)
136#define LBM_MEMORY_SIZE_10K LBM_MEMORY_SIZE_64BYTES_TIMES_X(160)
137#define LBM_MEMORY_SIZE_12K LBM_MEMORY_SIZE_64BYTES_TIMES_X(192)
138#define LBM_MEMORY_SIZE_14K LBM_MEMORY_SIZE_64BYTES_TIMES_X(224)
139#define LBM_MEMORY_SIZE_16K LBM_MEMORY_SIZE_64BYTES_TIMES_X(256)
140#define LBM_MEMORY_SIZE_32K LBM_MEMORY_SIZE_64BYTES_TIMES_X(512)
141#define LBM_MEMORY_SIZE_1M LBM_MEMORY_SIZE_64BYTES_TIMES_X(16384)
143#define LBM_MEMORY_BITMAP_SIZE_512 LBM_MEMORY_BITMAP_SIZE(8)
144#define LBM_MEMORY_BITMAP_SIZE_1K LBM_MEMORY_BITMAP_SIZE(16)
145#define LBM_MEMORY_BITMAP_SIZE_2K LBM_MEMORY_BITMAP_SIZE(32)
146#define LBM_MEMORY_BITMAP_SIZE_4K LBM_MEMORY_BITMAP_SIZE(64)
147#define LBM_MEMORY_BITMAP_SIZE_8K LBM_MEMORY_BITMAP_SIZE(128)
148#define LBM_MEMORY_BITMAP_SIZE_10K LBM_MEMORY_BITMAP_SIZE(160)
149#define LBM_MEMORY_BITMAP_SIZE_12K LBM_MEMORY_BITMAP_SIZE(192)
150#define LBM_MEMORY_BITMAP_SIZE_14K LBM_MEMORY_BITMAP_SIZE(224)
151#define LBM_MEMORY_BITMAP_SIZE_16K LBM_MEMORY_BITMAP_SIZE(256)
152#define LBM_MEMORY_BITMAP_SIZE_32K LBM_MEMORY_BITMAP_SIZE(512)
153#define LBM_MEMORY_BITMAP_SIZE_1M LBM_MEMORY_BITMAP_SIZE(16384)
static lbm_uint bitmap_size
Definition lbm_memory.c:45
static lbm_uint * bitmap
Definition lbm_memory.c:42
void lbm_memory_update_min_free(void)
Definition lbm_memory.c:176
lbm_uint * lbm_memory_allocate(lbm_uint num_words)
Definition lbm_memory.c:309
int lbm_memory_shrink(lbm_uint *ptr, lbm_uint n)
Definition lbm_memory.c:386
lbm_int lbm_memory_address_to_ix(lbm_uint *ptr)
Definition lbm_memory.c:120
void lbm_free(void *ptr)
Definition lbm_memory.c:382
lbm_uint lbm_memory_get_reserve(void)
Definition lbm_memory.c:108
void * lbm_malloc(size_t size)
Definition lbm_memory.c:355
lbm_uint lbm_memory_num_words(void)
Definition lbm_memory.c:164
bool lbm_memory_init(lbm_uint *data, lbm_uint data_size, lbm_uint *bitmap, lbm_uint bitmap_size)
Definition lbm_memory.c:59
lbm_uint lbm_memory_num_free(void)
Definition lbm_memory.c:168
void lbm_memory_set_reserve(lbm_uint num_words)
Definition lbm_memory.c:104
lbm_uint lbm_memory_maximum_used(void)
Definition lbm_memory.c:172
int lbm_memory_free(lbm_uint *ptr)
Definition lbm_memory.c:317
int lbm_memory_ptr_inside(lbm_uint *ptr)
Definition lbm_memory.c:443
lbm_uint lbm_memory_longest_free(void)
Definition lbm_memory.c:181
void * lbm_malloc_reserve(size_t size)
Definition lbm_memory.c:369
int32_t lbm_int
Definition lbm_types.h:49
uint32_t lbm_uint
Definition lbm_types.h:48