TacOS
0.2
|
Page Table Entry. Plus de détails...
#include <pagination.h>
Champs de données | |
uint32_t | present:1 |
uint32_t | r_w:1 |
uint32_t | u_s:1 |
uint32_t | pwt:1 |
uint32_t | pcd:1 |
uint32_t | a:1 |
uint32_t | d:1 |
uint32_t | pat:1 |
uint32_t | g:1 |
uint32_t | ignored:3 |
uint32_t | page_addr:20 |
PTE : Référence l'adresse d'une page.
uint32_t page_table_entry::a |
Accessed : indique si un soft a accedé à la page référencée par cette entrée
uint32_t page_table_entry::d |
Dirty : indique si un soft a écrit sur la page
uint32_t page_table_entry::g |
?? cf doc.
uint32_t page_table_entry::ignored |
ignoré
uint32_t page_table_entry::page_addr |
adresse de la page (alignée sur 4kio donc que les 20 bits de poids fort)
uint32_t page_table_entry::pat |
si pat activé alors ça détermine le type de mémoire utilisée pour accéder à la page. Sinon faut le mettre à 0.
uint32_t page_table_entry::pcd |
Page-level cache disable, voir section 4.9 de la doc intel
uint32_t page_table_entry::present |
doit être à 1 pour référencer une page
uint32_t page_table_entry::pwt |
Page-level write-through ?? voir section 4.9 de la doc intel
uint32_t page_table_entry::r_w |
0 writes non autorisés sur la page référencée par cette entrée (dépend de CPL et CR0.WP)
uint32_t page_table_entry::u_s |
User/supervisor. Si 0 alors accès avec CPL=3 non autorisés à la page référencée par cette entrée.