123456789_123456789_123456789_123456789_123456789_

Class: RubyVM::RJIT::C

Do not use. This class is for internal use only.
Relationships & Source Files
Inherits: Object
Defined in: rjit_c.rb

Overview

Utilities: Not used by ::RubyVM::RJIT, but useful for debugging

Constant Summary

Class Method Summary

Class Method Details

._Bool

[ GitHub ]

  
# File 'rjit_c.rb', line 1582

def C._Bool
  CType::Bool.new
end

.attr_index_t

[ GitHub ]

  
# File 'rjit_c.rb', line 856

def C.attr_index_t
  @attr_index_t ||= CType::Immediate.parse("uint32_t")
end

.block_type_iseq

[ GitHub ]

  
# File 'rjit_c.rb', line 458

def C.block_type_iseq = Primitive.cexpr!(%q{ SIZET2NUM(block_type_iseq) })

CALL_DATA

[ GitHub ]

  
# File 'rjit_c.rb', line 751

def C.CALL_DATA
  @CALL_DATA ||= self.rb_call_data
end

.ccan_list_node

[ GitHub ]

  
# File 'rjit_c.rb', line 1618

def C.ccan_list_node
  CType::Stub.new(:ccan_list_node)
end

IC

[ GitHub ]

  
# File 'rjit_c.rb', line 755

def C.IC
  @IC ||= self.iseq_inline_constant_cache
end

ID

[ GitHub ]

  
# File 'rjit_c.rb', line 759

def C.ID
  @ID ||= CType::Immediate.parse("unsigned long")
end

.idRespond_to_missing

[ GitHub ]

  
# File 'rjit_c.rb', line 459

def C.idRespond_to_missing = Primitive.cexpr!(%q{ SIZET2NUM(idRespond_to_missing) })

.imemo_callinfo

[ GitHub ]

  
# File 'rjit_c.rb', line 460

def C.imemo_callinfo = Primitive.cexpr!(%q{ SIZET2NUM(imemo_callinfo) })

.imemo_iseq

[ GitHub ]

  
# File 'rjit_c.rb', line 461

def C.imemo_iseq = Primitive.cexpr!(%q{ SIZET2NUM(imemo_iseq) })

.iseq_bits_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1586

def C.iseq_bits_t
  CType::Stub.new(:iseq_bits_t)
end

.iseq_catch_table

[ GitHub ]

  
# File 'rjit_c.rb', line 1574

def C.iseq_catch_table
  CType::Stub.new(:iseq_catch_table)
end

.iseq_compile_data

[ GitHub ]

  
# File 'rjit_c.rb', line 1594

def C.iseq_compile_data
  CType::Stub.new(:iseq_compile_data)
end

.iseq_inline_constant_cache

[ GitHub ]

  
# File 'rjit_c.rb', line 860

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

.iseq_inline_constant_cache_entry

[ GitHub ]

  
# File 'rjit_c.rb', line 868

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

.iseq_inline_iv_cache_entry

[ GitHub ]

  
# File 'rjit_c.rb', line 879

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

.iseq_inline_storage_entry

[ GitHub ]

  
# File 'rjit_c.rb', line 887

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

.iseq_insn_info

[ GitHub ]

  
# File 'rjit_c.rb', line 1570

def C.iseq_insn_info
  CType::Stub.new(:iseq_insn_info)
end

IVC

[ GitHub ]

  
# File 'rjit_c.rb', line 763

def C.IVC
  @IVC ||= self.iseq_inline_iv_cache_entry
end

.method_missing_reason

[ GitHub ]

  
# File 'rjit_c.rb', line 1534

def C.method_missing_reason
  CType::Stub.new(:method_missing_reason)
end

.method_optimized_type

[ GitHub ]

  
# File 'rjit_c.rb', line 900

def C.method_optimized_type
  @method_optimized_type ||= CType::Immediate.parse("int")
end

RArray

[ GitHub ]

  
# File 'rjit_c.rb', line 767

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::Array.new { self.VALUE },
    ), Primitive.cexpr!("OFFSETOF((*((struct RArray *)NULL)), as)")],
  )
end

.rb_ary_clear

[ GitHub ]

  
# File 'rjit_c.rb', line 475

def C.rb_ary_clear
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ary_clear) }
end

.rb_ary_dup

[ GitHub ]

  
# File 'rjit_c.rb', line 479

def C.rb_ary_dup
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ary_dup) }
end

.rb_ary_entry_internal

[ GitHub ]

  
# File 'rjit_c.rb', line 483

def C.rb_ary_entry_internal
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ary_entry_internal) }
end

.rb_ary_push

[ GitHub ]

  
# File 'rjit_c.rb', line 487

def C.rb_ary_push
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ary_push) }
end

.rb_ary_resurrect

[ GitHub ]

  
# File 'rjit_c.rb', line 491

