MyOS Kernel
paging.h
Go to the documentation of this file.
1 
5 #ifndef PAGING_H
6 #define PAGING_H
7 
8 
14 #define RUN_IN_ADDRESS_SPACE(addr_space,codeblock) do { \
15  void* old_address_space=get_address_space(); \
16  load_address_space(addr_space); \
17  codeblock; \
18  load_address_space(old_address_space); \
19 } while(0);
20 
21 
30 void map_pages(void* virt_addr_ptr,void* phys_addr_ptr,int num_pages,char usr,char wr);
36 void unmap_pages(void* start_virt,int num_pages);
42 void* alloc_pages(int num_pages);
48 void alloc_pages_virt(int num_pages,void* addr);
54 void dealloc_pages(int num_pages,void* addr);
55 
59 void paging_init();
69 void load_address_space(void* address_space);
75 void* virt_to_phys(void* virt_addr);
81 void* find_free_pages(int num_pages);
82 
87 void* get_address_space();
88 
89 #endif
alloc_pages_virt
void alloc_pages_virt(int num_pages, void *addr)
Definition: paging.c:143
paging_new_address_space
void * paging_new_address_space()
Definition: paging.c:156
load_address_space
void load_address_space(void *address_space)
Definition: paging.c:171
map_pages
void map_pages(void *virt_addr_ptr, void *phys_addr_ptr, int num_pages, char usr, char wr)
Definition: paging.c:50
get_address_space
void * get_address_space()
Definition: paging.c:232
virt_to_phys
void * virt_to_phys(void *virt_addr)
Definition: paging.c:129
paging_init
void paging_init()
Definition: paging.c:193
unmap_pages
void unmap_pages(void *start_virt, int num_pages)
Definition: paging.c:175
alloc_pages
void * alloc_pages(int num_pages)
Definition: paging.c:122
dealloc_pages
void dealloc_pages(int num_pages, void *addr)
Definition: paging.c:238
find_free_pages
void * find_free_pages(int num_pages)
Definition: paging.c:77