init_heap 内核服务

用途

初始化要与内核内存管理服务配合使用的新堆。

语法

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/xmalloc.h>
#include <sys/malloc.h>
heapaddr_t init_heap ( area,  size,  heapp )
caddr_t area;
int size;
]heapaddr_t *heapp;

参数

描述
区域 指定用于为堆定义起始内存区域的虚拟内存地址。 此地址必须与页面对齐。
大小 指定堆大小 (以字节为单位)。 此值必须是系统页面的整数值。
海普 指向该外部堆描述符。 此值必须为空值。 基本内核使用此字段来指定对内核扩展不可用的特殊堆特征。

描述

init_heap 内核服务最常由 内核进程 用于初始化和管理作为专用堆的虚拟内存区域。 此服务创建专用堆后,返回的 heapaddr_t 值可与 xmallocxmfree 服务配合使用,以分配或释放专用堆中的内存。 可以在其他堆中创建堆,内核进程专用区域,甚至在堆栈上创建堆。

很少有内核扩展需要 init_heap 服务,因为导出的全局 kernel_heappinned_heap 通常用于内核中的内存分配。 但是,内核进程可以使用 init_heap 服务在其进程专用区域中创建专用非全局堆,以控制对堆的内核访问,并可能出于性能考虑。

执行环境

只能从 进程环境 调用 init_heap 内核服务。