def C.rb_ary_resurrect
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ary_resurrect) }
end

.rb_ary_store

[ GitHub ]

  
# File 'rjit_c.rb', line 495

def C.rb_ary_store
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ary_store) }
end

.rb_ary_tmp_new_from_values

[ GitHub ]

  
# File 'rjit_c.rb', line 499

def C.rb_ary_tmp_new_from_values
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ary_tmp_new_from_values) }
end

.rb_ary_unshift_m

[ GitHub ]

  
# File 'rjit_c.rb', line 503

def C.rb_ary_unshift_m
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ary_unshift_m) }
end

.rb_atomic_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1554

def C.rb_atomic_t
  CType::Stub.new(:rb_atomic_t)
end

.rb_backref_get

[ GitHub ]

  
# File 'rjit_c.rb', line 507

def C.rb_backref_get
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_backref_get) }
end

.rb_block

[ GitHub ]

  
# File 'rjit_c.rb', line 904

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

.rb_block_param_proxy

[ GitHub ]

  
# File 'rjit_c.rb', line 462

def C.rb_block_param_proxy = Primitive.cexpr!(%q{ SIZET2NUM(rb_block_param_proxy) })

.rb_block_type

[ GitHub ]

  
# File 'rjit_c.rb', line 917

def C.rb_block_type
  @rb_block_type ||= CType::Immediate.parse("int")
end

RB_BUILTIN

[ GitHub ]

  
# File 'rjit_c.rb', line 788

def C.RB_BUILTIN
  @RB_BUILTIN ||= self.rb_builtin_function
end

.rb_builtin_function

[ GitHub ]

  
# File 'rjit_c.rb', line 921

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

.rb_call_data

[ GitHub ]

  
# File 'rjit_c.rb', line 931

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

.rb_callable_method_entry_struct

[ GitHub ]

  
# File 'rjit_c.rb', line 939

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

.rb_callable_method_entry_t

[ GitHub ]

  
# File 'rjit_c.rb', line 950

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

.rb_callcache

[ GitHub ]

  
# File 'rjit_c.rb', line 961

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,
      bf: CType::Pointer.new { self.rb_builtin_function },
    ), Primitive.cexpr!("OFFSETOF((*((struct rb_callcache *)NULL)), aux_)")],
  )
end

.rb_callinfo

[ GitHub ]

  
# File 'rjit_c.rb', line 981

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

.rb_callinfo_kwarg

[ GitHub ]

  
# File 'rjit_c.rb', line 992

def C.rb_callinfo_kwarg
  @rb_callinfo_kwarg ||= CType::Struct.new(
    "rb_callinfo_kwarg", Primitive.cexpr!("SIZEOF(struct rb_callinfo_kwarg)"),
    keyword_len: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF((*((struct rb_callinfo_kwarg *)NULL)), keyword_len)")],
    references: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF((*((struct rb_callinfo_kwarg *)NULL)), references)")],
    keywords: [CType::Immediate.parse("void *"), Primitive.cexpr!("OFFSETOF((*((struct rb_callinfo_kwarg *)NULL)), keywords)")],
  )
end

.rb_calling_info

[ GitHub ]

  
# File 'rjit_c.rb', line 1638

def C.rb_calling_info
  CType::Stub.new(:rb_calling_info)
end

.rb_captured_block

[ GitHub ]

  
# File 'rjit_c.rb', line 1001

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

.rb_cArray

[ GitHub ]

  
# File 'rjit_c.rb', line 463

def C.rb_cArray = Primitive.cexpr!(%q{ SIZET2NUM(rb_cArray) })

.rb_cFalseClass

[ GitHub ]

  
# File 'rjit_c.rb', line 464

def C.rb_cFalseClass = Primitive.cexpr!(%q{ SIZET2NUM(rb_cFalseClass) })

.rb_cFloat

[ GitHub ]

  
# File 'rjit_c.rb', line 465

def C.rb_cFloat = Primitive.cexpr!(%q{ SIZET2NUM(rb_cFloat) })

.rb_cfunc_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1015

def C.rb_cfunc_t
  @rb_cfunc_t ||= self.VALUE
end

.rb_cInteger

[ GitHub ]

  
# File 'rjit_c.rb', line 466

def C.rb_cInteger = Primitive.cexpr!(%q{ SIZET2NUM(rb_cInteger) })

.rb_cNilClass

[ GitHub ]

  
# File 'rjit_c.rb', line 467

def C.rb_cNilClass = Primitive.cexpr!(%q{ SIZET2NUM(rb_cNilClass) })

.rb_code_location_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1590

def C.rb_code_location_t
  CType::Stub.new(:rb_code_location_t)
end

.rb_control_frame_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1019

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)")],
    jit_return: [CType::Pointer.new { CType::Immediate.parse("void") }, Primitive.cexpr!("OFFSETOF((*((struct rb_control_frame_struct *)NULL)), jit_return)")],
  )
