|
| #define | rb_data_object_alloc rb_data_object_alloc |
| |
| #define | rb_data_typed_object_alloc rb_data_typed_object_alloc |
| |
| #define | rb_setjmp(env) RUBY_SETJMP(env) |
| |
| #define | rb_jmp_buf rb_jmpbuf_t |
| |
| #define | GC_HEAP_INIT_SLOTS 10000 |
| |
| #define | GC_HEAP_FREE_SLOTS 4096 |
| |
| #define | GC_HEAP_GROWTH_FACTOR 1.8 |
| |
| #define | GC_HEAP_GROWTH_MAX_SLOTS 0 /* 0 is disable */ |
| |
| #define | GC_HEAP_OLDOBJECT_LIMIT_FACTOR 2.0 |
| |
| #define | GC_HEAP_FREE_SLOTS_MIN_RATIO 0.20 |
| |
| #define | GC_HEAP_FREE_SLOTS_GOAL_RATIO 0.40 |
| |
| #define | GC_HEAP_FREE_SLOTS_MAX_RATIO 0.65 |
| |
| #define | GC_MALLOC_LIMIT_MIN (16 * 1024 * 1024 /* 16MB */) |
| |
| #define | GC_MALLOC_LIMIT_MAX (32 * 1024 * 1024 /* 32MB */) |
| |
| #define | GC_MALLOC_LIMIT_GROWTH_FACTOR 1.4 |
| |
| #define | GC_OLDMALLOC_LIMIT_MIN (16 * 1024 * 1024 /* 16MB */) |
| |
| #define | GC_OLDMALLOC_LIMIT_GROWTH_FACTOR 1.2 |
| |
| #define | GC_OLDMALLOC_LIMIT_MAX (128 * 1024 * 1024 /* 128MB */) |
| |
| #define | PRINT_MEASURE_LINE 0 |
| |
| #define | PRINT_ENTER_EXIT_TICK 0 |
| |
| #define | PRINT_ROOT_TICKS 0 |
| |
| #define | USE_TICK_T (PRINT_ENTER_EXIT_TICK || PRINT_MEASURE_LINE || PRINT_ROOT_TICKS) |
| |
| #define | TICK_TYPE 1 |
| |
| #define | GC_DEBUG 0 |
| |
| #define | RGENGC_DEBUG 0 |
| |
| #define | RGENGC_DEBUG_ENABLED(level) ((RGENGC_DEBUG) >= (level)) |
| |
| #define | RGENGC_CHECK_MODE 0 |
| |
| #define | GC_ASSERT(expr) RUBY_ASSERT_MESG_WHEN(RGENGC_CHECK_MODE > 0, expr, #expr) |
| |
| #define | RGENGC_OLD_NEWOBJ_CHECK 0 |
| |
| #define | RGENGC_PROFILE 0 |
| |
| #define | RGENGC_ESTIMATE_OLDMALLOC 1 |
| |
| #define | RGENGC_FORCE_MAJOR_GC 0 |
| |
| #define | GC_PROFILE_MORE_DETAIL 0 |
| |
| #define | GC_PROFILE_DETAIL_MEMORY 0 |
| |
| #define | GC_ENABLE_INCREMENTAL_MARK USE_RINCGC |
| |
| #define | GC_ENABLE_LAZY_SWEEP 1 |
| |
| #define | CALC_EXACT_MALLOC_SIZE USE_GC_MALLOC_OBJ_INFO_DETAILS |
| |
| #define | MALLOC_ALLOCATED_SIZE 0 |
| |
| #define | MALLOC_ALLOCATED_SIZE_CHECK 0 |
| |
| #define | GC_DEBUG_STRESS_TO_CLASS 0 |
| |
| #define | RGENGC_OBJ_INFO (RGENGC_DEBUG | RGENGC_CHECK_MODE) |
| |
| #define | popcount_bits rb_popcount_intptr |
| |
| #define | STACK_CHUNK_SIZE 500 |
| |
| #define | HEAP_PAGE_ALIGN_LOG 14 |
| |
| #define | CEILDIV(i, mod) (((i) + (mod) - 1)/(mod)) |
| |
| #define | GET_PAGE_BODY(x) ((struct heap_page_body *)((bits_t)(x) & ~(HEAP_PAGE_ALIGN_MASK))) |
| |
| #define | GET_PAGE_HEADER(x) (&GET_PAGE_BODY(x)->header) |
| |
| #define | GET_HEAP_PAGE(x) (GET_PAGE_HEADER(x)->page) |
| |
| #define | NUM_IN_PAGE(p) (((bits_t)(p) & HEAP_PAGE_ALIGN_MASK)/sizeof(RVALUE)) |
| |
| #define | BITMAP_INDEX(p) (NUM_IN_PAGE(p) / BITS_BITLENGTH ) |
| |
| #define | BITMAP_OFFSET(p) (NUM_IN_PAGE(p) & (BITS_BITLENGTH-1)) |
| |
| #define | BITMAP_BIT(p) ((bits_t)1 << BITMAP_OFFSET(p)) |
| |
| #define | MARKED_IN_BITMAP(bits, p) ((bits)[BITMAP_INDEX(p)] & BITMAP_BIT(p)) |
| |
| #define | MARK_IN_BITMAP(bits, p) ((bits)[BITMAP_INDEX(p)] = (bits)[BITMAP_INDEX(p)] | BITMAP_BIT(p)) |
| |
| #define | CLEAR_IN_BITMAP(bits, p) ((bits)[BITMAP_INDEX(p)] = (bits)[BITMAP_INDEX(p)] & ~BITMAP_BIT(p)) |
| |
| #define | GET_HEAP_MARK_BITS(x) (&GET_HEAP_PAGE(x)->mark_bits[0]) |
| |
| #define | GET_HEAP_PINNED_BITS(x) (&GET_HEAP_PAGE(x)->pinned_bits[0]) |
| |
| #define | GET_HEAP_UNCOLLECTIBLE_BITS(x) (&GET_HEAP_PAGE(x)->uncollectible_bits[0]) |
| |
| #define | GET_HEAP_WB_UNPROTECTED_BITS(x) (&GET_HEAP_PAGE(x)->wb_unprotected_bits[0]) |
| |
| #define | GET_HEAP_MARKING_BITS(x) (&GET_HEAP_PAGE(x)->marking_bits[0]) |
| |
| #define | rb_objspace (*rb_objspace_of(GET_VM())) |
| |
| #define | rb_objspace_of(vm) ((vm)->objspace) |
| |
| #define | ruby_initial_gc_stress gc_params.gc_stress |
| |
| #define | malloc_limit objspace->malloc_params.limit |
| |
| #define | malloc_increase objspace->malloc_params.increase |
| |
| #define | malloc_allocated_size objspace->malloc_params.allocated_size |
| |
| #define | heap_pages_sorted objspace->heap_pages.sorted |
| |
| #define | heap_allocated_pages objspace->heap_pages.allocated_pages |
| |
| #define | heap_pages_sorted_length objspace->heap_pages.sorted_length |
| |
| #define | heap_pages_lomem objspace->heap_pages.range[0] |
| |
| #define | heap_pages_himem objspace->heap_pages.range[1] |
| |
| #define | heap_allocatable_pages objspace->heap_pages.allocatable_pages |
| |
| #define | heap_pages_freeable_pages objspace->heap_pages.freeable_pages |
| |
| #define | heap_pages_final_slots objspace->heap_pages.final_slots |
| |
| #define | heap_pages_deferred_final objspace->heap_pages.deferred_final |
| |
| #define | heap_eden (&objspace->eden_heap) |
| |
| #define | heap_tomb (&objspace->tomb_heap) |
| |
| #define | dont_gc objspace->flags.dont_gc |
| |
| #define | during_gc objspace->flags.during_gc |
| |
| #define | finalizing objspace->atomic_flags.finalizing |
| |
| #define | finalizer_table objspace->finalizer_table |
| |
| #define | global_list objspace->global_list |
| |
| #define | ruby_gc_stressful objspace->flags.gc_stressful |
| |
| #define | ruby_gc_stress_mode objspace->gc_stress_mode |
| |
| #define | stress_to_class 0 |
| |
| #define | gc_mode(objspace) gc_mode_verify((enum gc_mode)(objspace)->flags.mode) |
| |
| #define | gc_mode_set(objspace, mode) ((objspace)->flags.mode = (unsigned int)gc_mode_verify(mode)) |
| |
| #define | is_marking(objspace) (gc_mode(objspace) == gc_mode_marking) |
| |
| #define | is_sweeping(objspace) (gc_mode(objspace) == gc_mode_sweeping) |
| |
| #define | is_full_marking(objspace) ((objspace)->flags.during_minor_gc == FALSE) |
| |
| #define | is_incremental_marking(objspace) ((objspace)->flags.during_incremental_marking != FALSE) |
| |
| #define | will_be_incremental_marking(objspace) ((objspace)->rgengc.need_major_gc != GPR_FLAG_NONE) |
| |
| #define | has_sweeping_pages(heap) ((heap)->sweeping_page != 0) |
| |
| #define | is_lazy_sweeping(heap) (GC_ENABLE_LAZY_SWEEP && has_sweeping_pages(heap)) |
| |
| #define | nonspecial_obj_id(obj) (VALUE)((SIGNED_VALUE)(obj)|FIXNUM_FLAG) |
| |
| #define | obj_id_to_ref(objid) ((objid) ^ FIXNUM_FLAG) /* unset FIXNUM_FLAG */ |
| |
| #define | RANY(o) ((RVALUE*)(o)) |
| |
| #define | RZOMBIE(o) ((struct RZombie *)(o)) |
| |
| #define | nomem_error GET_VM()->special_exceptions[ruby_error_nomemory] |
| |
| #define | TYPED_UPDATE_IF_MOVED(_objspace, _type, _thing) |
| |
| #define | UPDATE_IF_MOVED(_objspace, _thing) TYPED_UPDATE_IF_MOVED(_objspace, VALUE, _thing) |
| |
| #define | gc_prof_record(objspace) (objspace)->profile.current_record |
| |
| #define | gc_prof_enabled(objspace) ((objspace)->profile.run && (objspace)->profile.current_record) |
| |
| #define | gc_report if (!RGENGC_DEBUG_ENABLED(0)) {} else gc_report_body |
| |
| #define | PUSH_MARK_FUNC_DATA(v) |
| |
| #define | POP_MARK_FUNC_DATA() objspace->mark_func_data = prev_mark_func_data;} while (0) |
| |
| #define | MEASURE_LINE(expr) expr |
| |
| #define | FL_CHECK2(name, x, pred) |
| |
| #define | FL_TEST2(x, f) FL_CHECK2("FL_TEST2", x, FL_TEST_RAW((x),(f)) != 0) |
| |
| #define | FL_SET2(x, f) FL_CHECK2("FL_SET2", x, RBASIC(x)->flags |= (f)) |
| |
| #define | FL_UNSET2(x, f) FL_CHECK2("FL_UNSET2", x, RBASIC(x)->flags &= ~(f)) |
| |
| #define | RVALUE_MARK_BITMAP(obj) MARKED_IN_BITMAP(GET_HEAP_MARK_BITS(obj), (obj)) |
| |
| #define | RVALUE_PIN_BITMAP(obj) MARKED_IN_BITMAP(GET_HEAP_PINNED_BITS(obj), (obj)) |
| |
| #define | RVALUE_PAGE_MARKED(page, obj) MARKED_IN_BITMAP((page)->mark_bits, (obj)) |
| |
| #define | RVALUE_WB_UNPROTECTED_BITMAP(obj) MARKED_IN_BITMAP(GET_HEAP_WB_UNPROTECTED_BITS(obj), (obj)) |
| |
| #define | RVALUE_UNCOLLECTIBLE_BITMAP(obj) MARKED_IN_BITMAP(GET_HEAP_UNCOLLECTIBLE_BITS(obj), (obj)) |
| |
| #define | RVALUE_MARKING_BITMAP(obj) MARKED_IN_BITMAP(GET_HEAP_MARKING_BITS(obj), (obj)) |
| |
| #define | RVALUE_PAGE_WB_UNPROTECTED(page, obj) MARKED_IN_BITMAP((page)->wb_unprotected_bits, (obj)) |
| |
| #define | RVALUE_PAGE_UNCOLLECTIBLE(page, obj) MARKED_IN_BITMAP((page)->uncollectible_bits, (obj)) |
| |
| #define | RVALUE_PAGE_MARKING(page, obj) MARKED_IN_BITMAP((page)->marking_bits, (obj)) |
| |
| #define | RVALUE_OLD_AGE 3 |
| |
| #define | RVALUE_AGE_SHIFT 5 /* FL_PROMOTED0 bit */ |
| |
| #define | gc_event_hook_available_p(objspace) ((objspace)->flags.has_hook) |
| |
| #define | gc_event_hook_needed_p(objspace, event) ((objspace)->hook_events & (event)) |
| |
| #define | gc_event_hook(objspace, event, data) |
| |
| #define | UNEXPECTED_NODE(func) |
| |
| #define | OBJ_ID_INCREMENT (sizeof(RVALUE) / 2) |
| |
| #define | OBJ_ID_INITIAL (OBJ_ID_INCREMENT * 2) |
| |
| #define | RESTORE_FINALIZER() |
| |
| #define | NUM2PTR(x) NUM2ULONG(x) |
| |
| #define | COUNT_TYPE(t) case (t): return ID2SYM(rb_intern(#t)); break; |
| |
| #define | SET_STACK_END SET_MACHINE_STACK_END(&ec->machine.stack_end) |
| |
| #define | STACK_START (ec->machine.stack_start) |
| |
| #define | STACK_END (ec->machine.stack_end) |
| |
| #define | STACK_LEVEL_MAX (ec->machine.stack_maxsize/sizeof(VALUE)) |
| |
| #define | STACK_LENGTH |
| |
| #define | PREVENT_STACK_OVERFLOW 1 |
| |
| #define | STACKFRAME_FOR_CALL_CFUNC 2048 |
| |
| #define | GET_STACK_BOUNDS(start, end, appendix) |
| |
| #define | MARK_CHECKPOINT_PRINT_TICK(category) |
| |
| #define | MARK_CHECKPOINT(category) |
| |
| #define | PROFILE_REMEMBERSET_MARK 0 |
| |
| #define | I(s) ID_##s = rb_intern(#s); |
| |
| #define | MARK_OBJECT_ARY_BUCKET_SIZE 1024 |
| |
| #define | GC_NOTIFY 0 |
| |
| #define | gc_stress_full_mark_after_malloc_p() (FIXNUM_P(ruby_gc_stress_mode) && (FIX2LONG(ruby_gc_stress_mode) & (1<<gc_stress_full_mark_after_malloc))) |
| |
| #define | global_symbols ruby_global_symbols |
| |
| #define | S(s) sym_##s = ID2SYM(rb_intern_const(#s)) |
| |
| #define | SET(name, attr) |
| |
| #define | S(s) gc_stat_symbols[gc_stat_sym_##s] = ID2SYM(rb_intern_const(#s)) |
| |
| #define | S(s) gc_stat_compat_symbols[gc_stat_compat_sym_##s] = ID2SYM(rb_intern_const(#s)) |
| |
| #define | OLD_SYM(s) gc_stat_compat_symbols[gc_stat_compat_sym_##s] |
| |
| #define | NEW_SYM(s) gc_stat_symbols[gc_stat_sym_##s] |
| |
| #define | SET(name, attr) |
| |
| #define | TRY_WITH_GC(alloc) |
| |
| #define | WMAP_DELETE_DEAD_OBJECT_IN_MARK 0 |
| |
| #define | GC_PROFILE_RECORD_DEFAULT_SIZE 100 |
| |
| #define | RUBY_DTRACE_GC_HOOK(name) do {if (RUBY_DTRACE_GC_##name##_ENABLED()) RUBY_DTRACE_GC_##name();} while (0) |
| |
| #define | TYPE_NAME(t) case (t): return #t; |
| |
| #define | ARY_SHARED_P(ary) |
| |
| #define | ARY_EMBED_P(ary) |
| |
| #define | BUFF_ARGS buff + pos, buff_size - pos |
| |
| #define | APPENDF(f) if ((pos += snprintf f) >= buff_size) goto end |
| |
| #define | TF(c) ((c) != 0 ? "true" : "false") |
| |
| #define | C(c, s) ((c) != 0 ? (s) : " ") |
| |
| #define | IMEMO_NAME(x) case imemo_##x: imemo_name = #x; break; |
| |
| #define | OPT(o) if (o) rb_ary_push(opts, rb_fstring_lit(#o)) |
| |
|
| enum | gc_profile_record_flag {
GPR_FLAG_NONE = 0x000,
GPR_FLAG_MAJOR_BY_NOFREE = 0x001,
GPR_FLAG_MAJOR_BY_OLDGEN = 0x002,
GPR_FLAG_MAJOR_BY_SHADY = 0x004,
GPR_FLAG_MAJOR_BY_FORCE = 0x008,
GPR_FLAG_MAJOR_BY_OLDMALLOC = 0x020,
GPR_FLAG_MAJOR_MASK = 0x0ff,
GPR_FLAG_NEWOBJ = 0x100,
GPR_FLAG_MALLOC = 0x200,
GPR_FLAG_METHOD = 0x400,
GPR_FLAG_CAPI = 0x800,
GPR_FLAG_STRESS = 0x1000,
GPR_FLAG_IMMEDIATE_SWEEP = 0x2000,
GPR_FLAG_HAVE_FINALIZE = 0x4000,
GPR_FLAG_IMMEDIATE_MARK = 0x8000,
GPR_FLAG_FULL_MARK = 0x10000,
GPR_DEFAULT_REASON
} |
| |
| enum | {
DBL_BIGDIG = ((DBL_MANT_DIG + BITSPERDIG) / BITSPERDIG),
COROUTINE_REGISTERS = 6,
COROUTINE_REGISTERS = 8,
COROUTINE_REGISTERS = 0xb0 / 8,
COROUTINE_REGISTERS,
COROUTINE_REGISTERS = 4,
COROUTINE_REGISTERS = 8,
COROUTINE_XMM_REGISTERS = 1+10*2,
COROUTINE_REGISTERS = 4,
NAME_ERR_MESG__MESG,
NAME_ERR_MESG__RECV,
NAME_ERR_MESG__NAME,
NAME_ERR_MESG_COUNT,
raise_opt_cause,
raise_max_opt,
RAISED_EXCEPTION = 1,
RAISED_STACKOVERFLOW = 2,
RAISED_NOMEMORY = 4,
DECIMAL_SIZE_OF_LONG = DECIMAL_SIZE_OF_BITS(CHAR_BIT*sizeof(long)),
JISX0301_DATE_SIZE = DECIMAL_SIZE_OF_LONG+8,
FLAG_RETURNS_128BITS = 1 << (31-31),
FLAG_RETURNS_NOTHING = 1 << (31-30),
FLAG_RETURNS_FP = 1 << (31-29),
FLAG_RETURNS_64BITS = 1 << (31-28),
FLAG_RETURNS_STRUCT = 1 << (31-27),
FLAG_ARG_NEEDS_COPY = 1 << (31- 7),
FLAG_FP_ARGUMENTS = 1 << (31- 6),
FLAG_4_GPR_ARGUMENTS = 1 << (31- 5),
FLAG_RETVAL_REFERENCE = 1 << (31- 4),
FLAG_RETURNS_SMST = 1 << (31-31),
FLAG_RETURNS_NOTHING = 1 << (31-30),
FLAG_RETURNS_FP = 1 << (31-29),
FLAG_RETURNS_64BITS = 1 << (31-28),
FLAG_RETURNS_128BITS = 1 << (31-27),
FLAG_COMPAT = 1 << (31- 8),
FLAG_ARG_NEEDS_COPY = 1 << (31- 7),
FLAG_ARG_NEEDS_PSAVE = FLAG_ARG_NEEDS_COPY,
FLAG_FP_ARGUMENTS = 1 << (31- 6),
FLAG_4_GPR_ARGUMENTS = 1 << (31- 5),
FLAG_RETVAL_REFERENCE = 1 << (31- 4),
JSON_object_start = 1,
ossl_asn1_info_size = (sizeof(ossl_asn1_info)/sizeof(ossl_asn1_info[0])),
tIGNORED_NL = tLAST_TOKEN + 1,
tCOMMENT,
tEMBDOC_BEG,
tEMBDOC,
tEMBDOC_END,
tHEREDOC_BEG,
tHEREDOC_END,
k__END__,
ORDINAL_PARAM = -1,
NO_PARAM = 0,
NUMPARAM_MAX = 9,
BITS_SIZE = sizeof(bits_t),
BITS_BITLENGTH = ( BITS_SIZE * CHAR_BIT ),
RSTRUCT_EMBED_LEN_MAX = RVALUE_EMBED_LEN_MAX,
RSTRUCT_EMBED_LEN_MASK = (RUBY_FL_USER2|RUBY_FL_USER1),
RSTRUCT_EMBED_LEN_SHIFT = (RUBY_FL_USHIFT+1),
RSTRUCT_TRANSIENT_FLAG = FL_USER3,
RSTRUCT_ENUM_END,
bom_prefix_len = (int)sizeof(bom_prefix) - 1,
MT_MAX_STATE = N,
PCH_NOT_READY,
PCH_FAILED,
PCH_SUCCESS,
ORDINAL_PARAM = -1,
NO_PARAM = 0,
NUMPARAM_MAX = 9,
COMPILATION_FEATURES,
DEFAULT_FEATURES,
LONGEST_SIGNAME = 7,
LEFT,
CHCASE,
LOWER,
UPPER,
AREF_HASH_UNIT = 5,
AREF_HASH_THRESHOLD = 10,
TMOPT_IN,
TMOPT_MAX_,
CALLER_BINDING_SELF,
CALLER_BINDING_CLASS,
CALLER_BINDING_BINDING,
CALLER_BINDING_ISEQ,
CALLER_BINDING_CFP,
VM_FRAME_MAGIC_METHOD = 0x11110001,
VM_FRAME_MAGIC_BLOCK = 0x22220001,
VM_FRAME_MAGIC_CLASS = 0x33330001,
VM_FRAME_MAGIC_TOP = 0x44440001,
VM_FRAME_MAGIC_CFUNC = 0x55550001,
VM_FRAME_MAGIC_IFUNC = 0x66660001,
VM_FRAME_MAGIC_EVAL = 0x77770001,
VM_FRAME_MAGIC_RESCUE = 0x78880001,
VM_FRAME_MAGIC_DUMMY = 0x79990001,
VM_FRAME_MAGIC_MASK = 0x7fff0001,
VM_FRAME_FLAG_PASSED = 0x0010,
VM_FRAME_FLAG_FINISH = 0x0020,
VM_FRAME_FLAG_BMETHOD = 0x0040,
VM_FRAME_FLAG_CFRAME = 0x0080,
VM_FRAME_FLAG_LAMBDA = 0x0100,
VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM = 0x0200,
VM_FRAME_FLAG_CFRAME_KW = 0x0400,
VM_FRAME_FLAG_CFRAME_EMPTY_KW = 0x0800,
VM_ENV_FLAG_LOCAL = 0x0002,
VM_ENV_FLAG_ESCAPED = 0x0004,
VM_ENV_FLAG_WB_REQUIRED = 0x0008,
MINIMUM_REPARSE_BUFFER_PATH_LEN = 4
} |
| |
| enum | gc_mode { gc_mode_none,
gc_mode_marking,
gc_mode_sweeping
} |
| |
| enum | {
NUM_GPR_ARG_REGISTERS = 8,
NUM_FPR_ARG_REGISTERS = 13,
LINKAGE_AREA_GPRS = 6,
JSON_object_first_final = 27,
HEAP_PAGE_ALIGN = (1UL << HEAP_PAGE_ALIGN_LOG),
HEAP_PAGE_ALIGN_MASK = (~(~0UL << HEAP_PAGE_ALIGN_LOG)),
REQUIRED_SIZE_BY_MALLOC = (sizeof(size_t) * 5),
HEAP_PAGE_SIZE = (HEAP_PAGE_ALIGN - REQUIRED_SIZE_BY_MALLOC),
HEAP_PAGE_OBJ_LIMIT = (unsigned int)((HEAP_PAGE_SIZE - sizeof(struct heap_page_header))/sizeof(struct RVALUE)),
HEAP_PAGE_BITMAP_LIMIT = CEILDIV(CEILDIV(HEAP_PAGE_SIZE, sizeof(struct RVALUE)), BITS_BITLENGTH),
HEAP_PAGE_BITMAP_SIZE = (BITS_SIZE * HEAP_PAGE_BITMAP_LIMIT),
HEAP_PAGE_BITMAP_PLANES = USE_RGENGC ? 4 : 1,
cmp_opt_Fixnum,
cmp_opt_String,
cmp_opt_Float,
cmp_optimizable_count,
utf_prefix_len = (int)sizeof(utf_prefix) - 1,
base_dump_size = 8,
TIMER_INTERRUPT_MASK = 0x01,
PENDING_INTERRUPT_MASK = 0x02,
POSTPONED_JOB_INTERRUPT_MASK = 0x04,
TRAP_INTERRUPT_MASK = 0x08,
constat_init = -2,
constat_esc = -1,
constat_seq = 0
} |
| |
| enum | {
ASM_NEEDS_REGISTERS = 4,
JSON_object_error = 0,
gc_stress_no_major,
gc_stress_no_immediate_sweep,
gc_stress_full_mark_after_malloc,
gc_stress_max
} |
| |
| enum | gc_stat_sym {
gc_stat_sym_count,
gc_stat_sym_heap_allocated_pages,
gc_stat_sym_heap_sorted_length,
gc_stat_sym_heap_allocatable_pages,
gc_stat_sym_heap_available_slots,
gc_stat_sym_heap_live_slots,
gc_stat_sym_heap_free_slots,
gc_stat_sym_heap_final_slots,
gc_stat_sym_heap_marked_slots,
gc_stat_sym_heap_eden_pages,
gc_stat_sym_heap_tomb_pages,
gc_stat_sym_total_allocated_pages,
gc_stat_sym_total_freed_pages,
gc_stat_sym_total_allocated_objects,
gc_stat_sym_total_freed_objects,
gc_stat_sym_malloc_increase_bytes,
gc_stat_sym_malloc_increase_bytes_limit,
gc_stat_sym_minor_gc_count,
gc_stat_sym_major_gc_count,
gc_stat_sym_compact_count,
gc_stat_sym_remembered_wb_unprotected_objects,
gc_stat_sym_remembered_wb_unprotected_objects_limit,
gc_stat_sym_old_objects,
gc_stat_sym_old_objects_limit,
gc_stat_sym_oldmalloc_increase_bytes,
gc_stat_sym_oldmalloc_increase_bytes_limit,
gc_stat_sym_last
} |
| |
| enum | gc_stat_compat_sym {
gc_stat_compat_sym_gc_stat_heap_used,
gc_stat_compat_sym_heap_eden_page_length,
gc_stat_compat_sym_heap_tomb_page_length,
gc_stat_compat_sym_heap_increment,
gc_stat_compat_sym_heap_length,
gc_stat_compat_sym_heap_live_slot,
gc_stat_compat_sym_heap_free_slot,
gc_stat_compat_sym_heap_final_slot,
gc_stat_compat_sym_heap_swept_slot,
gc_stat_compat_sym_remembered_shady_object,
gc_stat_compat_sym_remembered_shady_object_limit,
gc_stat_compat_sym_old_object,
gc_stat_compat_sym_old_object_limit,
gc_stat_compat_sym_total_allocated_object,
gc_stat_compat_sym_total_freed_object,
gc_stat_compat_sym_malloc_increase,
gc_stat_compat_sym_malloc_limit,
gc_stat_compat_sym_oldmalloc_increase,
gc_stat_compat_sym_oldmalloc_limit,
gc_stat_compat_sym_last
} |
| |
| enum | memop_type { MEMOP_TYPE_MALLOC = 0,
MEMOP_TYPE_FREE,
MEMOP_TYPE_REALLOC
} |
| |
|
| | PRINTF_ARGS (NORETURN(static void gc_raise(VALUE, const char *,...)), 2, 3) |
| |
| size_t | rb_size_mul_or_raise (size_t x, size_t y, VALUE exc) |
| |
| size_t | rb_size_mul_add_or_raise (size_t x, size_t y, size_t z, VALUE exc) |
| |
| volatile VALUE * | rb_gc_guarded_ptr_val (volatile VALUE *ptr, VALUE val) |
| |
| void | rb_iseq_mark (const rb_iseq_t *iseq) |
| |
| void | rb_iseq_update_references (rb_iseq_t *iseq) |
| |
| void | rb_iseq_free (const rb_iseq_t *iseq) |
| |
| size_t | rb_iseq_memsize (const rb_iseq_t *iseq) |
| |
| void | rb_vm_update_references (void *ptr) |
| |
| void | rb_gcdebug_print_obj_condition (VALUE obj) |
| |
| | NORETURN (static void negative_size_allocation_error(const char *)) |
| |
| | NO_SANITIZE ("memory", static void gc_mark_maybe(rb_objspace_t *objspace, VALUE ptr)) |
| |
| | NO_SANITIZE ("memory", static inline int is_pointer_to_heap(rb_objspace_t *objspace, void *ptr)) |
| |
| | PRINTF_ARGS (static void gc_report_body(int level, rb_objspace_t *objspace, const char *fmt,...), 3, 4) |
| |
| rb_objspace_t * | rb_objspace_alloc (void) |
| |
| void | rb_objspace_free (rb_objspace_t *objspace) |
| |
| void | rb_objspace_set_event_hook (const rb_event_flag_t event) |
| |
| | NOINLINE (static VALUE newobj_slowpath_wb_protected(VALUE klass, VALUE flags, VALUE v1, VALUE v2, VALUE v3, rb_objspace_t *objspace)) |
| |
| VALUE | rb_wb_unprotected_newobj_of (VALUE klass, VALUE flags) |
| |
| VALUE | rb_wb_protected_newobj_of (VALUE klass, VALUE flags) |
| |
| VALUE | rb_newobj (void) |
| |
| VALUE | rb_newobj_of (VALUE klass, VALUE flags) |
| |
| VALUE | rb_imemo_new (enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0) |
| |
| rb_imemo_tmpbuf_t * | rb_imemo_tmpbuf_parser_heap (void *buf, rb_imemo_tmpbuf_t *old_heap, size_t cnt) |
| |
| VALUE | rb_data_object_wrap (VALUE klass, void *datap, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree) |
| |
| | RUBY_ALIAS_FUNCTION (rb_data_object_alloc(VALUE klass, void *datap, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree), rb_data_object_wrap,(klass, datap, dmark, dfree)) |
| |
| VALUE | rb_data_typed_object_wrap (VALUE klass, void *datap, const rb_data_type_t *type) |
| |
| | RUBY_ALIAS_FUNCTION (rb_data_typed_object_alloc(VALUE klass, void *datap, const rb_data_type_t *type), rb_data_typed_object_wrap,(klass, datap, type)) |
| |
| size_t | rb_objspace_data_type_memsize (VALUE obj) |
| |
| const char * | rb_objspace_data_type_name (VALUE obj) |
| |
| void | rb_free_const_table (struct rb_id_table *tbl) |
| |
| void | Init_heap (void) |
| |
| void | Init_gc_stress (void) |
| |
| void | rb_objspace_each_objects (each_obj_callback *callback, void *data) |
| |
| void | rb_objspace_each_objects_without_setup (each_obj_callback *callback, void *data) |
| |
| int | rb_objspace_internal_object_p (VALUE obj) |
| |
| VALUE | rb_undefine_finalizer (VALUE obj) |
| |
| VALUE | rb_define_finalizer (VALUE obj, VALUE block) |
| |
| void | rb_gc_copy_finalizer (VALUE dest, VALUE obj) |
| |
| void | rb_objspace_call_finalizer (rb_objspace_t *objspace) |
| |
| | PUREFUNC (static inline int is_id_value(rb_objspace_t *objspace, VALUE ptr)) |
| |
| int | rb_objspace_markable_object_p (VALUE obj) |
| |
| int | rb_objspace_garbage_object_p (VALUE obj) |
| |
| VALUE | rb_memory_id (VALUE obj) |
| |
| VALUE | rb_obj_id (VALUE obj) |
| |
| size_t | rb_obj_memsize_of (VALUE obj) |
| |
| int | ruby_get_stack_grow_direction (volatile VALUE *addr) |
| |
| size_t | ruby_stack_length (VALUE **p) |
| |
| MJIT_FUNC_EXPORTED int | rb_ec_stack_check (rb_execution_context_t *ec) |
| |
| int | ruby_stack_check (void) |
| |
| | ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS (static void mark_locations_array(rb_objspace_t *objspace, register const VALUE *x, register long n)) |
| |
| void | rb_gc_mark_locations (const VALUE *start, const VALUE *end) |
| |
| void | rb_gc_mark_values (long n, const VALUE *values) |
| |
| void | rb_gc_mark_vm_stack_values (long n, const VALUE *values) |
| |
| void | rb_mark_set (st_table *tbl) |
| |
| void | rb_mark_hash (st_table *tbl) |
| |
| void | rb_gc_mark_machine_stack (const rb_execution_context_t *ec) |
| |
| void | rb_mark_tbl (st_table *tbl) |
| |
| void | rb_mark_tbl_no_pin (st_table *tbl) |
| |
| void | rb_gc_mark_maybe (VALUE obj) |
| |
| | NOINLINE (static void gc_mark_ptr(rb_objspace_t *objspace, VALUE obj)) |
| |
| void | rb_gc_mark_movable (VALUE ptr) |
| |
| void | rb_gc_mark (VALUE ptr) |
| |
| int | rb_objspace_marked_object_p (VALUE obj) |
| |
| void | rb_gc_verify_internal_consistency (void) |
| |
| | NOINLINE (static void gc_writebarrier_generational(VALUE a, VALUE b, rb_objspace_t *objspace)) |
| |
| void | rb_gc_writebarrier (VALUE a, VALUE b) |
| |
| void | rb_gc_writebarrier_unprotect (VALUE obj) |
| |
| MJIT_FUNC_EXPORTED void | rb_gc_writebarrier_remember (VALUE obj) |
| |
| void | rb_gc_unprotect_logging (void *objptr, const char *filename, int line) |
| |
| void | rb_copy_wb_protected_attribute (VALUE dest, VALUE obj) |
| |
| VALUE | rb_obj_rgengc_writebarrier_protected_p (VALUE obj) |
| |
| VALUE | rb_obj_rgengc_promoted_p (VALUE obj) |
| |
| size_t | rb_obj_gc_flags (VALUE obj, ID *flags, size_t max) |
| |
| void | rb_gc_force_recycle (VALUE obj) |
| |
| void | rb_gc_register_mark_object (VALUE obj) |
| |
| void | rb_gc_register_address (VALUE *addr) |
| |
| void | rb_gc_unregister_address (VALUE *addr) |
| |
| void | rb_global_variable (VALUE *var) |
| |
| void | rb_gc_update_tbl_refs (st_table *ptr) |
| |
| VALUE | rb_gc_location (VALUE value) |
| |
| VALUE | rb_gc_start (void) |
| |
| void | rb_gc (void) |
| |
| int | rb_during_gc (void) |
| |
| size_t | rb_gc_count (void) |
| |
| VALUE | rb_gc_latest_gc_info (VALUE key) |
| |
| size_t | rb_gc_stat (VALUE key) |
| |
| VALUE | rb_gc_enable (void) |
| |
| VALUE | rb_objspace_gc_enable (rb_objspace_t *objspace) |
| |
| VALUE | rb_gc_disable_no_rest (void) |
| |
| VALUE | rb_gc_disable (void) |
| |
| VALUE | rb_objspace_gc_disable (rb_objspace_t *objspace) |
| |
| void | ruby_gc_set_params (void) |
| |
| void | rb_objspace_reachable_objects_from (VALUE obj, void(func)(VALUE, void *), void *data) |
| |
| void | rb_objspace_reachable_objects_from_root (void(func)(const char *category, VALUE, void *), void *passing_data) |
| |
| void | rb_memerror (void) |
| |
| void * | rb_aligned_malloc (size_t alignment, size_t size) |
| |
| void | rb_malloc_info_show_results (void) |
| |
| void * | ruby_xmalloc_body (size_t size) |
| |
| void | ruby_malloc_size_overflow (size_t count, size_t elsize) |
| |
| void * | ruby_xmalloc2_body (size_t n, size_t size) |
| |
| void * | ruby_xcalloc_body (size_t n, size_t size) |
| |
| void * | ruby_sized_xrealloc (void *ptr, size_t new_size, size_t old_size) |
| |
| void * | ruby_xrealloc_body (void *ptr, size_t new_size) |
| |
| void * | ruby_sized_xrealloc2 (void *ptr, size_t n, size_t size, size_t old_n) |
| |
| void * | ruby_xrealloc2_body (void *ptr, size_t n, size_t size) |
| |
| void | ruby_sized_xfree (void *x, size_t size) |
| |
| void | ruby_xfree (void *x) |
| |
| void * | rb_xmalloc_mul_add (size_t x, size_t y, size_t z) |
| |
| void * | rb_xrealloc_mul_add (const void *p, size_t x, size_t y, size_t z) |
| |
| void * | rb_xmalloc_mul_add_mul (size_t x, size_t y, size_t z, size_t w) |
| |
| void * | rb_xcalloc_mul_add_mul (size_t x, size_t y, size_t z, size_t w) |
| |
| void * | ruby_mimmalloc (size_t size) |
| |
| void | ruby_mimfree (void *ptr) |
| |
| void * | rb_alloc_tmp_buffer_with_count (volatile VALUE *store, size_t size, size_t cnt) |
| |
| void * | rb_alloc_tmp_buffer (volatile VALUE *store, long len) |
| |
| void | rb_free_tmp_buffer (volatile VALUE *store) |
| |
| void | rb_gc_adjust_memory_usage (ssize_t diff) |
| |
| const char * | rb_method_type_name (rb_method_type_t type) |
| |
| const char * | rb_raw_obj_info (char *buff, const int buff_size, VALUE obj) |
| |
| MJIT_FUNC_EXPORTED const char * | rb_obj_info (VALUE obj) |
| |
| void | rb_obj_info_dump (VALUE obj) |
| |
| void | rb_obj_info_dump_loc (VALUE obj, const char *file, int line, const char *func) |
| |
| void | Init_GC (void) |
| |
| void * | ruby_xmalloc (size_t size) |
| |
| void * | ruby_xmalloc2 (size_t n, size_t size) |
| |
| void * | ruby_xcalloc (size_t n, size_t size) |
| |
| void * | ruby_xrealloc (void *ptr, size_t new_size) |
| |
| void * | ruby_xrealloc2 (void *ptr, size_t n, size_t new_size) |
| |