Changed all pager hardcoded value assumptions, too.

Not tested.
This commit is contained in:
Bahadir Balban
2009-10-15 20:43:19 +03:00
parent e9afbbaad9
commit e28e2f486a
4 changed files with 9 additions and 19 deletions

View File

@@ -1,14 +1,11 @@
#ifndef __INITTASK_ARCH_MM_H__
#define __INITTASK_ARCH_MM_H__
#include <arch/offsets.h>
#include <l4/macros.h>
#include <l4/types.h>
#include INC_GLUE(memory.h)
#include <vm_area.h>
#define INITTASK_ADDR(x) ((x >= INITTASK_AREA_START) && (x < INITTASK_AREA_END))
struct fault_data;
unsigned int vm_prot_flags(pte_t pte);
void set_generic_fault_params(struct fault_data *fault);

View File

@@ -1,9 +0,0 @@
#ifndef __INITTASK_ARCH_OFFSETS_H__
#define __INITTASK_ARCH_OFFSETS_H__
#define INITTASK_AREA_START 0xE0000000
#define INITTASK_AREA_END 0xF0000000
#define INITTASK_OFFSET INITTASK_AREA_START
#endif

View File

@@ -113,8 +113,8 @@ int pager_setup_task(void)
task->map_end = PAGER_MMAP_END;
/* Task's total map boundaries */
task->start = task->text_start;
task->end = 0xF0000000;
task->start = __pfn_to_addr(cont_mem_regions.pager->start);
task->end = __pfn_to_addr(cont_mem_regions.pager->end);
/*
* Map all regions as anonymous (since no real
@@ -142,7 +142,8 @@ int pager_setup_task(void)
* microkernel for this pager. Ensure that we also get
* the same from our internal utcb bookkeeping.
*/
BUG_ON(task->utcb_address != __pfn_to_addr(cont_mem_regions.utcb->start));
BUG_ON(task->utcb_address !=
__pfn_to_addr(cont_mem_regions.utcb->start));
/* Pager must prefault its utcb */
prefault_page(task, task->utcb_address,

View File

@@ -57,10 +57,11 @@ static struct pager_virtual_address_id_pool {
*/
int pager_address_pool_init(void)
{
address_pool_init_with_idpool(&pager_vaddr_pool,
(struct id_pool *)
&pager_virtual_address_id_pool,
PAGER_MMAP_END, 0xF0000000);
address_pool_init_with_idpool(&pager_vaddr_pool,
(struct id_pool *)
&pager_virtual_address_id_pool,
PAGER_MMAP_END,
__pfn_to_addr(cont_mem_regions.pager->end));
return 0;
}