end

.rb_cref_struct

[ GitHub ]

  
# File 'rjit_c.rb', line 1542

def C.rb_cref_struct
  CType::Stub.new(:rb_cref_struct)
end

.rb_cref_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1032

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

.rb_cString

[ GitHub ]

  
# File 'rjit_c.rb', line 468

def C.rb_cString = Primitive.cexpr!(%q{ SIZET2NUM(rb_cString) })

.rb_cSymbol

[ GitHub ]

  
# File 'rjit_c.rb', line 469

def C.rb_cSymbol = Primitive.cexpr!(%q{ SIZET2NUM(rb_cSymbol) })

.rb_cTrueClass

[ GitHub ]

  
# File 'rjit_c.rb', line 470

def C.rb_cTrueClass = Primitive.cexpr!(%q{ SIZET2NUM(rb_cTrueClass) })

.rb_ec_ary_new_from_values

[ GitHub ]

  
# File 'rjit_c.rb', line 511

def C.rb_ec_ary_new_from_values
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ec_ary_new_from_values) }
end

.rb_ec_str_resurrect

[ GitHub ]

  
# File 'rjit_c.rb', line 515

def C.rb_ec_str_resurrect
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ec_str_resurrect) }
end

.rb_ensure_iv_list_size

[ GitHub ]

  
# File 'rjit_c.rb', line 519

def C.rb_ensure_iv_list_size
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ensure_iv_list_size) }
end

.rb_event_flag_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1602

def C.rb_event_flag_t
  CType::Stub.new(:rb_event_flag_t)
end

.rb_execution_context_struct

[ GitHub ]

  
# File 'rjit_c.rb', line 1043

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)")],
    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

.rb_execution_context_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1074

def C.rb_execution_context_t
  @rb_execution_context_t ||= self.rb_execution_context_struct
end

.rb_ext_config

[ GitHub ]

  
# File 'rjit_c.rb', line 1662

def C.rb_ext_config
  CType::Stub.new(:rb_ext_config)
end

.rb_fiber_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1558

def C.rb_fiber_t
  CType::Stub.new(:rb_fiber_t)
end

.rb_fix_aref

[ GitHub ]

  
# File 'rjit_c.rb', line 523

def C.rb_fix_aref
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_fix_aref) }
end

.rb_fix_div_fix

[ GitHub ]

  
# File 'rjit_c.rb', line 527

def C.rb_fix_div_fix
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_fix_div_fix) }
end

.rb_fix_mod_fix

[ GitHub ]

  
# File 'rjit_c.rb', line 531

def C.rb_fix_mod_fix
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_fix_mod_fix) }
end

.rb_fix_mul_fix

[ GitHub ]

  
# File 'rjit_c.rb', line 535

def C.rb_fix_mul_fix
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_fix_mul_fix) }
end

.rb_gc_writebarrier

[ GitHub ]

  
# File 'rjit_c.rb', line 539

def C.rb_gc_writebarrier
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_gc_writebarrier) }
end

.rb_get_symbol_id

[ GitHub ]

  
# File 'rjit_c.rb', line 543

def C.rb_get_symbol_id
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_get_symbol_id) }
end

.rb_gvar_get

[ GitHub ]

  
# File 'rjit_c.rb', line 547

def C.rb_gvar_get
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_gvar_get) }
end

.rb_hash_aref

[ GitHub ]

  
# File 'rjit_c.rb', line 551

def C.rb_hash_aref
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_hash_aref) }
end

.rb_hash_aset

[ GitHub ]

  
# File 'rjit_c.rb', line 555

def C.rb_hash_aset
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_hash_aset) }
end

.rb_hash_bulk_insert

[ GitHub ]

  
# File 'rjit_c.rb', line 559

def C.rb_hash_bulk_insert
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_hash_bulk_insert) }
end

.rb_hash_new

[ GitHub ]

  
# File 'rjit_c.rb', line 563

def C.rb_hash_new
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_hash_new) }
end

.rb_hash_new_with_size

[ GitHub ]

  
# File 'rjit_c.rb', line 567

def C.rb_hash_new_with_size
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_hash_new_with_size) }
end

.rb_hash_resurrect

[ GitHub ]

  
# File 'rjit_c.rb', line 571

def C.rb_hash_resurrect
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_hash_resurrect) }
end

.rb_hook_list_struct

[ GitHub ]

  
# File 'rjit_c.rb', line 1598

def C.rb_hook_list_struct
  CType::Stub.new(:rb_hook_list_struct)
end

.rb_id_table

[ GitHub ]

  
# File 'rjit_c.rb', line 1526

def C.rb_id_table
  CType::Stub.new(:rb_id_table)
end

.rb_iseq_constant_body

