// madvise_guard_box.h - Box: Safe madvise wrapper with DSO guard // Responsibility: guard madvise() against DSO/text pointers and handle ENOMEM once // Controls: HAKMEM_SS_MADVISE_GUARD (default: on), HAKMEM_SS_MADVISE_GUARD_QUIET #ifndef HAKMEM_MADVISE_GUARD_BOX_H #define HAKMEM_MADVISE_GUARD_BOX_H #include // Returns 1 when guard is enabled (default), 0 when disabled via env. int ss_madvise_guard_enabled(void); // Returns 1 when guard logging is silenced (HAKMEM_SS_MADVISE_GUARD_QUIET != 0). int ss_madvise_guard_quiet_logs(void); // Guarded madvise: // - Skips DSO/text addresses (dladdr hit) to avoid touching .fini_array // - ENOMEM: disables future madvise calls (soft fail) // - EINVAL: returns -1 so caller can honor STRICT mode // - Other errors: increments counters, returns 0 int ss_os_madvise_guarded(void* ptr, size_t len, int advice, const char* where); #endif // HAKMEM_MADVISE_GUARD_BOX_H