📄 chicken.h
字号:
#define C_u_i_s8vector_ref(x, i) C_fix(((char *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ])#define C_u_i_u16vector_ref(x, i) C_fix(((unsigned short *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ])#define C_u_i_s16vector_ref(x, i) C_fix(((short *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ])#define C_u_i_u32vector_ref(x, i) C_fix(((C_u32 *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ])#define C_u_i_s32vector_ref(x, i) C_fix(((C_u32 *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ])#define C_a_i_u32vector_ref(ptr, c, x, i) C_unsigned_int_to_num(ptr, ((C_u32 *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ])#define C_a_i_s32vector_ref(ptr, c, x, i) C_int_to_num(ptr, ((C_s32 *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ])#define C_u_i_u8vector_set(x, i, v) ((((unsigned char *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ] = C_unfix(v)), C_SCHEME_UNDEFINED)#define C_u_i_s8vector_set(x, i, v) ((((char *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ] = C_unfix(v)), C_SCHEME_UNDEFINED)#define C_u_i_u16vector_set(x, i, v) ((((unsigned short *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ] = C_unfix(v)), C_SCHEME_UNDEFINED)#define C_u_i_s16vector_set(x, i, v) ((((short *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ] = C_unfix(v)), C_SCHEME_UNDEFINED)#define C_u_i_u32vector_set(x, i, v) ((((C_u32 *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ] = C_num_to_unsigned_int(v)), C_SCHEME_UNDEFINED)#define C_u_i_s32vector_set(x, i, v) ((((C_s32 *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ] = C_num_to_int(v)), C_SCHEME_UNDEFINED)#define C_u_i_bit_setp(x, i) C_mk_bool((C_unfix(x) & (1 << C_unfix(i))) != 0)#ifdef C_BIG_ENDIAN# ifdef C_SIXTY_FOUR# define C_lihdr(x, y, z) ((C_LAMBDA_INFO_TYPE >> 56) & 0xff), \ 0, 0, 0, 0, (x), (y), (z)# else# define C_lihdr(x, y, z) ((C_LAMBDA_INFO_TYPE >> 24) & 0xff), \ (x), (y), (z)# endif#else# ifdef C_SIXTY_FOUR# define C_lihdr(x, y, z) (z), (y), (x), 0, 0, 0, 0, \ ((C_LAMBDA_INFO_TYPE >> 56) & 0xff)# else# define C_lihdr(x, y, z) (z), (y), (x), \ ((C_LAMBDA_INFO_TYPE >> 24) & 0xff)# endif#endif#define C_end_of_main#if !defined(C_EMBEDDED) && !defined(C_SHARED)# ifndef C_WINDOWS_GUI# define C_main_entry_point int main(int argc, char *argv[]) { return CHICKEN_main(argc, argv, (void*)C_toplevel); } C_end_of_main# else# define C_main_entry_point \ int WINAPI WinMain(HINSTANCE me, HINSTANCE you, LPSTR cmdline, int show) \ { return CHICKEN_main(0, NULL, (void *)C_toplevel); } C_end_of_main# endif#else# define C_main_entry_point#endif/* Variables: */C_varextern C_TLS time_t C_startup_time_seconds;C_varextern C_TLS C_word *C_temporary_stack, *C_temporary_stack_bottom, *C_stack_limit;C_varextern C_TLS long C_timer_interrupt_counter, C_initial_timer_interrupt_period;C_varextern C_TLS C_byte *C_fromspace_top, *C_fromspace_limit;C_varextern C_TLS double C_temporary_flonum;C_varextern C_TLS jmp_buf C_restart;C_varextern C_TLS void *C_restart_address;C_varextern C_TLS int C_entry_point_status;C_varextern C_TLS void (C_fcall *C_restart_trampoline)(void *proc) C_regparm C_noret;C_varextern C_TLS void (*C_pre_gc_hook)(int mode);C_varextern C_TLS void (*C_post_gc_hook)(int mode, long ms);C_varextern C_TLS void (*C_panic_hook)(C_char *msg);C_varextern C_TLS int C_abort_on_thread_exceptions, C_interrupts_enabled, C_disable_overflow_check, C_enable_gcweak, C_heap_size_is_fixed, C_max_pending_finalizers, C_trace_buffer_size, C_main_argc;C_varextern C_TLS C_uword C_heap_growth, C_heap_shrinkage;C_varextern C_TLS char **C_main_argv, *C_dlerror;C_varextern C_TLS C_uword C_maximal_heap_size;C_varextern C_TLS int (*C_gc_mutation_hook)(C_word *slot, C_word val);C_varextern C_TLS void (*C_gc_trace_hook)(C_word *var, int mode);C_varextern C_TLS C_word (*C_get_unbound_variable_value_hook)(C_word sym);/* Prototypes: */C_BEGIN_C_DECLSC_fctexport int CHICKEN_main(int argc, char *argv[], void *toplevel);C_fctexport int CHICKEN_initialize(int heap, int stack, int symbols, void *toplevel);C_fctexport C_word CHICKEN_run(void *toplevel);C_fctexport C_word CHICKEN_continue(C_word k);C_fctexport void *CHICKEN_new_gc_root();C_fctexport void CHICKEN_delete_gc_root(void *root);C_fctexport void *CHICKEN_global_lookup(char *name);C_fctexport int CHICKEN_is_running();C_fctexport void CHICKEN_interrupt();C_fctexport void C_check_nursery_minimum(C_word size);C_fctexport int C_fcall C_save_callback_continuation(C_word **ptr, C_word k);C_fctexport C_word C_fcall C_restore_callback_continuation(void);C_fctexport C_word C_fcall C_restore_callback_continuation2(int level);C_fctexport C_word C_fcall C_callback(C_word closure, int argc);C_fctexport C_word C_fcall C_callback_wrapper(void *proc, int argc);C_fctexport void C_fcall C_callback_adjust_stack_limits(C_word *base); /* DEPRECATED */C_fctexport void C_fcall C_callback_adjust_stack(C_word *base, int size);C_fctexport void CHICKEN_parse_command_line(int argc, char *argv[], C_word *heap, C_word *stack, C_word *symbols);C_fctexport void C_fcall C_toplevel_entry(C_char *name) C_regparm;C_fctexport C_word C_fcall C_enable_interrupts(void) C_regparm;C_fctexport C_word C_fcall C_disable_interrupts(void) C_regparm;C_fctexport void C_fcall C_paranoid_check_for_interrupt(void) C_regparm;C_fctexport double C_fcall C_c_double(C_word x) C_regparm;C_fctexport C_word C_fcall C_num_to_int(C_word x) C_regparm;C_fctexport C_s64 C_fcall C_num_to_int64(C_word x) C_regparm;C_fctexport C_uword C_fcall C_num_to_unsigned_int(C_word x) C_regparm;C_fctexport C_word C_fcall C_int_to_num(C_word **ptr, C_word n) C_regparm;C_fctexport C_word C_fcall C_unsigned_int_to_num(C_word **ptr, C_uword n) C_regparm;C_fctexport C_word C_fcall C_long_to_num(C_word **ptr, long n) C_regparm;C_fctexport C_word C_fcall C_unsigned_long_to_num(C_word **ptr, unsigned long n) C_regparm;C_fctexport long C_fcall C_num_to_long(C_word x) C_regparm;C_fctexport unsigned long C_fcall C_num_to_unsigned_long(C_word x) C_regparm;C_fctexport C_word C_fcall C_flonum_in_int_range_p(C_word n) C_regparm;C_fctexport C_word C_fcall C_flonum_in_uint_range_p(C_word n) C_regparm;C_fctexport C_word C_fcall C_double_to_number(C_word n) C_regparm;C_fctexport char *C_fcall C_string_or_null(C_word x) C_regparm;C_fctexport void *C_fcall C_data_pointer_or_null(C_word x) C_regparm;C_fctexport void *C_fcall C_srfi_4_vector_or_null(C_word x) C_regparm;C_fctexport void *C_fcall C_c_pointer_or_null(C_word x) C_regparm;C_fctexport void *C_fcall C_scheme_or_c_pointer(C_word x) C_regparm;C_fctexport C_word C_fcall C_flonum_in_fixnum_range_p(C_word n) C_regparm;C_fctexport void C_zap_strings(C_word str);C_fctexport void C_set_or_change_heap_size(C_word heap, int reintern);C_fctexport void C_do_resize_stack(C_word stack);C_fctexport C_word C_resize_pending_finalizers(C_word size);C_fctexport void C_initialize_lf(C_word *lf, int count);C_fctexport void *C_register_lf(C_word *lf, int count);C_fctexport void *C_register_lf2(C_word *lf, int count, C_PTABLE_ENTRY *ptable);C_fctexport void C_unregister_lf(void *handle);C_fctexport C_char *C_dump_trace(int start);C_fctexport void C_fcall C_clear_trace_buffer(void) C_regparm;C_fctexport C_word C_fetch_trace(C_word start, C_word buffer);C_fctexport C_word C_fcall C_string(C_word **ptr, int len, C_char *str) C_regparm;C_fctexport C_word C_fcall C_static_string(C_word **ptr, int len, C_char *str) C_regparm;C_fctexport C_word C_fcall C_static_lambda_info(C_word **ptr, int len, C_char *str) C_regparm;C_fctexport C_word C_fcall C_bytevector(C_word **ptr, int len, C_char *str) C_regparm;C_fctexport C_word C_fcall C_pbytevector(int len, C_char *str) C_regparm;C_fctexport C_word C_fcall C_string_aligned8(C_word **ptr, int len, C_char *str) C_regparm;C_fctexport C_word C_fcall C_string2(C_word **ptr, C_char *str) C_regparm;C_fctexport C_word C_fcall C_string2_safe(C_word **ptr, int max, C_char *str) C_regparm;C_fctexport C_word C_fcall C_intern(C_word **ptr, int len, C_char *str) C_regparm;C_fctexport C_word C_fcall C_intern_in(C_word **ptr, int len, C_char *str, C_SYMBOL_TABLE *stable) C_regparm;C_fctexport C_word C_fcall C_h_intern(C_word *slot, int len, C_char *str) C_regparm;C_fctexport C_word C_fcall C_h_intern_in(C_word *slot, int len, C_char *str, C_SYMBOL_TABLE *stable) C_regparm;C_fctexport C_word C_fcall C_intern2(C_word **ptr, C_char *str) C_regparm;C_fctexport C_word C_fcall C_intern3(C_word **ptr, C_char *str, C_word value) C_regparm;C_fctexport C_word C_fcall C_restore_rest(C_word *ptr, int num) C_regparm;C_fctexport C_word C_fcall C_restore_rest_vector(C_word *ptr, int num) C_regparm;C_fctexport void C_bad_memory(void) C_noret;C_fctexport void C_bad_memory_2(void) C_noret;C_fctexport void C_bad_argc(int c, int n) C_noret;C_fctexport void C_bad_min_argc(int c, int n) C_noret;C_fctexport void C_bad_argc_2(int c, int n, C_word closure) C_noret;C_fctexport void C_bad_min_argc_2(int c, int n, C_word closure) C_noret;C_fctexport void C_stack_overflow(void) C_noret;C_fctexport void C_unbound_error(C_word sym) C_noret;C_fctexport void C_no_closure_error(C_word x) C_noret;C_fctexport C_word C_closure(C_word **ptr, int cells, C_word proc, ...);C_fctexport C_word C_fcall C_pair(C_word **ptr, C_word car, C_word cdr) C_regparm;C_fctexport C_word C_fcall C_h_pair(C_word car, C_word cdr) C_regparm;C_fctexport C_word C_fcall C_flonum(C_word **ptr, double n) C_regparm;C_fctexport C_word C_fcall C_number(C_word **ptr, double n) C_regparm;C_fctexport C_word C_fcall C_mpointer(C_word **ptr, void *mp) C_regparm;C_fctexport C_word C_fcall C_mpointer_or_false(C_word **ptr, void *mp) C_regparm;C_fctexport C_word C_fcall C_mpointer(C_word **ptr, void *mp) C_regparm;C_fctexport C_word C_fcall C_mpointer_or_false(C_word **ptr, void *mp) C_regparm;C_fctexport C_word C_fcall C_taggedmpointer(C_word **ptr, C_word tag, void *mp) C_regparm;C_fctexport C_word C_fcall C_taggedmpointer_or_false(C_word **ptr, C_word tag, void *mp) C_regparm;C_fctexport C_word C_fcall C_swigmpointer(C_word **ptr, void *mp, void *sdata) C_regparm;C_fctexport C_word C_vector(C_word **ptr, int n, ...);C_fctexport C_word C_h_vector(int n, ...);C_fctexport C_word C_structure(C_word **ptr, int n, ...);C_fctexport C_word C_h_structure(int n, ...);C_fctexport C_word C_fcall C_mutate(C_word *slot, C_word val) C_regparm;C_fctexport void C_fcall C_reclaim(void *trampoline, void *proc) C_regparm C_noret;C_fctexport void C_save_and_reclaim(void *trampoline, void *proc, int n, ...) C_noret;C_fctexport void C_fcall C_rereclaim(long size) C_regparm; /* deprecated */C_fctexport void C_fcall C_rereclaim2(C_uword size, int double_plus) C_regparm;C_fctexport C_word C_fcall C_retrieve(C_word sym) C_regparm;C_fctexport C_word C_fcall C_retrieve2(C_word val, char *name) C_regparm;C_fctexport void *C_fcall C_retrieve_proc(C_word closure) C_regparm;C_fctexport C_word C_fcall C_permanentp(C_word x) C_regparm;C_fctexport int C_in_stackp(C_word x) C_regparm;C_fctexport int C_fcall C_in_heapp(C_word x) C_regparm;C_fctexport int C_fcall C_in_fromspacep(C_word x) C_regparm;C_fctexport void C_fcall C_trace(C_char *name) C_regparm;C_fctexport C_word C_fcall C_emit_trace_info(C_word x, C_word y, C_word t) C_regparm;C_fctexport C_word C_fcall C_emit_trace_info2(char *raw, C_word x, C_word y, C_word t) C_regparm;C_fctexport C_word C_fcall C_hash_string(C_word str) C_regparm;C_fctexport C_word C_fcall C_hash_string_ci(C_word str) C_regparm;C_fctexport C_word C_halt(C_word msg);C_fctexport C_word C_message(C_word msg);C_fctexport C_word C_fcall C_equalp(C_word x, C_word y) C_regparm;C_fctexport C_word C_fcall C_set_gc_report(C_word flag) C_regparm;C_fctexport C_word C_fcall C_start_timer(void) C_regparm;C_fctexport C_word C_exit_runtime(C_word code);C_fctexport C_word C_fcall C_display_flonum(C_word port, C_word n) C_regparm;C_fctexport C_word C_fcall C_set_print_precision(C_word n) C_regparm;C_fctexport C_word C_fcall C_get_print_precision(void) C_regparm;C_fctexport C_word C_fcall C_read_char(C_word port) C_regparm;C_fctexport C_word C_fcall C_peek_char(C_word port) C_regparm;C_fctexport C_word C_fcall C_execute_shell_command(C_word string) C_regparm;C_fctexport C_word C_fcall C_char_ready_p(C_word port) C_regparm;C_fctexport C_word C_fcall C_flush_output(C_word port) C_regparm;C_fctexport C_word C_fcall C_fudge(C_word fudge_factor) C_regparm;C_fctexport void C_fcall C_raise_interrupt(int reason) C_regparm;C_fctexport C_word C_fcall C_set_initial_timer_interrupt_period(C_word n) C_regparm;C_fctexport C_word C_fcall C_establish_signal_handler(C_word signum, C_word reason) C_regparm;C_fctexport C_word C_fcall C_fits_in_int_p(C_word x) C_regparm;C_fctexport C_word C_fcall C_fits_in_unsigned_int_p(C_word x) C_regparm;C_fctexport C_word C_fcall C_copy_block(C_word from, C_word to) C_regparm;C_fctexport C_word C_fcall C_evict_block(C_word from, C_word ptr) C_regparm;C_fctexport void C_fcall C_gc_protect(C_word **addr, int n) C_regparm;C_fctexport void C_fcall C_gc_unprotect(int n) C_regparm;C_fctexport C_SYMBOL_TABLE *C_new_symbol_table(char *name, unsigned int size) C_regparm;C_fctexport void C_delete_symbol_table(C_SYMBOL_TABLE *st) C_regparm;C_fctexport void C_set_symbol_table(C_SYMBOL_TABLE *st) C_regparm;C_fctexport C_SYMBOL_TABLE *C_find_symbol_table(char *name) C_regparm;C_fctexport C_word C_find_symbol(C_word str, C_SYMBOL_TABLE *stable) C_regparm;C_fctexport C_word C_fcall C_lookup_symbol(C_word sym) C_regparm;C_fctexport C_word C_enumerate_symbols(C_SYMBOL_TABLE *stable, C_word pos) C_regparm;C_fctexport void C_do_register_finalizer(C_word x, C_word proc);C_fctexport int C_do_unregister_finalizer(C_word x);C_fctexport C_word C_dbg_hook(C_word x);C_fctimport void C_ccall C_toplevel(C_word c, C_word self, C_word k) C_noret;C_fctexport void C_ccall C_stop_timer(C_word c, C_word closure, C_word k) C_noret;C_fctexport void C_ccall C_apply(C_word c, C_word closure, C_word k, C_word fn, ...) C_noret;C_fctexport void C_ccall C_do_apply(C_word n, C_word closure, C_word k) C_noret;C_fctexport void C_ccall C_call_cc(C_word c, C_word closure, C_word k, C_word cont) C_noret;C_fctexport void C_ccall C_continuation_graft(C_word c, C_word closure, C_word k, C_word kk, C_word proc) C_noret;C_fctexport void C_ccall C_values(C_word c, C_word closure, C_word k, ...) C_noret;C_fctexport void C_ccall C_apply_values(C_word c, C_word closure, C_word k, C_word lst) C_noret;C_fctexport void C_ccall C_call_with_values(C_word c, C_word closure, C_word k, C_word thunk, C_word kont) C_noret;C_fctexport void C_ccall C_u_call_with_values(C_word c, C_word closure, C_word k, C_word thunk, C_word kont) C_noret;C_fctexport void C_ccall C_times(C_word c, C_word closure, C_word k, ...) C_noret;C_fctexport void C_ccall C_plus(C_word c, C_word closure, C_word k, ...) C_noret;C_fctexport void C_ccall C_minus(C_word c, C_word closure, C_word k, C_word n1, ...) C_noret;C_fctexport void C_ccall C_divide(C_word c, C_word closure, C_word k, C_word n1, ...) C_noret;C_fctexport void C_ccall C_nequalp(C_word c, C_word closure, C_word k, ...) C_noret;C_fctexport void C_ccall C_greaterp(C_word c, C_word closure, C_word k, ...) C_noret;C_fctexport void C_ccall C_lessp(C_word c, C_word closure, C_word k, ...) C_noret;C_fctexport void C_ccall C_greater_or_equal_p(C_word c, C_word closure, C_word k, ...) C_noret;C_fctexport void C_ccall C_less_or_equal_p(C_word c, C_word closure, C_word k, ...) C_noret;C_fctexport void C_ccall C_expt(C_word c, C_word closure, C_word k, C_word n1, C_word n2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -