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