13#ifndef RB_GC_OBJECT_METADATA_ENTRY_DEFINED 
   14# define RB_GC_OBJECT_METADATA_ENTRY_DEFINED 
   21#ifdef BUILDING_MODULAR_GC 
   32# define GC_IMPL_FN static 
   36GC_IMPL_FN 
void *rb_gc_impl_objspace_alloc(
void);
 
   37GC_IMPL_FN 
void rb_gc_impl_objspace_init(
void *objspace_ptr);
 
   38GC_IMPL_FN 
void *rb_gc_impl_ractor_cache_alloc(
void *objspace_ptr, 
void *ractor);
 
   39GC_IMPL_FN 
void rb_gc_impl_set_params(
void *objspace_ptr);
 
   40GC_IMPL_FN 
void rb_gc_impl_init(
void);
 
   41GC_IMPL_FN 
size_t *rb_gc_impl_heap_sizes(
void *objspace_ptr);
 
   43GC_IMPL_FN 
void rb_gc_impl_shutdown_free_objects(
void *objspace_ptr);
 
   44GC_IMPL_FN 
void rb_gc_impl_objspace_free(
void *objspace_ptr);
 
   45GC_IMPL_FN 
void rb_gc_impl_ractor_cache_free(
void *objspace_ptr, 
void *cache);
 
   47GC_IMPL_FN 
void rb_gc_impl_start(
void *objspace_ptr, 
bool full_mark, 
bool immediate_mark, 
bool immediate_sweep, 
bool compact);
 
   48GC_IMPL_FN 
bool rb_gc_impl_during_gc_p(
void *objspace_ptr);
 
   49GC_IMPL_FN 
void rb_gc_impl_prepare_heap(
void *objspace_ptr);
 
   50GC_IMPL_FN 
void rb_gc_impl_gc_enable(
void *objspace_ptr);
 
   51GC_IMPL_FN 
void rb_gc_impl_gc_disable(
void *objspace_ptr, 
bool finish_current_gc);
 
   52GC_IMPL_FN 
bool rb_gc_impl_gc_enabled_p(
void *objspace_ptr);
 
   53GC_IMPL_FN 
void rb_gc_impl_stress_set(
void *objspace_ptr, 
VALUE flag);
 
   54GC_IMPL_FN 
VALUE rb_gc_impl_stress_get(
void *objspace_ptr);
 
   55GC_IMPL_FN 
VALUE rb_gc_impl_config_get(
void *objspace_ptr);
 
   56GC_IMPL_FN 
void rb_gc_impl_config_set(
void *objspace_ptr, 
VALUE hash);
 
   58GC_IMPL_FN 
VALUE rb_gc_impl_new_obj(
void *objspace_ptr, 
void *cache_ptr, 
VALUE klass, 
VALUE flags, 
bool wb_protected, 
size_t alloc_size);
 
   59GC_IMPL_FN 
size_t rb_gc_impl_obj_slot_size(
VALUE obj);
 
   60GC_IMPL_FN 
size_t rb_gc_impl_heap_id_for_size(
void *objspace_ptr, 
size_t size);
 
   61GC_IMPL_FN 
bool rb_gc_impl_size_allocatable_p(
size_t size);
 
   75GC_IMPL_FN 
void *rb_gc_impl_malloc(
void *objspace_ptr, 
size_t size, 
bool gc_allowed);
 
   76GC_IMPL_FN 
void *rb_gc_impl_calloc(
void *objspace_ptr, 
size_t size, 
bool gc_allowed);
 
   77GC_IMPL_FN 
void *rb_gc_impl_realloc(
void *objspace_ptr, 
void *ptr, 
size_t new_size, 
size_t old_size, 
bool gc_allowed);
 
   78GC_IMPL_FN 
void rb_gc_impl_free(
void *objspace_ptr, 
void *ptr, 
size_t old_size);
 
   79GC_IMPL_FN 
void rb_gc_impl_adjust_memory_usage(
void *objspace_ptr, ssize_t diff);
 
   81GC_IMPL_FN 
void rb_gc_impl_mark(
void *objspace_ptr, 
VALUE obj);
 
   82GC_IMPL_FN 
void rb_gc_impl_mark_and_move(
void *objspace_ptr, 
VALUE *ptr);
 
   83GC_IMPL_FN 
void rb_gc_impl_mark_and_pin(
void *objspace_ptr, 
VALUE obj);
 
   84GC_IMPL_FN 