[ GitHub ]

  
# File 'rjit_c.rb', line 1078

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],
        anon_rest: [CType::BitField.new(1, 2), 10],
        anon_kwrest: [CType::BitField.new(1, 3), 11],
        use_block: [CType::BitField.new(1, 4), 12],
        forwardable: [CType::BitField.new(1, 5), 13],
      ), 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)")],
    builtin_attrs: [CType::Immediate.parse("unsigned int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), builtin_attrs)")],
    prism: [self._Bool, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), prism)")],
    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_entry: [self.rb_jit_func_t, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), jit_entry)")],
    jit_entry_calls: [CType::Immediate.parse("unsigned long"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), jit_entry_calls)")],
    rjit_blocks: [self.VALUE, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_constant_body *)NULL)), rjit_blocks)"), true],
  )
end

.rb_iseq_location_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1151

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

.rb_iseq_param_keyword

[ GitHub ]

  
# File 'rjit_c.rb', line 1163

def C.rb_iseq_param_keyword
  @rb_iseq_param_keyword ||= CType::Struct.new(
    "rb_iseq_param_keyword", Primitive.cexpr!("SIZEOF(struct rb_iseq_param_keyword)"),
    num: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_param_keyword *)NULL)), num)")],
    required_num: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_param_keyword *)NULL)), required_num)")],
    bits_start: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_param_keyword *)NULL)), bits_start)")],
    rest_start: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_param_keyword *)NULL)), rest_start)")],
    table: [CType::Pointer.new { self.ID }, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_param_keyword *)NULL)), table)")],
    default_values: [CType::Pointer.new { self.VALUE }, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_param_keyword *)NULL)), default_values)")],
  )
end

.rb_iseq_struct

[ GitHub ]

  
# File 'rjit_c.rb', line 1175

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

.rb_iseq_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1198

def C.rb_iseq_t
  @rb_iseq_t ||= self.rb_iseq_struct
end

.rb_iseq_type

[ GitHub ]

  
# File 'rjit_c.rb', line 1566

def C.rb_iseq_type
  CType::Stub.new(:rb_iseq_type)
end

.rb_iseqw_to_iseq(iseqw)

[ GitHub ]

  
# File 'rjit_c.rb', line 345

def rb_iseqw_to_iseq(iseqw)
  iseq_addr = Primitive.cexpr! 'SIZET2NUM((VALUE)rb_iseqw_to_iseq(iseqw))'
  rb_iseq_t.new(iseq_addr)
end

.rb_ivar_defined

[ GitHub ]

  
# File 'rjit_c.rb', line 575

def C.rb_ivar_defined
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ivar_defined) }
end

.rb_ivar_get

[ GitHub ]

  
# File 'rjit_c.rb', line 579

def C.rb_ivar_get
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_ivar_get) }
end

.rb_jit_func_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1202

def C.rb_jit_func_t
  @rb_jit_func_t ||= CType::Immediate.parse("void *")
end

.rb_method_alias_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1606

def C.rb_method_alias_t
  CType::Stub.new(:rb_method_alias_t)
end

.rb_method_attr_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1206

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

.rb_method_bmethod_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1214

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

.rb_method_cfunc_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1223

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: [self.rb_cfunc_t, 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

.rb_method_definition_struct

[ GitHub ]

  
# File 'rjit_c.rb', line 1232

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],
    no_redef_warning: [CType::BitField.new(1, 5), 5],
    aliased: [CType::BitField.new(1, 6), 6],
    reference_count: [CType::BitField.new(28, 0), 32],
    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

.rb_method_entry_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1255

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

.rb_method_iseq_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1266

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

.rb_method_optimized_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1274

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

.rb_method_refined_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1610

def C.rb_method_refined_t
  CType::Stub.new(:rb_method_refined_t)
end

.rb_method_type_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1282

def C.rb_method_type_t
  @rb_method_type_t ||= CType::Immediate.parse("int")
end

.rb_mRubyVMFrozenCore

[ GitHub ]

  
# File 'rjit_c.rb', line 471

def C.rb_mRubyVMFrozenCore = Primitive.cexpr!(%q{ SIZET2NUM(rb_mRubyVMFrozenCore) })

.rb_mutex_struct

[ GitHub ]

  
# File 'rjit_c.rb', line 1650

def C.rb_mutex_struct
  CType::Stub.new(:rb_mutex_struct)
end

.rb_native_thread

[ GitHub ]

  
# File 'rjit_c.rb', line 1630

def C.rb_native_thread
  CType::Stub.new(:rb_native_thread)
end

.rb_nativethread_lock_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1642

def C.rb_nativethread_lock_t
  CType::Stub.new(:rb_nativethread_lock_t)
end

.rb_obj_as_string_result

[ GitHub ]

  
# File 'rjit_c.rb', line 583

def C.rb_obj_as_string_result
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_obj_as_string_result) }
end

.rb_obj_is_kind_of

[ GitHub ]

  
# File 'rjit_c.rb', line 587

