os_slab_overflow_register

所属模块:内存管理 | 类型:Slab溢出回调注册函数

API Metadata

函数ID:os_slab_overflow_register
模块:memory
类型:slab overflow hook register
嵌套深度:1

函数简介

:contentReference[oaicite:0]{index=0} 用于注册内存 Slab 分配器的溢出回调函数。 当系统检测到 Slab 内存异常或溢出时,将调用该 hook 函数进行用户自定义处理。

该机制主要用于内存安全监控与调试扩展,可用于错误记录、系统报警或异常恢复策略。

函数原型

void os_slab_overflow_register(void (*hook)(void));

参数说明

参数 说明
hook Slab溢出时触发的回调函数指针

返回值

无返回值。

源码实现

/*------------------------------------------------------------------------ | FILE DESCRIPTION | ------------------------------------------------------------------------*/ /*------------------------------------------------------------------------ | - File name : slab_overflow_register.c | - Author : 谭舒 | - Update date : 2026-09-19 | - Copyright(C) : 2026 HRTOS. All rights reserved. ------------------------------------------------------------------------*/ /*------------------------------------------------------------------------ | INCLUDES | ------------------------------------------------------------------------*/ #include "hrtos_internal.h" /*------------------------------------------------------------------------ | API FUNCTIONS | ------------------------------------------------------------------------*/ /** * @brief 注册 Slab 资源分配异常处理钩子函数。 * * @param[in] hook Slab 资源分配异常处理函数指针。 * * @return None。 * * @note 当系统发生 Slab 资源分配异常时,内核调用已注册的 Hook。 * 传入 NULL 可取消已注册的异常处理 Hook。 */ void os_slab_overflow_register(void (*hook)(void)) { g_slab_overflow_hook = hook; } /*------------------------------------------------------------------------ | END OF FILE: slab_overflow_register.c | ------------------------------------------------------------------------*/

使用示例

void slab_error_handler(void) { // 处理内存溢出 } void system_init(void) { os_slab_overflow_register(slab_error_handler); }

注意事项

Slab overflow hook 可能在中断或关键内存路径触发,应避免执行耗时或阻塞操作。

相关推荐