摘要
创建一个新的分页器对象。
声明
#include <zircon/syscalls.h>
zx_status_t zx_pager_create(uint32_t options, zx_handle_t* out);
说明
zx_pager_create() 会创建一个新的分页器对象。
当分页器对象被销毁时,任何对其 VMO 的访问(原本需要与分页器通信)都会失败,就像调用了 zx_pager_detach_vmo() 一样。此外,内核会尽力确保故障尽快发生(例如,通过逐出当前页面),但具体行为取决于实现。
返回的句柄将具有以下权限:
ZX_RIGHT_TRANSFER- 句柄可能会转移到另一个进程。ZX_RIGHT_INSPECT- 可以使用zx_object_get_info()进行检查。ZX_RIGHT_ATTACH_VMO- 可以使用zx_pager_create_vmo()挂接 VMO,并使用zx_pager_detach_vmo()分离 VMO。ZX_RIGHT_MANAGE_VMO- 可以更改拥有的 VMO 的内容或与分页器相关的元数据,例如 使用zx_pager_supply_pages()或zx_pager_op_range()。
权限
调用方作业政策必须允许 ZX_POL_NEW_PAGER。
返回值
成功时,zx_pager_create() 会返回 ZX_OK;失败时,则会返回以下错误代码之一。
错误
ZX_ERR_INVALID_ARGS out 是无效指针或 NULL,或者 options 是 0 以外的任何值。
ZX_ERR_NO_MEMORY 因内存不足而失败。