def C.rb_obj_is_kind_of
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_obj_is_kind_of) }
end

.rb_proc_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1286

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

.rb_ractor_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1622

def C.rb_ractor_t
  CType::Stub.new(:rb_ractor_t)
end

.rb_range_new

[ GitHub ]

  
# File 'rjit_c.rb', line 591

def C.rb_range_new
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_range_new) }
end

.rb_reg_last_match

[ GitHub ]

  
# File 'rjit_c.rb', line 595

def C.rb_reg_last_match
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_reg_last_match) }
end

.rb_reg_match_last

[ GitHub ]

  
# File 'rjit_c.rb', line 599

def C.rb_reg_match_last
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_reg_match_last) }
end

.rb_reg_match_post

[ GitHub ]

  
# File 'rjit_c.rb', line 603

def C.rb_reg_match_post
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_reg_match_post) }
end

.rb_reg_match_pre

[ GitHub ]

  
# File 'rjit_c.rb', line 607

def C.rb_reg_match_pre
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_reg_match_pre) }
end

.rb_reg_new_ary

[ GitHub ]

  
# File 'rjit_c.rb', line 611

def C.rb_reg_new_ary
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_reg_new_ary) }
end

.rb_reg_nth_match

[ GitHub ]

  
# File 'rjit_c.rb', line 615

def C.rb_reg_nth_match
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_reg_nth_match) }
end

.rb_rjit_branch_stub_hit

[ GitHub ]

  
# File 'rjit_c.rb', line 619

def C.rb_rjit_branch_stub_hit
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_rjit_branch_stub_hit) }
end

.rb_rjit_entry_stub_hit

[ GitHub ]

  
# File 'rjit_c.rb', line 623

def C.rb_rjit_entry_stub_hit
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_rjit_entry_stub_hit) }
end

.rb_rjit_global_events

[ GitHub ]

  
# File 'rjit_c.rb', line 472

def C.rb_rjit_global_events = Primitive.cexpr!(%q{ SIZET2NUM(rb_rjit_global_events) })

.rb_rjit_options

[ GitHub ]

  
# File 'rjit_c.rb', line 1293

def C.rb_rjit_options
  @rb_rjit_options ||= CType::Struct.new(
    "rb_rjit_options", Primitive.cexpr!("SIZEOF(struct rb_rjit_options)"),
    on: [self._Bool, Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_options *)NULL)), on)")],
    exec_mem_size: [CType::Immediate.parse("unsigned int"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_options *)NULL)), exec_mem_size)")],
    call_threshold: [CType::Immediate.parse("unsigned int"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_options *)NULL)), call_threshold)")],
    stats: [self._Bool, Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_options *)NULL)), stats)")],
    disable: [self._Bool, Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_options *)NULL)), disable)")],
    trace: [self._Bool, Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_options *)NULL)), trace)")],
    trace_exits: [self._Bool, Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_options *)NULL)), trace_exits)")],
    dump_disasm: [self._Bool, Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_options *)NULL)), dump_disasm)")],
    verify_ctx: [self._Bool, Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_options *)NULL)), verify_ctx)")],
  )
end

.rb_rjit_runtime_counters

