> For the complete documentation index, see [llms.txt](https://book.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.bsdcn.org/man/man9/vm_page_grab.9.md).

# vm\_page\_grab.9

`vm_page_grab` — 从对象中返回一个页面

## 名称

`vm_page_grab`

## 概要

```c
#include <sys/param.h>
#include <vm/vm.h>
#include <vm/vm_page.h>

vm_page_t
vm_page_grab(vm_object_t object, vm_pindex_t pindex, int allocflags)
```

## 描述

`vm_page_grab` 函数从给定对象返回 `pindex` 处的页面。如果页面存在且忙碌，`vm_page_grab` 将睡眠等待。如果页面不存在，则分配它。函数睡眠直到分配请求可以满足。

函数要求在入口处锁定 `object`，并在返回时保持锁定状态。如果 `vm_page_grab` 函数因任何原因睡眠，对象锁会被临时释放。

`vm_page_grab` 支持 [vm\_page\_alloc(9)](/man/man9/vm_page_alloc.9.md) 支持的所有标志。此外，`vm_page_grab` 还支持以下标志：

**`VM_ALLOC_IGN_SBUSY`** 在等待现有页面的忙碌状态清除时，仅测试独占忙碌；忽略共享忙碌计数。

## 返回值

`vm_page_grab` 始终返回该页面。

## 参见

[vm\_page\_alloc(9)](/man/man9/vm_page_alloc.9.md)

## 作者

本手册页由 Chad David <davidc@acns.ab.ca> 编写。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://book.bsdcn.org/man/man9/vm_page_grab.9.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
