|
static int | gc (void) |
|
static void | error_ctx (lbm_value) |
|
static void | error_at_ctx (lbm_value err_val, lbm_value at) |
|
static void | enqueue_ctx (eval_context_queue_t *q, eval_context_t *ctx) |
|
static bool | mailbox_add_mail (eval_context_t *ctx, lbm_value mail) |
|
void | lbm_request_gc (void) |
|
void | lbm_set_eval_step_quota (uint32_t quota) |
|
static void | usleep_nonsense (uint32_t us) |
|
static bool | dynamic_load_nonsense (const char *sym, const char **code) |
|
static uint32_t | timestamp_nonsense (void) |
|
static int | printf_nonsense (const char *fmt,...) |
|
static void | ctx_done_nonsense (eval_context_t *ctx) |
|
static void | critical_nonsense (void) |
|
static void | user_callback_nonsense (void *arg) |
|
void | lbm_set_user_callback (void(*fptr)(void *)) |
|
void | lbm_set_critical_error_callback (void(*fptr)(void)) |
|
void | lbm_set_usleep_callback (void(*fptr)(uint32_t)) |
|
void | lbm_set_timestamp_us_callback (uint32_t(*fptr)(void)) |
|
void | lbm_set_ctx_done_callback (void(*fptr)(eval_context_t *)) |
|
void | lbm_set_printf_callback (int(*fptr)(const char *,...)) |
|
void | lbm_set_dynamic_load_callback (bool(*fptr)(const char *, const char **)) |
|
lbm_cid | lbm_get_event_handler_pid (void) |
|
void | lbm_set_event_handler_pid (lbm_cid pid) |
|
bool | lbm_event_handler_exists (void) |
|
static bool | event_internal (lbm_event_type_t event_type, lbm_uint parameter, lbm_uint buf_ptr, lbm_uint buf_len) |
|
bool | lbm_event_define (lbm_value key, lbm_flat_value_t *fv) |
|
bool | lbm_event_run_user_callback (void *arg) |
|
bool | lbm_event_unboxed (lbm_value unboxed) |
|
bool | lbm_event (lbm_flat_value_t *fv) |
|
static bool | lbm_event_pop (lbm_event_t *event) |
|
bool | lbm_event_queue_is_empty (void) |
|
void | lbm_toggle_verbose (void) |
|
void | lbm_set_verbose (bool verbose) |
|
lbm_cid | lbm_get_current_cid (void) |
|
eval_context_t * | lbm_get_current_context (void) |
|
static lbm_array_header_t * | assume_array (lbm_value a) |
|
static lbm_value | cons_with_gc (lbm_value head, lbm_value tail, lbm_value remember) |
|
static lbm_uint * | get_stack_ptr (eval_context_t *ctx, unsigned int n) |
|
static lbm_uint * | pop_stack_ptr (eval_context_t *ctx, unsigned int n) |
|
static lbm_uint * | stack_reserve (eval_context_t *ctx, unsigned int n) |
|
static void | handle_flash_status (lbm_flash_status s) |
|
static void | lift_array_flash (lbm_value flash_cell, bool bytearray, char *data, lbm_uint num_elt) |
|
static void | get_car_and_cdr (lbm_value a, lbm_value *a_car, lbm_value *a_cdr) |
|
static lbm_value | get_car (lbm_value a) |
|
static lbm_value | get_cdr (lbm_value a) |
|
static lbm_value | get_cadr (lbm_value a) |
|
static lbm_value | allocate_closure (lbm_value params, lbm_value body, lbm_value env) |
|
static lbm_value | allocate_binding (lbm_value key, lbm_value val, lbm_value the_cdr) |
|
static lbm_value | extract_n (lbm_value curr, lbm_value *res, unsigned int n) |
|
static void | call_fundamental (lbm_uint fundamental, lbm_value *args, lbm_uint arg_count, eval_context_t *ctx) |
|
static void | atomic_error (void) |
|
static void | block_current_ctx (uint32_t state, lbm_uint sleep_us, bool do_cont) |
|
lbm_flash_status | lbm_write_const_array_padded (uint8_t *data, lbm_uint n, lbm_uint *res) |
|
void | print_environments (char *buf, unsigned int size) |
|
void | print_error_message (lbm_value error, bool has_at, lbm_value at, unsigned int row, unsigned int col, lbm_int row0, lbm_int row1, lbm_int cid, char *name) |
|
bool | create_string_channel (char *str, lbm_value *res) |
|
bool | lift_char_channel (lbm_char_channel_t *chan, lbm_value *res) |
|
static void | queue_iterator_nm (eval_context_queue_t *q, ctx_fun f, void *arg1, void *arg2) |
|
void | lbm_running_iterator (ctx_fun f, void *arg1, void *arg2) |
|
void | lbm_blocked_iterator (ctx_fun f, void *arg1, void *arg2) |
|
static void | enqueue_ctx_nm (eval_context_queue_t *q, eval_context_t *ctx) |
|
static eval_context_t * | lookup_ctx_nm (eval_context_queue_t *q, lbm_cid cid) |
|
static bool | drop_ctx_nm (eval_context_queue_t *q, eval_context_t *ctx) |
|
static void | finish_ctx (void) |
|
static void | context_exists (eval_context_t *ctx, void *cid, void *b) |
|
void | lbm_set_error_suspect (lbm_value suspect) |
|
void | lbm_set_error_reason (char *error_str) |
|
static void | error_ctx_base (lbm_value err_val, bool has_at, lbm_value at, unsigned int row, unsigned int column) |
|
static void | read_error_ctx (unsigned int row, unsigned int column) |
|
void | lbm_critical_error (void) |
|
static void | ok_ctx (void) |
|
static eval_context_t * | dequeue_ctx_nm (eval_context_queue_t *q) |
|
static void | wake_up_ctxs_nm (void) |
|
static void | yield_ctx (lbm_uint sleep_us) |
|
static lbm_cid | lbm_create_ctx_parent (lbm_value program, lbm_value env, lbm_uint stack_size, lbm_cid parent, uint32_t context_flags, char *name) |
|
lbm_cid | lbm_create_ctx (lbm_value program, lbm_value env, lbm_uint stack_size, char *name) |
|
bool | lbm_mailbox_change_size (eval_context_t *ctx, lbm_uint new_size) |
|
static void | mailbox_remove_mail (eval_context_t *ctx, lbm_uint ix) |
|
static void | advance_ctx (eval_context_t *ctx) |
|
bool | lbm_unblock_ctx (lbm_cid cid, lbm_flat_value_t *fv) |
|
bool | lbm_unblock_ctx_r (lbm_cid cid) |
|
bool | lbm_unblock_ctx_unboxed (lbm_cid cid, lbm_value unboxed) |
|
static bool | lbm_block_ctx_base (bool timeout, float t_s) |
|
void | lbm_block_ctx_from_extension_timeout (float s) |
|
void | lbm_block_ctx_from_extension (void) |
|
void | lbm_undo_block_ctx_from_extension (void) |
|
lbm_value | lbm_find_receiver_and_send (lbm_cid cid, lbm_value msg) |
|
static lbm_value | get_match_binder_variable (lbm_value exp) |
|
static bool | match (lbm_value p, lbm_value e, lbm_value *env, bool *gc) |
|
static int | find_match (lbm_value plist, lbm_value *earr, lbm_uint num, lbm_value *e, lbm_value *env) |
|
static void | mark_context (eval_context_t *ctx, void *arg1, void *arg2) |
|
int | lbm_perform_gc (void) |
|
static void | eval_symbol (eval_context_t *ctx) |
|
static void | eval_quote (eval_context_t *ctx) |
|
static void | eval_selfevaluating (eval_context_t *ctx) |
|
static void | eval_progn (eval_context_t *ctx) |
|
static void | eval_atomic (eval_context_t *ctx) |
|
static void | eval_callcc (eval_context_t *ctx) |
|
static void | eval_define (eval_context_t *ctx) |
|
static void | eval_lambda (eval_context_t *ctx) |
|
static void | eval_if (eval_context_t *ctx) |
|
static void | eval_cond (eval_context_t *ctx) |
|
static void | eval_app_cont (eval_context_t *ctx) |
|
static binding_location_status | create_binding_location_internal (lbm_value key, lbm_value *env) |
|
static void | create_binding_location (lbm_value key, lbm_value *env) |
|
static void | let_bind_values_eval (lbm_value binds, lbm_value exp, lbm_value env, eval_context_t *ctx) |
|
static void | eval_var (eval_context_t *ctx) |
|
static void | eval_setq (eval_context_t *ctx) |
|
static void | eval_move_to_flash (eval_context_t *ctx) |
|
static void | eval_loop (eval_context_t *ctx) |
|
static void | eval_trap (eval_context_t *ctx) |
|
static void | eval_let (eval_context_t *ctx) |
|
static void | eval_and (eval_context_t *ctx) |
|
static void | eval_or (eval_context_t *ctx) |
|
static void | eval_match (eval_context_t *ctx) |
|
static void | receive_base (eval_context_t *ctx, lbm_value pats, float timeout_time, bool timeout) |
|
static void | eval_receive_timeout (eval_context_t *ctx) |
|
static void | eval_receive (eval_context_t *ctx) |
|
static void | cont_set_global_env (eval_context_t *ctx) |
|
static void | cont_resume (eval_context_t *ctx) |
|
static void | cont_progn_rest (eval_context_t *ctx) |
|
static void | cont_wait (eval_context_t *ctx) |
|
static lbm_value | perform_setvar (lbm_value key, lbm_value val, lbm_value env) |
|
static void | apply_setvar (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_read_base (lbm_value *args, lbm_uint nargs, eval_context_t *ctx, bool program, bool incremental) |
|
static void | apply_read_program (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_read_eval_program (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_read (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_spawn_base (lbm_value *args, lbm_uint nargs, eval_context_t *ctx, uint32_t context_flags) |
|
static void | apply_spawn (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_spawn_trap (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_yield (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_sleep (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_wait (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_eval (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_eval_program (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_send (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_ok (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_error (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_map (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_reverse (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_flatten (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_unflatten (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_kill (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static lbm_value | cmp_to_clo (lbm_value cmp) |
|
static void | apply_merge (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_sort (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_rest_args (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | apply_rotate (lbm_value *args, lbm_uint nargs, eval_context_t *ctx) |
|
static void | application (eval_context_t *ctx, lbm_value *fun_args, lbm_uint arg_count) |
|
static void | cont_closure_application_args (eval_context_t *ctx) |
|
static void | cont_closure_args_rest (eval_context_t *ctx) |
|
static void | cont_application_args (eval_context_t *ctx) |
|
static void | cont_and (eval_context_t *ctx) |
|
static void | cont_or (eval_context_t *ctx) |
|
static int | fill_binding_location (lbm_value key, lbm_value value, lbm_value env) |
|
static void | cont_bind_to_key_rest (eval_context_t *ctx) |
|
static void | cont_if (eval_context_t *ctx) |
|
static void | cont_match (eval_context_t *ctx) |
|
static void | cont_exit_atomic (eval_context_t *ctx) |
|
static void | cont_map (eval_context_t *ctx) |
|
static void | cont_match_guard (eval_context_t *ctx) |
|
static void | cont_terminate (eval_context_t *ctx) |
|
static void | cont_loop (eval_context_t *ctx) |
|
static void | cont_loop_condition (eval_context_t *ctx) |
|
static void | cont_merge_rest (eval_context_t *ctx) |
|
static void | cont_merge_layer (eval_context_t *ctx) |
|
static void | read_finish (lbm_char_channel_t *str, eval_context_t *ctx) |
|
static void | cont_read_next_token (eval_context_t *ctx) |
|
static void | cont_read_start_array (eval_context_t *ctx) |
|
static void | cont_read_append_array (eval_context_t *ctx) |
|
static void | cont_read_append_continue (eval_context_t *ctx) |
|
static void | cont_read_eval_continue (eval_context_t *ctx) |
|
static void | cont_read_expect_closepar (eval_context_t *ctx) |
|
static void | cont_read_dot_terminate (eval_context_t *ctx) |
|
static void | cont_read_done (eval_context_t *ctx) |
|
static void | cont_read_quote_result (eval_context_t *ctx) |
|
static void | cont_read_commaat_result (eval_context_t *ctx) |
|
static void | cont_read_comma_result (eval_context_t *ctx) |
|
static void | cont_application_start (eval_context_t *ctx) |
|
static void | cont_eval_r (eval_context_t *ctx) |
|
static void | cont_progn_var (eval_context_t *ctx) |
|
static void | cont_setq (eval_context_t *ctx) |
|
lbm_flash_status | request_flash_storage_cell (lbm_value val, lbm_value *res) |
|
static void | cont_move_to_flash (eval_context_t *ctx) |
|
static void | cont_move_val_to_flash_dispatch (eval_context_t *ctx) |
|
static void | cont_move_list_to_flash (eval_context_t *ctx) |
|
static void | cont_close_list_in_flash (eval_context_t *ctx) |
|
static void | cont_move_array_elts_to_flash (eval_context_t *ctx) |
|
static void | cont_qq_expand_start (eval_context_t *ctx) |
|
lbm_value | quote_it (lbm_value qquoted) |
|
bool | is_append (lbm_value a) |
|
lbm_value | append (lbm_value front, lbm_value back) |
|
static void | cont_qq_expand (eval_context_t *ctx) |
|
static void | cont_qq_append (eval_context_t *ctx) |
|
static void | cont_qq_expand_list (eval_context_t *ctx) |
|
static void | cont_qq_list (eval_context_t *ctx) |
|
static void | cont_kill (eval_context_t *ctx) |
|
static void | cont_pop_reader_flags (eval_context_t *ctx) |
|
static void | cont_exception_handler (eval_context_t *ctx) |
|
static void | cont_recv_to (eval_context_t *ctx) |
|
static void | evaluation_step (void) |
|
void | lbm_reset_eval (void) |
|
void | lbm_pause_eval (void) |
|
void | lbm_pause_eval_with_gc (uint32_t num_free) |
|
void | lbm_continue_eval (void) |
|
void | lbm_kill_eval (void) |
|
uint32_t | lbm_get_eval_state (void) |
|
static void | handle_event_unblock_ctx (lbm_cid cid, lbm_value v) |
|
static void | handle_event_define (lbm_value key, lbm_value val) |
|
static lbm_value | get_event_value (lbm_event_t *e) |
|
static void | process_events (void) |
|
void | lbm_run_eval (void) |
|
lbm_cid | lbm_eval_program (lbm_value lisp) |
|
lbm_cid | lbm_eval_program_ext (lbm_value lisp, unsigned int stack_size) |
|
int | lbm_eval_init () |
|
bool | lbm_eval_init_events (unsigned int num_events) |
|