summaryrefslogtreecommitdiff
path: root/libhurd-mm/mm-init.c
diff options
context:
space:
mode:
authorneal <neal>2007-11-19 22:59:04 +0000
committerneal <neal>2007-11-19 22:59:04 +0000
commit755d9a8988a5ae6e70fe5dbf6a980bad0c54821d (patch)
treeec578a1f082f218884a48c0b6bb5a0a84da96f01 /libhurd-mm/mm-init.c
parent5c2c982ba3cfbe34c79cb2096018567ca6cd8fb6 (diff)
hurd/
2007-11-19 Neal H. Walfield <neal@gnu.org> * Makefile.am (includehurd_HEADERS): Add exceptions.h. * headers.m4: Link $(BUILDIR)/include/hurd/exceptions.h to exceptions.h. * exceptions.h: New file. viengoos/ 2007-11-19 Neal H. Walfield <neal@gnu.org> * thread.h (struct thread): Add fields have_exception and exception. (UTCB_AREA_SIZE): Provide space for two UTCBs. * thread.c: Include <hurd/exceptions.h>. (thread_create_in): For each thread that we allocate, allocate two consecutive l4 thread ids. (thread_commission): Initialize the main thread and the exception thread. (thread_decommission): Destroy both the main thread and the exception thread. * rm.h: Add RM_exception_collect. (rm_method_id_string): Handle RM_exception_collect. (exception_collect): New RPC method. * server.c: Include <hurd/exceptions.h>. (server_loop): If FROM is the exception thread, look up the thread object using the main thread id. Propagate any fault to the exception thread. If not immediately successful, save the message in THREAD->EXCEPTION and set THREAD->HAVE_EXCEPTION. Implement the exception_collect method. (DEBUG): Also print the method number. libhurd-mm/ 2007-11-19 Neal H. Walfield <neal@gnu.org> * Makefile.am (libhurd_mm_a_SOURCES): Add exceptions.h, exceptions.c, pager.h, pager.c, anonymous.h and anonymous.c. * headers.m4: Link $(BUILDDIR)/include/hurd/pager.h to pager.h. Link $(BUILDDIR)/include/hurd/anonymous.h to anonymous.h. * mm-init.c: Include "exceptions.h". (mm_init): Call exception_handler_init. * pager.h: Completely rewrite. * pager.c: Likewise. * anonymous.h: Likewise. * anonymous.c: Likewise. * exceptions.h: New file. * exceptions.c: Likewise. * mmap.c: Include <hurd/anonymous.h>. (mmap): Rewrite to use an anonymous pager.
Diffstat (limited to 'libhurd-mm/mm-init.c')
-rw-r--r--libhurd-mm/mm-init.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libhurd-mm/mm-init.c b/libhurd-mm/mm-init.c
index b23ccb7..c174906 100644
--- a/libhurd-mm/mm-init.c
+++ b/libhurd-mm/mm-init.c
@@ -27,6 +27,7 @@
#include "storage.h"
#include "as.h"
+#include "exceptions.h"
extern struct hurd_startup_data *__hurd_startup_data;
@@ -46,4 +47,5 @@ mm_init (addr_t activity)
storage_init ();
as_init ();
+ exception_handler_init ();
}