[ GitHub ]

  
# File 'rjit_c.rb', line 1308

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)"),
    rjit_insns_count: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), rjit_insns_count)")],
    send_args_splat_kw_splat: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_args_splat_kw_splat)")],
    send_args_splat: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_args_splat)")],
    send_args_splat_not_array: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_args_splat_not_array)")],
    send_args_splat_length_not_equal: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_args_splat_length_not_equal)")],
    send_args_splat_cfunc_var_args: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_args_splat_cfunc_var_args)")],
    send_args_splat_arity_error: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_args_splat_arity_error)")],
    send_args_splat_ruby2_hash: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_args_splat_ruby2_hash)")],
    send_args_splat_cfunc_zuper: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_args_splat_cfunc_zuper)")],
    send_args_splat_cfunc_ruby2_keywords: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_args_splat_cfunc_ruby2_keywords)")],
    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_klass_megamorphic: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_klass_megamorphic)")],
    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_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_is_a_class_mismatch: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_is_a_class_mismatch)")],
    send_instance_of_class_mismatch: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_instance_of_class_mismatch)")],
    send_keywords: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_keywords)")],
    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_block_arg: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_block_arg)")],
    send_iseq_kwparam: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_kwparam)")],
    send_iseq_accepts_no_kwarg: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_accepts_no_kwarg)")],
    send_iseq_has_opt: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_has_opt)")],
    send_iseq_has_kwrest: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_has_kwrest)")],
    send_iseq_ruby2_keywords: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_ruby2_keywords)")],
    send_iseq_has_rest_and_captured: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_has_rest_and_captured)")],
    send_iseq_has_rest_and_kw_supplied: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_has_rest_and_kw_supplied)")],
    send_iseq_has_no_kw: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_has_no_kw)")],
    send_iseq_zsuper: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_zsuper)")],
    send_iseq_materialized_block: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_materialized_block)")],
    send_iseq_has_rest: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_has_rest)")],
    send_iseq_block_arg0_splat: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_block_arg0_splat)")],
    send_iseq_kw_call: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_kw_call)")],
    send_iseq_kw_splat: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_kw_splat)")],
    send_iseq_splat: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_splat)")],
    send_iseq_has_rest_and_optional: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_has_rest_and_optional)")],
    send_iseq_arity_error: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_arity_error)")],
    send_iseq_missing_optional_kw: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_missing_optional_kw)")],
    send_iseq_too_many_kwargs: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_too_many_kwargs)")],
    send_iseq_kwargs_mismatch: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_kwargs_mismatch)")],
    send_iseq_splat_with_kw: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_splat_with_kw)")],
    send_iseq_splat_arity_error: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_splat_arity_error)")],
    send_iseq_has_rest_and_splat_not_equal: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_has_rest_and_splat_not_equal)")],
    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_cfunc_splat_with_kw: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_cfunc_splat_with_kw)")],
    send_cfunc_tracing: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_cfunc_tracing)")],
    send_cfunc_argc_mismatch: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_cfunc_argc_mismatch)")],
    send_cfunc_toomany_args: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_cfunc_toomany_args)")],
    send_attrset_splat: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_attrset_splat)")],
    send_attrset_kwarg: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_attrset_kwarg)")],
    send_attrset_method: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_attrset_method)")],
    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_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_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_block: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), invokesuper_block)")],
    invokeblock_none: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), invokeblock_none)")],
    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)")],
    invokeblock_tag_changed: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), invokeblock_tag_changed)")],
    invokeblock_iseq_block_changed: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), invokeblock_iseq_block_changed)")],
    invokeblock_iseq_arity: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), invokeblock_iseq_arity)")],
    invokeblock_iseq_arg0_splat: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), invokeblock_iseq_arg0_splat)")],
    invokeblock_ifunc_args_splat: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), invokeblock_ifunc_args_splat)")],
    invokeblock_ifunc_kw_splat: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), invokeblock_ifunc_kw_splat)")],
    invokeblock_iseq_arg0_args_splat: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), invokeblock_iseq_arg0_args_splat)")],
    invokeblock_iseq_arg0_has_kw: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), invokeblock_iseq_arg0_has_kw)")],
    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

.rb_scope_visibility_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1546

def C.rb_scope_visibility_t
  CType::Stub.new(:rb_scope_visibility_t)
end

.rb_serial_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1437

def C.rb_serial_t
  @rb_serial_t ||= CType::Immediate.parse("unsigned long long")
end

.rb_shape

[ GitHub ]

  
# File 'rjit_c.rb', line 1441

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)")],
    heap_index: [CType::Immediate.parse("uint8_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_shape *)NULL)), heap_index)")],
    parent_id: [self.shape_id_t, Primitive.cexpr!("OFFSETOF((*((struct rb_shape *)NULL)), parent_id)")],
    ancestor_index: [CType::Pointer.new { self.redblack_node_t }, Primitive.cexpr!("OFFSETOF((*((struct rb_shape *)NULL)), ancestor_index)")],
  )
end

.rb_shape_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1455

def C.rb_shape_t
  @rb_shape_t ||= self.rb_shape
end

.rb_snum_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1578

def C.rb_snum_t
  CType::Stub.new(:rb_snum_t)
end

.rb_str_buf_append

[ GitHub ]

  
# File 'rjit_c.rb', line 627

def C.rb_str_buf_append
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_str_buf_append) }
end

.rb_str_bytesize

[ GitHub ]

  
# File 'rjit_c.rb', line 631

def C.rb_str_bytesize
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_str_bytesize) }
end

.rb_str_concat_literals

[ GitHub ]

  
# File 'rjit_c.rb', line 635

def C.rb_str_concat_literals
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_str_concat_literals) }
end

.rb_str_dup

[ GitHub ]

  
# File 'rjit_c.rb', line 639

def C.rb_str_dup
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_str_dup) }
end

.rb_str_eql_internal

[ GitHub ]

  
# File 'rjit_c.rb', line 643

def C.rb_str_eql_internal
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_str_eql_internal) }
end

.rb_str_getbyte

[ GitHub ]

  
# File 'rjit_c.rb', line 647

def C.rb_str_getbyte
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_str_getbyte) }
end

.rb_str_intern

[ GitHub ]

  
# File 'rjit_c.rb', line 651

def C.rb_str_intern
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_str_intern) }
end

.rb_sym_to_proc

[ GitHub ]

  
# File 'rjit_c.rb', line 655

def C.rb_sym_to_proc
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_sym_to_proc) }
end

.rb_thread_sched_item

[ GitHub ]

  
# File 'rjit_c.rb', line 1634

