Мне нужно просмотреть все физические страницы, содержащиеся в mem_map в пространстве пользователя, через / dev / mem. Mmap не может быть использован. Единственная надежда состоит в том, чтобы использовать вызовы open / read. Я знаю физический адрес mem_map внутри ядра. Это код пользователя земли:
/* open /dev/mem file*/
if((fd = open("/dev/mem", O_RDONLY)) == -1) {
printf("/dev/mem could not be opened.\n");
perror("open");
exit(1);
} else {
printf("/dev/mem opened.\n");
/* seek to the mem_map at mem_map_phy_addr */
if(lseek(fd, mem_map_phy_addr, SEEK_SET) == -1) {
perror("lseek");
}
else {
printf("lseek ok\n");
}
Теперь вопрос в том, как начать обход карты памяти? Какой пользовательский файл включает в себя «struct page»?
Спасибо.