kern

diff src/vm.c @ 51:b1e8c8251884

lalalala
author John Tsiombikas <nuclear@member.fsf.org>
date Mon, 01 Aug 2011 06:45:29 +0300
parents 50730d42d2d3
children fa65b4f45366
line diff
     1.1 --- a/src/vm.c	Sat Jul 30 07:35:53 2011 +0300
     1.2 +++ b/src/vm.c	Mon Aug 01 06:45:29 2011 +0300
     1.3 @@ -37,7 +37,7 @@
     1.4  uint32_t get_fault_addr(void);
     1.5  
     1.6  static void coalesce(struct page_range *low, struct page_range *mid, struct page_range *high);
     1.7 -static void pgfault(int inum, uint32_t err);
     1.8 +static void pgfault(int inum, struct intr_frame *frm);
     1.9  static struct page_range *alloc_node(void);
    1.10  static void free_node(struct page_range *node);
    1.11  
    1.12 @@ -457,18 +457,18 @@
    1.13  	}
    1.14  }
    1.15  
    1.16 -static void pgfault(int inum, uint32_t err)
    1.17 +static void pgfault(int inum, struct intr_frame *frm)
    1.18  {
    1.19  	printf("~~~~ PAGE FAULT ~~~~\n");
    1.20  
    1.21  	printf("fault address: %x\n", get_fault_addr());
    1.22  
    1.23 -	if(err & PG_PRESENT) {
    1.24 -		if(err & 8) {
    1.25 +	if(frm->err & PG_PRESENT) {
    1.26 +		if(frm->err & 8) {
    1.27  			printf("reserved bit set in some paging structure\n");
    1.28  		} else {
    1.29 -			printf("%s protection violation ", (err & PG_WRITABLE) ? "write" : "read");
    1.30 -			printf("in %s mode\n", err & PG_USER ? "user" : "kernel");
    1.31 +			printf("%s protection violation ", (frm->err & PG_WRITABLE) ? "write" : "read");
    1.32 +			printf("in %s mode\n", frm->err & PG_USER ? "user" : "kernel");
    1.33  		}
    1.34  	} else {
    1.35  		printf("page not present\n");