mirror of
https://github.com/drasko/codezero.git
synced 2026-01-24 00:33:14 +01:00
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:
@@ -20,21 +20,22 @@
|
||||
/*
|
||||
* Initialise the utcb virtual address pool and its own utcb.
|
||||
* NOTE: This allocates memory so kmalloc must be initialised first.
|
||||
* FIXME: Is this necessary anymore??? Who maps mm0's page to share?
|
||||
*/
|
||||
void init_utcb(void)
|
||||
void init_utcb_page(void)
|
||||
{
|
||||
void *utcb_virt, *utcb_page;
|
||||
void *utcb_virt, *utcb_phys;
|
||||
|
||||
/* Allocate and map one for self */
|
||||
if (utcb_pool_init() < 0)
|
||||
printf("UTCB initialisation failed.\n");
|
||||
utcb_virt = utcb_vaddr_new();
|
||||
printf("%s: Mapping 0x%x as utcb to self.\n", __TASKNAME__, utcb_virt);
|
||||
utcb_page = alloc_page(1);
|
||||
l4_map(utcb_page, utcb_virt, 1, MAP_USR_RW_FLAGS, self_tid());
|
||||
utcb_phys = alloc_page(1);
|
||||
l4_map(utcb_phys, utcb_virt, 1, MAP_USR_RW_FLAGS, self_tid());
|
||||
|
||||
/* Also initialise the utcb reference that is inside l4lib. */
|
||||
utcb = utcb_virt;
|
||||
/* Initialise the utcb page that is inside l4lib. */
|
||||
utcb_page = utcb_virt;
|
||||
}
|
||||
|
||||
void init_mm(struct initdata *initdata)
|
||||
@@ -62,8 +63,8 @@ void init_mm(struct initdata *initdata)
|
||||
shm_init();
|
||||
printf("%s: Initialised shm structures.\n", __TASKNAME__);
|
||||
|
||||
init_utcb();
|
||||
printf("%s: Initialised own utcb.\n", __TASKNAME__);
|
||||
init_utcb_page();
|
||||
printf("%s: Initialised mm0 utcb page.\n", __TASKNAME__);
|
||||
|
||||
/* Give the kernel some memory to use for its allocators */
|
||||
l4_kmem_grant(__pfn(alloc_page(__pfn(SZ_1MB))), __pfn(SZ_1MB));
|
||||
|
||||
Reference in New Issue
Block a user