Files
hakmem/core/box/link_missing_stubs.c

51 lines
1.7 KiB
C
Raw Permalink Normal View History

// link_missing_stubs.c
// Weak fallback definitions for optional diagnostics that may be compiled out
// in certain build configurations. These ensure linking succeeds even when
// the corresponding feature boxes are not included.
#include <stdatomic.h>
#include <stdint.h>
// Minimal forward declarations to avoid pulling full tracing headers
typedef int ptr_trace_event_t;
typedef struct SlabRecyclingStats {
uint64_t recycle_attempts;
uint64_t recycle_success;
uint64_t recycle_skip_not_empty;
uint64_t recycle_skip_no_cap;
uint64_t recycle_skip_null;
} SlabRecyclingStats;
// lock_stats_box.h が存在しないビルド構成向けに前方宣言だけ置く
void lock_stats_init(void);
// Ptr trace counters (used by tls_sll)
_Atomic uint64_t g_ptr_trace_op_counter __attribute__((weak)) = 0;
void ptr_trace_record_impl(ptr_trace_event_t event, void* ptr, int class_idx, uint64_t op_num,
void* aux_ptr, uint32_t aux_u32, int aux_int,
const char* file, int line)
__attribute__((weak));
void ptr_trace_record_impl(ptr_trace_event_t event, void* ptr, int class_idx, uint64_t op_num,
void* aux_ptr, uint32_t aux_u32, int aux_int,
const char* file, int line)
{
(void)event;
(void)ptr;
(void)class_idx;
(void)op_num;
(void)aux_ptr;
(void)aux_u32;
(void)aux_int;
(void)file;
(void)line;
}
// Slab recycling stats (used in TLS drain instrumentation)
__thread SlabRecyclingStats g_slab_recycle_stats __attribute__((weak)) = {0};
// Lock stats init (contention metrics)
void lock_stats_init(void) __attribute__((weak));
void lock_stats_init(void) {}