diff options
Diffstat (limited to 'hurd')
-rw-r--r-- | hurd/catch-signal.c | 71 | ||||
-rw-r--r-- | hurd/hurd/signal.h | 34 | ||||
-rw-r--r-- | hurd/hurd/sigpreempt.h | 64 | ||||
-rw-r--r-- | hurd/hurdfault.c | 35 | ||||
-rw-r--r-- | hurd/hurdfault.h | 38 | ||||
-rw-r--r-- | hurd/hurdsig.c | 24 | ||||
-rw-r--r-- | hurd/preempt-sig.c | 50 |
7 files changed, 157 insertions, 159 deletions
diff --git a/hurd/catch-signal.c b/hurd/catch-signal.c index c148193f71..a03785328a 100644 --- a/hurd/catch-signal.c +++ b/hurd/catch-signal.c @@ -1,21 +1,21 @@ /* Convenience function to catch expected signals during an operation. -Copyright (C) 1996 Free Software Foundation, Inc. -This file is part of the GNU C Library. + Copyright (C) 1996 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 -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. -The GNU C Library 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 -Library General Public License for more details. + The GNU C Library 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 + Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with the GNU C Library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. */ + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ #include <hurd/signal.h> #include <hurd/sigpreempt.h> @@ -25,14 +25,14 @@ Cambridge, MA 02139, USA. */ error_t hurd_catch_signal (sigset_t sigset, unsigned long int first, unsigned long int last, - error_t (*operate) (struct hurd_signal_preempter *), + error_t (*operate) (struct hurd_signal_preemptor *), sighandler_t handler) { jmp_buf buf; void throw (int signo, long int sigcode, struct sigcontext *scp) { longjmp (buf, scp->sc_error ?: EGRATUITOUS); } - struct hurd_signal_preempter preempter = + struct hurd_signal_preemptor preemptor = { sigset, first, last, NULL, handler == SIG_ERR ? (sighandler_t) &throw : handler, @@ -50,23 +50,23 @@ hurd_catch_signal (sigset_t sigset, if (error == 0) { - /* Install a signal preempter for the thread. */ + /* Install a signal preemptor for the thread. */ __spin_lock (&ss->lock); - preempter.next = ss->preempters; - ss->preempters = &preempter; + preemptor.next = ss->preemptors; + ss->preemptors = &preemptor; __spin_unlock (&ss->lock); /* Try the operation that might crash. */ - (*operate) (&preempter); + (*operate) (&preemptor); } /* Either FUNCTION completed happily and ERROR is still zero, or it hit an expected signal and `throw' made setjmp return the signal error - code in ERROR. Now we can remove the preempter and return. */ + code in ERROR. Now we can remove the preemptor and return. */ __spin_lock (&ss->lock); - assert (ss->preempters == &preempter); - ss->preempters = preempter.next; + assert (ss->preemptors == &preemptor); + ss->preemptors = preemptor.next; __spin_unlock (&ss->lock); return error; @@ -76,7 +76,7 @@ hurd_catch_signal (sigset_t sigset, error_t hurd_safe_memset (void *dest, int byte, size_t nbytes) { - error_t operate (struct hurd_signal_preempter *preempter) + error_t operate (struct hurd_signal_preemptor *preemptor) { memset (dest, byte, nbytes); return 0; @@ -90,7 +90,7 @@ hurd_safe_memset (void *dest, int byte, size_t nbytes) error_t hurd_safe_copyout (void *dest, const void *src, size_t nbytes) { - error_t operate (struct hurd_signal_preempter *preempter) + error_t operate (struct hurd_signal_preemptor *preemptor) { memcpy (dest, src, nbytes); return 0; @@ -103,7 +103,7 @@ hurd_safe_copyout (void *dest, const void *src, size_t nbytes) error_t hurd_safe_copyin (void *dest, const void *src, size_t nbytes) { - error_t operate (struct hurd_signal_preempter *preempter) + error_t operate (struct hurd_signal_preemptor *preemptor) { memcpy (dest, src, nbytes); return 0; @@ -120,18 +120,18 @@ hurd_safe_memmove (void *dest, const void *src, size_t nbytes) void throw (int signo, long int sigcode, struct sigcontext *scp) { longjmp (buf, scp->sc_error ?: EGRATUITOUS); } - struct hurd_signal_preempter src_preempter = + struct hurd_signal_preemptor src_preemptor = { sigmask (SIGBUS) | sigmask (SIGSEGV), (vm_address_t) src, (vm_address_t) src + nbytes, NULL, (sighandler_t) &throw, }; - struct hurd_signal_preempter dest_preempter = + struct hurd_signal_preemptor dest_preemptor = { sigmask (SIGBUS) | sigmask (SIGSEGV), (vm_address_t) dest, (vm_address_t) dest + nbytes, NULL, (sighandler_t) &throw, - &src_preempter + &src_preemptor }; struct hurd_sigstate *const ss = _hurd_self_sigstate (); @@ -142,10 +142,10 @@ hurd_safe_memmove (void *dest, const void *src, size_t nbytes) if (error == 0) { - /* Install a signal preempter for the thread. */ + /* Install a signal preemptor for the thread. */ __spin_lock (&ss->lock); - src_preempter.next = ss->preempters; - ss->preempters = &dest_preempter; + src_preemptor.next = ss->preemptors; + ss->preemptors = &dest_preemptor; __spin_unlock (&ss->lock); /* Do the copy; it might fault. */ @@ -154,13 +154,12 @@ hurd_safe_memmove (void *dest, const void *src, size_t nbytes) /* Either memmove completed happily and ERROR is still zero, or it hit an expected signal and `throw' made setjmp return the signal error - code in ERROR. Now we can remove the preempter and return. */ + code in ERROR. Now we can remove the preemptor and return. */ __spin_lock (&ss->lock); - assert (ss->preempters == &dest_preempter); - ss->preempters = src_preempter.next; + assert (ss->preemptors == &dest_preemptor); + ss->preemptors = src_preemptor.next; __spin_unlock (&ss->lock); return error; } - diff --git a/hurd/hurd/signal.h b/hurd/hurd/signal.h index 7dee18c1ed..468599c581 100644 --- a/hurd/hurd/signal.h +++ b/hurd/hurd/signal.h @@ -1,21 +1,21 @@ /* Implementing POSIX.1 signals under the Hurd. -Copyright (C) 1993, 1994, 1995, 1996 Free Software Foundation, Inc. -This file is part of the GNU C Library. + Copyright (C) 1993, 1994, 1995, 1996 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 -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. -The GNU C Library 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 -Library General Public License for more details. + The GNU C Library 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 + Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with the GNU C Library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. */ + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ #ifndef _HURD_SIGNAL_H @@ -40,7 +40,7 @@ Cambridge, MA 02139, USA. */ #include <cthreads.h> /* For `struct mutex'. */ #include <spin-lock.h> #include <hurd/threadvar.h> /* We cache sigstate in a threadvar. */ -struct hurd_signal_preempter; /* <hurd/sigpreempt.h> */ +struct hurd_signal_preemptor; /* <hurd/sigpreempt.h> */ /* Full details of a signal. */ @@ -71,11 +71,11 @@ struct hurd_sigstate struct sigaction actions[NSIG]; struct sigaltstack sigaltstack; - /* Chain of thread-local signal preempters; see <hurd/sigpreempt.h>. + /* Chain of thread-local signal preemptors; see <hurd/sigpreempt.h>. Each element of this chain is in local stack storage, and the chain parallels the stack: the head of this chain is in the innermost stack frame, and each next element in an outermore frame. */ - struct hurd_signal_preempter *preempters; + struct hurd_signal_preemptor *preemptors; /* For each signal that may be pending, the details to deliver it with. */ struct hurd_signal_detail pending_data[NSIG]; diff --git a/hurd/hurd/sigpreempt.h b/hurd/hurd/sigpreempt.h index 1bd6589e32..44572a6d27 100644 --- a/hurd/hurd/sigpreempt.h +++ b/hurd/hurd/sigpreempt.h @@ -1,21 +1,21 @@ /* Preemption of Hurd signals before POSIX.1 semantics take over. -Copyright (C) 1996 Free Software Foundation, Inc. -This file is part of the GNU C Library. + Copyright (C) 1996 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 -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. -The GNU C Library 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 -Library General Public License for more details. + The GNU C Library 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 + Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with the GNU C Library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. */ + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ #ifndef _HURD_SIGPREEMPT_H @@ -25,7 +25,7 @@ Cambridge, MA 02139, USA. */ struct hurd_sigstate; /* <hurd/signal.h> */ struct hurd_signal_detail; /* <hurd/signal.h> */ -struct hurd_signal_preempter +struct hurd_signal_preemptor { /* These members select which signals this structure will apply to. The rest of the structure is only consulted if these match. */ @@ -34,35 +34,35 @@ struct hurd_signal_preempter /* This function will be called (with SS->lock held) to decide what to do with the signal described. It may modify the codes of the signal - passed. If the return value is SIG_ERR, the next matching preempter + passed. If the return value is SIG_ERR, the next matching preemptor is tried, or the normal handling is done for the signal (which may - have been changed by the preempter function). Otherwise, the signal + have been changed by the preemptor function). Otherwise, the signal is processed as if the return value were its handler setting. */ - sighandler_t (*preempter) (struct hurd_signal_preempter *preempter, + sighandler_t (*preemptor) (struct hurd_signal_preemptor *preemptor, struct hurd_sigstate *ss, int *signo, struct hurd_signal_detail *detail); - /* If PREEMPTER is null, act as if it returned HANDLER. */ + /* If PREEMPTOR is null, act as if it returned HANDLER. */ sighandler_t handler; - struct hurd_signal_preempter *next; /* List structure. */ + struct hurd_signal_preemptor *next; /* List structure. */ }; -#define HURD_PREEMPT_SIGNAL_P(preempter, signo, sigcode) \ - (((preempter)->signals & sigmask (signo)) && \ - (sigcode) >= (preempter)->first && (sigcode) <= (preempter)->last) +#define HURD_PREEMPT_SIGNAL_P(preemptor, signo, sigcode) \ + (((preemptor)->signals & sigmask (signo)) && \ + (sigcode) >= (preemptor)->first && (sigcode) <= (preemptor)->last) -/* Signal preempters applying to all threads; locked by _hurd_siglock. */ -extern struct hurd_signal_preempter *_hurdsig_preempters; +/* Signal preemptors applying to all threads; locked by _hurd_siglock. */ +extern struct hurd_signal_preemptor *_hurdsig_preemptors; extern sigset_t _hurdsig_preempted_set; -/* The caller must initialize all members of *PREEMPTER except `next'. - The preempter is registered on the global list. */ -void hurd_preempt_signals (struct hurd_signal_preempter *preempter); +/* The caller must initialize all members of *PREEMPTOR except `next'. + The preemptor is registered on the global list. */ +void hurd_preempt_signals (struct hurd_signal_preemptor *preemptor); -/* Remove a preempter registered with hurd_preempt_signals. */ -void hurd_unpreempt_signals (struct hurd_signal_preempter *preempter); +/* Remove a preemptor registered with hurd_preempt_signals. */ +void hurd_unpreempt_signals (struct hurd_signal_preemptor *preemptor); /* Call *OPERATE and return its value. If a signal in SIGSET with a sigcode @@ -72,13 +72,13 @@ void hurd_unpreempt_signals (struct hurd_signal_preempter *preempter); hurd_catch_signal returns the sc_error value from the signal (or EGRATUITOUS if that is zero). - The preempter structure is passed to *OPERATE, which may modify its + The preemptor structure is passed to *OPERATE, which may modify its sigcode range or functions at any time during which it is guaranteed no signal in SIGSET will arrive. */ error_t hurd_catch_signal (sigset_t sigset, unsigned long int first, unsigned long int last, - error_t (*operate) (struct hurd_signal_preempter *), + error_t (*operate) (struct hurd_signal_preemptor *), sighandler_t handler); diff --git a/hurd/hurdfault.c b/hurd/hurdfault.c index e1b06a3f9f..2865ff7d34 100644 --- a/hurd/hurdfault.c +++ b/hurd/hurdfault.c @@ -1,21 +1,21 @@ /* Handle faults in the signal thread. -Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc. -This file is part of the GNU C Library. + Copyright (C) 1994, 1995, 1996 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 -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. -The GNU C Library 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 -Library General Public License for more details. + The GNU C Library 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 + Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with the GNU C Library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. */ + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ #include <hurd.h> #include <hurd/signal.h> @@ -29,7 +29,7 @@ Cambridge, MA 02139, USA. */ #include <assert.h> jmp_buf _hurdsig_fault_env; -struct hurd_signal_preempter _hurdsig_fault_preempter; +struct hurd_signal_preemptor _hurdsig_fault_preemptor; static mach_port_t forward_sigexc; @@ -56,7 +56,7 @@ _hurdsig_fault_catch_exception_raise (mach_port_t port, codes into a signal number and subcode. */ _hurd_exception2signal (&d, &signo); - return HURD_PREEMPT_SIGNAL_P (&_hurdsig_fault_preempter, signo, d.code) + return HURD_PREEMPT_SIGNAL_P (&_hurdsig_fault_preemptor, signo, d.code) ? 0 : EGREGIOUS; } @@ -97,7 +97,7 @@ faulted (void) if (reply.result) __libc_fatal ("BUG: unexpected fault in signal thread\n"); - _hurdsig_fault_preempter.signals = 0; + _hurdsig_fault_preemptor.signals = 0; longjmp (_hurdsig_fault_env, 1); } @@ -158,4 +158,3 @@ _hurdsig_fault_init (void) __mach_port_deallocate (__mach_task_self (), sigexc); assert_perror (err); } - diff --git a/hurd/hurdfault.h b/hurd/hurdfault.h index 4b6aaed6ae..aa03568d29 100644 --- a/hurd/hurdfault.h +++ b/hurd/hurdfault.h @@ -1,21 +1,21 @@ /* Declarations for handling faults in the signal thread. -Copyright (C) 1994, 1996 Free Software Foundation, Inc. -This file is part of the GNU C Library. + Copyright (C) 1994, 1996 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 -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. -The GNU C Library 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 -Library General Public License for more details. + The GNU C Library 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 + Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with the GNU C Library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. */ + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ #ifndef _HURD_FAULT_H #define _HURD_FAULT_H @@ -29,18 +29,18 @@ Cambridge, MA 02139, USA. */ does arrive. */ #define _hurdsig_catch_fault(sigset, firstcode, lastcode) \ - (_hurdsig_fault_preempter.signals = (sigset), \ - _hurdsig_fault_preempter.first = (long int) (firstcode), \ - _hurdsig_fault_preempter.last = (long int) (lastcode), \ + (_hurdsig_fault_preemptor.signals = (sigset), \ + _hurdsig_fault_preemptor.first = (long int) (firstcode), \ + _hurdsig_fault_preemptor.last = (long int) (lastcode), \ setjmp (_hurdsig_fault_env)) /* Call this at the end of a section protected by _hurdsig_catch_fault. */ #define _hurdsig_end_catch_fault() \ - (_hurdsig_fault_preempter.signals = 0) + (_hurdsig_fault_preemptor.signals = 0) extern jmp_buf _hurdsig_fault_env; -extern struct hurd_signal_preempter _hurdsig_fault_preempter; +extern struct hurd_signal_preemptor _hurdsig_fault_preemptor; #define _hurdsig_catch_memory_fault(object) \ diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c index 30e2919d82..b30134ca5b 100644 --- a/hurd/hurdsig.c +++ b/hurd/hurdsig.c @@ -78,7 +78,7 @@ _hurd_thread_sigstate (thread_t thread) __sigemptyset (&ss->blocked); __sigemptyset (&ss->pending); memset (&ss->sigaltstack, 0, sizeof (ss->sigaltstack)); - ss->preempters = NULL; + ss->preemptors = NULL; ss->suspended = 0; ss->intr_port = MACH_PORT_NULL; ss->context = NULL; @@ -421,7 +421,7 @@ abort_all_rpcs (int signo, struct machine_thread_all_state *state, int live) } } -struct hurd_signal_preempter *_hurdsig_preempters; +struct hurd_signal_preemptor *_hurdsig_preemptors; sigset_t _hurdsig_preempted_set; /* Mask of stop signals. */ @@ -439,7 +439,7 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss, error_t err; struct machine_thread_all_state thread_state; enum { stop, ignore, core, term, handle } act; - struct hurd_signal_preempter *pe; + struct hurd_signal_preemptor *pe; sighandler_t handler; sigset_t pending; int ss_suspended; @@ -542,16 +542,16 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss, critical sections. */ handler = SIG_ERR; - for (pe = ss->preempters; pe && handler == SIG_ERR; pe = pe->next) + for (pe = ss->preemptors; pe && handler == SIG_ERR; pe = pe->next) if (HURD_PREEMPT_SIGNAL_P (pe, signo, detail->code)) - handler = (*pe->preempter) (pe, ss, &signo, detail); + handler = (*pe->preemptor) (pe, ss, &signo, detail); if (handler == SIG_ERR && (__sigmask (signo) & _hurdsig_preempted_set)) { __mutex_lock (&_hurd_siglock); - for (pe = _hurdsig_preempters; pe && handler == SIG_ERR; pe = pe->next) + for (pe = _hurdsig_preemptors; pe && handler == SIG_ERR; pe = pe->next) if (HURD_PREEMPT_SIGNAL_P (pe, signo, detail->code)) - handler = (*pe->preempter) (pe, ss, &signo, detail); + handler = (*pe->preemptor) (pe, ss, &signo, detail); __mutex_unlock (&_hurd_siglock); } @@ -1250,22 +1250,22 @@ _hurdsig_getenv (const char *variable) while (*ep) { const char *p = *ep; - _hurdsig_fault_preempter.first = (long int) p; - _hurdsig_fault_preempter.last = VM_MAX_ADDRESS; + _hurdsig_fault_preemptor.first = (long int) p; + _hurdsig_fault_preemptor.last = VM_MAX_ADDRESS; if (! strncmp (p, variable, len) && p[len] == '=') { char *value; size_t valuelen; p += len + 1; valuelen = strlen (p); - _hurdsig_fault_preempter.last = (long int) (p + valuelen); + _hurdsig_fault_preemptor.last = (long int) (p + valuelen); value = malloc (++valuelen); if (value) memcpy (value, p, valuelen); break; } - _hurdsig_fault_preempter.first = (long int) ++ep; - _hurdsig_fault_preempter.last = (long int) (ep + 1); + _hurdsig_fault_preemptor.first = (long int) ++ep; + _hurdsig_fault_preemptor.last = (long int) (ep + 1); } _hurdsig_end_catch_fault (); return value; diff --git a/hurd/preempt-sig.c b/hurd/preempt-sig.c index 6596089f1b..e703a9050a 100644 --- a/hurd/preempt-sig.c +++ b/hurd/preempt-sig.c @@ -1,55 +1,55 @@ /* Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc. -This file is part of the GNU C Library. + This file is part of the GNU C Library. -The GNU C Library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. -The GNU C Library 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 -Library General Public License for more details. + The GNU C Library 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 + Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with the GNU C Library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. */ + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ #include <hurd/sigpreempt.h> #include <hurd/signal.h> #include <assert.h> void -hurd_preempt_signals (struct hurd_signal_preempter *preempter) +hurd_preempt_signals (struct hurd_signal_preemptor *preemptor) { __mutex_lock (&_hurd_siglock); - preempter->next = _hurdsig_preempters; - _hurdsig_preempters = preempter; - _hurdsig_preempted_set |= preempter->signals; + preemptor->next = _hurdsig_preemptors; + _hurdsig_preemptors = preemptor; + _hurdsig_preempted_set |= preemptor->signals; __mutex_unlock (&_hurd_siglock); } void -hurd_unpreempt_signals (struct hurd_signal_preempter *preempter) +hurd_unpreempt_signals (struct hurd_signal_preemptor *preemptor) { - struct hurd_signal_preempter **p; + struct hurd_signal_preemptor **p; sigset_t preempted = 0; __mutex_lock (&_hurd_siglock); - p = &_hurdsig_preempters; + p = &_hurdsig_preemptors; while (*p) - if (*p == preempter) + if (*p == preemptor) { /* Found it; take it off the chain. */ *p = (*p)->next; - if ((preempter->signals & preempted) != preempter->signals) + if ((preemptor->signals & preempted) != preemptor->signals) { - /* This might have been the only preempter for some + /* This might have been the only preemptor for some of those signals, so we must collect the full mask from the others. */ - struct hurd_signal_preempter *pp; + struct hurd_signal_preemptor *pp; for (pp = *p; pp; pp = pp->next) preempted |= pp->signals; _hurdsig_preempted_set = preempted; @@ -64,5 +64,5 @@ hurd_unpreempt_signals (struct hurd_signal_preempter *preempter) } __mutex_unlock (&_hurd_siglock); /* Avoid deadlock during death rattle. */ - assert (! "removing absent preempter"); + assert (! "removing absent preemptor"); } |