kern

diff src/vm.h @ 23:5454cee245a3

- fixed tragic mistake in the initial kernel image mapping - page table modifications by disabling paging first - page allocation completed
author John Tsiombikas <nuclear@member.fsf.org>
date Mon, 04 Apr 2011 23:34:06 +0300
parents 7ece008f09c5
children 387078ef5c0d
line diff
     1.1 --- a/src/vm.h	Sun Apr 03 18:42:19 2011 +0300
     1.2 +++ b/src/vm.h	Mon Apr 04 23:34:06 2011 +0300
     1.3 @@ -18,12 +18,14 @@
     1.4  
     1.5  
     1.6  #define PGSIZE					4096
     1.7 +#define PAGE_COUNT				(1024 * 1024)
     1.8 +
     1.9  #define PGOFFS_MASK				0xfff
    1.10  #define PGNUM_MASK				0xfffff000
    1.11  #define PGENT_ADDR_MASK			PGNUM_MASK
    1.12  
    1.13 -#define ADDR_TO_PAGE(x)		((uint32_t)(x) >> 12)
    1.14 -#define PAGE_TO_ADDR(x)		((uint32_t)(x) << 12)
    1.15 +#define ADDR_TO_PAGE(x)			((uint32_t)(x) >> 12)
    1.16 +#define PAGE_TO_ADDR(x)			((uint32_t)(x) << 12)
    1.17  
    1.18  #define ADDR_TO_PGTBL(x)		((uint32_t)(x) >> 22)
    1.19  #define ADDR_TO_PGTBL_PG(x)		(((uint32_t)(x) >> 12) & 0x3ff)
    1.20 @@ -35,10 +37,9 @@
    1.21  
    1.22  void init_vm(struct mboot_info *mb);
    1.23  
    1.24 -void map_page(int vpage, int ppage, unsigned int attr);
    1.25 -void map_page_range(int vpg_start, int pgcount, int ppg_start, unsigned int attr);
    1.26 -
    1.27 -void map_mem_range(uint32_t vaddr, size_t sz, uint32_t paddr, unsigned int attr);
    1.28 +int map_page(int vpage, int ppage, unsigned int attr);
    1.29 +int map_page_range(int vpg_start, int pgcount, int ppg_start, unsigned int attr);
    1.30 +int map_mem_range(uint32_t vaddr, size_t sz, uint32_t paddr, unsigned int attr);
    1.31  
    1.32  uint32_t virt_to_phys(uint32_t vaddr);
    1.33  
    1.34 @@ -48,5 +49,8 @@
    1.35  };
    1.36  
    1.37  int pgalloc(int num, int area);
    1.38 +void pgfree(int start, int num);
    1.39 +
    1.40 +void dbg_print_vm(int area);
    1.41  
    1.42  #endif	/* VM_H_ */