190
|
1 typedef struct vm<Type,Impl> {
|
|
2 union Data* vm;
|
193
|
3 uint low;
|
|
4 uint hi;
|
190
|
5 struct proc* p;
|
|
6 pde_t* pgdir;
|
|
7 char* init;
|
193
|
8 uint sz;
|
190
|
9 char* addr;
|
|
10 struct inode* ip;
|
193
|
11 uint offset;
|
|
12 uint oldsz;
|
|
13 uint newsz;
|
190
|
14 char* uva;
|
193
|
15 uint va;
|
192
|
16 void* pp;
|
193
|
17 uint len;
|
|
18 uint phy_low;
|
|
19 uint phy_hi;
|
190
|
20 __code init_vmm(Impl* vm, __code next(...));
|
193
|
21 __code kpt_freerange(Impl* vm, uint low, uint hi, __code next(...));
|
190
|
22 __code kpt_alloc(Impl* vm ,__code next(...));
|
|
23 __code switchuvm(Impl* vm ,struct proc* p, __code next(...));
|
193
|
24 __code init_inituvm(Impl* vm, pde_t* pgdir, char* init, uint sz, __code next(...));
|
|
25 __code loaduvm(Impl* vm,pde_t* pgdir, char* addr, struct inode* ip, uint offset, uint sz, __code next(...));
|
|
26 __code allocuvm(Impl* vm, pde_t* pgdir, uint oldsz, uint newsz, __code next(...));
|
190
|
27 __code clearpteu(Impl* vm, pde_t* pgdir, char* uva, __code next(...));
|
193
|
28 __code copyuvm(Impl* vm, pde_t* pgdir, uint sz, __code next(...));
|
190
|
29 __code uva2ka(Impl* vm, pde_t* pgdir, char* uva, __code next(...));
|
193
|
30 __code copyout(Impl* vm, pde_t* pgdir, uint va, void* pp, uint len, __code next(...));
|
|
31 __code pagind_int(Impl* vm, uint phy_low, uint phy_hi, __code next(...));
|
192
|
32 __code next(...);
|
190
|
33 } vm;
|