Kintsugi OS 0.5.0
x86 Monolithic OS
Loading...
Searching...
No Matches
memory.h
Go to the documentation of this file.
1#ifndef MM_MEMORY_H
2#define MM_MEMORY_H
3#include "../kklibc/ctypes.h"
4#define PAGE_SIZE 4096u
5#define PMM_LIMIT 0x10000000u
6#define VMM_WRITE 2u
7#define USER_BASE 0x40000000u
8#define USER_TOP 0x80000000u
12int vmm_user_page(u32 space, u32 address, int writable);
13u32 vmm_user_physical(u32 space, u32 address, int write);
14
15typedef struct __attribute__((packed)) {
16 unsigned long long base, length;
17 u32 type, attributes;
19
20typedef struct {
21 u32 managed_pages, free_pages, allocated_pages, reserved_pages;
22 u32 usable_kib, mapped_pages, map_entries;
24
25void memory_init(void);
27int pmm_free_page(u32 address);
28int vmm_map_page(u32 virtual_address, u32 physical_address, u32 flags);
29int vmm_unmap_page(u32 virtual_address);
30u32 vmm_translate(u32 address);
32void memory_print_info(void);
33void memory_print_map(void);
34#endif
unsigned int u32
Definition ctypes.h:11
static u32 length
Definition line_editor.c:10
u32 pmm_alloc_page(void)
Definition memory.c:27
void memory_print_info(void)
Definition memory.c:277
void memory_print_map(void)
Definition memory.c:288
memory_stats_t memory_stats(void)
Definition memory.c:197
void vmm_space_switch(u32 space)
Definition memory.c:211
memory_region_t
Definition memory.h:18
void memory_init(void)
Definition memory.c:115
int vmm_user_page(u32 space, u32 address, int writable)
Definition memory.c:233
int vmm_map_page(u32 virtual_address, u32 physical_address, u32 flags)
Definition memory.c:61
u32 vmm_user_physical(u32 space, u32 address, int write)
Definition memory.c:218
u32 vmm_space_create(void)
Definition memory.c:201
void vmm_space_destroy(u32 space)
Definition memory.c:257
u32 vmm_translate(u32 address)
Definition memory.c:106
int pmm_free_page(u32 address)
Definition memory.c:46
int vmm_unmap_page(u32 virtual_address)
Definition memory.c:83
static u32 space
Definition process.c:16
Definition idt.h:11
u32 base
Definition idt.h:28
Definition memory.h:20
u32 allocated_pages
Definition memory.h:21
u32 map_entries
Definition memory.h:22