From 4ef4096e11ad305d27b4f286098f392cc6be265a Mon Sep 17 00:00:00 2001 From: "Neal H. Walfield" Date: Wed, 17 Dec 2008 19:33:13 +0100 Subject: Merge hurd/exceptions.h into hurd/thread.h. hurd/ 2008-12-17 Neal H. Walfield * exceptions.h: Merge contents of this file... * thread.h: ... into this one. Update users. * headers.m4: Don't link hurd/exceptions.h. * Makefile.am (includehurd_HEADERS): Remove exceptions.h. libc-parts/ 2008-12-17 Neal H. Walfield * backtrace.c: Don't include . libhurd-mm/ 2008-12-17 Neal H. Walfield * anonymous.h: Don't include . * as.h: Likewise. * exceptions.c: Likewise. * map.h: Likewise. * message-buffer.c: Likewise. * mm-init.c: Likewise. * as-build.c: Don't include . Include and . * as-dump.c: Include and . * as-lookup.c: Likewise. libpthread/ 2008-12-17 Neal H. Walfield * sysdeps/viengoos/ia32/pt-setup.c: Don't include or . * sysdeps/viengoos/pt-startup.c (__pthread_startup): Don't include or . Include . (__pthread_startup): Set pthread->threadid using hurd_myself. * sysdeps/viengoos/pt-sysdep.h: Don't cinlude . Include . * sysdeps/viengoos/pt-thread-dealloc.c: Don't include . Include . * sysdeps/viengoos/pt-thread-start.c: Don't include or . Include . libviengoos/ 2008-12-17 Neal H. Walfield * viengoos/misc.h: Don't include . --- hurd/ChangeLog | 7 ++ hurd/Makefile.am | 3 +- hurd/exceptions.h | 106 ------------------------ hurd/headers.m4 | 1 - hurd/thread.h | 78 ++++++++++++++++- libc-parts/ChangeLog | 4 + libc-parts/backtrace.c | 1 - libhurd-mm/ChangeLog | 14 ++++ libhurd-mm/anonymous.h | 1 - libhurd-mm/as-build.c | 3 +- libhurd-mm/as-dump.c | 2 + libhurd-mm/as-lookup.c | 2 + libhurd-mm/as.h | 1 - libhurd-mm/exceptions.c | 1 - libhurd-mm/map.h | 2 - libhurd-mm/message-buffer.c | 1 - libhurd-mm/mm-init.c | 1 - libpthread/ChangeLog | 15 ++++ libpthread/sysdeps/viengoos/ia32/pt-setup.c | 2 - libpthread/sysdeps/viengoos/pt-startup.c | 9 +- libpthread/sysdeps/viengoos/pt-sysdep.h | 2 +- libpthread/sysdeps/viengoos/pt-thread-dealloc.c | 2 +- libpthread/sysdeps/viengoos/pt-thread-start.c | 3 +- libviengoos/ChangeLog | 4 + libviengoos/viengoos/misc.h | 1 - 25 files changed, 135 insertions(+), 131 deletions(-) delete mode 100644 hurd/exceptions.h diff --git a/hurd/ChangeLog b/hurd/ChangeLog index e9ba5ba..ea3c095 100644 --- a/hurd/ChangeLog +++ b/hurd/ChangeLog @@ -1,3 +1,10 @@ +2008-12-17 Neal H. Walfield + + * exceptions.h: Merge contents of this file... + * thread.h: ... into this one. Update users. + * headers.m4: Don't link hurd/exceptions.h. + * Makefile.am (includehurd_HEADERS): Remove exceptions.h. + 2008-12-17 Neal H. Walfield * rmutex.h (__need_vg_thread_id_t): Don't include . diff --git a/hurd/Makefile.am b/hurd/Makefile.am index 4eae77a..5c28904 100644 --- a/hurd/Makefile.am +++ b/hurd/Makefile.am @@ -18,6 +18,5 @@ # along with this program. If not, see . includehurddir = $(includedir)/hurd -includehurd_HEADERS = startup.h stddef.h types.h \ - exceptions.h thread.h \ +includehurd_HEADERS = startup.h stddef.h types.h thread.h \ lock.h mutex.h rmutex.h error.h trace.h diff --git a/hurd/exceptions.h b/hurd/exceptions.h deleted file mode 100644 index efd779b..0000000 --- a/hurd/exceptions.h +++ /dev/null @@ -1,106 +0,0 @@ -/* activations.h - Activation handling definitions. - Copyright (C) 2007, 2008 Free Software Foundation, Inc. - Written by Neal H. Walfield . - - This file is part of the GNU Hurd. - - GNU Hurd is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation, either version 3 of the - License, or (at your option) any later version. - - GNU Hurd is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with GNU Hurd. If not, see - . */ - -#ifndef _HURD_ACTIVATIONS_H -#define _HURD_ACTIVATIONS_H 1 - -#include - -#include -#include -#include -#include - -/* Initializes the activation handler to allow receiving IPCs (but - does not handle other faults). This must be called exactly once - before any IPCs are sent. */ -extern void hurd_activation_handler_init_early (void); - -/* Initialize the activation handler. This must be called after the - storage sub-system has been initialized. At this point, the - activation handler is able to handle exceptions. */ -extern void hurd_activation_handler_init (void); - - -/* Return the calling thread's UTCB. Threading libraries should set - this to their own implementation once they are up and running. */ -extern struct hurd_utcb *(*hurd_utcb) (void); - -/* Allocate a utcb buffer and associated data structures (including an - exception messenger) for the thread THEAD (which must already exist - but should not be running). Installs the UTCB and exception - messenger in the thread object. Returns the new UTCB in *UTCB. - Returns 0 on success, otherwise an error code. */ -extern error_t hurd_activation_state_alloc (vg_addr_t thread, - struct hurd_utcb **utcb); - -/* Release the state allocated by hurd_activation_state_alloc. May - not be called by a thread on its own UTCB! */ -extern void hurd_activation_state_free (struct hurd_utcb *utcb); - - -/* When a thread causes an activation, the kernel invokes the thread's - activation handler. This points to the low-level activation handler, - which invokes activation_handler_activated. (It is passed a pointer - to the utcb.) - - This function must determine how to continue. It may, but need - not, immediately handle the activation. The problem with handling - an activation immediately is that this function runs on the - activation handler's tiny stack and it runs in activated mode. The - latter means that it may not fault (which generally precludes - accessing any dynamically allocated storage) or even properly send - IPC (as it has no easy way to determine when the IPC has been - received and when a reply is available--this information is - delivered by activations!). - - To allow an easy transition to another function in normal-mode, if - the function returns an activation_frame, then the activation - handler will call hurd_activation_handler_normal passing it that - argument. This function runs in normal mode and on the normal - stack. When this function returns, the interrupted state is - restored. */ -extern struct activation_frame *hurd_activation_handler_activated - (struct hurd_utcb *utcb); - -extern void hurd_activation_handler_normal - (struct activation_frame *activation_frame, struct hurd_utcb *utcb); - - -/* The first instruction of activation handler dispatcher. */ -extern char hurd_activation_handler_entry; -/* The instruction immediately following the last instruction of the - activation handler dispatcher. */ -extern char hurd_activation_handler_end; - - -/* Register the current extant IPC. */ -extern void hurd_activation_message_register (struct hurd_message_buffer *mb); - -/* Unregister the current extant IPC. This is normally done - automatically when a reply is receive. However, if the IPC is - aborted, then this function must be called before the next IPC may - be sent. */ -extern void hurd_activation_message_unregister (struct hurd_message_buffer *mb); - -/* Dump the activation stack to stdout. */ -extern void hurd_activation_stack_dump (void); - -#endif diff --git a/hurd/headers.m4 b/hurd/headers.m4 index da2d579..dc7d22a 100644 --- a/hurd/headers.m4 +++ b/hurd/headers.m4 @@ -13,7 +13,6 @@ AC_CONFIG_LINKS([sysroot/include/hurd/stddef.h:hurd/stddef.h sysroot/include/hurd/types.h:hurd/types.h sysroot/include/hurd/startup.h:hurd/startup.h - sysroot/include/hurd/exceptions.h:hurd/exceptions.h sysroot/include/hurd/thread.h:hurd/thread.h sysroot/include/hurd/lock.h:hurd/lock.h sysroot/include/hurd/trace.h:hurd/trace.h diff --git a/hurd/thread.h b/hurd/thread.h index f65f17f..94c29e8 100644 --- a/hurd/thread.h +++ b/hurd/thread.h @@ -93,7 +93,6 @@ struct activation_frame #include #include #include -#include #include /* The user thread control block. */ @@ -133,13 +132,90 @@ struct hurd_utcb uintptr_t canary0; uintptr_t canary1; }; + +/* Return the calling thread's UTCB. Threading libraries should set + this to their own implementation once they are up and running. */ +extern struct hurd_utcb *(*hurd_utcb) (void); +/* Initializes the activation handler to allow receiving IPCs (but + does not handle other faults). This must be called exactly once + before any IPCs are sent. */ +extern void hurd_activation_handler_init_early (void); + +/* Initialize the activation handler. This must be called after the + storage sub-system has been initialized. At this point, the + activation handler is able to handle exceptions. */ +extern void hurd_activation_handler_init (void); + + +/* Allocate a utcb buffer and associated data structures (including an + exception messenger) for the thread THEAD (which must already exist + but should not be running). Installs the UTCB and exception + messenger in the thread object. Returns the new UTCB in *UTCB. + Returns 0 on success, otherwise an error code. */ +extern error_t hurd_activation_state_alloc (vg_addr_t thread, + struct hurd_utcb **utcb); + +/* Release the state allocated by hurd_activation_state_alloc. May + not be called by a thread on its own UTCB! */ +extern void hurd_activation_state_free (struct hurd_utcb *utcb); + + +/* When a thread causes an activation, the kernel invokes the thread's + activation handler. This points to the low-level activation handler, + which invokes activation_handler_activated. (It is passed a pointer + to the utcb.) + + This function must determine how to continue. It may, but need + not, immediately handle the activation. The problem with handling + an activation immediately is that this function runs on the + activation handler's tiny stack and it runs in activated mode. The + latter means that it may not fault (which generally precludes + accessing any dynamically allocated storage) or even properly send + IPC (as it has no easy way to determine when the IPC has been + received and when a reply is available--this information is + delivered by activations!). + + To allow an easy transition to another function in normal-mode, if + the function returns an activation_frame, then the activation + handler will call hurd_activation_handler_normal passing it that + argument. This function runs in normal mode and on the normal + stack. When this function returns, the interrupted state is + restored. */ +extern struct activation_frame *hurd_activation_handler_activated + (struct hurd_utcb *utcb); + +extern void hurd_activation_handler_normal + (struct activation_frame *activation_frame, struct hurd_utcb *utcb); + + +/* The first instruction of activation handler dispatcher. */ +extern char hurd_activation_handler_entry; +/* The instruction immediately following the last instruction of the + activation handler dispatcher. */ +extern char hurd_activation_handler_end; + + +/* Register the current extant IPC. */ +extern void hurd_activation_message_register (struct hurd_message_buffer *mb); + +/* Unregister the current extant IPC. This is normally done + automatically when a reply is receive. However, if the IPC is + aborted, then this function must be called before the next IPC may + be sent. */ +extern void hurd_activation_message_unregister (struct hurd_message_buffer *mb); + + /* Cause the activation frame to assume the state of the long jump buffer BUF. If SET_RET is true, the normal function return value is set to RET. */ extern void hurd_activation_frame_longjmp (struct activation_frame *af, jmp_buf buf, bool set_ret, int ret); + + +/* Dump the activation stack to stdout. */ +extern void hurd_activation_stack_dump (void); struct hurd_fault_catcher { diff --git a/libc-parts/ChangeLog b/libc-parts/ChangeLog index 3ca7496..4532e7d 100644 --- a/libc-parts/ChangeLog +++ b/libc-parts/ChangeLog @@ -1,3 +1,7 @@ +2008-12-17 Neal H. Walfield + + * backtrace.c: Don't include . + 2008-12-17 Neal H. Walfield * panic.c: Include diff --git a/libc-parts/backtrace.c b/libc-parts/backtrace.c index 342c65d..4fbe875 100644 --- a/libc-parts/backtrace.c +++ b/libc-parts/backtrace.c @@ -32,7 +32,6 @@ return count; #else -# include # include # include diff --git a/libhurd-mm/ChangeLog b/libhurd-mm/ChangeLog index a88e681..a4b592e 100644 --- a/libhurd-mm/ChangeLog +++ b/libhurd-mm/ChangeLog @@ -1,3 +1,17 @@ +2008-12-17 Neal H. Walfield + + * anonymous.h: Don't include . + * as.h: Likewise. + * exceptions.c: Likewise. + * map.h: Likewise. + * message-buffer.c: Likewise. + * mm-init.c: Likewise. + * as-build.c: Don't include . Include + and . + * as-dump.c: Include and + . + * as-lookup.c: Likewise. + 2008-12-17 Neal H. Walfield * ia32-exception-entry.S: Don't include . diff --git a/libhurd-mm/anonymous.h b/libhurd-mm/anonymous.h index aac7f7b..bdc71ec 100644 --- a/libhurd-mm/anonymous.h +++ b/libhurd-mm/anonymous.h @@ -24,7 +24,6 @@ #include #include #include -#include #include /* Forward. */ diff --git a/libhurd-mm/as-build.c b/libhurd-mm/as-build.c index 25ba5b9..c850713 100644 --- a/libhurd-mm/as-build.c +++ b/libhurd-mm/as-build.c @@ -25,7 +25,8 @@ #include #include #include -#include +#include +#include #include #include diff --git a/libhurd-mm/as-dump.c b/libhurd-mm/as-dump.c index 628b5d3..68051ae 100644 --- a/libhurd-mm/as-dump.c +++ b/libhurd-mm/as-dump.c @@ -20,6 +20,8 @@ #include #include +#include +#include #include #include #include diff --git a/libhurd-mm/as-lookup.c b/libhurd-mm/as-lookup.c index 0de3c03..38b7072 100644 --- a/libhurd-mm/as-lookup.c +++ b/libhurd-mm/as-lookup.c @@ -20,6 +20,8 @@ #include #include +#include +#include #include #include #include diff --git a/libhurd-mm/as.h b/libhurd-mm/as.h index b771fe7..7bc4cce 100644 --- a/libhurd-mm/as.h +++ b/libhurd-mm/as.h @@ -24,7 +24,6 @@ #include #include -#include #include #include diff --git a/libhurd-mm/exceptions.c b/libhurd-mm/exceptions.c index 42dfacb..c73bec6 100644 --- a/libhurd-mm/exceptions.c +++ b/libhurd-mm/exceptions.c @@ -20,7 +20,6 @@ #include #include -#include #include #include #include diff --git a/libhurd-mm/map.h b/libhurd-mm/map.h index d9aedef..afe6841 100644 --- a/libhurd-mm/map.h +++ b/libhurd-mm/map.h @@ -133,8 +133,6 @@ BTREE_CLASS (map, struct map, struct region, region, node, lock. */ extern hurd_btree_map_t maps; -#include - /* Ensure that using the next AMOUNT bytes of stack will not result in a fault. */ static void __attribute__ ((noinline)) diff --git a/libhurd-mm/message-buffer.c b/libhurd-mm/message-buffer.c index dfa87c8..faa15de 100644 --- a/libhurd-mm/message-buffer.c +++ b/libhurd-mm/message-buffer.c @@ -24,7 +24,6 @@ #include #include #include -#include extern struct hurd_startup_data *__hurd_startup_data; diff --git a/libhurd-mm/mm-init.c b/libhurd-mm/mm-init.c index 896b69f..90b7112 100644 --- a/libhurd-mm/mm-init.c +++ b/libhurd-mm/mm-init.c @@ -24,7 +24,6 @@ #endif #include -#include #include #ifdef i386 diff --git a/libpthread/ChangeLog b/libpthread/ChangeLog index ed6a689..ec19176 100644 --- a/libpthread/ChangeLog +++ b/libpthread/ChangeLog @@ -1,3 +1,18 @@ +2008-12-17 Neal H. Walfield + + * sysdeps/viengoos/ia32/pt-setup.c: Don't include + or . + * sysdeps/viengoos/pt-startup.c (__pthread_startup): Don't include + or . Include . + (__pthread_startup): Set pthread->threadid using hurd_myself. + * sysdeps/viengoos/pt-sysdep.h: Don't cinlude + . Include . + * sysdeps/viengoos/pt-thread-dealloc.c: Don't include + . Include . + * sysdeps/viengoos/pt-thread-start.c: Don't include + or . Include + . + 2008-12-17 Neal H. Walfield * sysdeps/generic/bits/spin-lock.h: New file. diff --git a/libpthread/sysdeps/viengoos/ia32/pt-setup.c b/libpthread/sysdeps/viengoos/ia32/pt-setup.c index bdd814a..5604d11 100644 --- a/libpthread/sysdeps/viengoos/ia32/pt-setup.c +++ b/libpthread/sysdeps/viengoos/ia32/pt-setup.c @@ -20,8 +20,6 @@ #include #include -#include -#include /* The stack layout used on the i386 is: diff --git a/libpthread/sysdeps/viengoos/pt-startup.c b/libpthread/sysdeps/viengoos/pt-startup.c index b6461de..1a93e2e 100644 --- a/libpthread/sysdeps/viengoos/pt-startup.c +++ b/libpthread/sysdeps/viengoos/pt-startup.c @@ -1,5 +1,5 @@ -/* Thread initialization. Hurd/L4 version. - Copyright (C) 2007 Free Software Foundation, Inc. +/* Thread initialization. Viengoos version. + Copyright (C) 2007, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -17,14 +17,13 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include #include -#include +#include void __pthread_startup (void) { struct __pthread *pthread = _pthread_self (); - pthread->threadid = l4_myself (); + pthread->threadid = hurd_myself (); } diff --git a/libpthread/sysdeps/viengoos/pt-sysdep.h b/libpthread/sysdeps/viengoos/pt-sysdep.h index b276b87..f7ababa 100644 --- a/libpthread/sysdeps/viengoos/pt-sysdep.h +++ b/libpthread/sysdeps/viengoos/pt-sysdep.h @@ -30,7 +30,7 @@ /* The default stack size: 2MB. */ #define PTHREAD_STACK_DEFAULT (2 * 1024 * 1024) -#include +#include #include #define PTHREAD_SYSDEP_MEMBERS \ diff --git a/libpthread/sysdeps/viengoos/pt-thread-dealloc.c b/libpthread/sysdeps/viengoos/pt-thread-dealloc.c index f7d732b..2011df2 100644 --- a/libpthread/sysdeps/viengoos/pt-thread-dealloc.c +++ b/libpthread/sysdeps/viengoos/pt-thread-dealloc.c @@ -22,7 +22,7 @@ #include -#include +#include #include #include #include diff --git a/libpthread/sysdeps/viengoos/pt-thread-start.c b/libpthread/sysdeps/viengoos/pt-thread-start.c index 6a9fc90..1b341cb 100644 --- a/libpthread/sysdeps/viengoos/pt-thread-start.c +++ b/libpthread/sysdeps/viengoos/pt-thread-start.c @@ -20,8 +20,7 @@ #include #include #include -#include -#include +#include #include diff --git a/libviengoos/ChangeLog b/libviengoos/ChangeLog index 2e2e150..70cb6ed 100644 --- a/libviengoos/ChangeLog +++ b/libviengoos/ChangeLog @@ -1,3 +1,7 @@ +2008-12-17 Neal H. Walfield + + * viengoos/misc.h: Don't include . + 2008-12-17 Neal H. Walfield * viengoos/activity.h: Add a "vg_" to public viengoos identifiers. diff --git a/libviengoos/viengoos/misc.h b/libviengoos/viengoos/misc.h index e367c19..a793335 100644 --- a/libviengoos/viengoos/misc.h +++ b/libviengoos/viengoos/misc.h @@ -23,7 +23,6 @@ #include #include -#include #include #include #include -- cgit v1.2.3