From b5ce64efa4eac7b1cb62d22f6b8cf666a10378d8 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 20 Jan 1997 02:49:42 +0000 Subject: [PATCH] update from main arhive 970119 --- bare/Makefile | 25 +++-- sysdeps/alpha/Makefile | 9 +- sysdeps/m68k/fpu/switch/68881-sw.h | 30 +++--- sysdeps/m68k/fpu/switch/Makefile | 11 +-- sysdeps/m68k/fpu/switch/switch.c | 39 ++++---- sysdeps/standalone/i386/force_cpu386/Makefile | 9 +- sysdeps/standalone/i960/nindy960/Makefile | 11 ++- sysdeps/standalone/m68k/m68020/mvme136/Makefile | 9 +- sysdeps/unix/sysv/irix4/Makefile | 8 +- sysdeps/unix/sysv/linux/alpha/clone.S | 54 ++--------- sysdeps/unix/sysv/linux/alpha/ioctl-types.h | 123 ------------------------ sysdeps/unix/sysv/linux/alpha/sigprocmask.c | 65 +++++++------ sysdeps/unix/sysv/linux/alpha/sigsuspend.S | 4 +- sysdeps/unix/sysv/linux/alpha/syscalls.list | 2 + sysdeps/unix/sysv/linux/alpha/termbits.h | 2 +- sysdeps/unix/sysv/linux/alpha/xmknod.c | 1 + sysdeps/unix/sysv/linux/m68k/clone.S | 41 +++----- sysdeps/unix/sysv/sco3.2/Makefile | 10 +- sysdeps/unix/sysv/sysv4/Makefile | 8 +- sysdeps/vax/Makefile | 8 +- 20 files changed, 159 insertions(+), 310 deletions(-) delete mode 100644 sysdeps/unix/sysv/linux/alpha/ioctl-types.h diff --git a/bare/Makefile b/bare/Makefile index 5735153..0407c23 100644 --- a/bare/Makefile +++ b/bare/Makefile @@ -1,23 +1,22 @@ -# Copyright (C) 1994 Free Software Foundation, Inc. -# Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil), -# On-Line Applications Research Corporation. -# +# Copyright (C) 1994, 1997 Free Software Foundation, Inc. # This file is part of the GNU C Library. -# +# Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil), +# On-Line Applications Research Corporation. +# # 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. -# +# # 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. +# 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. subdir := bare @@ -33,11 +32,11 @@ include ../Rules # # For bare targets, the $(config-vendor) is the name of the board. # We will place the board dependent code ONLY in a library which -# is board dependent. This way many target boards can share a +# is board dependent. This way many target boards can share a # single libc.a. To resolve all symbols and successfully link # a program, the application must link against libc.a and libMY_TARGET.a. -# For example, the target specific library for the Motorola MVME135 -# board will be named libmvme135.a. To link a program for the +# For example, the target specific library for the Motorola MVME135 +# board will be named libmvme135.a. To link a program for the # MVME135, one must link against -lc and -lmvme135. # diff --git a/sysdeps/alpha/Makefile b/sysdeps/alpha/Makefile index 6d4fbbb..841dc98 100644 --- a/sysdeps/alpha/Makefile +++ b/sysdeps/alpha/Makefile @@ -1,4 +1,5 @@ -# Copyright (C) 1993, 1994, 1995, 1996 Free Software Foundation, Inc. +# Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc. +# This file is part of the GNU C Library. # Contributed by Brendan Kehoe (brendan@zen.org). # The GNU C Library is free software; you can redistribute it and/or @@ -12,9 +13,9 @@ # 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. +# 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. ifeq ($(subdir),gmon) sysdep_routines += _mcount diff --git a/sysdeps/m68k/fpu/switch/68881-sw.h b/sysdeps/m68k/fpu/switch/68881-sw.h index 3d7a392..89bf65c 100644 --- a/sysdeps/m68k/fpu/switch/68881-sw.h +++ b/sysdeps/m68k/fpu/switch/68881-sw.h @@ -1,20 +1,20 @@ -/* Copyright (C) 1991, 1992 Free Software Foundation, Inc. -This file is part of the GNU C Library. +/* Copyright (C) 1991, 1992, 1997 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 _68881_SWITCH_H @@ -47,7 +47,7 @@ struct switch_caller /* Function to determine whether or not a 68881 is available, and modify its caller (which must be a `struct switch_caller', above, in data space) to use the appropriate version. */ -extern void EXFUN(__68881_switch, (int __dummy)); +extern void __68881_switch __P ((int __dummy)); /* Define FUNCTION as a `struct switch_caller' which will call diff --git a/sysdeps/m68k/fpu/switch/Makefile b/sysdeps/m68k/fpu/switch/Makefile index fd8d7c1..67218e7 100644 --- a/sysdeps/m68k/fpu/switch/Makefile +++ b/sysdeps/m68k/fpu/switch/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991, 1992 Free Software Foundation, Inc. +# Copyright (C) 1991, 1992, 1997 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 @@ -12,9 +12,9 @@ # 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. +# 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. ifeq ($(subdir),math) @@ -38,8 +38,7 @@ sysdep_routines := $(sysdep_routines) switch # 68881 and soft versions. $(addprefix $(objpfx), \ $(filter-out $(wildcard $(+68881-sources)),$(+68881-sources))): - (echo '#include ' ;\ - echo '#include <68881-sw.h>' ;\ + (echo '#include <68881-sw.h>' ;\ echo '#define $* __$*_68881' ;\ echo '#include <$(+68881-dir)/$@>' ;\ echo '#undef $*' ;\ diff --git a/sysdeps/m68k/fpu/switch/switch.c b/sysdeps/m68k/fpu/switch/switch.c index 057bd15..44e2b4d 100644 --- a/sysdeps/m68k/fpu/switch/switch.c +++ b/sysdeps/m68k/fpu/switch/switch.c @@ -1,22 +1,21 @@ -/* Copyright (C) 1991, 1992 Free Software Foundation, Inc. -This file is part of the GNU C Library. +/* Copyright (C) 1991, 1992, 1997 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 #include #include <68881-sw.h> @@ -33,7 +32,8 @@ static int have_fpu = -1; /* Signal handler for the trap that happens if we don't have a 68881. */ static void -DEFUN(trap, (sig), int sig) +trap (sig) + int sig; { have_fpu = 0; } @@ -44,10 +44,11 @@ DEFUN(trap, (sig), int sig) to be a static jump to either the 68881 version or the soft version. It then returns into the function it has chosen to do the work. */ void -DEFUN(__68881_switch, (dummy), int dummy) +__68881_switch (dummy) + int dummy; { - PTR *return_address_location = &((PTR *) &dummy)[-1]; - struct switch_caller *CONST caller + void **return_address_location = &((void **) &dummy)[-1]; + struct switch_caller *const caller = (struct switch_caller *) (((short int *) *return_address_location) - 1); if (have_fpu < 0) diff --git a/sysdeps/standalone/i386/force_cpu386/Makefile b/sysdeps/standalone/i386/force_cpu386/Makefile index 8483724..6381fdc 100644 --- a/sysdeps/standalone/i386/force_cpu386/Makefile +++ b/sysdeps/standalone/i386/force_cpu386/Makefile @@ -1,4 +1,5 @@ -# Copyright (C) 1994 Free Software Foundation, Inc. +# Copyright (C) 1994, 1997 Free Software Foundation, Inc. +# This file is part of the GNU C Library. # Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil), # On-Line Applications Research Corporation. @@ -13,9 +14,9 @@ # 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. +# 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. ifeq (bare,$(subdir)) install-others += $(libdir)/force_cpu386.ld diff --git a/sysdeps/standalone/i960/nindy960/Makefile b/sysdeps/standalone/i960/nindy960/Makefile index e6e65ea..aab52dc 100644 --- a/sysdeps/standalone/i960/nindy960/Makefile +++ b/sysdeps/standalone/i960/nindy960/Makefile @@ -1,4 +1,5 @@ -# Copyright (C) 1993 Free Software Foundation, Inc. +# Copyright (C) 1993, 1997 Free Software Foundation, Inc. +# This file is part of the GNU C Library. # Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil), # On-Line Applications Research Corporation. @@ -13,11 +14,11 @@ # 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. +# 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. # The nindy960 support has only been tested on the following boards: -# +# # + Cyclone CVME961 VMEbus single board computer. diff --git a/sysdeps/standalone/m68k/m68020/mvme136/Makefile b/sysdeps/standalone/m68k/m68020/mvme136/Makefile index 33f049c..11c0620 100644 --- a/sysdeps/standalone/m68k/m68020/mvme136/Makefile +++ b/sysdeps/standalone/m68k/m68020/mvme136/Makefile @@ -1,4 +1,5 @@ -# Copyright (C) 1993 Free Software Foundation, Inc. +# Copyright (C) 1993, 1997 Free Software Foundation, Inc. +# This file is part of the GNU C Library. # Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil), # On-Line Applications Research Corporation. @@ -13,9 +14,9 @@ # 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. +# 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. ifeq (bare,$(subdir)) install-lib += mvme136.ld diff --git a/sysdeps/unix/sysv/irix4/Makefile b/sysdeps/unix/sysv/irix4/Makefile index a7f3ea8..b24278a3 100644 --- a/sysdeps/unix/sysv/irix4/Makefile +++ b/sysdeps/unix/sysv/irix4/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1993 Free Software Foundation, Inc. +# Copyright (C) 1993, 1997 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 @@ -12,9 +12,9 @@ # 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. +# 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. ifeq ($(subdir),signal) sysdep_routines := $(sysdep_routines) sigtramp __handler diff --git a/sysdeps/unix/sysv/linux/alpha/clone.S b/sysdeps/unix/sysv/linux/alpha/clone.S index 03ecddc..261bd81 100644 --- a/sysdeps/unix/sysv/linux/alpha/clone.S +++ b/sysdeps/unix/sysv/linux/alpha/clone.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1996 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson , 1996. @@ -24,15 +24,11 @@ #define _ERRNO_H 1 #include -/* int clone(int (*fn)(), void *child_stack, int flags, int nargs, ...) */ +/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg) */ .text ENTRY(__clone) - lda sp,-16(sp) - .frame sp,16,$26,0 - /* Save rest of argument registers for varargs-type work. */ - stq a4,0(sp) - stq a5,8(sp) + .frame sp,0,ra,0 #ifdef PROF .set noat lda AT, _mcount @@ -42,24 +38,13 @@ ENTRY(__clone) .prologue 1 /* Sanity check arguments. */ - sextl a3,a3 ldiq v0,EINVAL beq a0,$error /* no NULL function pointers */ beq a1,$error /* no NULL stack pointers */ - blt a3,$error /* no negative argument counts */ - - /* Allocate space on the new stack and copy args over */ - mov a3,t0 /* save nargs for thread_start */ - s8addq a3,sp,t1 -1: ldq t2,-8(t1) - subq t1,8,t1 - stq t2,-8(a1) - subq a3,1,a3 - subq a1,8,a1 - bne a3,1b /* Do the system call */ mov a0,pv /* get fn ptr out of the way */ + mov a3,a4 /* get fn arg out of the way */ mov a2,a0 ldiq v0,__NR_clone call_pal PAL_callsys @@ -68,23 +53,19 @@ ENTRY(__clone) beq v0,thread_start /* Successful return from the parent */ - lda sp,16(sp) ret /* Something bad happened -- no child created */ $error: br gp,1f 1: ldgp gp,0(gp) - lda sp,16(sp) jmp zero,__syscall_error END(__clone) /* Load up the arguments to the function. Put this block of code in its own function so that we can terminate the stack trace with our - debug info. - - At this point we have $t0=nargs, $pv=fn, $sp=&arg[0]. */ + debug info. */ .ent thread_start thread_start: @@ -92,28 +73,8 @@ thread_start: mov zero,fp .prologue 0 - /* Calculate address of jump into argument loading code */ - cmple t0,6,t2 /* no more than 6 args in registers */ - cmoveq t2,6,t0 - br v0,1f /* find address of arg0 */ -1: lda v0,$arg0-1b(v0) - s4addq t0,zero,t1 - subq v0,t1,v0 - jmp (v0) - - /* Load the integer register arguments */ - ldq a5,40(sp) - ldq a4,32(sp) - ldq a3,24(sp) - ldq a2,16(sp) - ldq a1,8(sp) - ldq a0,0(sp) -$arg0: - - /* Adjust stack to remove the arguments we just loaded */ - s8addq t0,sp,sp - /* Call the user's function */ + mov a4,a0 jsr ra,(pv) ldgp gp,0(ra) @@ -121,6 +82,9 @@ $arg0: mov v0,a0 jsr ra,_exit + /* Die horribly. */ + halt + .end thread_start weak_alias(__clone, clone) diff --git a/sysdeps/unix/sysv/linux/alpha/ioctl-types.h b/sysdeps/unix/sysv/linux/alpha/ioctl-types.h deleted file mode 100644 index c51310f..0000000 --- a/sysdeps/unix/sysv/linux/alpha/ioctl-types.h +++ /dev/null @@ -1,123 +0,0 @@ -/* Structure types for pre-termios terminal ioctls. Linux version. - Copyright (C) 1996, 1997 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 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., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef _IOCTL_TYPES_H -#define _IOCTL_TYPES_H 1 - -/* Get definition of constants for use with `ioctl'. */ -#include - - -#define FIOCLEX _IO('f', 1) -#define FIONCLEX _IO('f', 2) -#define FIOASYNC _IOW('f', 125, int) -#define FIONBIO _IOW('f', 126, int) -#define FIONREAD _IOR('f', 127, int) -#define TIOCINQ FIONREAD - -#define TIOCGETP _IOR('t', 8, struct sgttyb) -#define TIOCSETP _IOW('t', 9, struct sgttyb) -#define TIOCSETN _IOW('t', 10, struct sgttyb) /* TIOCSETP wo flush */ - -#define TIOCSETC _IOW('t', 17, struct tchars) -#define TIOCGETC _IOR('t', 18, struct tchars) -#define TCGETS _IOR('t', 19, struct termios) -#define TCSETS _IOW('t', 20, struct termios) -#define TCSETSW _IOW('t', 21, struct termios) -#define TCSETSF _IOW('t', 22, struct termios) - -#define TCGETA _IOR('t', 23, struct termio) -#define TCSETA _IOW('t', 24, struct termio) -#define TCSETAW _IOW('t', 25, struct termio) -#define TCSETAF _IOW('t', 28, struct termio) - -#define TCSBRK _IO('t', 29) -#define TCXONC _IO('t', 30) -#define TCFLSH _IO('t', 31) - -#define TIOCSWINSZ _IOW('t', 103, struct winsize) -#define TIOCGWINSZ _IOR('t', 104, struct winsize) -#define TIOCSTART _IO('t', 110) /* start output, like ^Q */ -#define TIOCSTOP _IO('t', 111) /* stop output, like ^S */ -#define TIOCOUTQ _IOR('t', 115, int) /* output queue size */ - -#define TIOCGLTC _IOR('t', 116, struct ltchars) -#define TIOCSLTC _IOW('t', 117, struct ltchars) -#define TIOCSPGRP _IOW('t', 118, int) -#define TIOCGPGRP _IOR('t', 119, int) - -#define TIOCEXCL 0x540C -#define TIOCNXCL 0x540D -#define TIOCSCTTY 0x540E - -#define TIOCSTI 0x5412 -#define TIOCMGET 0x5415 -#define TIOCMBIS 0x5416 -#define TIOCMBIC 0x5417 -#define TIOCMSET 0x5418 -# define TIOCM_LE 0x001 -# define TIOCM_DTR 0x002 -# define TIOCM_RTS 0x004 -# define TIOCM_ST 0x008 -# define TIOCM_SR 0x010 -# define TIOCM_CTS 0x020 -# define TIOCM_CAR 0x040 -# define TIOCM_RNG 0x080 -# define TIOCM_DSR 0x100 -# define TIOCM_CD TIOCM_CAR -# define TIOCM_RI TIOCM_RNG - -#define TIOCGSOFTCAR 0x5419 -#define TIOCSSOFTCAR 0x541A -#define TIOCLINUX 0x541C -#define TIOCCONS 0x541D -#define TIOCGSERIAL 0x541E -#define TIOCSSERIAL 0x541F -#define TIOCPKT 0x5420 -# define TIOCPKT_DATA 0 -# define TIOCPKT_FLUSHREAD 1 -# define TIOCPKT_FLUSHWRITE 2 -# define TIOCPKT_STOP 4 -# define TIOCPKT_START 8 -# define TIOCPKT_NOSTOP 16 -# define TIOCPKT_DOSTOP 32 - - -#define TIOCNOTTY 0x5422 -#define TIOCSETD 0x5423 -#define TIOCGETD 0x5424 -#define TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */ -#define TIOCTTYGSTRUCT 0x5426 /* For debugging only */ - -#define TIOCSERCONFIG 0x5453 -#define TIOCSERGWILD 0x5454 -#define TIOCSERSWILD 0x5455 -#define TIOCGLCKTRMIOS 0x5456 -#define TIOCSLCKTRMIOS 0x5457 -#define TIOCSERGSTRUCT 0x5458 /* For debugging only */ -#define TIOCSERGETLSR 0x5459 /* Get line status register */ - /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ -# define TIOCSER_TEMT 0x01 /* Transmitter physically empty */ -#define TIOCSERGETMULTI 0x545A /* Get multiport config */ -#define TIOCSERSETMULTI 0x545B /* Set multiport config */ - -#define TIOCMIWAIT 0x545C /* wait for a change on serial input line(s) */ -#define TIOCGICOUNT 0x545D /* read serial port inline interrupt counts */ - -#endif /* ioctl-types.h */ diff --git a/sysdeps/unix/sysv/linux/alpha/sigprocmask.c b/sysdeps/unix/sysv/linux/alpha/sigprocmask.c index a1d5636..7fb58f1 100644 --- a/sysdeps/unix/sysv/linux/alpha/sigprocmask.c +++ b/sysdeps/unix/sysv/linux/alpha/sigprocmask.c @@ -1,48 +1,59 @@ -/* Copyright (C) 1993, 1995 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. Contributed by David Mosberger (davidm@azstarnet.com). -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 #include +/* When there is kernel support for more than 64 signals, we'll have to + switch to a new system call convention here. */ + extern unsigned long __osf_sigprocmask (int how, unsigned long newmask); int __sigprocmask (int how, const sigset_t *set, sigset_t *oset) { - sigset_t setval; + unsigned long int setval; long result; - if (set) { - setval = *set; - } else { - sigemptyset(&setval); - how = SIG_BLOCK; /* ensure blocked mask doesn't get changed */ - } - result = __osf_sigprocmask(how, setval); - if (result == -1) { - /* if there are ever more than 63 signals, we need to recode this + if (set) + { + setval = set->__val[0]; + } + else + { + setval = 0; + how = SIG_BLOCK; /* ensure blocked mask doesn't get changed */ + } + result = __osf_sigprocmask (how, setval); + if (result == -1) + /* If there are ever more than 63 signals, we need to recode this 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; - } - if (oset) { - *oset = result; - } + + if (oset) + { + oset->__val[0] = result; + result = _SIGSET_NWORDS; + while (--result > 0) + oset->__val[result] = 0; + } return 0; } diff --git a/sysdeps/unix/sysv/linux/alpha/sigsuspend.S b/sysdeps/unix/sysv/linux/alpha/sigsuspend.S index f476ed5..3036b2f 100644 --- a/sysdeps/unix/sysv/linux/alpha/sigsuspend.S +++ b/sysdeps/unix/sysv/linux/alpha/sigsuspend.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by David Mosberger , 1995. @@ -18,7 +18,7 @@ Boston, MA 02111-1307, USA. */ /* sigsuspend is a special syscall since it needs to dereference the - sigset. */ + sigset. This will have to change when we have more than 64 signals. */ #include diff --git a/sysdeps/unix/sysv/linux/alpha/syscalls.list b/sysdeps/unix/sysv/linux/alpha/syscalls.list index 49cc697..cf5f439 100644 --- a/sysdeps/unix/sysv/linux/alpha/syscalls.list +++ b/sysdeps/unix/sysv/linux/alpha/syscalls.list @@ -26,6 +26,8 @@ llseek EXTRA lseek 3 llseek # these are actually common with the x86: fstatfs - fstatfs 2 __fstatfs fstatfs statfs - statfs 2 __statfs statfs +sys_ustat ustat ustat 2 __syscall_ustat +sys_mknod xmknod mknod 3 __syscall_mknod # override select.S in parent directory: select - select 5 __select select diff --git a/sysdeps/unix/sysv/linux/alpha/termbits.h b/sysdeps/unix/sysv/linux/alpha/termbits.h index 6cb729f..bcd3ff5 100644 --- a/sysdeps/unix/sysv/linux/alpha/termbits.h +++ b/sysdeps/unix/sysv/linux/alpha/termbits.h @@ -29,7 +29,7 @@ struct termios tcflag_t c_cflag; /* control mode flags */ tcflag_t c_lflag; /* local mode flags */ cc_t c_cc[NCCS]; /* control characters */ - cc_t c_line; /* line discipline (== c_cc[19]) */ + cc_t c_line; /* line discipline (== c_cc[33]) */ speed_t c_ispeed; /* input speed */ speed_t c_ospeed; /* output speed */ }; diff --git a/sysdeps/unix/sysv/linux/alpha/xmknod.c b/sysdeps/unix/sysv/linux/alpha/xmknod.c index f4cdd71..25de60c 100644 --- a/sysdeps/unix/sysv/linux/alpha/xmknod.c +++ b/sysdeps/unix/sysv/linux/alpha/xmknod.c @@ -20,6 +20,7 @@ #include #include #include +#include extern int __syscall_mknod (const char *, unsigned int, unsigned int); diff --git a/sysdeps/unix/sysv/linux/m68k/clone.S b/sysdeps/unix/sysv/linux/m68k/clone.S index 4465dd8..ef9716d 100644 --- a/sysdeps/unix/sysv/linux/m68k/clone.S +++ b/sysdeps/unix/sysv/linux/m68k/clone.S @@ -1,20 +1,20 @@ -/* Copyright (C) 1996 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Andreas Schwab (schwab@issan.informatik.uni-dortmund.de) -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. */ /* clone is even more special than fork as it mucks with stacks and invokes a function in the right context after its all over. */ @@ -23,7 +23,7 @@ Cambridge, MA 02139, USA. */ #define _ERRNO_H 1 #include -/* int clone (int (*fn) (), void *child_stack, int flags, int nargs, ...) */ +/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg); */ .text ENTRY (__clone) @@ -36,18 +36,9 @@ ENTRY (__clone) movel 8(%sp), %a1 /* no NULL stack pointers */ tstl %a1 jeq syscall_error - movel 16(%sp), %d1 /* no negative argument counts */ - jmi syscall_error - /* Allocate space on the new stack and copy args over */ - movel %d1, %d0 - negl %d0 - lea (%a1,%d0.l*4), %a1 - jeq 2f -1: movel 16(%sp,%d1.l*4), -4(%a1,%d1.l*4) - subql #1, %d1 - jne 1b -2: + /* Allocate space and copy the argument onto the new stack. */ + movel 16(%sp), -(%a1) /* Do the system call */ exg %d2, %a1 /* save %d2 and get stack pointer */ diff --git a/sysdeps/unix/sysv/sco3.2/Makefile b/sysdeps/unix/sysv/sco3.2/Makefile index 1be24e8..ff3a6fb 100644 --- a/sysdeps/unix/sysv/sco3.2/Makefile +++ b/sysdeps/unix/sysv/sco3.2/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1993 Free Software Foundation, Inc. +# Copyright (C) 1993, 1997 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 @@ -12,12 +12,12 @@ # 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. +# 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. ifeq ($(subdir),misc) - + sysdep_routines := $(sysdep_routines) __fltused endif diff --git a/sysdeps/unix/sysv/sysv4/Makefile b/sysdeps/unix/sysv/sysv4/Makefile index 320e99b..7507fbf 100644 --- a/sysdeps/unix/sysv/sysv4/Makefile +++ b/sysdeps/unix/sysv/sysv4/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1992, 1993, 1995, 1996 Free Software Foundation, Inc. +# Copyright (C) 1992, 1993, 1995, 1996, 1997 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 @@ -12,9 +12,9 @@ # 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. +# 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. ifeq ($(subdir),posix) diff --git a/sysdeps/vax/Makefile b/sysdeps/vax/Makefile index a6149a9..b27d65d 100644 --- a/sysdeps/vax/Makefile +++ b/sysdeps/vax/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991, 1994 Free Software Foundation, Inc. +# Copyright (C) 1991, 1994, 1997 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 @@ -12,9 +12,9 @@ # 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. +# 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. ifeq ($(subdir),math) ifndef math-twiddled -- 2.7.4