Various changes to incorporate new utcb setup.

Issues with l4_return value not reaching client side
	modified:   libs/c/include/stdio.h
	modified:   src/arch/arm/exception.c
	modified:   src/glue/arm/init.c
	modified:   tasks/fs0/src/task.c
	modified:   tasks/libl4/include/l4lib/arch-arm/utcb.h
	modified:   tasks/libl4/src/arm/syscalls.S
	modified:   tasks/libl4/src/init.c
	deleted:    tasks/libl4/tagfilelist
	modified:   tasks/libposix/open.c
	modified:   tasks/mm0/include/utcb.h
	modified:   tasks/mm0/include/vm_area.h
	modified:   tasks/mm0/main.c
	modified:   tasks/mm0/src/init.c
	modified:   tasks/mm0/src/task.c
	modified:   tasks/mm0/src/utcb.c
	modified:   tasks/mm0/src/vm_object.c
This commit is contained in:
Bahadir Balban
2008-03-19 02:27:53 +00:00
parent ac3935a5d9
commit 16617eed36
16 changed files with 93 additions and 71 deletions

View File

@@ -8,6 +8,7 @@
#include <l4/generic/tcb.h>
#include <l4/lib/printk.h>
#include <l4/api/ipc.h>
#include <l4/api/kip.h>
#include <l4/api/errno.h>
#include INC_PLAT(printascii.h)
#include INC_ARCH(exception.h)
@@ -17,7 +18,7 @@
#include INC_SUBARCH(mm.h)
/* Abort debugging conditions */
// #define DEBUG_ABORTS
//#define DEBUG_ABORTS
#if defined (DEBUG_ABORTS)
#define dbg_abort(...) dprintk(__VA_ARGS__)
#else
@@ -180,7 +181,15 @@ int check_aborts(u32 faulted_pc, u32 fsr, u32 far)
void data_abort_handler(u32 faulted_pc, u32 fsr, u32 far)
{
set_abort_type(fsr, ARM_DABT);
/*
* FIXME: Find why if we use a clause like if tid == PAGER_TID
* this prints just the faulted_pc but not the text "Data abort @ PC:"
* Strange.
*/
dbg_abort("Data abort @ PC: ", faulted_pc);
/* Check for more details */
if (check_aborts(faulted_pc, fsr, far) < 0) {
printascii("This abort can't be handled by any pager.\n");
goto error;

View File

@@ -182,10 +182,10 @@ void kip_init()
kip_init_syscalls();
/* KIP + 0xFF0 is pointer to UTCB area for this thread group. */
/* KIP + 0xFF0 is pointer to UTCB segment start address */
utcb_ref = (struct utcb **)((unsigned long)&kip + UTCB_KIP_OFFSET);
/* All thread groups have their utcb mapped at UTCB_AREA_START */
/* All thread utcbs are allocated starting from UTCB_AREA_START */
*utcb_ref = (struct utcb *)UTCB_AREA_START;
add_mapping(virt_to_phys(&kip), USER_KIP_PAGE, PAGE_SIZE,