Go to the documentation of this file.
977 #define ERROR_SYMBOL_MASK 0xFFFFFFF0
979 #define ERROR_SYMBOL_MASK 0xFFFFFFFFFFFFFFF0
static lbm_value lbm_enc_i(lbm_int x)
Definition: heap.h:722
#define ERROR_SYMBOL_MASK
Definition: heap.h:977
lbm_value cdr
Definition: heap.h:205
static lbm_value lbm_enc_char(uint8_t x)
Definition: heap.h:766
#define LBM_NUMBER_MASK
Definition: lbm_defines.h:74
lbm_value lbm_enc_u32(uint32_t x)
Definition: heap.c:104
static lbm_uint lbm_heap_num_free(void)
Definition: heap.h:289
lbm_value lbm_car(lbm_value cons)
Definition: heap.c:994
#define LBM_PTR_BIT
Definition: lbm_defines.h:32
#define SPECIAL_SYMBOLS_END
Definition: lbm_defines.h:385
void lbm_heap_new_gc_time(lbm_uint dur)
void lbm_gc_state_inc(void)
Definition: heap.c:983
lbm_flash_status lbm_allocate_const_raw(lbm_uint nwords, lbm_uint *res)
Definition: heap.c:1456
#define LBM_TYPE_CHANNEL
Definition: lbm_defines.h:54
lbm_value lbm_list_append(lbm_value list1, lbm_value list2)
Definition: heap.c:1169
static lbm_uint lbm_dec_ptr(lbm_value p)
Definition: heap.h:698
#define ENC_SYM_CONT
Definition: lbm_defines.h:488
lbm_uint gc_num
Definition: heap.h:222
static bool lbm_is_channel(lbm_value x)
Definition: heap.h:899
bool(* const_heap_write_fun)(lbm_uint ix, lbm_uint w)
Definition: heap.h:233
lbm_uint size
Definition: heap.h:238
#define ENC_SYM_QUOTE
Definition: lbm_defines.h:474
static lbm_cons_t * lbm_ref_cell(lbm_value addr)
Definition: heap.h:990
int lbm_set_car_and_cdr(lbm_value c, lbm_value car_val, lbm_value cdr_val)
Definition: heap.c:1068
lbm_value lbm_enc_double(double x)
Definition: heap.c:165
#define LBM_PTR_TYPE_MASK
Definition: lbm_defines.h:34
static bool lbm_is_continuation(lbm_value exp)
Definition: heap.h:919
lbm_int lbm_dec_as_int(lbm_value val)
Definition: heap.c:444
#define LBM_LOW_RESERVED_BITS
Definition: lbm_defines.h:82
lbm_array_header_t * lbm_dec_array_r(lbm_value val)
Definition: heap.c:246
static bool lbm_is_quoted_list(lbm_value x)
Definition: heap.h:968
int32_t lbm_dec_as_i32(lbm_value val)
Definition: heap.c:344
uint32_t lbm_uint
Definition: lbm_types.h:48
void lbm_gc_mark_env(lbm_value)
Definition: heap.c:885
lbm_flash_status lbm_const_write(lbm_uint *tgt, lbm_uint val)
Definition: heap.c:1488
static lbm_uint lbm_dec_sym(lbm_value x)
Definition: heap.h:782
static bool lbm_is_macro(lbm_value exp)
Definition: heap.h:925
static bool lbm_is_cons_rw(lbm_value x)
Definition: heap.h:841
static bool lbm_is_lisp_array_r(lbm_value x)
Definition: heap.h:889
unsigned int lbm_list_length_pred(lbm_value c, bool *pres, bool(*pred)(lbm_value))
Definition: heap.c:1092
#define ENC_SYM_CHANNEL_TYPE
Definition: lbm_defines.h:427
lbm_value lbm_cadr(lbm_value c)
Definition: heap.c:1018
lbm_uint heap_size
Definition: heap.h:216
#define LBM_TYPE_SYMBOL
Definition: lbm_defines.h:77
static bool lbm_heap_array_valid(lbm_value arr)
Definition: heap.h:870
lbm_value lbm_list_drop(unsigned int n, lbm_value ls)
Definition: heap.c:1185
uint32_t lbm_dec_as_u32(lbm_value val)
Definition: heap.c:320
@ LBM_FLASH_FULL
Definition: heap.h:196
double lbm_dec_double(lbm_value x)
Definition: heap.c:195
int64_t lbm_dec_i64(lbm_value x)
Definition: heap.c:224
static bool lbm_is_symbol_nil(lbm_value exp)
Definition: heap.h:854
double lbm_dec_as_double(lbm_value val)
Definition: heap.c:494
lbm_value lbm_cdr(lbm_value cons)
Definition: heap.c:1029
int lbm_heap_allocate_lisp_array(lbm_value *res, lbm_uint size)
Definition: heap.c:1273
lbm_value lbm_heap_allocate_list(lbm_uint n)
Definition: heap.c:610
lbm_heap_state_t lbm_heap_state
Definition: heap.c:65
void lbm_gc_mark_aux(lbm_uint *data, lbm_uint n)
Definition: heap.c:901
lbm_uint heap_bytes
Definition: heap.h:217
@ LBM_FLASH_WRITE_ERROR
Definition: heap.h:197
static bool lbm_is_symbol_merror(lbm_value exp)
Definition: heap.h:956
lbm_uint num_alloc
Definition: heap.h:219
const uint8_t * lbm_heap_array_get_data_ro(lbm_value arr)
Definition: heap.c:1317
char * lbm_dec_str(lbm_value val)
Definition: heap.c:237
static bool lbm_is_error(lbm_value v)
Definition: heap.h:983
lbm_uint lbm_flash_memory_usage(void)
Definition: heap.c:1515
static bool lbm_is_comma_qualified_symbol(lbm_value exp)
Definition: heap.h:937
lbm_uint lbm_heap_size(void)
Definition: heap.c:669
lbm_flash_status lbm_write_const_raw(lbm_uint *data, lbm_uint n, lbm_uint *res)
Definition: heap.c:1469
float lbm_dec_as_float(lbm_value val)
Definition: heap.c:469
void lbm_nil_freelist(void)
Definition: heap.c:545
#define ENC_SYM_COMMA
Definition: lbm_defines.h:459
lbm_array_header_t * lbm_dec_array_rw(lbm_value val)
Definition: heap.c:254
static bool lbm_is_special(lbm_value symrep)
Definition: heap.h:908
lbm_value lbm_list_destructive_reverse(lbm_value list)
Definition: heap.c:1125
int lbm_const_heap_init(const_heap_write_fun w_fun, lbm_const_heap_t *heap, lbm_uint *addr, lbm_uint num_words)
Definition: heap.c:1406
uint64_t lbm_dec_u64(lbm_value x)
Definition: heap.c:211
lbm_uint next
Definition: heap.h:237
lbm_cons_t * heap
Definition: heap.h:212
#define LBM_ADDRESS_SHIFT
Definition: lbm_defines.h:28
#define ENC_SYM_EVAL
Definition: lbm_defines.h:505
static bool lbm_is_array_r(lbm_value x)
Definition: heap.h:878
lbm_value lbm_index_list(lbm_value l, int32_t n)
Definition: heap.c:1195
lbm_uint gc_recovered
Definition: heap.h:224
static lbm_value lbm_enc_u(lbm_uint x)
Definition: heap.h:726
lbm_value lbm_caar(lbm_value c)
Definition: heap.c:1006
#define LBM_PTR_TO_CONSTANT_BIT
Definition: lbm_defines.h:38
static lbm_value lbm_enc_sym(lbm_uint s)
Definition: heap.h:718
static bool lbm_is_closure(lbm_value exp)
Definition: heap.h:913
Definition: lbm_channel.h:69
int lbm_heap_allocate_array(lbm_value *res, lbm_uint size)
Definition: heap.c:1269
static bool lbm_is_match_binder(lbm_value exp)
Definition: heap.h:931
#define ENC_SYM_TRUE
Definition: lbm_defines.h:404
#define ENC_SYM_CLOSURE
Definition: lbm_defines.h:489
void lbm_gc_mark_phase(lbm_value root)
Definition: heap.c:801
void lbm_get_heap_state(lbm_heap_state_t *)
Definition: heap.c:677
lbm_flash_status write_const_car(lbm_value cell, lbm_value val)
Definition: heap.c:1508
#define LBM_PTR_TO_CONSTANT_MASK
Definition: lbm_defines.h:39
static lbm_type lbm_type_of_functional(lbm_value x)
Definition: heap.h:688
lbm_uint lbm_list_length(lbm_value c)
Definition: heap.c:1080
lbm_flash_status lbm_allocate_const_cell(lbm_value *res)
Definition: heap.c:1435
lbm_uint lbm_heap_size_bytes(void)
Definition: heap.c:673
int lbm_heap_explicit_free_array(lbm_value arr)
Definition: heap.c:1353
static uint8_t lbm_dec_char(lbm_value x)
Definition: heap.h:778
lbm_cons_t * lbm_heaps[2]
Definition: heap.c:69
static bool lbm_is_number(lbm_value x)
Definition: heap.h:862
lbm_stack_t gc_stack
Definition: heap.h:214
int lbm_gc_sweep_phase(void)
Definition: heap.c:922
lbm_value car
Definition: heap.h:204
lbm_uint lbm_get_gc_stack_max(void)
Definition: heap.c:681
static lbm_uint lbm_dec_u(lbm_value x)
Definition: heap.h:774
lbm_uint lbm_size_of(lbm_type t)
Definition: heap.c:1373
int lbm_set_car(lbm_value c, lbm_value v)
Definition: heap.c:1047
static lbm_cons_t * lbm_dec_heap(lbm_value p)
Definition: heap.h:709
uint8_t * lbm_heap_array_get_data_rw(lbm_value arr)
Definition: heap.c:1326
static bool lbm_is_lisp_array_rw(lbm_value x)
Definition: heap.h:894
@ LBM_FLASH_WRITE_OK
Definition: heap.h:195
static lbm_value lbm_set_ptr_type(lbm_value p, lbm_type t)
Definition: heap.h:714
static bool lbm_is_ptr(lbm_value x)
Definition: heap.h:832
#define LBM_TYPE_ARRAY
Definition: lbm_defines.h:52
lbm_value lbm_cons(lbm_value car, lbm_value cdr)
Definition: heap.c:990
int64_t lbm_dec_as_i64(lbm_value val)
Definition: heap.c:369
lbm_flash_status
Definition: heap.h:194
lbm_value freelist
Definition: heap.h:213
#define LBM_VAL_SHIFT
Definition: lbm_defines.h:29
lbm_uint gc_least_free
Definition: heap.h:226
#define ENC_SYM_MACRO
Definition: lbm_defines.h:487
static lbm_value lbm_enc_cons_ptr(lbm_uint x)
Definition: heap.h:694
int lbm_heap_init(lbm_cons_t *addr, lbm_uint num_cells, lbm_uint gc_stack_size)
Definition: heap.c:575
#define LBM_TYPE_I
Definition: lbm_defines.h:80
lbm_value lbm_enc_u64(uint64_t x)
Definition: heap.c:155
lbm_array_header_t * lbm_dec_lisp_array_r(lbm_value val)
Definition: heap.c:262
static int32_t lbm_dec_i32(lbm_value x)
Definition: heap.h:813
lbm_uint lbm_heap_num_allocated(void)
Definition: heap.c:666
lbm_value lbm_list_copy(int *m, lbm_value list)
Definition: heap.c:1142
static lbm_int lbm_dec_i(lbm_value x)
Definition: heap.h:770
lbm_uint num_alloc_arrays
Definition: heap.h:220
lbm_uint gc_recovered_arrays
Definition: heap.h:225
lbm_value lbm_heap_allocate_list_init(unsigned int n,...)
Definition: heap.c:658
lbm_char_channel_t * lbm_dec_channel(lbm_value val)
Definition: heap.c:278
#define LBM_TYPE_LISPARRAY
Definition: lbm_defines.h:56
void lbm_gc_unlock(void)
Definition: heap.c:87
lbm_value lbm_heap_allocate_list_init_va(unsigned int n, va_list valist)
Definition: heap.c:634
static uint32_t lbm_dec_u32(lbm_value x)
Definition: heap.h:799
lbm_uint gc_last_free
Definition: heap.h:227
lbm_uint * heap
Definition: heap.h:236
int lbm_set_cdr(lbm_value c, lbm_value v)
Definition: heap.c:1058
void lbm_heap_new_freelist_length(void)
Definition: heap.c:568
#define LBM_PTR_TO_CONSTANT_SHIFT
Definition: lbm_defines.h:40
void lbm_gc_mark_roots(lbm_uint *roots, lbm_uint num_roots)
Definition: heap.c:915
static lbm_type lbm_type_of(lbm_value x)
Definition: heap.h:683
lbm_uint gc_marked
Definition: heap.h:223
uint64_t lbm_dec_as_u64(lbm_value val)
Definition: heap.c:394
uint32_t lbm_value
Definition: lbm_types.h:44
int32_t lbm_int
Definition: lbm_types.h:49
#define ENC_SYM_MATCH_ANY
Definition: lbm_defines.h:436
static bool lbm_is_symbol_true(lbm_value exp)
Definition: heap.h:948
#define LBM_VAL_TYPE_MASK
Definition: lbm_defines.h:72
#define LBM_PTR_VAL_MASK
Definition: lbm_defines.h:33
#define LBM_TYPE_CONS
Definition: lbm_defines.h:43
void lbm_gc_lock(void)
Definition: heap.c:85
#define ENC_SYM_MERROR
Definition: lbm_defines.h:411
lbm_value lbm_enc_i32(int32_t x)
Definition: heap.c:94
#define LBM_TYPE_CHAR
Definition: lbm_defines.h:78
#define LBM_TYPE_U
Definition: lbm_defines.h:81
lbm_value lbm_list_reverse(lbm_value list)
Definition: heap.c:1106
static bool lbm_is_array_rw(lbm_value x)
Definition: heap.h:883
lbm_uint lbm_dec_as_uint(lbm_value val)
Definition: heap.c:419
static bool lbm_is_symbol(lbm_value exp)
Definition: heap.h:944
#define LBM_CONS_TYPE_MASK
Definition: lbm_defines.h:62
lbm_uint lbm_dec_raw(lbm_value v)
uint8_t lbm_dec_as_char(lbm_value a)
Definition: heap.c:295
lbm_value lbm_enc_float(float x)
Definition: heap.c:114
lbm_value lbm_enc_i64(int64_t x)
Definition: heap.c:145
lbm_uint lbm_get_gc_stack_size(void)
Definition: heap.c:685
static bool lbm_is_list_rw(lbm_value x)
Definition: heap.h:964
static bool lbm_is_list(lbm_value x)
Definition: heap.h:960
float lbm_dec_float(lbm_value x)
Definition: heap.c:181
lbm_value lbm_heap_allocate_cell(lbm_type ptr_type, lbm_value car, lbm_value cdr)
Definition: heap.c:594
lbm_array_header_t * lbm_dec_lisp_array_rw(lbm_value val)
Definition: heap.c:270
lbm_uint lbm_dec_custom(lbm_value val)
Definition: heap.c:287
static bool lbm_is_cons(lbm_value x)
Definition: heap.h:850
uint32_t lbm_type
Definition: lbm_types.h:46
static lbm_uint lbm_dec_cons_cell_ptr(lbm_value p)
Definition: heap.h:704
lbm_int lbm_heap_array_get_size(lbm_value arr)
Definition: heap.c:1307
static bool lbm_is_symbol_eval(lbm_value exp)
Definition: heap.h:952
lbm_value lbm_cddr(lbm_value c)
Definition: heap.c:1037
int lbm_lift_array(lbm_value *value, char *data, lbm_uint num_elt)
Definition: heap.c:1279
lbm_flash_status write_const_cdr(lbm_value cell, lbm_value val)
Definition: heap.c:1501
static bool lbm_is_char(lbm_value x)
Definition: heap.h:904