Как получить страницу из процесса пользовательского пространства для данной задачи в Linux? - PullRequest
2 голосов
/ 14 июля 2011

Что именно возвращает функция virt_to_page, возвращает ли она страницу с указанным адресом в пространстве ядра или она возвращает страницу с заданным адресом в пространстве пользователя?Насколько я могу судить, кажется, что он берет адрес ядра и возвращает страницу для этого.Если да, что я могу использовать, чтобы получить страницу из процесса пользовательского пространства, учитывая задачу или mm_struct, а затем виртуальный адрес?

1 Ответ

3 голосов
/ 15 июля 2011

virt_to_page() действительно работает только для адресов ядра с прямым отображением. Чтобы найти страницу для сопоставления пространства пользователя, вам нужно использовать get_user_pages() (и сделать put_page, когда вы закончите, чтобы освободить ссылку на странице).

...