XTOS / OPEN SOURCE REAL-TIME SYSTEMOPEN SOURCE · VERSION 0.9.0 · BUILD FROM SOURCE
libxtos-rtxtos_rt_alloc_locked

xtos_rt_alloc_locked

按系统页大小对齐分配并锁定一段调用方拥有的内存。

本页目录

声明

c
#include <xtos/rt.h>

void *xtos_rt_alloc_locked(size_t length);

参数

参数类型说明
lengthsize_t正的字节数;返回内存未初始化。

返回值

成功返回内存指针;失败返回 NULL,并设置 errno。调用方必须用原始指针和长度释放。

错误

errno条件
EINVALlength 为 0。
ENOMEM分配或 mlock 失败。
ENOSYSsysconf 无法返回正的系统页大小。
EAGAIN底层 mlock 无法立即锁定全部或部分范围。

注意事项

  • 实现使用 posix_memalign 和 mlock;失败时释放已分配块并保留失败 errno。
  • 内存所有权转给调用方;必须在高优先级路径前完成清零、触碰和其他分配。

示例

源码

本文按 OpenXTOS 提交 dd313955ad57542bcd2af8827157d1bbd0cf5e83 的头文件和实现编写。