xtos_ rt_ alloc_ locked
按系统页大小对齐分配并锁定一段调用方拥有的内存。
本页目录
声明
#include <xtos/rt.h>
void *xtos_rt_alloc_locked(size_t length);参数
| 参数 | 类型 | 说明 |
|---|---|---|
| length | size_t | 正的字节数;返回内存未初始化。 |
返回值
成功返回内存指针;失败返回 NULL,并设置 errno。调用方必须用原始指针和长度释放。
错误
| errno | 条件 |
|---|---|
| EINVAL | length 为 0。 |
| ENOMEM | 分配或 mlock 失败。 |
| ENOSYS | sysconf 无法返回正的系统页大小。 |
| EAGAIN | 底层 mlock 无法立即锁定全部或部分范围。 |
注意事项
- 实现使用 posix_memalign 和 mlock;失败时释放已分配块并保留失败 errno。
- 内存所有权转给调用方;必须在高优先级路径前完成清零、触碰和其他分配。
示例
源码
本文按 OpenXTOS 提交 dd313955ad57542bcd2af8827157d1bbd0cf5e83 的头文件和实现编写。