8#define INDEX_FROM_BIT(a) (a / (8 * 4))
9#define OFFSET_FROM_BIT(a) (a % (8 * 4))
11#define PAGE_SIZE 0x1000
unsigned int u32
Definition ctypes.h:11
u32 pkmalloc(u32 sz)
Обычное выделение памяти
Definition paging.c:62
u32 nframes
Definition paging.c:20
void alloc_frame(page_t *page, int is_kernel, int is_writeable)
Аллокация фрейма
Definition paging.c:106
struct page_table page_table_t
void free_frame(page_t *page)
Освобождение фрейма
Definition paging.c:127
void page_fault(registers_t regs)
Обработчик Page Fault.
Definition paging.c:138
page_directory_t * current_directory
Definition paging.c:24
struct page_directory page_directory_t
void switch_page_directory(page_directory_t *dir)
Загрузка указанной директории страниц в регистр CR3.
Definition paging.c:191
u32 free_mem_addr
Definition mem.c:17
u32 test_frame(u32 frame_addr)
Тест фрейма
Definition paging.c:83
u32 pkmalloc_p(u32 sz, u32 *phys)
Выделение с возвратом физического адреса
Definition paging.c:52
u32 pkmalloc_a(u32 sz)
Выделение с выравниванием по странице
Definition paging.c:47
u32 pkmalloc_ap(u32 sz, u32 *phys)
Выделение с выравниванием и возвратом физического адреса
Definition paging.c:57
u32 pkmalloc_internal(u32 sz, int align, u32 *phys)
Внутренняя функция выделения памяти
Definition paging.c:31
void initialise_paging()
Настройка окружения, директорий страниц и включение paging.
Definition paging.c:170
page_directory_t * kernel_directory
Definition paging.c:23
page_t * get_page(u32 address, int make, page_directory_t *dir)
Get the page object.
Definition paging.c:201
u32 physicalAddr
Definition paging.h:94
page_table_t * tables[1024]
Definition paging.h:83
u32 tablesPhysical[1024]
Definition paging.h:89
page_t pages[1024]
Definition paging.h:75
u32 user
Definition paging.h:66
u32 rw
Definition paging.h:65
u32 present
Definition paging.h:64
u32 dirty
Definition paging.h:68
u32 accessed
Definition paging.h:67
u32 frame
Definition paging.h:70
u32 unused
Definition paging.h:69