|
Kintsugi OS 0.2.0
x86 Monolithic OS
|
Functions | |
| u32 | pkmalloc_internal (u32 sz, int align, u32 *phys) |
| Внутренняя функция выделения памяти | |
| u32 | pkmalloc_a (u32 sz) |
| Выделение с выравниванием по странице | |
| u32 | pkmalloc_p (u32 sz, u32 *phys) |
| Выделение с возвратом физического адреса | |
| u32 | pkmalloc_ap (u32 sz, u32 *phys) |
| Выделение с выравниванием и возвратом физического адреса | |
| u32 | pkmalloc (u32 sz) |
| Обычное выделение памяти | |
| static void | set_frame (u32 frame_addr) |
| static void | clear_frame (u32 frame_addr) |
| u32 | test_frame (u32 frame_addr) |
| Тест фрейма | |
| static u32 | first_frame () |
| void | alloc_frame (page_t *page, int is_kernel, int is_writeable) |
| Аллокация фрейма | |
| void | free_frame (page_t *page) |
| Освобождение фрейма | |
| void | page_fault (registers_t regs) |
| Обработчик Page Fault. | |
| void | initialise_paging () |
| Настройка окружения, директорий страниц и включение paging. | |
| void | switch_page_directory (page_directory_t *dir) |
| Загрузка указанной директории страниц в регистр CR3. | |
| page_t * | get_page (u32 address, int make, page_directory_t *dir) |
| Get the page object. | |
Variables | |
| u32 * | frames |
| u32 | nframes |
| page_directory_t * | kernel_directory = 0 |
| page_directory_t * | current_directory = 0 |
| u32 | free_mem_addr |
| void alloc_frame | ( | page_t * | page, |
| int | is_kernel, | ||
| int | is_writeable | ||
| ) |
Аллокация фрейма
| page | страница в памяти |
| is_kernel | это ядро |
| is_writeable | этот участок возможен для записи |
|
static |
|
static |
| void free_frame | ( | page_t * | page | ) |
Освобождение фрейма
| page | страница в памяти |
| page_t * get_page | ( | u32 | address, |
| int | make, | ||
| page_directory_t * | dir | ||
| ) |
Get the page object.
Получение указателя на требуемую страницу. Если make == 1, создает таблицу страниц если она не создана
| address | |
| make | |
| dir |
| void initialise_paging | ( | ) |
Настройка окружения, директорий страниц и включение paging.
| void page_fault | ( | registers_t | regs | ) |
Обработчик Page Fault.
| regs | регистры |
Выделение с выравниванием и возвратом физического адреса
| sz | размер |
| phys | физический адрес |
Внутренняя функция выделения памяти
| sz | размер |
| align | выравнивание |
| phys | физический адрес |
Выделение с возвратом физического адреса
| sz | размер |
| phys | физический размер |
|
static |
| void switch_page_directory | ( | page_directory_t * | dir | ) |
Загрузка указанной директории страниц в регистр CR3.
| dir | директория страницы в памяти |
| page_directory_t* current_directory = 0 |
| u32* frames |
|
extern |
| page_directory_t* kernel_directory = 0 |
| u32 nframes |