void rb_gc_impl_mark_maybe(
void *objspace_ptr, 
VALUE obj);
 
   85GC_IMPL_FN 
void rb_gc_impl_mark_weak(
void *objspace_ptr, 
VALUE *ptr);
 
   86GC_IMPL_FN 
void rb_gc_impl_remove_weak(
void *objspace_ptr, 
VALUE parent_obj, 
VALUE *ptr);
 
   88GC_IMPL_FN 
bool rb_gc_impl_object_moved_p(
void *objspace_ptr, 
VALUE obj);
 
   89GC_IMPL_FN 
VALUE rb_gc_impl_location(
void *objspace_ptr, 
VALUE value);
 
   91GC_IMPL_FN 
void rb_gc_impl_writebarrier(
void *objspace_ptr, 
VALUE a, 
VALUE b);
 
   92GC_IMPL_FN 
void rb_gc_impl_writebarrier_unprotect(
void *objspace_ptr, 
VALUE obj);
 
   93GC_IMPL_FN 
void rb_gc_impl_writebarrier_remember(
void *objspace_ptr, 
VALUE obj);
 
   95GC_IMPL_FN 
void rb_gc_impl_each_objects(
void *objspace_ptr, 
int (*callback)(
void *, 
void *, 
size_t, 
void *), 
void *data);
 
   96GC_IMPL_FN 
void rb_gc_impl_each_object(
void *objspace_ptr, 
void (*func)(
VALUE obj, 
void *data), 
void *data);
 
   98GC_IMPL_FN 
void rb_gc_impl_make_zombie(
void *objspace_ptr, 
VALUE obj, 
void (*dfree)(
void *), 
void *data);
 
   99GC_IMPL_FN 
VALUE rb_gc_impl_define_finalizer(
void *objspace_ptr, 
VALUE obj, 
VALUE block);
 
  100GC_IMPL_FN 
void rb_gc_impl_undefine_finalizer(
void *objspace_ptr, 
VALUE obj);
 
  101GC_IMPL_FN 
void rb_gc_impl_copy_finalizer(
void *objspace_ptr, 
VALUE dest, 
VALUE obj);
 
  102GC_IMPL_FN 
void rb_gc_impl_shutdown_call_finalizer(
void *objspace_ptr);
 
  104GC_IMPL_FN 
void rb_gc_impl_before_fork(
void *objspace_ptr);
 
  105GC_IMPL_FN 
void rb_gc_impl_after_fork(
void *objspace_ptr, rb_pid_t pid);
 
  107GC_IMPL_FN 
void rb_gc_impl_set_measure_total_time(
void *objspace_ptr, 
VALUE flag);
 
  108GC_IMPL_FN 
bool rb_gc_impl_get_measure_total_time(
void *objspace_ptr);
 
  109GC_IMPL_FN 
unsigned long long rb_gc_impl_get_total_time(
void *objspace_ptr);
 
  110GC_IMPL_FN 
size_t rb_gc_impl_gc_count(
void *objspace_ptr);
 
  111GC_IMPL_FN 
VALUE rb_gc_impl_latest_gc_info(
void *objspace_ptr, 
VALUE key);
 
  112GC_IMPL_FN 
VALUE rb_gc_impl_stat(
void *objspace_ptr, 
VALUE hash_or_sym);
 
  113GC_IMPL_FN 
VALUE rb_gc_impl_stat_heap(
void *objspace_ptr, 
VALUE heap_name, 
VALUE hash_or_sym);
 
  114GC_IMPL_FN 
const char *rb_gc_impl_active_gc_name(
void);
 
  117GC_IMPL_FN 
bool rb_gc_impl_pointer_to_heap_p(
void *objspace_ptr, 
const void *ptr);
 
  118GC_IMPL_FN 
bool rb_gc_impl_garbage_object_p(
void *objspace_ptr, 
VALUE obj);
 
  119GC_IMPL_FN 
void rb_gc_impl_set_event_hook(
void *objspace_ptr, 
const rb_event_flag_t event);
 
  120GC_IMPL_FN 
void rb_gc_impl_copy_attributes(
void *objspace_ptr, 
VALUE dest, 
VALUE obj);
 
uint32_t rb_event_flag_t
Represents event(s).
uintptr_t ID
Type that represents a Ruby identifier such as a variable name.
uintptr_t VALUE
Type that represents a Ruby object.