123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- enum scm_compare {
- SCM_F_COMPARE_NONE = 0x0,
- SCM_F_COMPARE_EQUAL = 0x1,
- SCM_F_COMPARE_LESS_THAN = 0x2,
- SCM_F_COMPARE_INVALID = 0x3
- }
- struct scm_vm {
- uint32_t *ip
- union scm_vm_stack_element *sp
- union scm_vm_stack_element *fp
- union scm_vm_stack_element *sp_min_since_gc
- union scm_vm_stack_element *stack_limit
- uint8_t compare_result
- uint8_t apply_hook_enabled
- uint8_t return_hook_enabled
- uint8_t next_hook_enabled
- uint8_t abort_hook_enabled
- uint8_t disable_mcode;
- uint8_t engine
- uint8_t unused
- size_t stack_size
- union scm_vm_stack_element *stack_bottom
- SCM apply_hook
- SCM return_hook
- SCM next_hook
- SCM abort_hook
- union scm_vm_stack_element *stack_top
- SCM overflow_handler_stack
- jmp_buf *registers
- uint8_t *mra_after_abort
- int trace_level
- }
- SCM_API SCM scm_call_with_vm (SCM proc, SCM args)
- SCM_API SCM scm_call_with_stack_overflow_handler (SCM limit, SCM thunk,
- SCM handler)
- SCM_INTERNAL SCM scm_vm_add_apply_hook_x (SCM);
- SCM_INTERNAL SCM scm_vm_add_return_hook_x (SCM);
- SCM_INTERNAL SCM scm_vm_add_abort_hook_x (SCM);
- SCM_INTERNAL SCM scm_vm_add_next_hook_x (SCM);
- SCM_INTERNAL SCM scm_vm_remove_apply_hook_x (SCM);
- SCM_INTERNAL SCM scm_vm_remove_return_hook_x (SCM);
- SCM_INTERNAL SCM scm_vm_remove_abort_hook_x (SCM);
- SCM_INTERNAL SCM scm_vm_remove_next_hook_x (SCM);
- SCM_API SCM scm_vm_trace_level (void)
- SCM_API SCM scm_set_vm_trace_level_x (SCM level)
- SCM_API SCM scm_vm_engine (void)
- SCM_API SCM scm_set_vm_engine_x (SCM engine)
- SCM_API SCM scm_set_default_vm_engine_x (SCM engine)
- SCM_API void scm_c_set_vm_engine_x (int engine)
- SCM_API void scm_c_set_default_vm_engine_x (int engine)
- SCM_INTERNAL void scm_i_vm_prepare_stack (struct scm_vm *vp)
- struct GC_ms_entry
- SCM_INTERNAL struct GC_ms_entry * scm_i_vm_mark_stack (struct scm_vm *,
- struct GC_ms_entry *,
- struct GC_ms_entry *)
- SCM_INTERNAL void scm_i_vm_free_stack (struct scm_vm *vp)
- struct scm_vm_cont {
-
- uint32_t *vra
-
- uint8_t *mra
-
- ptrdiff_t fp_offset
-
- ptrdiff_t stack_size
-
- union scm_vm_stack_element *stack_bottom
-
- scm_t_dynstack *dynstack
-
- uint32_t flags
- }
- SCM_API SCM scm_load_compiled_with_vm (SCM file)
- SCM_INTERNAL SCM scm_i_call_with_current_continuation (SCM proc)
- SCM_INTERNAL SCM scm_i_capture_current_stack (void)
- SCM_INTERNAL void scm_i_vm_abort (SCM *tag_and_argv, size_t n) SCM_NORETURN;
- SCM_INTERNAL void scm_i_vm_emergency_abort (SCM *tag_and_argv, size_t n) SCM_NORETURN;
- SCM_INTERNAL int scm_i_vm_cont_to_frame (SCM cont, struct scm_frame *frame)
- SCM_INTERNAL void scm_i_vm_cont_print (SCM x, SCM port,
- scm_print_state *pstate)
- SCM_INTERNAL int scm_i_vm_is_boot_continuation_code (uint32_t *ip)
- SCM_INTERNAL void scm_bootstrap_vm (void)
- SCM_INTERNAL void scm_init_vm (void)
|