Conhecemos esta seguinte função do kernel do Linux, que leva um ponteiro para a página struct e gera o endereço virtual do quadro da página:
void * page_address(struct page *page)
Então eu me pergunto se uma função em uma versão reservada está disponível: pegando um endereço de memória virtual e gerando o ID de página virtual correspondente? (A saída não deve ser uma struct page
estrutura de dados na memória devido à suposição de que uma página pode ser trocada para o disco.)
Obrigado. Corrija-me, se estiver errado ou tiver uma pergunta duplicada sobre SO.
Depois de ler vários posts de tradução de endereços virtuais, descobri que o número da página virtual é um resultado intermediário na tradução e é mencionado nesses posts.
Aqui está um exemplo: https://stackoverflow.com/a/45128487/10971650 .
O que é relevante aqui é a variável
vpn
para o número da página virtual. (Eu uso a função getpagesize em vez disso.)