550W Document
550W, a high-end OS
|
#include <common/types.h>
宏定义 | |
#define | FS_KERNEL_ADDR 0xffffffc084000000lu |
#define | START_BLOCK 2000 |
#define | MEM_SIZE 32 |
#define | PAGE_SIZE 4096 |
#define | INIT_KERNEL_STACK 0xffffffc081000000lu |
#define | FREEMEM (INIT_KERNEL_STACK + PAGE_SIZE * 10) |
#define | FREEMEMK 0xffffffc083000000lu |
#define | USER_STACK_ADDR 0xf00010000lu |
#define | PROT_NONE 0 |
#define | PROT_READ 1 |
#define | PROT_WRITE 2 |
#define | PROT_EXEC 4 |
#define | PROT_GROWSDOWN 0X01000000 |
#define | PROT_GROWSUP 0X02000000 |
#define | MAP_FILE 0 |
#define | MAP_SHARED 0x01 |
#define | MAP_PRIVATE 0X02 |
#define | MAP_FAILED ((void *)-1) |
#define | MAP_KERNEL 1 |
#define | MAP_USER 2 |
类型定义 | |
typedef uint64_t | PTE |
函数 | |
void | k_mm_move_to_disk (uint64_t pg_kva, uint64_t user_va) |
void | k_mm_get_back_disk (uint64_t va, uint64_t new_addr) |
void | k_mm_en_invalid (uint64_t pa_kva, PTE *pgdir) |
ptr_t | k_mm_alloc_mem (int numPage, uint64_t user_va) |
ptr_t | k_mm_alloc_page (int numPage) |
void | k_mm_fork_pgtable (PTE *dest_pgdir, PTE *src_pgdir) |
void | k_mm_fork_page_helper (uintptr_t va, PTE *destpgdir, PTE *srcpgdir) |
uint64_t | k_mm_get_kva_from_va (uint64_t va, PTE *pgdir) |
long | k_mm_getpa (uint64_t va) |
void | k_mm_map_kp (uint64_t va, uint64_t pa, PTE *pgdir) |
void | k_mm_free_page (ptr_t baseAddr, int numPage) |
void * | k_mm_malloc (size_t size) |
void | k_mm_share_pgtable (PTE *dest_pgdir, PTE *src_pgdir) |
uintptr_t | k_mm_alloc_page_helper (uintptr_t va, PTE *pgdir) |
long | k_mm_shm_page_get (int key) |
long | k_mm_shm_page_dt (uintptr_t addr) |
void | k_mm_map (uint64_t va, uint64_t pa, PTE *pgdir) |
void | k_mm_getback_page (int pid) |
PTE * | k_mm_get_kva (PTE entry) |
void | k_mm_cancel_pg (PTE *pgdir) |
uint64_t | k_mm_alloc_newva () |
long | sys_brk (unsigned long brk) |
变量 | |
ptr_t | memCurr |
int | diskpg_num |
uint64_t | diskpg [1000] |
#define FREEMEM (INIT_KERNEL_STACK + PAGE_SIZE * 10) |
#define FREEMEMK 0xffffffc083000000lu |
#define FS_KERNEL_ADDR 0xffffffc084000000lu |
#define INIT_KERNEL_STACK 0xffffffc081000000lu |
#define MAP_FAILED ((void *)-1) |
#define MAP_FILE 0 |
#define MAP_KERNEL 1 |
#define MAP_PRIVATE 0X02 |
#define MAP_SHARED 0x01 |
#define MAP_USER 2 |
#define MEM_SIZE 32 |
#define PAGE_SIZE 4096 |
#define PROT_EXEC 4 |
#define PROT_GROWSDOWN 0X01000000 |
#define PROT_GROWSUP 0X02000000 |
#define PROT_NONE 0 |
#define PROT_READ 1 |
#define PROT_WRITE 2 |
#define START_BLOCK 2000 |
#define USER_STACK_ADDR 0xf00010000lu |
typedef uint64_t PTE |
ptr_t k_mm_alloc_mem | ( | int | numPage, |
uint64_t | user_va | ||
) |
uint64_t k_mm_alloc_newva | ( | ) |
ptr_t k_mm_alloc_page | ( | int | numPage | ) |
void k_mm_cancel_pg | ( | PTE * | pgdir | ) |
void k_mm_en_invalid | ( | uint64_t | pa_kva, |
PTE * | pgdir | ||
) |
void k_mm_free_page | ( | ptr_t | baseAddr, |
int | numPage | ||
) |
void k_mm_get_back_disk | ( | uint64_t | va, |
uint64_t | new_addr | ||
) |
uint64_t k_mm_get_kva_from_va | ( | uint64_t | va, |
PTE * | pgdir | ||
) |
void k_mm_getback_page | ( | int | pid | ) |
long k_mm_getpa | ( | uint64_t | va | ) |
void* k_mm_malloc | ( | size_t | size | ) |
void k_mm_map | ( | uint64_t | va, |
uint64_t | pa, | ||
PTE * | pgdir | ||
) |
void k_mm_map_kp | ( | uint64_t | va, |
uint64_t | pa, | ||
PTE * | pgdir | ||
) |
void k_mm_move_to_disk | ( | uint64_t | pg_kva, |
uint64_t | user_va | ||
) |
long k_mm_shm_page_dt | ( | uintptr_t | addr | ) |
long k_mm_shm_page_get | ( | int | key | ) |
long sys_brk | ( | unsigned long | brk | ) |
|
extern |
|
extern |
|
extern |