4#define PAGING_CACHE_DISABLED 0b00010000
5#define PAGING_WRITE_THROUGH 0b00001000
6#define PAGING_ACCESS_FROM_ALL 0b00000100
7#define PAGING_IS_WRITEABLE 0b00000010
8#define PAGING_IS_PRESENT 0b00000001
10#define PAGING_TOTAL_ENTRIES_PER_TABLE 1024
11#define PAGING_PAGE_SIZE 4096
28int paging_set_page(uint32_t* directory,
void* virtual_address, uint32_t value);
uint32_t flags
Definition idt.h:11
int paging_set_page(uint32_t *directory, void *virtual_address, uint32_t value)
Sets page table entry.
Definition paging.c:122
void * paging_align_address_to_lower_page(void *ptr)
Definition paging.c:173
void paging_switch(struct paging_chunk *chunk)
Switches to given page directory pointer.
Definition paging.c:108
struct paging_chunk * paging_new_directory(uint8_t flags)
Allocates and creates new page directory with specified flags.
Definition paging.c:66
uint32_t paging_get_page(uint32_t *directory, void *virtual_address)
Definition paging.c:141
void * paging_align_address(void *ptr)
Aligns pointer to page size.
Definition paging.c:164
int paging_map_to(struct paging_chunk *chunk, void *virtual_address, void *physical_address, void *physical_end, int flags)
Maps virtual address to physical in page directory.
Definition paging.c:227
uint32_t * paging_get_directory(struct paging_chunk *chunk)
Returns directory entry pointer for given chunk.
Definition paging.c:55
void paging_free_directory(struct paging_chunk *chunk)
Frees all entries and page directory itself.
Definition paging.c:91
uint32_t * directory_entry
Definition paging.h:15