| 
									
										
										
										
											2016-01-04 16:05:18 +00:00
										 |  |  | /* Copyright (C) 1993-2016 Free Software Foundation, Inc.
 | 
					
						
							| 
									
										
										
										
											1997-01-20 02:49:42 +00:00
										 |  |  |    This file is part of the GNU C Library. | 
					
						
							| 
									
										
										
											
												Wed Feb 14 00:21:17 1996  David Mosberger-Tang  <davidm@azstarnet.com>
	* sysdeps/unix/sysv/linux/alpha/Makefile,
	sysdeps/unix/sysv/linux/alpha/brk.S,
	sysdeps/unix/sysv/linux/alpha/fpu_control.c,
	sysdeps/unix/sysv/linux/alpha/fpu_control.h,
	sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/pipe.S,
	sysdeps/unix/sysv/linux/alpha/setfpucw.c,
	sysdeps/unix/sysv/linux/alpha/sigprocmask.c,
	sysdeps/unix/sysv/linux/alpha/speed.c,
	sysdeps/unix/sysv/linux/alpha/start.S,
	sysdeps/unix/sysv/linux/alpha/syscall.S,
	sysdeps/unix/sysv/linux/alpha/syscalls.list,
	sysdeps/unix/sysv/linux/alpha/sysdep.S,
	sysdeps/unix/sysv/linux/alpha/sysdep.h: New files.
											
										 
											1996-03-19 19:51:23 +00:00
										 |  |  |    Contributed by David Mosberger (davidm@azstarnet.com). | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-01-20 02:49:42 +00:00
										 |  |  |    The GNU C Library is free software; you can redistribute it and/or | 
					
						
							| 
									
										
										
										
											2001-07-06 04:56:23 +00:00
										 |  |  |    modify it under the terms of the GNU Lesser General Public | 
					
						
							|  |  |  |    License as published by the Free Software Foundation; either | 
					
						
							|  |  |  |    version 2.1 of the License, or (at your option) any later version. | 
					
						
							| 
									
										
										
											
												Wed Feb 14 00:21:17 1996  David Mosberger-Tang  <davidm@azstarnet.com>
	* sysdeps/unix/sysv/linux/alpha/Makefile,
	sysdeps/unix/sysv/linux/alpha/brk.S,
	sysdeps/unix/sysv/linux/alpha/fpu_control.c,
	sysdeps/unix/sysv/linux/alpha/fpu_control.h,
	sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/pipe.S,
	sysdeps/unix/sysv/linux/alpha/setfpucw.c,
	sysdeps/unix/sysv/linux/alpha/sigprocmask.c,
	sysdeps/unix/sysv/linux/alpha/speed.c,
	sysdeps/unix/sysv/linux/alpha/start.S,
	sysdeps/unix/sysv/linux/alpha/syscall.S,
	sysdeps/unix/sysv/linux/alpha/syscalls.list,
	sysdeps/unix/sysv/linux/alpha/sysdep.S,
	sysdeps/unix/sysv/linux/alpha/sysdep.h: New files.
											
										 
											1996-03-19 19:51:23 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-01-20 02:49:42 +00:00
										 |  |  |    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 | 
					
						
							| 
									
										
										
										
											2001-07-06 04:56:23 +00:00
										 |  |  |    Lesser General Public License for more details. | 
					
						
							| 
									
										
										
											
												Wed Feb 14 00:21:17 1996  David Mosberger-Tang  <davidm@azstarnet.com>
	* sysdeps/unix/sysv/linux/alpha/Makefile,
	sysdeps/unix/sysv/linux/alpha/brk.S,
	sysdeps/unix/sysv/linux/alpha/fpu_control.c,
	sysdeps/unix/sysv/linux/alpha/fpu_control.h,
	sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/pipe.S,
	sysdeps/unix/sysv/linux/alpha/setfpucw.c,
	sysdeps/unix/sysv/linux/alpha/sigprocmask.c,
	sysdeps/unix/sysv/linux/alpha/speed.c,
	sysdeps/unix/sysv/linux/alpha/start.S,
	sysdeps/unix/sysv/linux/alpha/syscall.S,
	sysdeps/unix/sysv/linux/alpha/syscalls.list,
	sysdeps/unix/sysv/linux/alpha/sysdep.S,
	sysdeps/unix/sysv/linux/alpha/sysdep.h: New files.
											
										 
											1996-03-19 19:51:23 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-07-06 04:56:23 +00:00
										 |  |  |    You should have received a copy of the GNU Lesser General Public | 
					
						
							| 
									
										
										
										
											2012-03-09 23:56:38 +00:00
										 |  |  |    License along with the GNU C Library.  If not, see | 
					
						
							|  |  |  |    <http://www.gnu.org/licenses/>.  */
 | 
					
						
							| 
									
										
										
											
												Wed Feb 14 00:21:17 1996  David Mosberger-Tang  <davidm@azstarnet.com>
	* sysdeps/unix/sysv/linux/alpha/Makefile,
	sysdeps/unix/sysv/linux/alpha/brk.S,
	sysdeps/unix/sysv/linux/alpha/fpu_control.c,
	sysdeps/unix/sysv/linux/alpha/fpu_control.h,
	sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/pipe.S,
	sysdeps/unix/sysv/linux/alpha/setfpucw.c,
	sysdeps/unix/sysv/linux/alpha/sigprocmask.c,
	sysdeps/unix/sysv/linux/alpha/speed.c,
	sysdeps/unix/sysv/linux/alpha/start.S,
	sysdeps/unix/sysv/linux/alpha/syscall.S,
	sysdeps/unix/sysv/linux/alpha/syscalls.list,
	sysdeps/unix/sysv/linux/alpha/sysdep.S,
	sysdeps/unix/sysv/linux/alpha/sysdep.h: New files.
											
										 
											1996-03-19 19:51:23 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-06-20 16:24:36 +00:00
										 |  |  | #include <errno.h>
 | 
					
						
							| 
									
										
										
											
												Wed Feb 14 00:21:17 1996  David Mosberger-Tang  <davidm@azstarnet.com>
	* sysdeps/unix/sysv/linux/alpha/Makefile,
	sysdeps/unix/sysv/linux/alpha/brk.S,
	sysdeps/unix/sysv/linux/alpha/fpu_control.c,
	sysdeps/unix/sysv/linux/alpha/fpu_control.h,
	sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/pipe.S,
	sysdeps/unix/sysv/linux/alpha/setfpucw.c,
	sysdeps/unix/sysv/linux/alpha/sigprocmask.c,
	sysdeps/unix/sysv/linux/alpha/speed.c,
	sysdeps/unix/sysv/linux/alpha/start.S,
	sysdeps/unix/sysv/linux/alpha/syscall.S,
	sysdeps/unix/sysv/linux/alpha/syscalls.list,
	sysdeps/unix/sysv/linux/alpha/sysdep.S,
	sysdeps/unix/sysv/linux/alpha/sysdep.h: New files.
											
										 
											1996-03-19 19:51:23 +00:00
										 |  |  | #include <sysdep.h>
 | 
					
						
							|  |  |  | #include <signal.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-01-20 02:49:42 +00:00
										 |  |  | /* When there is kernel support for more than 64 signals, we'll have to
 | 
					
						
							|  |  |  |    switch to a new system call convention here.  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
											
												Wed Feb 14 00:21:17 1996  David Mosberger-Tang  <davidm@azstarnet.com>
	* sysdeps/unix/sysv/linux/alpha/Makefile,
	sysdeps/unix/sysv/linux/alpha/brk.S,
	sysdeps/unix/sysv/linux/alpha/fpu_control.c,
	sysdeps/unix/sysv/linux/alpha/fpu_control.h,
	sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/pipe.S,
	sysdeps/unix/sysv/linux/alpha/setfpucw.c,
	sysdeps/unix/sysv/linux/alpha/sigprocmask.c,
	sysdeps/unix/sysv/linux/alpha/speed.c,
	sysdeps/unix/sysv/linux/alpha/start.S,
	sysdeps/unix/sysv/linux/alpha/syscall.S,
	sysdeps/unix/sysv/linux/alpha/syscalls.list,
	sysdeps/unix/sysv/linux/alpha/sysdep.S,
	sysdeps/unix/sysv/linux/alpha/sysdep.h: New files.
											
										 
											1996-03-19 19:51:23 +00:00
										 |  |  | int | 
					
						
							|  |  |  | __sigprocmask (int how, const sigset_t *set, sigset_t *oset) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											1997-01-20 02:49:42 +00:00
										 |  |  |   unsigned long int setval; | 
					
						
							| 
									
										
										
											
												Wed Feb 14 00:21:17 1996  David Mosberger-Tang  <davidm@azstarnet.com>
	* sysdeps/unix/sysv/linux/alpha/Makefile,
	sysdeps/unix/sysv/linux/alpha/brk.S,
	sysdeps/unix/sysv/linux/alpha/fpu_control.c,
	sysdeps/unix/sysv/linux/alpha/fpu_control.h,
	sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/pipe.S,
	sysdeps/unix/sysv/linux/alpha/setfpucw.c,
	sysdeps/unix/sysv/linux/alpha/sigprocmask.c,
	sysdeps/unix/sysv/linux/alpha/speed.c,
	sysdeps/unix/sysv/linux/alpha/start.S,
	sysdeps/unix/sysv/linux/alpha/syscall.S,
	sysdeps/unix/sysv/linux/alpha/syscalls.list,
	sysdeps/unix/sysv/linux/alpha/sysdep.S,
	sysdeps/unix/sysv/linux/alpha/sysdep.h: New files.
											
										 
											1996-03-19 19:51:23 +00:00
										 |  |  |   long result; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-01-20 02:49:42 +00:00
										 |  |  |   if (set) | 
					
						
							| 
									
										
										
										
											2003-06-20 16:24:36 +00:00
										 |  |  |     setval = set->__val[0]; | 
					
						
							| 
									
										
										
										
											1997-01-20 02:49:42 +00:00
										 |  |  |   else | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       setval = 0; | 
					
						
							|  |  |  |       how = SIG_BLOCK;	/* ensure blocked mask doesn't get changed */ | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2003-06-20 16:24:36 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   result = INLINE_SYSCALL (osf_sigprocmask, 2, how, setval); | 
					
						
							| 
									
										
										
										
											1997-01-20 02:49:42 +00:00
										 |  |  |   if (result == -1) | 
					
						
							|  |  |  |     /* If there are ever more than 63 signals, we need to recode this
 | 
					
						
							| 
									
										
										
											
												Wed Feb 14 00:21:17 1996  David Mosberger-Tang  <davidm@azstarnet.com>
	* sysdeps/unix/sysv/linux/alpha/Makefile,
	sysdeps/unix/sysv/linux/alpha/brk.S,
	sysdeps/unix/sysv/linux/alpha/fpu_control.c,
	sysdeps/unix/sysv/linux/alpha/fpu_control.h,
	sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/pipe.S,
	sysdeps/unix/sysv/linux/alpha/setfpucw.c,
	sysdeps/unix/sysv/linux/alpha/sigprocmask.c,
	sysdeps/unix/sysv/linux/alpha/speed.c,
	sysdeps/unix/sysv/linux/alpha/start.S,
	sysdeps/unix/sysv/linux/alpha/syscall.S,
	sysdeps/unix/sysv/linux/alpha/syscalls.list,
	sysdeps/unix/sysv/linux/alpha/sysdep.S,
	sysdeps/unix/sysv/linux/alpha/sysdep.h: New files.
											
										 
											1996-03-19 19:51:23 +00:00
										 |  |  |        in assembler since we wouldn't be able to distinguish a mask of | 
					
						
							|  |  |  |        all 1s from -1, but for now, we're doing just fine... */ | 
					
						
							|  |  |  |     return result; | 
					
						
							| 
									
										
										
										
											1997-01-20 02:49:42 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   if (oset) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       oset->__val[0] = result; | 
					
						
							|  |  |  |       result = _SIGSET_NWORDS; | 
					
						
							|  |  |  |       while (--result > 0) | 
					
						
							|  |  |  | 	oset->__val[result] = 0; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
											
												Wed Feb 14 00:21:17 1996  David Mosberger-Tang  <davidm@azstarnet.com>
	* sysdeps/unix/sysv/linux/alpha/Makefile,
	sysdeps/unix/sysv/linux/alpha/brk.S,
	sysdeps/unix/sysv/linux/alpha/fpu_control.c,
	sysdeps/unix/sysv/linux/alpha/fpu_control.h,
	sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/pipe.S,
	sysdeps/unix/sysv/linux/alpha/setfpucw.c,
	sysdeps/unix/sysv/linux/alpha/sigprocmask.c,
	sysdeps/unix/sysv/linux/alpha/speed.c,
	sysdeps/unix/sysv/linux/alpha/start.S,
	sysdeps/unix/sysv/linux/alpha/syscall.S,
	sysdeps/unix/sysv/linux/alpha/syscalls.list,
	sysdeps/unix/sysv/linux/alpha/sysdep.S,
	sysdeps/unix/sysv/linux/alpha/sysdep.h: New files.
											
										 
											1996-03-19 19:51:23 +00:00
										 |  |  |   return 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | weak_alias (__sigprocmask, sigprocmask); |