diff options
Diffstat (limited to 'rjit_c.rb')
| -rw-r--r-- | rjit_c.rb | 1433 |
1 files changed, 0 insertions, 1433 deletions
diff --git a/rjit_c.rb b/rjit_c.rb deleted file mode 100644 index cf8284cd7b..0000000000 --- a/rjit_c.rb +++ /dev/null @@ -1,1433 +0,0 @@ -# frozen_string_literal: true -# Part of this file is generated by tool/rjit/bindgen.rb. -# Run `make rjit-bindgen` to update code between "RJIT bindgen begin" and "RJIT bindgen end". -module RubyVM::RJIT # :nodoc: all - # This `class << C` section is for calling C functions with Primitive. - # For importing variables or macros, use tool/rjit/bindgen.rb instead. - class << C = Module.new - def mmap(mem_size) - Primitive.cexpr! 'SIZET2NUM((size_t)rjit_reserve_addr_space(NUM2UINT(mem_size)))' - end - - def mprotect_write(mem_block, mem_size) - Primitive.mprotect_write(mem_block, mem_size) - end - - def mprotect_exec(mem_block, mem_size) - Primitive.mprotect_exec(mem_block, mem_size) - end - - def rjit_insn_exits - addr = Primitive.cstmt! %{ - #if RJIT_STATS - return SIZET2NUM((size_t)rjit_insn_exits); - #else - return SIZET2NUM(0); - #endif - } - CType::Immediate.parse("size_t").new(addr) - end - - def rb_rjit_branch_stub_hit - Primitive.cstmt! %{ - extern void *rb_rjit_branch_stub_hit(VALUE branch_stub, int sp_offset, int target0_p); - return SIZET2NUM((size_t)rb_rjit_branch_stub_hit); - } - end - - def rb_rjit_counters - addr = Primitive.cstmt! %{ - #if RJIT_STATS - return SIZET2NUM((size_t)&rb_rjit_counters); - #else - return SIZET2NUM(0); - #endif - } - rb_rjit_runtime_counters.new(addr) - end - - # @param from [Integer] - From address - # @param to [Integer] - To address - def dump_disasm(from, to, test: false) - Primitive.dump_disasm(from, to, test) - end - - # Convert a Ruby object to a VALUE in Integer - def to_value(obj) - Primitive.cexpr! 'SIZET2NUM((size_t)obj)' - end - - def BASIC_OP_UNREDEFINED_P(op, klass) - Primitive.cexpr! 'RBOOL(BASIC_OP_UNREDEFINED_P(NUM2INT(op), NUM2INT(klass)))' - end - - def rb_iseq_line_no(iseq, pos) - _iseq_addr = iseq.to_i - Primitive.cexpr! 'UINT2NUM(rb_iseq_line_no((const rb_iseq_t *)NUM2SIZET(_iseq_addr), NUM2SIZET(pos)))' - end - - def rb_class_of(obj) - Primitive.cexpr! 'rb_class_of(obj)' - end - - def rb_callable_method_entry(klass, mid) - cme_addr = Primitive.cexpr! 'SIZET2NUM((size_t)rb_callable_method_entry(klass, NUM2UINT(mid)))' - return nil if cme_addr == 0 - rb_callable_method_entry_t.new(cme_addr) - end - - def METHOD_ENTRY_VISI(cme) - _cme_addr = cme.to_i - Primitive.cexpr! 'UINT2NUM(METHOD_ENTRY_VISI((const rb_callable_method_entry_t *)NUM2SIZET(_cme_addr)))' - end - - def rb_simple_iseq_p(iseq) - _iseq_addr = iseq.to_i - Primitive.cexpr! 'RBOOL(rb_simple_iseq_p((rb_iseq_t *)NUM2SIZET(_iseq_addr)))' - end - - def SPECIAL_CONST_P(obj) - _value = to_value(obj) - Primitive.cexpr! 'RBOOL(SPECIAL_CONST_P((VALUE)NUM2SIZET(_value)))' - end - - def BUILTIN_TYPE(obj) - _value = to_value(obj) - Primitive.cexpr! 'INT2NUM(BUILTIN_TYPE((VALUE)NUM2SIZET(_value)))' - end - - def RB_TYPE_P(obj, type) - Primitive.cexpr! 'RBOOL(RB_TYPE_P(obj, NUM2UINT(type)))' - end - - def rb_shape_get_shape_id(obj) - _value = to_value(obj) - Primitive.cexpr! 'UINT2NUM((unsigned int)rb_shape_get_shape_id((VALUE)NUM2SIZET(_value)))' - end - - def rb_shape_id_offset - Primitive.cexpr! 'INT2NUM(rb_shape_id_offset())' - end - - def rb_shape_get_iv_index(shape_id, ivar_id) - Primitive.cstmt! %{ - rb_shape_t *shape = rb_shape_get_shape_by_id((shape_id_t)NUM2SIZET(shape_id)); - attr_index_t index; - bool found = rb_shape_get_iv_index(shape, (ID)NUM2SIZET(ivar_id), &index); - return found ? UINT2NUM(index) : Qnil; - } - end - - def FL_TEST_RAW(obj, flags) - Primitive.cexpr! 'RBOOL(FL_TEST_RAW(obj, (VALUE)NUM2SIZET(flags)))' - end - - def FL_TEST(obj, flags) - Primitive.cexpr! 'RBOOL(FL_TEST(obj, (VALUE)NUM2SIZET(flags)))' - end - - def rjit_for_each_iseq(&block) - Primitive.rjit_for_each_iseq(block) - end - - def get_symbol_id(name) - Primitive.cexpr! 'SIZET2NUM((size_t)rb_get_symbol_id(name))' - end - - def rb_vm_frame_method_entry(cfp) - _cfp = cfp.to_i - cme_addr = Primitive.cexpr! 'SIZET2NUM((size_t)rb_vm_frame_method_entry((const rb_control_frame_t *)NUM2SIZET(_cfp)))' - return nil if cme_addr == 0 - rb_callable_method_entry_t.new(cme_addr) - end - - def rb_class_get_superclass(klass) - Primitive.cexpr! 'rb_class_get_superclass(klass)' - end - - def ID2SYM(id) - Primitive.cexpr! 'ID2SYM((ID)NUM2SIZET(id))' - end - - def obj_is_kind_of(obj, c) - Primitive.cexpr! 'rb_obj_is_kind_of(obj, c)' - end - - def imemo_type_p(ptr, type) - _ptr = ptr.to_i - Primitive.cexpr! 'RBOOL(imemo_type_p((VALUE)NUM2SIZET(_ptr), NUM2UINT(type)))' - end - - def rb_iseq_only_optparam_p(iseq) - _iseq = iseq.to_i - Primitive.cstmt! %{ - extern bool rb_iseq_only_optparam_p(const rb_iseq_t *iseq); - return RBOOL(rb_iseq_only_optparam_p((rb_iseq_t *)NUM2SIZET(_iseq))); - } - end - - def rb_iseq_only_kwparam_p(iseq) - _iseq = iseq.to_i - Primitive.cstmt! %{ - extern bool rb_iseq_only_kwparam_p(const rb_iseq_t *iseq); - return RBOOL(rb_iseq_only_kwparam_p((rb_iseq_t *)NUM2SIZET(_iseq))); - } - end - - def rb_obj_frozen_p(obj) - Primitive.cexpr! 'rb_obj_frozen_p(obj)' - end - - def rb_intern(str) - Primitive.cexpr! 'SIZET2NUM((size_t)rb_intern(RSTRING_PTR(str)))' - end - - def rb_method_entry_at(klass, mid) - me_addr = Primitive.cexpr! 'SIZET2NUM((size_t)rb_method_entry_at(klass, (ID)NUM2SIZET(mid)))' - me_addr == 0 ? nil : rb_method_entry_t.new(me_addr) - end - - def rb_shape_transition_shape_capa(shape, new_capacity) - _shape = shape.to_i - shape_addr = Primitive.cexpr! 'SIZET2NUM((size_t)rb_shape_transition_shape_capa((rb_shape_t *)NUM2SIZET(_shape), NUM2UINT(new_capacity)))' - rb_shape_t.new(shape_addr) - end - - def rb_shape_get_next(shape, obj, id) - _shape = shape.to_i - shape_addr = Primitive.cexpr! 'SIZET2NUM((size_t)rb_shape_get_next((rb_shape_t *)NUM2SIZET(_shape), obj, (ID)NUM2SIZET(id)))' - rb_shape_t.new(shape_addr) - end - - def rb_shape_id(shape) - _shape = shape.to_i - Primitive.cexpr! 'SIZET2NUM((size_t)rb_shape_id((rb_shape_t *)NUM2SIZET(_shape)))' - end - - def rb_class_attached_object(klass) - Primitive.cexpr! 'rb_class_attached_object(klass)' - end - - def rb_singleton_class(obj) - Primitive.cexpr! 'rb_singleton_class(obj)' - end - - def rb_aliased_callable_method_entry(cme) - _cme = cme.to_i - cme_addr = Primitive.cstmt! %{ - extern const rb_callable_method_entry_t * rb_aliased_callable_method_entry(const rb_callable_method_entry_t *me); - return SIZET2NUM((size_t)rb_aliased_callable_method_entry((const rb_callable_method_entry_t *)NUM2SIZET(_cme))); - } - rb_callable_method_entry_t.new(cme_addr) - end - - def rb_yjit_get_proc_ptr(proc_addr) - proc_t_addr = Primitive.cstmt! %{ - extern rb_proc_t * rjit_get_proc_ptr(VALUE procv); - return SIZET2NUM((size_t)rjit_get_proc_ptr((VALUE)NUM2SIZET(proc_addr))); - } - rb_proc_t.new(proc_t_addr) - end - - def rb_shape_get_shape_by_id(shape_id) - _shape_id = shape_id.to_i - shape_addr = Primitive.cexpr! 'SIZET2NUM((VALUE)rb_shape_get_shape_by_id((shape_id_t)NUM2UINT(_shape_id)))' - rb_shape_t.new(shape_addr) - end - - def rb_iseq_check(iseq) - _iseq_addr = iseq.to_i - iseq_addr = Primitive.cexpr! 'SIZET2NUM((VALUE)rb_iseq_check((rb_iseq_t *)NUM2SIZET(_iseq_addr)))' - rb_iseq_t.new(iseq_addr) - end - - def rb_iseq_path(iseq) - _iseq_addr = iseq.to_i - Primitive.cexpr! 'rb_iseq_path((rb_iseq_t *)NUM2SIZET(_iseq_addr))' - end - - def vm_ci_argc(ci) - _ci_addr = ci.to_i - Primitive.cexpr! 'UINT2NUM(vm_ci_argc((CALL_INFO)NUM2SIZET(_ci_addr)))' - end - - def vm_ci_flag(ci) - _ci_addr = ci.to_i - Primitive.cexpr! 'UINT2NUM(vm_ci_flag((CALL_INFO)NUM2SIZET(_ci_addr)))' - end - - def vm_ci_mid(ci) - _ci_addr = ci.to_i - Primitive.cexpr! 'SIZET2NUM((size_t)vm_ci_mid((CALL_INFO)NUM2SIZET(_ci_addr)))' - end - - def rjit_opts - addr = Primitive.cexpr! 'SIZET2NUM((VALUE)&rb_rjit_opts)' - rjit_options.new(addr) - end - - def rjit_cancel_all(reason) - Primitive.cstmt! %{ - rb_rjit_cancel_all(RSTRING_PTR(reason)); - return Qnil; - } - end - - # Convert an encoded VM pointer to an insn BIN. - def rb_vm_insn_decode(encoded) - # Using rb_vm_insn_addr2opcode to return trace_ insns - Primitive.cexpr! 'INT2NUM(rb_vm_insn_addr2opcode((void *)NUM2SIZET(encoded)))' - end - - # Convert Integer VALUE to an actual Ruby object - def to_ruby(value) - Primitive.cexpr! '(VALUE)NUM2SIZET(value)' - end - - def HAVE_LIBCAPSTONE - Primitive.cstmt! %{ - #ifdef HAVE_LIBCAPSTONE - return Qtrue; - #else - return Qfalse; - #endif - } - end - - def rjit_exit_traces - Primitive.cexpr! 'rjit_exit_traces()' - end - - def rb_vm_ep_local_ep(ep) - _ep = ep.to_i - lep_addr = Primitive.cexpr! 'SIZET2NUM((size_t)rb_vm_ep_local_ep((const VALUE *)NUM2SIZET(_ep)))' - C.VALUE.new(lep_addr) - end - - # - # Utilities: Not used by RJIT, but useful for debugging - # - - # Convert insn BINs to encoded VM pointers. - def rb_vm_insn_encode(bin) - Primitive.cexpr! 'SIZET2NUM((VALUE)rb_vm_get_insns_address_table()[NUM2INT(bin)])' - end - - # Convert RubyVM::InstructionSequence to C.rb_iseq_t. - def rb_iseqw_to_iseq(iseqw) - iseq_addr = Primitive.cexpr! 'SIZET2NUM((VALUE)rb_iseqw_to_iseq(iseqw))' - rb_iseq_t.new(iseq_addr) - end - end - - ### RJIT bindgen begin ### - - C::VM_ENV_DATA_INDEX_ME_CREF = Primitive.cexpr! %q{ LONG2NUM(VM_ENV_DATA_INDEX_ME_CREF) } - C::VM_ENV_DATA_INDEX_SPECVAL = Primitive.cexpr! %q{ LONG2NUM(VM_ENV_DATA_INDEX_SPECVAL) } - C::ARRAY_REDEFINED_OP_FLAG = Primitive.cexpr! %q{ SIZET2NUM(ARRAY_REDEFINED_OP_FLAG) } - C::BOP_AND = Primitive.cexpr! %q{ SIZET2NUM(BOP_AND) } - C::BOP_AREF = Primitive.cexpr! %q{ SIZET2NUM(BOP_AREF) } - C::BOP_EQ = Primitive.cexpr! %q{ SIZET2NUM(BOP_EQ) } - C::BOP_FREEZE = Primitive.cexpr! %q{ SIZET2NUM(BOP_FREEZE) } - C::BOP_GE = Primitive.cexpr! %q{ SIZET2NUM(BOP_GE) } - C::BOP_GT = Primitive.cexpr! %q{ SIZET2NUM(BOP_GT) } - C::BOP_LE = Primitive.cexpr! %q{ SIZET2NUM(BOP_LE) } - C::BOP_LT = Primitive.cexpr! %q{ SIZET2NUM(BOP_LT) } - C::BOP_MINUS = Primitive.cexpr! %q{ SIZET2NUM(BOP_MINUS) } - C::BOP_MOD = Primitive.cexpr! %q{ SIZET2NUM(BOP_MOD) } - C::BOP_OR = Primitive.cexpr! %q{ SIZET2NUM(BOP_OR) } - C::BOP_PLUS = Primitive.cexpr! %q{ SIZET2NUM(BOP_PLUS) } - C::HASH_REDEFINED_OP_FLAG = Primitive.cexpr! %q{ SIZET2NUM(HASH_REDEFINED_OP_FLAG) } - C::INTEGER_REDEFINED_OP_FLAG = Primitive.cexpr! %q{ SIZET2NUM(INTEGER_REDEFINED_OP_FLAG) } - C::INVALID_SHAPE_ID = Primitive.cexpr! %q{ SIZET2NUM(INVALID_SHAPE_ID) } - C::METHOD_VISI_PRIVATE = Primitive.cexpr! %q{ SIZET2NUM(METHOD_VISI_PRIVATE) } - C::METHOD_VISI_PROTECTED = Primitive.cexpr! %q{ SIZET2NUM(METHOD_VISI_PROTECTED) } - C::METHOD_VISI_PUBLIC = Primitive.cexpr! %q{ SIZET2NUM(METHOD_VISI_PUBLIC) } - C::OBJ_TOO_COMPLEX_SHAPE_ID = Primitive.cexpr! %q{ SIZET2NUM(OBJ_TOO_COMPLEX_SHAPE_ID) } - C::OPTIMIZED_METHOD_TYPE_BLOCK_CALL = Primitive.cexpr! %q{ SIZET2NUM(OPTIMIZED_METHOD_TYPE_BLOCK_CALL) } - C::OPTIMIZED_METHOD_TYPE_CALL = Primitive.cexpr! %q{ SIZET2NUM(OPTIMIZED_METHOD_TYPE_CALL) } - C::OPTIMIZED_METHOD_TYPE_SEND = Primitive.cexpr! %q{ SIZET2NUM(OPTIMIZED_METHOD_TYPE_SEND) } - C::OPTIMIZED_METHOD_TYPE_STRUCT_AREF = Primitive.cexpr! %q{ SIZET2NUM(OPTIMIZED_METHOD_TYPE_STRUCT_AREF) } - C::OPTIMIZED_METHOD_TYPE_STRUCT_ASET = Primitive.cexpr! %q{ SIZET2NUM(OPTIMIZED_METHOD_TYPE_STRUCT_ASET) } - C::RARRAY_EMBED_FLAG = Primitive.cexpr! %q{ SIZET2NUM(RARRAY_EMBED_FLAG) } - C::RARRAY_EMBED_LEN_MASK = Primitive.cexpr! %q{ SIZET2NUM(RARRAY_EMBED_LEN_MASK) } - C::RARRAY_EMBED_LEN_SHIFT = Primitive.cexpr! %q{ SIZET2NUM(RARRAY_EMBED_LEN_SHIFT) } - C::RMODULE_IS_REFINEMENT = Primitive.cexpr! %q{ SIZET2NUM(RMODULE_IS_REFINEMENT) } - C::ROBJECT_EMBED = Primitive.cexpr! %q{ SIZET2NUM(ROBJECT_EMBED) } - C::RSTRUCT_EMBED_LEN_MASK = Primitive.cexpr! %q{ SIZET2NUM(RSTRUCT_EMBED_LEN_MASK) } - C::RUBY_EVENT_CLASS = Primitive.cexpr! %q{ SIZET2NUM(RUBY_EVENT_CLASS) } - C::RUBY_EVENT_C_CALL = Primitive.cexpr! %q{ SIZET2NUM(RUBY_EVENT_C_CALL) } - C::RUBY_EVENT_C_RETURN = Primitive.cexpr! %q{ SIZET2NUM(RUBY_EVENT_C_RETURN) } - C::RUBY_FIXNUM_FLAG = Primitive.cexpr! %q{ SIZET2NUM(RUBY_FIXNUM_FLAG) } - C::RUBY_FLONUM_FLAG = Primitive.cexpr! %q{ SIZET2NUM(RUBY_FLONUM_FLAG) } - C::RUBY_FLONUM_MASK = Primitive.cexpr! %q{ SIZET2NUM(RUBY_FLONUM_MASK) } - C::RUBY_FL_SINGLETON = Primitive.cexpr! %q{ SIZET2NUM(RUBY_FL_SINGLETON) } - C::RUBY_IMMEDIATE_MASK = Primitive.cexpr! %q{ SIZET2NUM(RUBY_IMMEDIATE_MASK) } - C::RUBY_SPECIAL_SHIFT = Primitive.cexpr! %q{ SIZET2NUM(RUBY_SPECIAL_SHIFT) } - C::RUBY_SYMBOL_FLAG = Primitive.cexpr! %q{ SIZET2NUM(RUBY_SYMBOL_FLAG) } - C::RUBY_T_ARRAY = Primitive.cexpr! %q{ SIZET2NUM(RUBY_T_ARRAY) } - C::RUBY_T_ICLASS = Primitive.cexpr! %q{ SIZET2NUM(RUBY_T_ICLASS) } - C::RUBY_T_MASK = Primitive.cexpr! %q{ SIZET2NUM(RUBY_T_MASK) } - C::RUBY_T_MODULE = Primitive.cexpr! %q{ SIZET2NUM(RUBY_T_MODULE) } - C::RUBY_T_STRING = Primitive.cexpr! %q{ SIZET2NUM(RUBY_T_STRING) } - C::RUBY_T_SYMBOL = Primitive.cexpr! %q{ SIZET2NUM(RUBY_T_SYMBOL) } - C::SHAPE_CAPACITY_CHANGE = Primitive.cexpr! %q{ SIZET2NUM(SHAPE_CAPACITY_CHANGE) } - C::SHAPE_FLAG_SHIFT = Primitive.cexpr! %q{ SIZET2NUM(SHAPE_FLAG_SHIFT) } - C::SHAPE_FROZEN = Primitive.cexpr! %q{ SIZET2NUM(SHAPE_FROZEN) } - C::SHAPE_ID_NUM_BITS = Primitive.cexpr! %q{ SIZET2NUM(SHAPE_ID_NUM_BITS) } - C::SHAPE_INITIAL_CAPACITY = Primitive.cexpr! %q{ SIZET2NUM(SHAPE_INITIAL_CAPACITY) } - C::SHAPE_IVAR = Primitive.cexpr! %q{ SIZET2NUM(SHAPE_IVAR) } - C::SHAPE_MASK = Primitive.cexpr! %q{ SIZET2NUM(SHAPE_MASK) } - C::SHAPE_ROOT = Primitive.cexpr! %q{ SIZET2NUM(SHAPE_ROOT) } - C::STRING_REDEFINED_OP_FLAG = Primitive.cexpr! %q{ SIZET2NUM(STRING_REDEFINED_OP_FLAG) } - C::T_OBJECT = Primitive.cexpr! %q{ SIZET2NUM(T_OBJECT) } - C::VM_BLOCK_HANDLER_NONE = Primitive.cexpr! %q{ SIZET2NUM(VM_BLOCK_HANDLER_NONE) } - C::VM_CALL_ARGS_BLOCKARG = Primitive.cexpr! %q{ SIZET2NUM(VM_CALL_ARGS_BLOCKARG) } - C::VM_CALL_ARGS_SPLAT = Primitive.cexpr! %q{ SIZET2NUM(VM_CALL_ARGS_SPLAT) } - C::VM_CALL_FCALL = Primitive.cexpr! %q{ SIZET2NUM(VM_CALL_FCALL) } - C::VM_CALL_KWARG = Primitive.cexpr! %q{ SIZET2NUM(VM_CALL_KWARG) } - C::VM_CALL_KW_SPLAT = Primitive.cexpr! %q{ SIZET2NUM(VM_CALL_KW_SPLAT) } - C::VM_CALL_KW_SPLAT_bit = Primitive.cexpr! %q{ SIZET2NUM(VM_CALL_KW_SPLAT_bit) } - C::VM_CALL_OPT_SEND = Primitive.cexpr! %q{ SIZET2NUM(VM_CALL_OPT_SEND) } - C::VM_CALL_TAILCALL = Primitive.cexpr! %q{ SIZET2NUM(VM_CALL_TAILCALL) } - C::VM_CALL_TAILCALL_bit = Primitive.cexpr! %q{ SIZET2NUM(VM_CALL_TAILCALL_bit) } - C::VM_ENV_DATA_INDEX_FLAGS = Primitive.cexpr! %q{ SIZET2NUM(VM_ENV_DATA_INDEX_FLAGS) } - C::VM_ENV_DATA_SIZE = Primitive.cexpr! %q{ SIZET2NUM(VM_ENV_DATA_SIZE) } - C::VM_ENV_FLAG_LOCAL = Primitive.cexpr! %q{ SIZET2NUM(VM_ENV_FLAG_LOCAL) } - C::VM_ENV_FLAG_WB_REQUIRED = Primitive.cexpr! %q{ SIZET2NUM(VM_ENV_FLAG_WB_REQUIRED) } - C::VM_FRAME_FLAG_BMETHOD = Primitive.cexpr! %q{ SIZET2NUM(VM_FRAME_FLAG_BMETHOD) } - C::VM_FRAME_FLAG_CFRAME = Primitive.cexpr! %q{ SIZET2NUM(VM_FRAME_FLAG_CFRAME) } - C::VM_FRAME_FLAG_CFRAME_KW = Primitive.cexpr! %q{ SIZET2NUM(VM_FRAME_FLAG_CFRAME_KW) } - C::VM_FRAME_FLAG_LAMBDA = Primitive.cexpr! %q{ SIZET2NUM(VM_FRAME_FLAG_LAMBDA) } - C::VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM = Primitive.cexpr! %q{ SIZET2NUM(VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM) } - C::VM_FRAME_MAGIC_BLOCK = Primitive.cexpr! %q{ SIZET2NUM(VM_FRAME_MAGIC_BLOCK) } - C::VM_FRAME_MAGIC_CFUNC = Primitive.cexpr! %q{ SIZET2NUM(VM_FRAME_MAGIC_CFUNC) } - C::VM_FRAME_MAGIC_METHOD = Primitive.cexpr! %q{ SIZET2NUM(VM_FRAME_MAGIC_METHOD) } - C::VM_METHOD_TYPE_ALIAS = Primitive.cexpr! %q{ SIZET2NUM(VM_METHOD_TYPE_ALIAS) } - C::VM_METHOD_TYPE_ATTRSET = Primitive.cexpr! %q{ SIZET2NUM(VM_METHOD_TYPE_ATTRSET) } - C::VM_METHOD_TYPE_BMETHOD = Primitive.cexpr! %q{ SIZET2NUM(VM_METHOD_TYPE_BMETHOD) } - C::VM_METHOD_TYPE_CFUNC = Primitive.cexpr! %q{ SIZET2NUM(VM_METHOD_TYPE_CFUNC) } - C::VM_METHOD_TYPE_ISEQ = Primitive.cexpr! %q{ SIZET2NUM(VM_METHOD_TYPE_ISEQ) } - C::VM_METHOD_TYPE_IVAR = Primitive.cexpr! %q{ SIZET2NUM(VM_METHOD_TYPE_IVAR) } - C::VM_METHOD_TYPE_MISSING = Primitive.cexpr! %q{ SIZET2NUM(VM_METHOD_TYPE_MISSING) } - C::VM_METHOD_TYPE_NOTIMPLEMENTED = Primitive.cexpr! %q{ SIZET2NUM(VM_METHOD_TYPE_NOTIMPLEMENTED) } - C::VM_METHOD_TYPE_OPTIMIZED = Primitive.cexpr! %q{ SIZET2NUM(VM_METHOD_TYPE_OPTIMIZED) } - C::VM_METHOD_TYPE_REFINED = Primitive.cexpr! %q{ SIZET2NUM(VM_METHOD_TYPE_REFINED) } - C::VM_METHOD_TYPE_UNDEF = Primitive.cexpr! %q{ SIZET2NUM(VM_METHOD_TYPE_UNDEF) } - C::VM_METHOD_TYPE_ZSUPER = Primitive.cexpr! %q{ SIZET2NUM(VM_METHOD_TYPE_ZSUPER) } - - def C.block_type_iseq - Primitive.cexpr! %q{ SIZET2NUM(block_type_iseq) } - end - - def C.imemo_iseq - Primitive.cexpr! %q{ SIZET2NUM(imemo_iseq) } - end - - def C.rb_block_param_proxy - Primitive.cexpr! %q{ SIZET2NUM(rb_block_param_proxy) } - end - - def C.rb_cFalseClass - Primitive.cexpr! %q{ SIZET2NUM(rb_cFalseClass) } - end - - def C.rb_cFloat - Primitive.cexpr! %q{ SIZET2NUM(rb_cFloat) } - end - - def C.rb_cInteger - Primitive.cexpr! %q{ SIZET2NUM(rb_cInteger) } - end - - def C.rb_cNilClass - Primitive.cexpr! %q{ SIZET2NUM(rb_cNilClass) } - end - - def C.rb_cSymbol - Primitive.cexpr! %q{ SIZET2NUM(rb_cSymbol) } - end - - def C.rb_cTrueClass - Primitive.cexpr! %q{ SIZET2NUM(rb_cTrueClass) } - end - - def C.rb_rjit_global_events - Primitive.cexpr! %q{ SIZET2NUM(rb_rjit_global_events) } - end - - def C.rb_ary_entry_internal - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ary_entry_internal) } - end - - def C.rb_ary_push - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ary_push) } - end - - def C.rb_ary_resurrect - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ary_resurrect) } - end - - def C.rb_ary_store - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ary_store) } - end - - def C.rb_ec_ary_new_from_values - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ec_ary_new_from_values) } - end - - def C.rb_ec_str_resurrect - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ec_str_resurrect) } - end - - def C.rb_ensure_iv_list_size - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ensure_iv_list_size) } - end - - def C.rb_fix_aref - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_fix_aref) } - end - - def C.rb_fix_div_fix - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_fix_div_fix) } - end - - def C.rb_fix_mod_fix - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_fix_mod_fix) } - end - - def C.rb_fix_mul_fix - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_fix_mul_fix) } - end - - def C.rb_gc_writebarrier - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_gc_writebarrier) } - end - - def C.rb_get_symbol_id - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_get_symbol_id) } - end - - def C.rb_hash_aref - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_hash_aref) } - end - - def C.rb_hash_aset - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_hash_aset) } - end - - def C.rb_hash_bulk_insert - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_hash_bulk_insert) } - end - - def C.rb_hash_new - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_hash_new) } - end - - def C.rb_hash_new_with_size - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_hash_new_with_size) } - end - - def C.rb_ivar_defined - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ivar_defined) } - end - - def C.rb_ivar_get - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ivar_get) } - end - - def C.rb_obj_as_string_result - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_obj_as_string_result) } - end - - def C.rb_obj_is_kind_of - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_obj_is_kind_of) } - end - - def C.rb_str_concat_literals - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_str_concat_literals) } - end - - def C.rb_str_eql_internal - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_str_eql_internal) } - end - - def C.rb_str_getbyte - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_str_getbyte) } - end - - def C.rb_vm_bh_to_procval - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_bh_to_procval) } - end - - def C.rb_vm_concat_array - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_concat_array) } - end - - def C.rb_vm_defined - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_defined) } - end - - def C.rb_vm_get_ev_const - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_get_ev_const) } - end - - def C.rb_vm_getclassvariable - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_getclassvariable) } - end - - def C.rb_vm_ic_hit_p - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_ic_hit_p) } - end - - def C.rb_vm_opt_newarray_min - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_opt_newarray_min) } - end - - def C.rb_vm_setinstancevariable - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_setinstancevariable) } - end - - def C.rb_vm_splat_array - Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_splat_array) } - end - - def C.rjit_full_cfunc_return - Primitive.cexpr! %q{ SIZET2NUM((size_t)rjit_full_cfunc_return) } - end - - def C.rjit_optimized_call - Primitive.cexpr! %q{ SIZET2NUM((size_t)rjit_optimized_call) } - end - - def C.rjit_record_exit_stack - Primitive.cexpr! %q{ SIZET2NUM((size_t)rjit_record_exit_stack) } - end - - def C.rjit_str_neq_internal - Primitive.cexpr! %q{ SIZET2NUM((size_t)rjit_str_neq_internal) } - end - - def C.CALL_DATA - @CALL_DATA ||= self.rb_call_data - end - - def C.IC - @IC ||= self.iseq_inline_constant_cache - end - - def C.ID - @ID ||= CType::Immediate.parse("unsigned long") - end - - def C.IVC - @IVC ||= self.iseq_inline_iv_cache_entry - end - - def C.RArray - @RArray ||= CType::Struct.new( - "RArray", Primitive.cexpr!("SIZEOF(struct RArray)"), - basic: [self.RBasic, Primitive.cexpr!("OFFSETOF((*((struct RArray *)NULL)), basic)")], - as: [CType::Union.new( - "", Primitive.cexpr!("SIZEOF(((struct RArray *)NULL)->as)"), - heap: CType::Struct.new( - "", Primitive.cexpr!("SIZEOF(((struct RArray *)NULL)->as.heap)"), - len: [CType::Immediate.parse("long"), Primitive.cexpr!("OFFSETOF(((struct RArray *)NULL)->as.heap, len)")], - aux: [CType::Union.new( - "", Primitive.cexpr!("SIZEOF(((struct RArray *)NULL)->as.heap.aux)"), - capa: CType::Immediate.parse("long"), - shared_root: self.VALUE, - ), Primitive.cexpr!("OFFSETOF(((struct RArray *)NULL)->as.heap, aux)")], - ptr: [CType::Pointer.new { self.VALUE }, Primitive.cexpr!("OFFSETOF(((struct RArray *)NULL)->as.heap, ptr)")], - ), - ary: CType::Pointer.new { self.VALUE }, - ), Primitive.cexpr!("OFFSETOF((*((struct RArray *)NULL)), as)")], - ) - end - - def C.RB_BUILTIN - @RB_BUILTIN ||= self.rb_builtin_function - end - - def C.RBasic - @RBasic ||= CType::Struct.new( - "RBasic", Primitive.cexpr!("SIZEOF(struct RBasic)"), - flags: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct RBasic *)NULL)), flags)")], - klass: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct RBasic *)NULL)), klass)")], - ) - end - - def C.RObject - @RObject ||= CType::Struct.new( - "RObject", Primitive.cexpr!("SIZEOF(struct RObject)"), - basic: [self.RBasic, Primitive.cexpr!("OFFSETOF((*((struct RObject *)NULL)), basic)")], - as: [CType::Union.new( - "", Primitive.cexpr!("SIZEOF(((struct RObject *)NULL)->as)"), - heap: CType::Struct.new( - "", Primitive.cexpr!("SIZEOF(((struct RObject *)NULL)->as.heap)"), - ivptr: [CType::Pointer.new { self.VALUE }, Primitive.cexpr!("OFFSETOF(((struct RObject *)NULL)->as.heap, ivptr)")], - iv_index_tbl: [CType::Pointer.new { self.rb_id_table }, Primitive.cexpr!("OFFSETOF(((struct RObject *)NULL)->as.heap, iv_index_tbl)")], - ), - ary: CType::Pointer.new { self.VALUE }, - ), Primitive.cexpr!("OFFSETOF((*((struct RObject *)NULL)), as)")], - ) - end - - def C.RStruct - @RStruct ||= CType::Struct.new( - "RStruct", Primitive.cexpr!("SIZEOF(struct RStruct)"), - basic: [self.RBasic, Primitive.cexpr!("OFFSETOF((*((struct RStruct *)NULL)), basic)")], - as: [CType::Union.new( - "", Primitive.cexpr!("SIZEOF(((struct RStruct *)NULL)->as)"), - heap: CType::Struct.new( - "", Primitive.cexpr!("SIZEOF(((struct RStruct *)NULL)->as.heap)"), - len: [CType::Immediate.parse("long"), Primitive.cexpr!("OFFSETOF(((struct RStruct *)NULL)->as.heap, len)")], - ptr: [CType::Pointer.new { self.VALUE }, Primitive.cexpr!("OFFSETOF(((struct RStruct *)NULL)->as.heap, ptr)")], - ), - ary: CType::Pointer.new { self.VALUE }, - ), Primitive.cexpr!("OFFSETOF((*((struct RStruct *)NULL)), as)")], - ) - end - - def C.attr_index_t - @attr_index_t ||= CType::Immediate.parse("uint32_t") - end - - def C.iseq_inline_constant_cache - @iseq_inline_constant_cache ||= CType::Struct.new( - "iseq_inline_constant_cache", Primitive.cexpr!("SIZEOF(struct iseq_inline_constant_cache)"), - entry: [CType::Pointer.new { self.iseq_inline_constant_cache_entry }, Primitive.cexpr!("OFFSETOF((*((struct iseq_inline_constant_cache *)NULL)), entry)")], - segments: [CType::Pointer.new { self.ID }, Primitive.cexpr!("OFFSETOF((*((struct iseq_inline_constant_cache *)NULL)), segments)")], - ) - end - - def C.iseq_inline_constant_cache_entry - @iseq_inline_constant_cache_entry ||= CType::Struct.new( - "iseq_inline_constant_cache_entry", Primitive.cexpr!("SIZEOF(struct iseq_inline_constant_cache_entry)"), - flags: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct iseq_inline_constant_cache_entry *)NULL)), flags)")], - value: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct iseq_inline_constant_cache_entry *)NULL)), value)")], - _unused1: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct iseq_inline_constant_cache_entry *)NULL)), _unused1)")], - _unused2: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct iseq_inline_constant_cache_entry *)NULL)), _unused2)")], - ic_cref: [CType::Pointer.new { self.rb_cref_t }, Primitive.cexpr!("OFFSETOF((*((struct iseq_inline_constant_cache_entry *)NULL)), ic_cref)")], - ) - end - - def C.iseq_inline_iv_cache_entry - @iseq_inline_iv_cache_entry ||= CType::Struct.new( - "iseq_inline_iv_cache_entry", Primitive.cexpr!("SIZEOF(struct iseq_inline_iv_cache_entry)"), - value: [CType::Immediate.parse("uintptr_t"), Primitive.cexpr!("OFFSETOF((*((struct iseq_inline_iv_cache_entry *)NULL)), value)")], - iv_set_name: [self.ID, Primitive.cexpr!("OFFSETOF((*((struct iseq_inline_iv_cache_entry *)NULL)), iv_set_name)")], - ) - end - - def C.iseq_inline_storage_entry - @iseq_inline_storage_entry ||= CType::Union.new( - "iseq_inline_storage_entry", Primitive.cexpr!("SIZEOF(union iseq_inline_storage_entry)"), - once: CType::Struct.new( - "", Primitive.cexpr!("SIZEOF(((union iseq_inline_storage_entry *)NULL)->once)"), - running_thread: [CType::Pointer.new { self.rb_thread_struct }, Primitive.cexpr!("OFFSETOF(((union iseq_inline_storage_entry *)NULL)->once, running_thread)")], - value: [self.VALUE, Primitive.cexpr!("OFFSETOF(((union iseq_inline_storage_entry *)NULL)->once, value)")], - ), - ic_cache: self.iseq_inline_constant_cache, - iv_cache: self.iseq_inline_iv_cache_entry, - ) - end - - def C.method_optimized_type - @method_optimized_type ||= CType::Immediate.parse("int") - end - - def C.rb_block - @rb_block ||= CType::Struct.new( - "rb_block", Primitive.cexpr!("SIZEOF(struct rb_block)"), - as: [CType::Union.new( - "", Primitive.cexpr!("SIZEOF(((struct rb_block *)NULL)->as)"), - captured: self.rb_captured_block, - symbol: self.VALUE, - proc: self.VALUE, - ), Primitive.cexpr!("OFFSETOF((*((struct rb_block *)NULL)), as)")], - type: [self.rb_block_type, Primitive.cexpr!("OFFSETOF((*((struct rb_block *)NULL)), type)")], - ) - end - - def C.rb_block_type - @rb_block_type ||= CType::Immediate.parse("int") - end - - def C.rb_builtin_function - @rb_builtin_function ||= CType::Struct.new( - "rb_builtin_function", Primitive.cexpr!("SIZEOF(struct rb_builtin_function)"), - func_ptr: [CType::Immediate.parse("void *"), Primitive.cexpr!("OFFSETOF((*((struct rb_builtin_function *)NULL)), func_ptr)")], - argc: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF((*((struct rb_builtin_function *)NULL)), argc)")], - index: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF((*((struct rb_builtin_function *)NULL)), index)")], - name: [CType::Pointer.new { CType::Immediate.parse("char") }, Primitive.cexpr!("OFFSETOF((*((struct rb_builtin_function *)NULL)), name)")], - ) - end - - def C.rb_call_data - @rb_call_data ||= CType::Struct.new( - "rb_call_data", Primitive.cexpr!("SIZEOF(struct rb_call_data)"), - ci: [CType::Pointer.new { self.rb_callinfo }, Primitive.cexpr!("OFFSETOF((*((struct rb_call_data *)NULL)), ci)")], - cc: [CType::Pointer.new { self.rb_callcache }, Primitive.cexpr!("OFFSETOF((*((struct rb_call_data *)NULL)), cc)")], - ) - end - - def C.rb_callable_method_entry_struct - @rb_callable_method_entry_struct ||= CType::Struct.new( - "rb_callable_method_entry_struct", Primitive.cexpr!("SIZEOF(struct rb_callable_method_entry_struct)"), - flags: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_callable_method_entry_struct *)NULL)), flags)")], - defined_class: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_callable_method_entry_struct *)NULL)), defined_class)"), true], - def: [CType::Pointer.new { self.rb_method_definition_struct }, Primitive.cexpr!("OFFSETOF((*((struct rb_callable_method_entry_struct *)NULL)), def)")], - called_id: [self.ID, Primitive.cexpr!("OFFSETOF((*((struct rb_callable_method_entry_struct *)NULL)), called_id)")], - owner: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_callable_method_entry_struct *)NULL)), owner)")], - ) - end - - def C.rb_callable_method_entry_t - @rb_callable_method_entry_t ||= CType::Struct.new( - "rb_callable_method_entry_struct", Primitive.cexpr!("SIZEOF(struct rb_callable_method_entry_struct)"), - flags: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_callable_method_entry_struct *)NULL)), flags)")], - defined_class: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_callable_method_entry_struct *)NULL)), defined_class)"), true], - def: [CType::Pointer.new { self.rb_method_definition_struct }, Primitive.cexpr!("OFFSETOF((*((struct rb_callable_method_entry_struct *)NULL)), def)")], - called_id: [self.ID, Primitive.cexpr!("OFFSETOF((*((struct rb_callable_method_entry_struct *)NULL)), called_id)")], - owner: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_callable_method_entry_struct *)NULL)), owner)")], - ) - end - - def C.rb_callcache - @rb_callcache ||= CType::Struct.new( - "rb_callcache", Primitive.cexpr!("SIZEOF(struct rb_callcache)"), - flags: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_callcache *)NULL)), flags)")], - klass: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_callcache *)NULL)), klass)")], - cme_: [CType::Pointer.new { self.rb_callable_method_entry_struct }, Primitive.cexpr!("OFFSETOF((*((struct rb_callcache *)NULL)), cme_)")], - call_: [self.vm_call_handler, Primitive.cexpr!("OFFSETOF((*((struct rb_callcache *)NULL)), call_)")], - aux_: [CType::Union.new( - "", Primitive.cexpr!("SIZEOF(((struct rb_callcache *)NULL)->aux_)"), - attr: CType::Struct.new( - "", Primitive.cexpr!("SIZEOF(((struct rb_callcache *)NULL)->aux_.attr)"), - value: [CType::Immediate.parse("uintptr_t"), Primitive.cexpr!("OFFSETOF(((struct rb_callcache *)NULL)->aux_.attr, value)")], - ), - method_missing_reason: self.method_missing_reason, - v: self.VALUE, - ), Primitive.cexpr!("OFFSETOF((*((struct rb_callcache *)NULL)), aux_)")], - ) - end - - def C.rb_callinfo - @rb_callinfo ||= CType::Struct.new( - "rb_callinfo", Primitive.cexpr!("SIZEOF(struct rb_callinfo)"), - flags: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_callinfo *)NULL)), flags)")], - kwarg: [CType::Pointer.new { self.rb_callinfo_kwarg }, Primitive.cexpr!("OFFSETOF((*((struct rb_callinfo *)NULL)), kwarg)")], - mid: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_callinfo *)NULL)), mid)")], - flag: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_callinfo *)NULL)), flag)")], - argc: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_callinfo *)NULL)), argc)")], - ) - end - - def C.rb_captured_block - @rb_captured_block ||= CType::Struct.new( - "rb_captured_block", Primitive.cexpr!("SIZEOF(struct rb_captured_block)"), - self: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_captured_block *)NULL)), self)")], - ep: [CType::Pointer.new { self.VALUE }, Primitive.cexpr!("OFFSETOF((*((struct rb_captured_block *)NULL)), ep)")], - code: [CType::Union.new( - "", Primitive.cexpr!("SIZEOF(((struct rb_captured_block *)NULL)->code)"), - iseq: CType::Pointer.new { self.rb_iseq_t }, - ifunc: CType::Pointer.new { self.vm_ifunc }, - val: self.VALUE, - ), Primitive.cexpr!("OFFSETOF((*((struct rb_captured_block *)NULL)), code)")], - ) - end - - def C.rb_control_frame_t - @rb_control_frame_t ||= CType::Struct.new( - "rb_control_frame_struct", Primitive.cexpr!("SIZEOF(struct rb_control_frame_struct)"), - pc: [CType::Pointer.new { self.VALUE }, Primitive.cexpr!("OFFSETOF((*((struct rb_control_frame_struct *)NULL)), pc)")], - sp: [CType::Pointer.new { self.VALUE }, Primitive.cexpr!("OFFSETOF((*((struct rb_control_frame_struct *)NULL)), sp)")], - iseq: [CType::Pointer.new { self.rb_iseq_t }, Primitive.cexpr!("OFFSETOF((*((struct rb_control_frame_struct *)NULL)), iseq)")], - self: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_control_frame_struct *)NULL)), self)")], - ep: [CType::Pointer.new { self.VALUE }, Primitive.cexpr!("OFFSETOF((*((struct rb_control_frame_struct *)NULL)), ep)")], - block_code: [CType::Immediate.parse("void *"), Primitive.cexpr!("OFFSETOF((*((struct rb_control_frame_struct *)NULL)), block_code)")], - __bp__: [CType::Pointer.new { self.VALUE }, Primitive.cexpr!("OFFSETOF((*((struct rb_control_frame_struct *)NULL)), __bp__)")], - jit_return: [CType::Pointer.new { CType::Immediate.parse("void") }, Primitive.cexpr!("OFFSETOF((*((struct rb_control_frame_struct *)NULL)), jit_return)")], - ) - end - - def C.rb_cref_t - @rb_cref_t ||= CType::Struct.new( - "rb_cref_struct", Primitive.cexpr!("SIZEOF(struct rb_cref_struct)"), - flags: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_cref_struct *)NULL)), flags)")], - refinements: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_cref_struct *)NULL)), refinements)")], - klass_or_self: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_cref_struct *)NULL)), klass_or_self)")], - next: [CType::Pointer.new { self.rb_cref_struct }, Primitive.cexpr!("OFFSETOF((*((struct rb_cref_struct *)NULL)), next)")], - scope_visi: [self.rb_scope_visibility_t, Primitive.cexpr!("OFFSETOF((*((struct rb_cref_struct *)NULL)), scope_visi)")], - ) - end - - def C.rb_execution_context_struct - @rb_execution_context_struct ||= CType::Struct.new( - "rb_execution_context_struct", Primitive.cexpr!("SIZEOF(struct rb_execution_context_struct)"), - vm_stack: [CType::Pointer.new { self.VALUE }, Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), vm_stack)")], - vm_stack_size: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), vm_stack_size)")], - cfp: [CType::Pointer.new { self.rb_control_frame_t }, Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), cfp)")], - tag: [CType::Pointer.new { self.rb_vm_tag }, Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), tag)")], - interrupt_flag: [self.rb_atomic_t, Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), interrupt_flag)")], - interrupt_mask: [self.rb_atomic_t, Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), interrupt_mask)")], - fiber_ptr: [CType::Pointer.new { self.rb_fiber_t }, Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), fiber_ptr)")], - thread_ptr: [CType::Pointer.new { self.rb_thread_struct }, Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), thread_ptr)")], - local_storage: [CType::Pointer.new { self.rb_id_table }, Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), local_storage)")], - local_storage_recursive_hash: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), local_storage_recursive_hash)")], - local_storage_recursive_hash_for_trace: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), local_storage_recursive_hash_for_trace)")], - storage: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), storage)")], - root_lep: [CType::Pointer.new { self.VALUE }, Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), root_lep)")], - root_svar: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), root_svar)")], - ensure_list: [CType::Pointer.new { self.rb_ensure_list_t }, Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), ensure_list)")], - trace_arg: [CType::Pointer.new { self.rb_trace_arg_struct }, Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), trace_arg)")], - errinfo: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), errinfo)")], - passed_block_handler: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), passed_block_handler)")], - raised_flag: [CType::Immediate.parse("uint8_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), raised_flag)")], - private_const_reference: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), private_const_reference)")], - machine: [CType::Struct.new( - "", Primitive.cexpr!("SIZEOF(((struct rb_execution_context_struct *)NULL)->machine)"), - stack_start: [CType::Pointer.new { self.VALUE }, Primitive.cexpr!("OFFSETOF(((struct rb_execution_context_struct *)NULL)->machine, stack_start)")], - stack_end: [CType::Pointer.new { self.VALUE }, Primitive.cexpr!("OFFSETOF(((struct rb_execution_context_struct *)NULL)->machine, stack_end)")], - stack_maxsize: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF(((struct rb_execution_context_struct *)NULL)->machine, stack_maxsize)")], - ), Primitive.cexpr!("OFFSETOF((*((struct rb_execution_context_struct *)NULL)), machine)")], - ) - end - - def C.rb_execution_context_t - @rb_execution_context_t ||= self.rb_execution_context_struct - end - - def C.rb_iseq_constant_body - @rb_iseq_constant_body ||= CType::Struct.new( - "rb_iseq_constant_body", Primitive.cexpr!("SIZEOF(struct rb_iseq_constant_body)"), - type: [self.rb_iseq_type, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), type)")], - iseq_size: [CType::Immediate.parse("unsigned int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), iseq_size)")], - iseq_encoded: [CType::Pointer.new { self.VALUE }, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), iseq_encoded)")], - param: [CType::Struct.new( - "", Primitive.cexpr!("SIZEOF(((struct rb_iseq_constant_body *)NULL)->param)"), - flags: [CType::Struct.new( - "", Primitive.cexpr!("SIZEOF(((struct rb_iseq_constant_body *)NULL)->param.flags)"), - has_lead: [CType::BitField.new(1, 0), 0], - has_opt: [CType::BitField.new(1, 1), 1], - has_rest: [CType::BitField.new(1, 2), 2], - has_post: [CType::BitField.new(1, 3), 3], - has_kw: [CType::BitField.new(1, 4), 4], - has_kwrest: [CType::BitField.new(1, 5), 5], - has_block: [CType::BitField.new(1, 6), 6], - ambiguous_param0: [CType::BitField.new(1, 7), 7], - accepts_no_kwarg: [CType::BitField.new(1, 0), 8], - ruby2_keywords: [CType::BitField.new(1, 1), 9], - ), Primitive.cexpr!("OFFSETOF(((struct rb_iseq_constant_body *)NULL)->param, flags)")], - size: [CType::Immediate.parse("unsigned int"), Primitive.cexpr!("OFFSETOF(((struct rb_iseq_constant_body *)NULL)->param, size)")], - lead_num: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF(((struct rb_iseq_constant_body *)NULL)->param, lead_num)")], - opt_num: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF(((struct rb_iseq_constant_body *)NULL)->param, opt_num)")], - rest_start: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF(((struct rb_iseq_constant_body *)NULL)->param, rest_start)")], - post_start: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF(((struct rb_iseq_constant_body *)NULL)->param, post_start)")], - post_num: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF(((struct rb_iseq_constant_body *)NULL)->param, post_num)")], - block_start: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF(((struct rb_iseq_constant_body *)NULL)->param, block_start)")], - opt_table: [CType::Pointer.new { self.VALUE }, Primitive.cexpr!("OFFSETOF(((struct rb_iseq_constant_body *)NULL)->param, opt_table)")], - keyword: [CType::Pointer.new { self.rb_iseq_param_keyword }, Primitive.cexpr!("OFFSETOF(((struct rb_iseq_constant_body *)NULL)->param, keyword)")], - ), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), param)")], - location: [self.rb_iseq_location_t, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), location)")], - insns_info: [self.iseq_insn_info, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), insns_info)")], - local_table: [CType::Pointer.new { self.ID }, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), local_table)")], - catch_table: [CType::Pointer.new { self.iseq_catch_table }, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), catch_table)")], - parent_iseq: [CType::Pointer.new { self.rb_iseq_struct }, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), parent_iseq)")], - local_iseq: [CType::Pointer.new { self.rb_iseq_struct }, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), local_iseq)")], - is_entries: [CType::Pointer.new { self.iseq_inline_storage_entry }, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), is_entries)")], - call_data: [CType::Pointer.new { self.rb_call_data }, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), call_data)")], - variable: [CType::Struct.new( - "", Primitive.cexpr!("SIZEOF(((struct rb_iseq_constant_body *)NULL)->variable)"), - flip_count: [self.rb_snum_t, Primitive.cexpr!("OFFSETOF(((struct rb_iseq_constant_body *)NULL)->variable, flip_count)")], - script_lines: [self.VALUE, Primitive.cexpr!("OFFSETOF(((struct rb_iseq_constant_body *)NULL)->variable, script_lines)")], - coverage: [self.VALUE, Primitive.cexpr!("OFFSETOF(((struct rb_iseq_constant_body *)NULL)->variable, coverage)")], - pc2branchindex: [self.VALUE, Primitive.cexpr!("OFFSETOF(((struct rb_iseq_constant_body *)NULL)->variable, pc2branchindex)")], - original_iseq: [CType::Pointer.new { self.VALUE }, Primitive.cexpr!("OFFSETOF(((struct rb_iseq_constant_body *)NULL)->variable, original_iseq)")], - ), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), variable)")], - local_table_size: [CType::Immediate.parse("unsigned int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), local_table_size)")], - ic_size: [CType::Immediate.parse("unsigned int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), ic_size)")], - ise_size: [CType::Immediate.parse("unsigned int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), ise_size)")], - ivc_size: [CType::Immediate.parse("unsigned int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), ivc_size)")], - icvarc_size: [CType::Immediate.parse("unsigned int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), icvarc_size)")], - ci_size: [CType::Immediate.parse("unsigned int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), ci_size)")], - stack_max: [CType::Immediate.parse("unsigned int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), stack_max)")], - catch_except_p: [self._Bool, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), catch_except_p)")], - builtin_attrs: [CType::Immediate.parse("unsigned int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), builtin_attrs)")], - mark_bits: [CType::Union.new( - "", Primitive.cexpr!("SIZEOF(((struct rb_iseq_constant_body *)NULL)->mark_bits)"), - list: CType::Pointer.new { self.iseq_bits_t }, - single: self.iseq_bits_t, - ), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), mark_bits)")], - outer_variables: [CType::Pointer.new { self.rb_id_table }, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), outer_variables)")], - mandatory_only_iseq: [CType::Pointer.new { self.rb_iseq_t }, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), mandatory_only_iseq)")], - jit_func: [self.rb_jit_func_t, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), jit_func)")], - total_calls: [CType::Immediate.parse("unsigned long"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), total_calls)")], - rjit_blocks: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), rjit_blocks)"), true], - ) - end - - def C.rb_iseq_location_t - @rb_iseq_location_t ||= CType::Struct.new( - "rb_iseq_location_struct", Primitive.cexpr!("SIZEOF(struct rb_iseq_location_struct)"), - pathobj: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_location_struct *)NULL)), pathobj)"), true], - base_label: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_location_struct *)NULL)), base_label)"), true], - label: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_location_struct *)NULL)), label)"), true], - first_lineno: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_location_struct *)NULL)), first_lineno)")], - node_id: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_location_struct *)NULL)), node_id)")], - code_location: [self.rb_code_location_t, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_location_struct *)NULL)), code_location)")], - ) - end - - def C.rb_iseq_struct - @rb_iseq_struct ||= CType::Struct.new( - "rb_iseq_struct", Primitive.cexpr!("SIZEOF(struct rb_iseq_struct)"), - flags: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_struct *)NULL)), flags)")], - wrapper: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_struct *)NULL)), wrapper)")], - body: [CType::Pointer.new { self.rb_iseq_constant_body }, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_struct *)NULL)), body)")], - aux: [CType::Union.new( - "", Primitive.cexpr!("SIZEOF(((struct rb_iseq_struct *)NULL)->aux)"), - compile_data: CType::Pointer.new { self.iseq_compile_data }, - loader: CType::Struct.new( - "", Primitive.cexpr!("SIZEOF(((struct rb_iseq_struct *)NULL)->aux.loader)"), - obj: [self.VALUE, Primitive.cexpr!("OFFSETOF(((struct rb_iseq_struct *)NULL)->aux.loader, obj)")], - index: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF(((struct rb_iseq_struct *)NULL)->aux.loader, index)")], - ), - exec: CType::Struct.new( - "", Primitive.cexpr!("SIZEOF(((struct rb_iseq_struct *)NULL)->aux.exec)"), - local_hooks: [CType::Pointer.new { self.rb_hook_list_struct }, Primitive.cexpr!("OFFSETOF(((struct rb_iseq_struct *)NULL)->aux.exec, local_hooks)")], - global_trace_events: [self.rb_event_flag_t, Primitive.cexpr!("OFFSETOF(((struct rb_iseq_struct *)NULL)->aux.exec, global_trace_events)")], - ), - ), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_struct *)NULL)), aux)")], - ) - end - - def C.rb_iseq_t - @rb_iseq_t ||= self.rb_iseq_struct - end - - def C.rb_jit_func_t - @rb_jit_func_t ||= CType::Immediate.parse("void *") - end - - def C.rb_method_attr_t - @rb_method_attr_t ||= CType::Struct.new( - "rb_method_attr_struct", Primitive.cexpr!("SIZEOF(struct rb_method_attr_struct)"), - id: [self.ID, Primitive.cexpr!("OFFSETOF((*((struct rb_method_attr_struct *)NULL)), id)")], - location: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_method_attr_struct *)NULL)), location)")], - ) - end - - def C.rb_method_bmethod_t - @rb_method_bmethod_t ||= CType::Struct.new( - "rb_method_bmethod_struct", Primitive.cexpr!("SIZEOF(struct rb_method_bmethod_struct)"), - proc: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_method_bmethod_struct *)NULL)), proc)")], - hooks: [CType::Pointer.new { self.rb_hook_list_struct }, Primitive.cexpr!("OFFSETOF((*((struct rb_method_bmethod_struct *)NULL)), hooks)")], - defined_ractor: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_method_bmethod_struct *)NULL)), defined_ractor)")], - ) - end - - def C.rb_method_cfunc_t - @rb_method_cfunc_t ||= CType::Struct.new( - "rb_method_cfunc_struct", Primitive.cexpr!("SIZEOF(struct rb_method_cfunc_struct)"), - func: [CType::Immediate.parse("void *"), Primitive.cexpr!("OFFSETOF((*((struct rb_method_cfunc_struct *)NULL)), func)")], - invoker: [CType::Immediate.parse("void *"), Primitive.cexpr!("OFFSETOF((*((struct rb_method_cfunc_struct *)NULL)), invoker)")], - argc: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF((*((struct rb_method_cfunc_struct *)NULL)), argc)")], - ) - end - - def C.rb_method_definition_struct - @rb_method_definition_struct ||= CType::Struct.new( - "rb_method_definition_struct", Primitive.cexpr!("SIZEOF(struct rb_method_definition_struct)"), - type: [CType::BitField.new(4, 0), 0], - iseq_overload: [CType::BitField.new(1, 4), 4], - alias_count: [CType::BitField.new(27, 5), 5], - complemented_count: [CType::BitField.new(28, 0), 32], - no_redef_warning: [CType::BitField.new(1, 4), 60], - body: [CType::Union.new( - "", Primitive.cexpr!("SIZEOF(((struct rb_method_definition_struct *)NULL)->body)"), - iseq: self.rb_method_iseq_t, - cfunc: self.rb_method_cfunc_t, - attr: self.rb_method_attr_t, - alias: self.rb_method_alias_t, - refined: self.rb_method_refined_t, - bmethod: self.rb_method_bmethod_t, - optimized: self.rb_method_optimized_t, - ), Primitive.cexpr!("OFFSETOF((*((struct rb_method_definition_struct *)NULL)), body)")], - original_id: [self.ID, Primitive.cexpr!("OFFSETOF((*((struct rb_method_definition_struct *)NULL)), original_id)")], - method_serial: [CType::Immediate.parse("uintptr_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_method_definition_struct *)NULL)), method_serial)")], - ) - end - - def C.rb_method_entry_t - @rb_method_entry_t ||= CType::Struct.new( - "rb_method_entry_struct", Primitive.cexpr!("SIZEOF(struct rb_method_entry_struct)"), - flags: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_method_entry_struct *)NULL)), flags)")], - defined_class: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_method_entry_struct *)NULL)), defined_class)")], - def: [CType::Pointer.new { self.rb_method_definition_struct }, Primitive.cexpr!("OFFSETOF((*((struct rb_method_entry_struct *)NULL)), def)")], - called_id: [self.ID, Primitive.cexpr!("OFFSETOF((*((struct rb_method_entry_struct *)NULL)), called_id)")], - owner: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_method_entry_struct *)NULL)), owner)")], - ) - end - - def C.rb_method_iseq_t - @rb_method_iseq_t ||= CType::Struct.new( - "rb_method_iseq_struct", Primitive.cexpr!("SIZEOF(struct rb_method_iseq_struct)"), - iseqptr: [CType::Pointer.new { self.rb_iseq_t }, Primitive.cexpr!("OFFSETOF((*((struct rb_method_iseq_struct *)NULL)), iseqptr)")], - cref: [CType::Pointer.new { self.rb_cref_t }, Primitive.cexpr!("OFFSETOF((*((struct rb_method_iseq_struct *)NULL)), cref)")], - ) - end - - def C.rb_method_optimized_t - @rb_method_optimized_t ||= CType::Struct.new( - "rb_method_optimized", Primitive.cexpr!("SIZEOF(struct rb_method_optimized)"), - type: [self.method_optimized_type, Primitive.cexpr!("OFFSETOF((*((struct rb_method_optimized *)NULL)), type)")], - index: [CType::Immediate.parse("unsigned int"), Primitive.cexpr!("OFFSETOF((*((struct rb_method_optimized *)NULL)), index)")], - ) - end - - def C.rb_method_type_t - @rb_method_type_t ||= CType::Immediate.parse("int") - end - - def C.rb_proc_t - @rb_proc_t ||= CType::Struct.new( - "", Primitive.cexpr!("SIZEOF(rb_proc_t)"), - block: [self.rb_block, Primitive.cexpr!("OFFSETOF((*((rb_proc_t *)NULL)), block)")], - ) - end - - def C.rb_rjit_runtime_counters - @rb_rjit_runtime_counters ||= CType::Struct.new( - "rb_rjit_runtime_counters", Primitive.cexpr!("SIZEOF(struct rb_rjit_runtime_counters)"), - vm_insns_count: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), vm_insns_count)")], - rjit_insns_count: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), rjit_insns_count)")], - send_args_splat: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_args_splat)")], - send_klass_megamorphic: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_klass_megamorphic)")], - send_kw_splat: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_kw_splat)")], - send_kwarg: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_kwarg)")], - send_missing_cme: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_missing_cme)")], - send_private: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_private)")], - send_protected_check_failed: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_protected_check_failed)")], - send_tailcall: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_tailcall)")], - send_notimplemented: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_notimplemented)")], - send_cfunc: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_cfunc)")], - send_attrset: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_attrset)")], - send_missing: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_missing)")], - send_bmethod: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_bmethod)")], - send_alias: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_alias)")], - send_undef: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_undef)")], - send_zsuper: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_zsuper)")], - send_refined: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_refined)")], - send_stackoverflow: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_stackoverflow)")], - send_arity: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_arity)")], - send_c_tracing: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_c_tracing)")], - send_blockarg_not_nil_or_proxy: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_blockarg_not_nil_or_proxy)")], - send_blockiseq: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_blockiseq)")], - send_block_handler: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_block_handler)")], - send_block_setup: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_block_setup)")], - send_block_not_nil: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_block_not_nil)")], - send_block_not_proxy: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_block_not_proxy)")], - send_iseq_kwparam: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_kwparam)")], - send_iseq_complex: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_complex)")], - send_cfunc_variadic: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_cfunc_variadic)")], - send_cfunc_too_many_args: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_cfunc_too_many_args)")], - send_cfunc_ruby_array_varg: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_cfunc_ruby_array_varg)")], - send_ivar: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_ivar)")], - send_ivar_splat: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_ivar_splat)")], - send_ivar_opt_send: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_ivar_opt_send)")], - send_ivar_blockarg: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_ivar_blockarg)")], - send_optimized_send_no_args: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_send_no_args)")], - send_optimized_send_not_sym_or_str: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_send_not_sym_or_str)")], - send_optimized_send_mid_class_changed: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_send_mid_class_changed)")], - send_optimized_send_mid_id_changed: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_send_mid_id_changed)")], - send_optimized_send_null_mid: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_send_null_mid)")], - send_optimized_send_send: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_send_send)")], - send_optimized_call_block: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_call_block)")], - send_optimized_call_kwarg: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_call_kwarg)")], - send_optimized_call_splat: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_call_splat)")], - send_optimized_struct_aref_error: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_struct_aref_error)")], - send_optimized_blockarg: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_blockarg)")], - send_optimized_block_call: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_block_call)")], - send_optimized_struct_aset: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_struct_aset)")], - send_bmethod_not_iseq: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_bmethod_not_iseq)")], - send_bmethod_blockarg: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_bmethod_blockarg)")], - invokesuper_me_changed: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), invokesuper_me_changed)")], - invokesuper_same_me: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), invokesuper_same_me)")], - invokeblock_none: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), invokeblock_none)")], - invokeblock_iseq: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), invokeblock_iseq)")], - invokeblock_ifunc: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), invokeblock_ifunc)")], - invokeblock_symbol: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), invokeblock_symbol)")], - invokeblock_proc: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), invokeblock_proc)")], - getivar_megamorphic: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), getivar_megamorphic)")], - getivar_not_heap: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), getivar_not_heap)")], - getivar_special_const: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), getivar_special_const)")], - getivar_too_complex: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), getivar_too_complex)")], - optaref_arg_not_fixnum: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), optaref_arg_not_fixnum)")], - optaref_argc_not_one: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), optaref_argc_not_one)")], - optaref_recv_not_array: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), optaref_recv_not_array)")], - optaref_recv_not_hash: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), optaref_recv_not_hash)")], - optaref_send: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), optaref_send)")], - optgetconst_not_cached: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), optgetconst_not_cached)")], - optgetconst_cref: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), optgetconst_cref)")], - optgetconst_cache_miss: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), optgetconst_cache_miss)")], - setivar_frozen: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), setivar_frozen)")], - setivar_not_heap: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), setivar_not_heap)")], - setivar_megamorphic: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), setivar_megamorphic)")], - setivar_too_complex: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), setivar_too_complex)")], - expandarray_splat: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), expandarray_splat)")], - expandarray_postarg: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), expandarray_postarg)")], - expandarray_not_array: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), expandarray_not_array)")], - expandarray_rhs_too_small: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), expandarray_rhs_too_small)")], - getblockpp_block_param_modified: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), getblockpp_block_param_modified)")], - getblockpp_block_handler_none: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), getblockpp_block_handler_none)")], - getblockpp_not_gc_guarded: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), getblockpp_not_gc_guarded)")], - getblockpp_not_iseq_block: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), getblockpp_not_iseq_block)")], - compiled_block_count: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), compiled_block_count)")], - ) - end - - def C.rb_serial_t - @rb_serial_t ||= CType::Immediate.parse("unsigned long long") - end - - def C.rb_shape - @rb_shape ||= CType::Struct.new( - "rb_shape", Primitive.cexpr!("SIZEOF(struct rb_shape)"), - edges: [CType::Pointer.new { self.rb_id_table }, Primitive.cexpr!("OFFSETOF((*((struct rb_shape *)NULL)), edges)")], - edge_name: [self.ID, Primitive.cexpr!("OFFSETOF((*((struct rb_shape *)NULL)), edge_name)")], - next_iv_index: [self.attr_index_t, Primitive.cexpr!("OFFSETOF((*((struct rb_shape *)NULL)), next_iv_index)")], - capacity: [CType::Immediate.parse("uint32_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_shape *)NULL)), capacity)")], - type: [CType::Immediate.parse("uint8_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_shape *)NULL)), type)")], - size_pool_index: [CType::Immediate.parse("uint8_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_shape *)NULL)), size_pool_index)")], - parent_id: [self.shape_id_t, Primitive.cexpr!("OFFSETOF((*((struct rb_shape *)NULL)), parent_id)")], - ) - end - - def C.rb_shape_t - @rb_shape_t ||= self.rb_shape - end - - def C.rb_thread_struct - @rb_thread_struct ||= CType::Struct.new( - "rb_thread_struct", Primitive.cexpr!("SIZEOF(struct rb_thread_struct)"), - lt_node: [self.ccan_list_node, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), lt_node)")], - self: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), self)")], - ractor: [CType::Pointer.new { self.rb_ractor_t }, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), ractor)")], - vm: [CType::Pointer.new { self.rb_vm_t }, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), vm)")], - nt: [CType::Pointer.new { self.rb_native_thread }, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), nt)")], - ec: [CType::Pointer.new { self.rb_execution_context_t }, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), ec)")], - sched: [self.rb_thread_sched_item, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), sched)")], - serial: [self.rb_atomic_t, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), serial)")], - last_status: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), last_status)")], - calling: [CType::Pointer.new { self.rb_calling_info }, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), calling)")], - top_self: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), top_self)")], - top_wrapper: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), top_wrapper)")], - priority: [CType::Immediate.parse("int8_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), priority)")], - running_time_us: [CType::Immediate.parse("uint32_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), running_time_us)")], - blocking_region_buffer: [CType::Pointer.new { CType::Immediate.parse("void") }, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), blocking_region_buffer)")], - thgroup: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), thgroup)")], - value: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), value)")], - pending_interrupt_queue: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), pending_interrupt_queue)")], - pending_interrupt_mask_stack: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), pending_interrupt_mask_stack)")], - interrupt_lock: [self.rb_nativethread_lock_t, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), interrupt_lock)")], - unblock: [self.rb_unblock_callback, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), unblock)")], - locking_mutex: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), locking_mutex)")], - keeping_mutexes: [CType::Pointer.new { self.rb_mutex_struct }, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), keeping_mutexes)")], - join_list: [CType::Pointer.new { self.rb_waiting_list }, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), join_list)")], - invoke_arg: [CType::Union.new( - "", Primitive.cexpr!("SIZEOF(((struct rb_thread_struct *)NULL)->invoke_arg)"), - proc: CType::Struct.new( - "", Primitive.cexpr!("SIZEOF(((struct rb_thread_struct *)NULL)->invoke_arg.proc)"), - proc: [self.VALUE, Primitive.cexpr!("OFFSETOF(((struct rb_thread_struct *)NULL)->invoke_arg.proc, proc)")], - args: [self.VALUE, Primitive.cexpr!("OFFSETOF(((struct rb_thread_struct *)NULL)->invoke_arg.proc, args)")], - kw_splat: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF(((struct rb_thread_struct *)NULL)->invoke_arg.proc, kw_splat)")], - ), - func: CType::Struct.new( - "", Primitive.cexpr!("SIZEOF(((struct rb_thread_struct *)NULL)->invoke_arg.func)"), - func: [CType::Immediate.parse("void *"), Primitive.cexpr!("OFFSETOF(((struct rb_thread_struct *)NULL)->invoke_arg.func, func)")], - arg: [CType::Pointer.new { CType::Immediate.parse("void") }, Primitive.cexpr!("OFFSETOF(((struct rb_thread_struct *)NULL)->invoke_arg.func, arg)")], - ), - ), Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), invoke_arg)")], - invoke_type: [self.thread_invoke_type, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), invoke_type)")], - stat_insn_usage: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), stat_insn_usage)")], - root_fiber: [CType::Pointer.new { self.rb_fiber_t }, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), root_fiber)")], - scheduler: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), scheduler)")], - blocking: [CType::Immediate.parse("unsigned int"), Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), blocking)")], - name: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), name)")], - ext_config: [self.rb_ext_config, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), ext_config)")], - ) - end - - def C.rjit_options - @rjit_options ||= CType::Struct.new( - "rjit_options", Primitive.cexpr!("SIZEOF(struct rjit_options)"), - on: [self._Bool, Primitive.cexpr!("OFFSETOF((*((struct rjit_options *)NULL)), on)")], - call_threshold: [CType::Immediate.parse("unsigned int"), Primitive.cexpr!("OFFSETOF((*((struct rjit_options *)NULL)), call_threshold)")], - exec_mem_size: [CType::Immediate.parse("unsigned int"), Primitive.cexpr!("OFFSETOF((*((struct rjit_options *)NULL)), exec_mem_size)")], - stats: [self._Bool, Primitive.cexpr!("OFFSETOF((*((struct rjit_options *)NULL)), stats)")], - trace_exits: [self._Bool, Primitive.cexpr!("OFFSETOF((*((struct rjit_options *)NULL)), trace_exits)")], - dump_disasm: [self._Bool, Primitive.cexpr!("OFFSETOF((*((struct rjit_options *)NULL)), dump_disasm)")], - pause: [self._Bool, Primitive.cexpr!("OFFSETOF((*((struct rjit_options *)NULL)), pause)")], - ) - end - - def C.VALUE - @VALUE ||= CType::Immediate.find(Primitive.cexpr!("SIZEOF(VALUE)"), Primitive.cexpr!("SIGNED_TYPE_P(VALUE)")) - end - - def C.shape_id_t - @shape_id_t ||= CType::Immediate.find(Primitive.cexpr!("SIZEOF(shape_id_t)"), Primitive.cexpr!("SIGNED_TYPE_P(shape_id_t)")) - end - - def C.rb_id_table - CType::Stub.new(:rb_id_table) - end - - def C.vm_call_handler - CType::Stub.new(:vm_call_handler) - end - - def C.method_missing_reason - CType::Stub.new(:method_missing_reason) - end - - def C.rb_callinfo_kwarg - CType::Stub.new(:rb_callinfo_kwarg) - end - - def C.vm_ifunc - CType::Stub.new(:vm_ifunc) - end - - def C.rb_cref_struct - CType::Stub.new(:rb_cref_struct) - end - - def C.rb_scope_visibility_t - CType::Stub.new(:rb_scope_visibility_t) - end - - def C.rb_vm_tag - CType::Stub.new(:rb_vm_tag) - end - - def C.rb_atomic_t - CType::Stub.new(:rb_atomic_t) - end - - def C.rb_fiber_t - CType::Stub.new(:rb_fiber_t) - end - - def C.rb_ensure_list_t - CType::Stub.new(:rb_ensure_list_t) - end - - def C.rb_trace_arg_struct - CType::Stub.new(:rb_trace_arg_struct) - end - - def C.rb_iseq_type - CType::Stub.new(:rb_iseq_type) - end - - def C.rb_iseq_param_keyword - CType::Stub.new(:rb_iseq_param_keyword) - end - - def C.iseq_insn_info - CType::Stub.new(:iseq_insn_info) - end - - def C.iseq_catch_table - CType::Stub.new(:iseq_catch_table) - end - - def C.rb_snum_t - CType::Stub.new(:rb_snum_t) - end - - def C._Bool - CType::Bool.new - end - - def C.iseq_bits_t - CType::Stub.new(:iseq_bits_t) - end - - def C.rb_code_location_t - CType::Stub.new(:rb_code_location_t) - end - - def C.iseq_compile_data - CType::Stub.new(:iseq_compile_data) - end - - def C.rb_hook_list_struct - CType::Stub.new(:rb_hook_list_struct) - end - - def C.rb_event_flag_t - CType::Stub.new(:rb_event_flag_t) - end - - def C.rb_method_alias_t - CType::Stub.new(:rb_method_alias_t) - end - - def C.rb_method_refined_t - CType::Stub.new(:rb_method_refined_t) - end - - def C.ccan_list_node - CType::Stub.new(:ccan_list_node) - end - - def C.rb_ractor_t - CType::Stub.new(:rb_ractor_t) - end - - def C.rb_vm_t - CType::Stub.new(:rb_vm_t) - end - - def C.rb_native_thread - CType::Stub.new(:rb_native_thread) - end - - def C.rb_thread_sched_item - CType::Stub.new(:rb_thread_sched_item) - end - - def C.rb_calling_info - CType::Stub.new(:rb_calling_info) - end - - def C.rb_nativethread_lock_t - CType::Stub.new(:rb_nativethread_lock_t) - end - - def C.rb_unblock_callback - CType::Stub.new(:rb_unblock_callback) - end - - def C.rb_mutex_struct - CType::Stub.new(:rb_mutex_struct) - end - - def C.rb_waiting_list - CType::Stub.new(:rb_waiting_list) - end - - def C.thread_invoke_type - CType::Stub.new(:thread_invoke_type) - end - - def C.rb_ext_config - CType::Stub.new(:rb_ext_config) - end - - ### RJIT bindgen end ### -end if Primitive.rjit_enabled_p |