def C.rb_thread_sched_item
  CType::Stub.new(:rb_thread_sched_item)
end

.rb_thread_struct

[ GitHub ]

  
# File 'rjit_c.rb', line 1459

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)")],
    mn_schedulable: [self._Bool, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), mn_schedulable)")],
    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)")],
    specific_storage: [CType::Pointer.new { CType::Pointer.new { CType::Immediate.parse("void") } }, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), specific_storage)")],
    ext_config: [self.rb_ext_config, Primitive.cexpr!("OFFSETOF((*((struct rb_thread_struct *)NULL)), ext_config)")],
  )
end

.rb_trace_arg_struct

[ GitHub ]

  
# File 'rjit_c.rb', line 1562

def C.rb_trace_arg_struct
  CType::Stub.new(:rb_trace_arg_struct)
end

.rb_unblock_callback

[ GitHub ]

  
# File 'rjit_c.rb', line 1646

def C.rb_unblock_callback
  CType::Stub.new(:rb_unblock_callback)
end

.rb_vm_bh_to_procval

[ GitHub ]

  
# File 'rjit_c.rb', line 659

def C.rb_vm_bh_to_procval
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_bh_to_procval) }
end

.rb_vm_concat_array

[ GitHub ]

  
# File 'rjit_c.rb', line 663

def C.rb_vm_concat_array
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_concat_array) }
end

.rb_vm_defined

[ GitHub ]

  
# File 'rjit_c.rb', line 667

def C.rb_vm_defined
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_defined) }
end

.rb_vm_get_ev_const

[ GitHub ]

  
# File 'rjit_c.rb', line 671

def C.rb_vm_get_ev_const
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_get_ev_const) }
end

.rb_vm_getclassvariable

[ GitHub ]

  
# File 'rjit_c.rb', line 675

def C.rb_vm_getclassvariable
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_getclassvariable) }
end

.rb_vm_ic_hit_p

[ GitHub ]

  
# File 'rjit_c.rb', line 679

def C.rb_vm_ic_hit_p
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_ic_hit_p) }
end

.rb_vm_insn_encode(bin)

Convert insn BINs to encoded VM pointers.

[ GitHub ]

  
# File 'rjit_c.rb', line 340

def rb_vm_insn_encode(bin)
  Primitive.cexpr! 'SIZET2NUM((VALUE)rb_vm_get_insns_address_table()[NUM2INT(bin)])'
end

.rb_vm_insns_count

[ GitHub ]

  
# File 'rjit_c.rb', line 473

def C.rb_vm_insns_count = Primitive.cexpr!(%q{ SIZET2NUM(rb_vm_insns_count) })

.rb_vm_opt_newarray_hash

[ GitHub ]

  
# File 'rjit_c.rb', line 683

def C.rb_vm_opt_newarray_hash
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_opt_newarray_hash) }
end

.rb_vm_opt_newarray_max

[ GitHub ]

  
# File 'rjit_c.rb', line 687

def C.rb_vm_opt_newarray_max
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_opt_newarray_max) }
end

.rb_vm_opt_newarray_min

[ GitHub ]

  
# File 'rjit_c.rb', line 691

def C.rb_vm_opt_newarray_min
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_opt_newarray_min) }
end

.rb_vm_opt_newarray_pack

[ GitHub ]

  
# File 'rjit_c.rb', line 695

def C.rb_vm_opt_newarray_pack
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_opt_newarray_pack) }
end

.rb_vm_set_ivar_id

[ GitHub ]

  
# File 'rjit_c.rb', line 699

def C.rb_vm_set_ivar_id
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_set_ivar_id) }
end

.rb_vm_setclassvariable

[ GitHub ]

  
# File 'rjit_c.rb', line 703

def C.rb_vm_setclassvariable
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_setclassvariable) }
end

.rb_vm_setinstancevariable

[ GitHub ]

  
# File 'rjit_c.rb', line 707

def C.rb_vm_setinstancevariable
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_setinstancevariable) }
end

.rb_vm_splat_array

[ GitHub ]

  
# File 'rjit_c.rb', line 711

def C.rb_vm_splat_array
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_splat_array) }
end

.rb_vm_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1626

def C.rb_vm_t
  CType::Stub.new(:rb_vm_t)
end

.rb_vm_tag

[ GitHub ]

  
# File 'rjit_c.rb', line 1550

def C.rb_vm_tag
  CType::Stub.new(:rb_vm_tag)
end

.rb_vm_throw

[ GitHub ]

  
# File 'rjit_c.rb', line 715

def C.rb_vm_throw
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_throw) }
end

.rb_vm_yield_with_cfunc

[ GitHub ]

  
# File 'rjit_c.rb', line 719

def C.rb_vm_yield_with_cfunc
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rb_vm_yield_with_cfunc) }
end

.rb_waiting_list

