kern
diff src/vm.h @ 57:437360696883
I think we're done for now. two processes seem to be scheduled and switched just fine, fork seems to work (NO CoW YET!)
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Tue, 16 Aug 2011 03:26:53 +0300 |
parents | 88a6c4e192f9 |
children | 0a205396e1a0 |
line diff
1.1 --- a/src/vm.h Mon Aug 15 06:17:58 2011 +0300 1.2 +++ b/src/vm.h Tue Aug 16 03:26:53 2011 +0300 1.3 @@ -36,6 +36,13 @@ 1.4 #define PAGE_TO_PGTBL(x) ((uint32_t)(x) >> 10) 1.5 #define PAGE_TO_PGTBL_PG(x) ((uint32_t)(x) & 0x3ff) 1.6 1.7 +/* argument to clone_vm */ 1.8 +#define CLONE_SHARED 0 1.9 +#define CLONE_COW 1 1.10 + 1.11 +/* last argument to *_page_bit */ 1.12 +#define PAGE_ONLY 0 1.13 +#define WHOLE_PATH 1 1.14 1.15 void init_vm(void); 1.16 1.17 @@ -57,7 +64,11 @@ 1.18 int pgalloc_vrange(int start, int num); 1.19 void pgfree(int start, int num); 1.20 1.21 -uint32_t clone_vm(void); 1.22 +uint32_t clone_vm(int cow); 1.23 + 1.24 +int get_page_bit(int pgnum, uint32_t bit, int wholepath); 1.25 +void set_page_bit(int pgnum, uint32_t bit, int wholepath); 1.26 +void clear_page_bit(int pgnum, uint32_t bit, int wholepath); 1.27 1.28 void dbg_print_vm(int area); 1.29