23#define is_writable(pte) (*(pte) & PTE_W)
24#define is_user_pte(pte) (*(pte) & PTE_U)
25#define is_kern_pte(pte) (!is_user_pte (pte))
27#define pte_get_paddr(pte) (pg_round_down(*(pte)))
bool create(const char *file, unsigned initial_size)
파일을 생성하는 시스템 콜
Definition: syscall.c:233
bool pml4_is_dirty(uint64_t *pml4, const void *upage)
Definition: mmu.c:277
void pml4_clear_page(uint64_t *pml4, void *upage)
Definition: mmu.c:258
void pml4_set_dirty(uint64_t *pml4, const void *upage, bool dirty)
Definition: mmu.c:285
uint64_t * pml4_create(void)
Definition: mmu.c:96
bool pml4_set_page(uint64_t *pml4, void *upage, void *kpage, bool rw)
Definition: mmu.c:240
struct desc_ptr __attribute__((packed))
void * pml4_get_page(uint64_t *pml4, const void *upage)
Definition: mmu.c:214
bool pml4_for_each(uint64_t *, pte_for_each_func *, void *)
Definition: mmu.c:148
bool pte_for_each_func(uint64_t *pte, void *va, void *aux)
Definition: mmu.h:8
void pml4_destroy(uint64_t *pml4)
Definition: mmu.c:190
void pml4_activate(uint64_t *pml4)
Definition: mmu.c:205
uint64_t * pml4e_walk(uint64_t *pml4, const uint64_t va, int create)
Definition: mmu.c:65
void pml4_set_accessed(uint64_t *pml4, const void *upage, bool accessed)
Definition: mmu.c:311
bool pml4_is_accessed(uint64_t *pml4, const void *upage)
Definition: mmu.c:303
unsigned long long int uint64_t
Definition: stdint.h:29
unsigned short int uint16_t
Definition: stdint.h:23
uint16_t size
Definition: mmu.h:31
uint64_t address
Definition: mmu.h:32