init_heap 内核服务
用途
初始化要与内核内存管理服务配合使用的新堆。
语法
参数
| 项 | 描述 |
|---|---|
| 区域 | 指定用于为堆定义起始内存区域的虚拟内存地址。 此地址必须与页面对齐。 |
| 大小 | 指定堆大小 (以字节为单位)。 此值必须是系统页面的整数值。 |
| 海普 | 指向该外部堆描述符。 此值必须为空值。 基本内核使用此字段来指定对内核扩展不可用的特殊堆特征。 |
描述
init_heap 内核服务最常由 内核进程 用于初始化和管理作为专用堆的虚拟内存区域。 此服务创建专用堆后,返回的 heapaddr_t 值可与 xmalloc 或 xmfree 服务配合使用,以分配或释放专用堆中的内存。 可以在其他堆中创建堆,内核进程专用区域,甚至在堆栈上创建堆。
很少有内核扩展需要 init_heap 服务,因为导出的全局 kernel_heap 和 pinned_heap 通常用于内核中的内存分配。 但是,内核进程可以使用 init_heap 服务在其进程专用区域中创建专用非全局堆,以控制对堆的内核访问,并可能出于性能考虑。
执行环境
只能从 进程环境 调用 init_heap 内核服务。