#pragma once #include struct page_directory_t { // 32 bits unsigned int present : 1; unsigned int rw_flag : 1; unsigned int access_lvl : 1; //0 is for only ring0. 1 is for anybody. unsigned int write_through : 1; unsigned int cache_off : 1; unsigned int accessed : 1; unsigned int zero : 1; unsigned int page_size : 1; unsigned int unused : 4; unsigned int tbl_addr : 20; }; struct page_table_t { // 32 bits unsigned int present : 1; unsigned int rw_flag : 1; unsigned int access_lvl : 1; //0 is for only ring0. 1 is for anybody. unsigned int write_through : 1; unsigned int cache_off : 1; unsigned int accessed : 1; unsigned int dirty : 1; unsigned int zero : 1; unsigned int global : 1; unsigned int reserved : 3; unsigned int phys_addr : 20; }; extern void ident_map_addr(void *addr, size_t len); extern void ident_unmap_addr(void *addr, size_t len);