TacOS  0.2
 Tout Structures de données Fichiers Fonctions Variables Définitions de type Énumérations Macros
vmm.h
Aller à la documentation de ce fichier.
1 
33 #ifndef _VMM_H_
34 #define _VMM_H_
35 
36 #include <types.h>
37 
43 struct slab
44 {
45  struct slab *prev;
46  size_t nb_pages;
47  struct slab *next;
48 };
49 
50 struct slabs_list
51 {
52  struct slab *begin;
53  struct slab *end;
54 };
55 
57 {
58  struct slabs_list free_slabs;
59  struct slabs_list used_slabs;
60  vaddr_t vmm_top;
61 };
62 
68 void init_vmm(struct virtual_mem *kvm);
69 
70 void init_process_vm(struct virtual_mem *vm, int init_nb_pages);
71 
81 unsigned int allocate_new_page(struct virtual_mem *vm, void **alloc, int u_s);
82 
94 unsigned int allocate_new_pages(struct virtual_mem *vm, unsigned int nb_pages,
95  void **alloc, int u_s);
96 int unallocate_page(struct virtual_mem *vm, void *page);
97 unsigned int calculate_min_pages(size_t size);
98 void vmm_print_heap(struct virtual_mem *vm);
99 vaddr_t get_linear_address(int dir, int table, int offset);
100 
104 void sys_vmm(uint32_t min_size, void **alloc, size_t *real_alloc_size);
105 
106 struct page_table_entry *get_pte(int dir, int table);
107 paddr_t vmm_get_page_paddr(vaddr_t vaddr);
108 
109 int map(paddr_t phys_page_addr, vaddr_t virt_page_addr, int u_s);
110 void unmap(vaddr_t virt_page_addr);
111 
112 #endif
113 
Definition: vmm.h:50
void sys_vmm(uint32_t min_size, void **alloc, size_t *real_alloc_size)
Definition: vmm.c:432
void init_vmm(struct virtual_mem *kvm)
Definition: vmm.c:206
Definition: vmm.h:56
uint32_t u_s
Definition: pagination.h:68
unsigned int allocate_new_page(struct virtual_mem *vm, void **alloc, int u_s)
Allocation d'une nouvelle page.
Definition: vmm.c:315
unsigned int allocate_new_pages(struct virtual_mem *vm, unsigned int nb_pages, void **alloc, int u_s)
Alloue nb_pages pages qui sont placé en espace contigüe de la mémoire virtuelle.
Definition: vmm.c:321
uint32_t paddr_t
Definition: types.h:52
a slab of pages.
Definition: vmm.h:43
uint32_t vaddr_t
Definition: types.h:38
unsigned long int uint32_t
Definition: types.h:36
Page Table Entry.
Definition: pagination.h:65