|
#define | ___MEMORY_PAGE_H 0 |
|
#define | MEMORY_PAGING_INDEX_COUNT 512 |
|
#define | MEMORY_PAGING_PAGE_SIZE 0x1000 |
|
#define | MEMORY_PAGING_INTERNAL_FRAMES_MAX_COUNT 0x200 |
|
#define | MEMORY_PAGING_PAGE_ALIGN MEMORY_PAGING_PAGE_SIZE |
|
#define | MEMORY_PAGING_PAGE_LENGTH_4K (1 << 12) |
|
#define | MEMORY_PAGING_PAGE_LENGTH_2M (1 << 21) |
|
#define | MEMORY_PAGING_PAGE_LENGTH_1G (1 << 30) |
|
#define | memory_paging_get_table() |
|
#define | memory_paging_add_page_with_p4(pt, va, fa, t) |
|
#define | memory_paging_add_page(va, fa, t) |
|
#define | memory_paging_delete_page_ext(p4, va, faptr) |
|
#define | memory_paging_delete_page(va, faptr) |
|
#define | memory_paging_clone_pagetable() |
|
#define | memory_paging_move_pagetable(h) |
|
#define | memory_paging_clone_current_pagetable_to_frames_ext(h, fa) |
|
#define | memory_paging_clone_current_pagetable_to_frames(fa) |
|
#define | memory_paging_destroy_pagetable(p) |
|
#define | memory_paging_get_physical_address(va, paptr) |
|
#define | memory_paging_get_frame_address_ext(p4, va, fa) |
|
#define | memory_paging_get_frame_address(va, faptr) |
|
#define | memory_paging_toggle_attributes(va, t) |
|
#define | memory_paging_set_user_accessible(va) |
|
#define | memory_paging_clear_page(va, t) |
|
#define | MEMORY_PT_GET_P4_INDEX(u64) |
|
#define | MEMORY_PT_GET_P3_INDEX(u64) |
|
#define | MEMORY_PT_GET_P2_INDEX(u64) |
|
#define | MEMORY_PT_GET_P1_INDEX(u64) |
|
#define | MEMORY_PAGING_GET_FA_FOR_RESERVED_VA(va) |
|
#define | MEMORY_PAGING_GET_VA_FOR_RESERVED_FA(fa) |
|
#define | memory_paging_add_va_for_frame(vas, f, t) |
|
#define | memory_paging_delete_va_for_frame(vas, f) |
|
|
typedef struct memory_page_entry_t | memory_page_entry_t |
| short hand for struct
|
|
typedef struct memory_page_table_t | memory_page_table_t |
| short hand for struct
|
|
typedef enum memory_paging_internal_frame_init_state_t | memory_paging_internal_frame_init_state_t |
|
typedef struct memory_page_table_context_t | memory_page_table_context_t |
| short hand for struct
|
|
typedef enum memory_paging_page_type_e | memory_paging_page_type_t |
| short hand for enum
|
|
typedef enum memory_paging_clear_type_t | memory_paging_clear_type_t |
|
|
memory_page_table_context_t * | memory_paging_switch_table (const memory_page_table_context_t *new_table) |
| switches p4 page table
|
|
int8_t | memory_paging_add_page_ext (memory_page_table_context_t *p4, uint64_t virtual_address, uint64_t frame_address, memory_paging_page_type_t type) |
| creates virtual address frame mapping with adding page
|
|
int8_t | memory_paging_delete_page_ext_with_heap (memory_page_table_context_t *p4, uint64_t virtual_address, uint64_t *frame_address) |
|
memory_page_table_t * | memory_paging_clone_pagetable_ext (memory_page_table_context_t *table_context) |
|
memory_page_table_t * | memory_paging_clone_pagetable_to_frames_ext (memory_page_table_context_t *table_context, uint64_t fa) |
|
int8_t | memory_paging_destroy_pagetable_ext (memory_page_table_context_t *table_context) |
|
int8_t | memory_paging_get_physical_address_ext (memory_page_table_context_t *table_context, uint64_t virtual_address, uint64_t *physical_address) |
|
int8_t | memory_paging_toggle_attributes_ext (memory_page_table_context_t *table_context, uint64_t virtual_address, memory_paging_page_type_t type) |
|
int8_t | memory_paging_set_user_accessible_ext (memory_page_table_context_t *table_context, uint64_t virtual_address) |
|
int8_t | memory_paging_clear_page_ext (memory_page_table_context_t *table_context, uint64_t virtual_address, memory_paging_clear_type_t type) |
|
int8_t | memory_paging_add_va_for_frame_ext (memory_page_table_context_t *table_context, uint64_t va_start, frame_t *frm, memory_paging_page_type_t type) |
|
int8_t | memory_paging_delete_va_for_frame_ext (memory_page_table_context_t *table_context, uint64_t va_start, frame_t *frm) |
|
memory_page_table_context_t * | memory_paging_build_empty_table (uint64_t internal_frame_address) |
|
int8_t | memory_paging_reserve_current_page_table_frames (void) |
|
memory paging and frame allocation interface
This work is licensed under TURNSTONE OS Public License. Please read and understand latest version of Licence.