kupl_malloc
使用特定分配策略分配内存,并尽可能地锁住申请的内存。
接口定义
void* kupl_malloc(kupl_mem_kind_t kind, size_t size);
参数
参数名 |
类型 |
描述 |
输入/输出 |
|---|---|---|---|
kind |
kupl_mem_kind_t |
需要使用的内存分配策略 |
输入 |
size |
size_t |
需要申请的内存大小 |
输入 |
枚举值 |
描述 |
|---|---|
KUPL_MEM_DEFAULT |
使用系统默认的分配策略分配内存 |
KUPL_MEM_LARGE_CAP |
从最近的高容量内存节点上申请内存,如果分配失败,则分配返回nullptr并报错 |
KUPL_MEM_HIGH_BW |
从最近的高带宽内存节点上申请内存,如果分配失败,则分配返回nullptr并报错 |
返回值
- 成功:返回申请得到的内存的指针
- 失败:返回nullptr
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include <stdio.h> #include <stdlib.h> #include "kupl.h" int main() { int len = 1024; char *data = (char *)kupl_malloc(KUPL_MEM_DEFAULT, len); if (data == nullptr) { return 0; } kupl_free(KUPL_MEM_DEFAULT, data); return 0; } |
- 上述示例演示了申请锁住的内存并释放该内存的流程。
- 上述kupl_malloc函数申请大小为len的内存空间并尽可能锁住,使用的内存分配策略为系统默认的分配策略。
- kupl_malloc函数会在条件允许的情况下锁住申请的内存;其中环境中包含SDMA设备是锁住申请的内存的必要条件。
父主题: 内存管理函数