#ifndef TINY_DEBUG_RING_H #define TINY_DEBUG_RING_H #include #include #include "hakmem_build_flags.h" // Tiny Debug Ring Trace (Phase 8 tooling) // Trace control: // - HAKMEM_TINY_TRACE_RING=1 // - or HAKMEM_TRACE=ring // Records recent alloc/free events and dumps them on SIGSEGV. enum { TINY_RING_EVENT_ALLOC_ENTER = 1, TINY_RING_EVENT_ALLOC_SUCCESS, TINY_RING_EVENT_ALLOC_NULL, TINY_RING_EVENT_ALLOC_REFILL_START, TINY_RING_EVENT_ALLOC_REFILL_NULL, TINY_RING_EVENT_ALLOC_BIND, TINY_RING_EVENT_FREE_ENTER, TINY_RING_EVENT_FREE_FAST, TINY_RING_EVENT_FREE_REMOTE, TINY_RING_EVENT_FREE_LOCAL, TINY_RING_EVENT_FREE_RETURN_MAG, TINY_RING_EVENT_SUPERSLAB_ADOPT, TINY_RING_EVENT_SUPERSLAB_ALLOC, TINY_RING_EVENT_SUPERSLAB_PUBLISH, TINY_RING_EVENT_SUPERSLAB_ADOPT_FAIL, TINY_RING_EVENT_REMOTE_PUSH, TINY_RING_EVENT_REMOTE_INVALID, TINY_RING_EVENT_REMOTE_DRAIN, TINY_RING_EVENT_OWNER_ACQUIRE, TINY_RING_EVENT_OWNER_RELEASE, TINY_RING_EVENT_FRONT_BYPASS, TINY_RING_EVENT_MAILBOX_PUBLISH, TINY_RING_EVENT_MAILBOX_FETCH, TINY_RING_EVENT_MAILBOX_FETCH_NULL, TINY_RING_EVENT_ROUTE, // TLS SLL anomalies (investigation aid, gated by HAKMEM_TINY_SLL_RING) TINY_RING_EVENT_TLS_SLL_REJECT = 0x7F10, TINY_RING_EVENT_TLS_SLL_SENTINEL = 0x7F11, TINY_RING_EVENT_TLS_SLL_HDR_CORRUPT = 0x7F12, // C6 Intrusive Freelist (Phase TLS-UNIFY-3) TINY_RING_EVENT_C6_IFL_PUSH = 0x7F20, TINY_RING_EVENT_C6_IFL_POP = 0x7F21, TINY_RING_EVENT_C6_IFL_EMPTY = 0x7F22 // pop miss (empty) }; // Function declarations (implementation in tiny_debug_ring.c) void tiny_debug_ring_init(void); void tiny_debug_ring_record(uint16_t event, uint16_t class_idx, void* ptr, uintptr_t aux); #endif // TINY_DEBUG_RING_H