[ GitHub ]

  
# File 'rjit_c.rb', line 1654

def C.rb_waiting_list
  CType::Stub.new(:rb_waiting_list)
end

RBasic

[ GitHub ]

  
# File 'rjit_c.rb', line 792

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

.redblack_node_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1614

def C.redblack_node_t
  CType::Stub.new(:redblack_node_t)
end

.rjit_build_kwhash

[ GitHub ]

  
# File 'rjit_c.rb', line 723

def C.rjit_build_kwhash
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rjit_build_kwhash) }
end

.rjit_full_cfunc_return

[ GitHub ]

  
# File 'rjit_c.rb', line 727

def C.rjit_full_cfunc_return
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rjit_full_cfunc_return) }
end

.rjit_optimized_call

[ GitHub ]

  
# File 'rjit_c.rb', line 731

def C.rjit_optimized_call
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rjit_optimized_call) }
end

.rjit_rb_ary_subseq_length

[ GitHub ]

  
# File 'rjit_c.rb', line 735

def C.rjit_rb_ary_subseq_length
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rjit_rb_ary_subseq_length) }
end

.rjit_record_exit_stack

[ GitHub ]

  
# File 'rjit_c.rb', line 739

def C.rjit_record_exit_stack
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rjit_record_exit_stack) }
end

.rjit_str_neq_internal

[ GitHub ]

  
# File 'rjit_c.rb', line 743

def C.rjit_str_neq_internal
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rjit_str_neq_internal) }
end

.rjit_str_simple_append

[ GitHub ]

  
# File 'rjit_c.rb', line 747

def C.rjit_str_simple_append
  Primitive.cexpr! %q{ SIZET2NUM((size_t)rjit_str_simple_append) }
end

RObject

[ GitHub ]

  
# File 'rjit_c.rb', line 800

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::Array.new { self.VALUE },
    ), Primitive.cexpr!("OFFSETOF((*((struct RObject *)NULL)), as)")],
  )
end

RString

[ GitHub ]

  
# File 'rjit_c.rb', line 816

def C.RString
  @RString ||= CType::Struct.new(
    "RString", Primitive.cexpr!("SIZEOF(struct RString)"),
    basic: [self.RBasic, Primitive.cexpr!("OFFSETOF((*((struct RString *)NULL)), basic)")],
    len: [CType::Immediate.parse("long"), Primitive.cexpr!("OFFSETOF((*((struct RString *)NULL)), len)")],
    as: [CType::Union.new(
      "", Primitive.cexpr!("SIZEOF(((struct RString *)NULL)->as)"),
      heap: CType::Struct.new(
        "", Primitive.cexpr!("SIZEOF(((struct RString *)NULL)->as.heap)"),
        ptr: [CType::Pointer.new { CType::Immediate.parse("char") }, Primitive.cexpr!("OFFSETOF(((struct RString *)NULL)->as.heap, ptr)")],
        aux: [CType::Union.new(
          "", Primitive.cexpr!("SIZEOF(((struct RString *)NULL)->as.heap.aux)"),
          capa: CType::Immediate.parse("long"),
          shared: self.VALUE,
        ), Primitive.cexpr!("OFFSETOF(((struct RString *)NULL)->as.heap, aux)")],
      ),
      embed: CType::Struct.new(
        "", Primitive.cexpr!("SIZEOF(((struct RString *)NULL)->as.embed)"),
        ary: [CType::Array.new { CType::Immediate.parse("char") }, Primitive.cexpr!("OFFSETOF(((struct RString *)NULL)->as.embed, ary)")],
      ),
    ), Primitive.cexpr!("OFFSETOF((*((struct RString *)NULL)), as)")],
  )
end

RStruct

[ GitHub ]

  
# File 'rjit_c.rb', line 840

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::Array.new { self.VALUE },
    ), Primitive.cexpr!("OFFSETOF((*((struct RStruct *)NULL)), as)")],
  )
end

.shape_id_t

[ GitHub ]

  
# File 'rjit_c.rb', line 1519

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

.thread_invoke_type

[ GitHub ]

  
# File 'rjit_c.rb', line 1658

def C.thread_invoke_type
  CType::Stub.new(:thread_invoke_type)
end

VALUE

[ GitHub ]

  
# File 'rjit_c.rb', line 1512

def C.VALUE
  @VALUE ||= CType::Immediate.find(
    Primitive.cexpr!("SIZEOF(VALUE)"),
    Primitive.cexpr!("SIGNED_TYPE_P(VALUE)"),
  )
end

.vm_call_handler

[ GitHub ]

  
# File 'rjit_c.rb', line 1530

def C.vm_call_handler
  CType::Stub.new(:vm_call_handler)
end

.vm_ifunc

[ GitHub ]

  
# File 'rjit_c.rb', line 1538

def C.vm_ifunc
  CType::Stub.new(:vm_ifunc)
end