diff options
-rw-r--r-- | ChangeLog | 146 | ||||
-rw-r--r-- | bits/types.h | 4 | ||||
-rw-r--r-- | math/Makefile | 2 | ||||
-rw-r--r-- | posix/getconf.c | 2 | ||||
-rw-r--r-- | sysdeps/generic/bits/types.h | 4 | ||||
-rw-r--r-- | sysdeps/unix/alpha/sysdep.h | 165 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/syscalls.list | 27 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/sysdep.h | 12 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/setgroups.c | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/ttyname.c | 17 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/ttyname_r.c | 17 |
11 files changed, 288 insertions, 110 deletions
@@ -1,3 +1,31 @@ +1998-11-02 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/unix/sysv/linux/i386/setgroups.c (setgroups): Remove + unnecessary test and add cast. + +1998-11-02 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * posix/getconf.c: Add initializer SYSCONF for CHARCLASS_NAME_MAX. + + * sysdeps/unix/sysv/linux/ttyname.c (getttyname): Remove unused + parameter fd. + * sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Likewise. + +1998-11-02 Mark Kettenis <kettenis@phys.uva.nl> + + * sysdeps/generic/bits/types.h (__FDS_BITS): New macro to access + fds_bits member. + (__FDMASK): Use __fd_mask instead of unsigned long int in cast. + +1998-10-31 Richard Henderson <rth@cygnus.com> + + * math/Makefile (gmp-objs): Add udiv_qrnnd. + + * sysdeps/unix/alpha/sysdep.h (INLINE_SYSCALL*): New. + (inline_syscall*): New. + * sysdeps/unix/sysv/linux/alpha/sysdep.h (INLINE_SYSCALL): New. + * sysdeps/unix/sysv/linux/alpha/syscalls.list: Kill __syscall* bits. + 1998-10-31 Ulrich Drepper <drepper@cygnus.com> * aclocal.m4 (LIBC_PROG_FOO_GNU): Name output file using -o to @@ -5,66 +33,66 @@ * posix/PTESTS: Remove comment about incorrect test (it is correct). -1998-10-30 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> - - * sunrpc/Versions: Add xdr_uint32_t and xdr_int32_t. - * sunrpc/pmap_rmt.c: Initialize clnt_stat variable. - * sunrpc/rpc/auth_des.h: Use uint32_t for time values. - * sunrpc/rpc/xdr.h: Add INT32 support. +1998-10-30 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> + + * sunrpc/Versions: Add xdr_uint32_t and xdr_int32_t. + * sunrpc/pmap_rmt.c: Initialize clnt_stat variable. + * sunrpc/rpc/auth_des.h: Use uint32_t for time values. + * sunrpc/rpc/xdr.h: Add INT32 support. * sunrpc/xdr.c: Implement xdr_int32_t and xdr_uint32_t . - - * nis/nis_call.c: Changes for new 64bit clean NIS+ interface. - * nis/nis_callback.c: Likewise. - * nis/nis_creategroup.c: Likewise. - * nis/nis_defaults.c: Likewise. - * nis/nis_intern.h: Likewise. - * nis/nis_lookup.c: Likewise. - * nis/nis_ping.c: Likewise. - * nis/nis_print.c: Likewise. - * nis/nis_table.c: Likewise. - * nis/nis_util.c: Likewise. - * nis/nis_xdr.c: Likewise. - * nis/rpcsvc/nis.h: Likewise. - * nis/rpcsvc/nis.x: Likewise. - * nis/rpcsvc/nis_callback.h: Likewise. - * nis/rpcsvc/nis_object.x: Likewise. - * nis/rpcsvc/nislib.h: Likewise. - - * nis/rpcsvc/yp.h: Remove casts to (u_long). - * nis/rpcsvc/yp_prot.h: Likewise. - * nis/rpcsvc/ypupd.h: Likewise. - * nis/ypclnt.c: Change %ld to %d in sprintf. - -1998-10-29 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - - * manual/locale.texi (Formatting Numbers): Fix strfmon examples. - -1998-10-28 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - - * sysdeps/generic/bits/select.h (__FD_ZERO): Change '\0' to plain - 0, __fd_mask is usually not a char. - -1998-10-30 Andreas Jaeger <aj@arthur.rhein-neckar.de> - - * sysdeps/unix/sysv/linux/sigpending.c (sigpending): Allow - compilation on systems without rt_* syscalls (e.g. on Linux 2.0). - * sysdeps/unix/sysv/linux/sigprocmask.c (__sigprocmask): Likewise. - * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. - * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. - * sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Likewise - * sysdeps/unix/sysv/linux/sigqueue.c: Likewise. - * sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise. - - * sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction): Allow - compiling on systems without rt_sigaction syscall. - * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction): - Likewise. - -1998-10-30 Andreas Jaeger <aj@arthur.rhein-neckar.de> - - * time/strptime.c (HERE_D_FMT): Fix typo. - Reported by Claus Heine <heine@math1.rwth-aachen.de>, PR libc/842. - + + * nis/nis_call.c: Changes for new 64bit clean NIS+ interface. + * nis/nis_callback.c: Likewise. + * nis/nis_creategroup.c: Likewise. + * nis/nis_defaults.c: Likewise. + * nis/nis_intern.h: Likewise. + * nis/nis_lookup.c: Likewise. + * nis/nis_ping.c: Likewise. + * nis/nis_print.c: Likewise. + * nis/nis_table.c: Likewise. + * nis/nis_util.c: Likewise. + * nis/nis_xdr.c: Likewise. + * nis/rpcsvc/nis.h: Likewise. + * nis/rpcsvc/nis.x: Likewise. + * nis/rpcsvc/nis_callback.h: Likewise. + * nis/rpcsvc/nis_object.x: Likewise. + * nis/rpcsvc/nislib.h: Likewise. + + * nis/rpcsvc/yp.h: Remove casts to (u_long). + * nis/rpcsvc/yp_prot.h: Likewise. + * nis/rpcsvc/ypupd.h: Likewise. + * nis/ypclnt.c: Change %ld to %d in sprintf. + +1998-10-29 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * manual/locale.texi (Formatting Numbers): Fix strfmon examples. + +1998-10-28 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * sysdeps/generic/bits/select.h (__FD_ZERO): Change '\0' to plain + 0, __fd_mask is usually not a char. + +1998-10-30 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * sysdeps/unix/sysv/linux/sigpending.c (sigpending): Allow + compilation on systems without rt_* syscalls (e.g. on Linux 2.0). + * sysdeps/unix/sysv/linux/sigprocmask.c (__sigprocmask): Likewise. + * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. + * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. + * sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Likewise + * sysdeps/unix/sysv/linux/sigqueue.c: Likewise. + * sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise. + + * sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction): Allow + compiling on systems without rt_sigaction syscall. + * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction): + Likewise. + +1998-10-30 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * time/strptime.c (HERE_D_FMT): Fix typo. + Reported by Claus Heine <heine@math1.rwth-aachen.de>, PR libc/842. + 1998-10-30 Ulrich Drepper <drepper@cygnus.com> * catgets/Makefile (tests): Add rules to run gencat on test1.msg. diff --git a/bits/types.h b/bits/types.h index 2b3edab..8bb6c78 100644 --- a/bits/types.h +++ b/bits/types.h @@ -93,7 +93,7 @@ typedef unsigned long int __fd_mask; /* It's easier to assume 8-bit bytes than to get CHAR_BIT. */ #define __NFDBITS (sizeof (unsigned long int) * 8) #define __FDELT(d) ((d) / __NFDBITS) -#define __FDMASK(d) ((unsigned long int) 1 << ((d) % __NFDBITS)) +#define __FDMASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS)) /* fd_set for select and pselect. */ typedef struct @@ -102,8 +102,10 @@ typedef struct from the user namespace. */ #ifdef __USE_XOPEN __fd_mask fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS]; +# define __FDS_BITS(set) ((set)->fds_bits) #else __fd_mask __fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS]; +# define __FDS_BITS(set) ((set)->__fds_bits) #endif } __fd_set; diff --git a/math/Makefile b/math/Makefile index 9e6869a..5bdbb06 100644 --- a/math/Makefile +++ b/math/Makefile @@ -156,7 +156,7 @@ o = .os endif gmp-objs = $(patsubst %,$(common-objpfx)stdlib/%$o,\ add_n sub_n cmp addmul_1 mul_1 mul_n divmod_1 \ - lshift rshift mp_clz_tab) + lshift rshift mp_clz_tab udiv_qrnnd) $(objpfx)atest-exp: $(gmp-objs) $(objpfx)atest-sincos: $(gmp-objs) $(objpfx)atest-exp2: $(gmp-objs) diff --git a/posix/getconf.c b/posix/getconf.c index f0b8c91..a28b8eb 100644 --- a/posix/getconf.c +++ b/posix/getconf.c @@ -423,7 +423,7 @@ static const struct conf vars[] = #ifdef _SC_BC_STRING_MAX { "BC_STRING_MAX", _SC_BC_STRING_MAX, SYSCONF }, #endif - { "CHARCLASS_NAME_MAX", _SC_CHARCLASS_NAME_MAX }, + { "CHARCLASS_NAME_MAX", _SC_CHARCLASS_NAME_MAX, SYSCONF }, #ifdef _SC_COLL_WEIGHTS_MAX { "COLL_WEIGHTS_MAX", _SC_COLL_WEIGHTS_MAX, SYSCONF }, #endif diff --git a/sysdeps/generic/bits/types.h b/sysdeps/generic/bits/types.h index 2b3edab..8bb6c78 100644 --- a/sysdeps/generic/bits/types.h +++ b/sysdeps/generic/bits/types.h @@ -93,7 +93,7 @@ typedef unsigned long int __fd_mask; /* It's easier to assume 8-bit bytes than to get CHAR_BIT. */ #define __NFDBITS (sizeof (unsigned long int) * 8) #define __FDELT(d) ((d) / __NFDBITS) -#define __FDMASK(d) ((unsigned long int) 1 << ((d) % __NFDBITS)) +#define __FDMASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS)) /* fd_set for select and pselect. */ typedef struct @@ -102,8 +102,10 @@ typedef struct from the user namespace. */ #ifdef __USE_XOPEN __fd_mask fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS]; +# define __FDS_BITS(set) ((set)->fds_bits) #else __fd_mask __fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS]; +# define __FDS_BITS(set) ((set)->__fds_bits) #endif } __fd_set; diff --git a/sysdeps/unix/alpha/sysdep.h b/sysdeps/unix/alpha/sysdep.h index f43c7f8..80cb3e2 100644 --- a/sysdeps/unix/alpha/sysdep.h +++ b/sysdeps/unix/alpha/sysdep.h @@ -109,4 +109,167 @@ __LABEL(name) \ #define MOVE(x,y) mov x,y -#endif +#else /* !ASSEMBLER */ + +/* Define a macro which expands inline into the wrapper code for a + system call. */ + +#undef INLINE_SYSCALL +#define INLINE_SYSCALL(name, nr, args...) INLINE_SYSCALL1(name, nr, args) + +#define INLINE_SYSCALL1(name, nr, args...) \ +({ \ + long _sc_ret, _sc_err; \ + inline_syscall##nr(name, args); \ + if (_sc_err) \ + { \ + __set_errno (_sc_ret); \ + _sc_ret = -1L; \ + } \ + _sc_ret; \ +}) + +#define inline_syscall_clobbers \ + "$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8", \ + "$22", "$23", "$24", "$25", "$27", "$28" + +/* It is moderately important optimization-wise to limit the lifetime + of the hard-register variables as much as possible. Thus we copy + in/out as close to the asm as possible. */ + +#define inline_syscall0(name) \ +{ \ + register long _sc_0 __asm__("$0"); \ + register long _sc_19 __asm__("$19"); \ + \ + _sc_0 = __NR_##name; \ + __asm__("callsys # %0 %1 <= %2" \ + : "=r"(_sc_0), "=r"(_sc_19) \ + : "0"(_sc_0) \ + : inline_syscall_clobbers); \ + _sc_ret = _sc_0, _sc_err = _sc_19; \ +} + +#define inline_syscall1(name,arg1) \ +{ \ + register long _sc_0 __asm__("$0"); \ + register long _sc_16 __asm__("$16"); \ + register long _sc_19 __asm__("$19"); \ + \ + _sc_0 = __NR_##name; \ + _sc_16 = (long) (arg1); \ + __asm__("callsys # %0 %1 <= %2 %3" \ + : "=r"(_sc_0), "=r"(_sc_19) \ + : "0"(_sc_0), "r"(_sc_16) \ + : inline_syscall_clobbers); \ + _sc_ret = _sc_0, _sc_err = _sc_19; \ +} + +#define inline_syscall2(name,arg1,arg2) \ +{ \ + register long _sc_0 __asm__("$0"); \ + register long _sc_16 __asm__("$16"); \ + register long _sc_17 __asm__("$17"); \ + register long _sc_19 __asm__("$19"); \ + \ + _sc_0 = __NR_##name; \ + _sc_16 = (long) (arg1); \ + _sc_17 = (long) (arg2); \ + __asm__("callsys # %0 %1 <= %2 %3 %4" \ + : "=r"(_sc_0), "=r"(_sc_19) \ + : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17) \ + : inline_syscall_clobbers); \ + _sc_ret = _sc_0, _sc_err = _sc_19; \ +} + +#define inline_syscall3(name,arg1,arg2,arg3) \ +{ \ + register long _sc_0 __asm__("$0"); \ + register long _sc_16 __asm__("$16"); \ + register long _sc_17 __asm__("$17"); \ + register long _sc_18 __asm__("$18"); \ + register long _sc_19 __asm__("$19"); \ + \ + _sc_0 = __NR_##name; \ + _sc_16 = (long) (arg1); \ + _sc_17 = (long) (arg2); \ + _sc_18 = (long) (arg3); \ + __asm__("callsys # %0 %1 <= %2 %3 %4 %5" \ + : "=r"(_sc_0), "=r"(_sc_19) \ + : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17), \ + "r"(_sc_18) \ + : inline_syscall_clobbers); \ + _sc_ret = _sc_0, _sc_err = _sc_19; \ +} + +#define inline_syscall4(name,arg1,arg2,arg3,arg4) \ +{ \ + register long _sc_0 __asm__("$0"); \ + register long _sc_16 __asm__("$16"); \ + register long _sc_17 __asm__("$17"); \ + register long _sc_18 __asm__("$18"); \ + register long _sc_19 __asm__("$19"); \ + \ + _sc_0 = __NR_##name; \ + _sc_16 = (long) (arg1); \ + _sc_17 = (long) (arg2); \ + _sc_18 = (long) (arg3); \ + _sc_19 = (long) (arg4); \ + __asm__("callsys # %0 %1 <= %2 %3 %4 %5 %6" \ + : "=r"(_sc_0), "=r"(_sc_19) \ + : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17), \ + "r"(_sc_18), "1"(_sc_19) \ + : inline_syscall_clobbers); \ + _sc_ret = _sc_0, _sc_err = _sc_19; \ +} + +#define inline_syscall5(name,arg1,arg2,arg3,arg4,arg5) \ +{ \ + register long _sc_0 __asm__("$0"); \ + register long _sc_16 __asm__("$16"); \ + register long _sc_17 __asm__("$17"); \ + register long _sc_18 __asm__("$18"); \ + register long _sc_19 __asm__("$19"); \ + register long _sc_20 __asm__("$20"); \ + \ + _sc_0 = __NR_##name; \ + _sc_16 = (long) (arg1); \ + _sc_17 = (long) (arg2); \ + _sc_18 = (long) (arg3); \ + _sc_19 = (long) (arg4); \ + _sc_20 = (long) (arg5); \ + __asm__("callsys # %0 %1 <= %2 %3 %4 %5 %6 %7" \ + : "=r"(_sc_0), "=r"(_sc_19) \ + : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17), \ + "r"(_sc_18), "1"(_sc_19), "r"(_sc_20) \ + : inline_syscall_clobbers); \ + _sc_ret = _sc_0, _sc_err = _sc_19; \ +} + +#define inline_syscall6(name,arg1,arg2,arg3,arg4,arg5,arg6) \ +{ \ + register long _sc_0 __asm__("$0"); \ + register long _sc_16 __asm__("$16"); \ + register long _sc_17 __asm__("$17"); \ + register long _sc_18 __asm__("$18"); \ + register long _sc_19 __asm__("$19"); \ + register long _sc_20 __asm__("$20"); \ + register long _sc_21 __asm__("$21"); \ + \ + _sc_0 = __NR_##name; \ + _sc_16 = (long) (arg1); \ + _sc_17 = (long) (arg2); \ + _sc_18 = (long) (arg3); \ + _sc_19 = (long) (arg4); \ + _sc_20 = (long) (arg5); \ + _sc_21 = (long) (arg6); \ + __asm__("callsys # %0 %1 <= %2 %3 %4 %5 %6 %7 %8" \ + : "=r"(_sc_0), "=r"(_sc_19) \ + : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17), \ + "r"(_sc_18), "1"(_sc_19), "r"(_sc_20), \ + "r"(_sc_21) \ + : inline_syscall_clobbers); \ + _sc_ret = _sc_0, _sc_err = _sc_19; \ +} + +#endif /* ASSEMBLER */ diff --git a/sysdeps/unix/sysv/linux/alpha/syscalls.list b/sysdeps/unix/sysv/linux/alpha/syscalls.list index b48f538..9f002b2 100644 --- a/sysdeps/unix/sysv/linux/alpha/syscalls.list +++ b/sysdeps/unix/sysv/linux/alpha/syscalls.list @@ -79,30 +79,3 @@ old_adjtimex - old_adjtimex 1 __adjtimex_tv32 __adjtimex@GLIBC_2.0 adjtimex@GLI # and one for timeval64 entry points adjtimex adjtime adjtimex 1 __syscall_adjtimex_tv64 - -# System calls with wrappers. -rt_sigaction - rt_sigaction 4 __syscall_rt_sigaction -rt_sigpending - rt_sigpending 2 __syscall_rt_sigpending -rt_sigprocmask - rt_sigprocmask 4 __syscall_rt_sigprocmask -rt_sigqueueinfo - rt_sigqueueinfo 3 __syscall_rt_sigqueueinfo -rt_sigsuspend - rt_sigsuspend 2 __syscall_rt_sigsuspend -rt_sigtimedwait - rt_sigtimedwait 4 __syscall_rt_sigtimedwait -s_getcwd getcwd getcwd 2 __syscall_getcwd -s_getdents getdents getdents 3 __syscall_getdents -s_getpriority getpriority getpriority 2 __syscall_getpriority -s_getresgid getresgid getresgid 3 __syscall_getresgid -s_getresuid getresuid getresuid 3 __syscall_getresuid -s_poll poll poll 3 __syscall_poll -s_ptrace ptrace ptrace 4 __syscall_ptrace -s_reboot reboot reboot 3 __syscall_reboot -s_sigaction sigaction sigaction 3 __syscall_sigaction -s_sigpending sigpending sigpending 1 __syscall_sigpending -s_sigprocmask sigprocmask sigprocmask 3 __syscall_sigprocmask -s_sigsuspend sigsuspend sigsuspend 3 __syscall_sigsuspend -s_sysctl sysctl _sysctl 1 __syscall__sysctl -sys_fstat fxstat fstat 2 __syscall_fstat -sys_lstat lxstat lstat 2 __syscall_lstat -sys_mknod xmknod mknod 3 __syscall_mknod -sys_readv readv readv 3 __syscall_readv -sys_stat xstat stat 2 __syscall_stat -sys_writev writev writev 3 __syscall_writev diff --git a/sysdeps/unix/sysv/linux/alpha/sysdep.h b/sysdeps/unix/sysv/linux/alpha/sysdep.h index 29d973f..1a3cf37 100644 --- a/sysdeps/unix/sysv/linux/alpha/sysdep.h +++ b/sysdeps/unix/sysv/linux/alpha/sysdep.h @@ -55,3 +55,15 @@ #define __NR_osf_shmat 209 #define __NR_osf_getsysinfo 256 #define __NR_osf_setsysinfo 257 + +/* + * In order to get the hidden arguments for rt_sigaction set up + * properly, we need to call the assembly version. Detect this in the + * INLINE_SYSCALL macro, and fail to expand inline in that case. + */ + +#undef INLINE_SYSCALL +#define INLINE_SYSCALL(name, nr, args...) \ + (__NR_##name == __NR_rt_sigaction \ + ? __syscall_##name(args) \ + : INLINE_SYSCALL1(name, nr, args)) diff --git a/sysdeps/unix/sysv/linux/i386/setgroups.c b/sysdeps/unix/sysv/linux/i386/setgroups.c index 4266145..e57004f 100644 --- a/sysdeps/unix/sysv/linux/i386/setgroups.c +++ b/sysdeps/unix/sysv/linux/i386/setgroups.c @@ -36,7 +36,7 @@ setgroups (n, groups) size_t n; const gid_t *groups; { - if (n < 0 || n > __sysconf (_SC_NGROUPS_MAX)) + if (n > (size_t) __sysconf (_SC_NGROUPS_MAX)) { __set_errno (EINVAL); return -1; diff --git a/sysdeps/unix/sysv/linux/ttyname.c b/sysdeps/unix/sysv/linux/ttyname.c index 35eb4b4..6ea406a 100644 --- a/sysdeps/unix/sysv/linux/ttyname.c +++ b/sysdeps/unix/sysv/linux/ttyname.c @@ -30,15 +30,14 @@ char *__ttyname = NULL; -static char * getttyname __P ((const char *dev, int fd, dev_t mydev, +static char * getttyname __P ((const char *dev, dev_t mydev, ino_t myino, int save, int *dostat)) internal_function; static char * internal_function -getttyname (dev, fd, mydev, myino, save, dostat) +getttyname (dev, mydev, myino, save, dostat) const char *dev; - int fd; dev_t mydev; ino_t myino; int save; @@ -142,9 +141,9 @@ ttyname (fd) if (stat ("/dev/pts", &st1) == 0 && S_ISDIR (st1.st_mode)) { #ifdef _STATBUF_ST_RDEV - name = getttyname ("/dev/pts", fd, st.st_rdev, st.st_ino, save, &dostat); + name = getttyname ("/dev/pts", st.st_rdev, st.st_ino, save, &dostat); #else - name = getttyname ("/dev/pts", fd, st.st_dev, st.st_ino, save, &dostat); + name = getttyname ("/dev/pts", st.st_dev, st.st_ino, save, &dostat); #endif } else @@ -156,9 +155,9 @@ ttyname (fd) if (!name && dostat != -1) { #ifdef _STATBUF_ST_RDEV - name = getttyname ("/dev", fd, st.st_rdev, st.st_ino, save, &dostat); + name = getttyname ("/dev", st.st_rdev, st.st_ino, save, &dostat); #else - name = getttyname ("/dev", fd, st.st_dev, st.st_ino, save, &dostat); + name = getttyname ("/dev", st.st_dev, st.st_ino, save, &dostat); #endif } @@ -166,9 +165,9 @@ ttyname (fd) { dostat = 1; #ifdef _STATBUF_ST_RDEV - name = getttyname ("/dev", fd, st.st_rdev, st.st_ino, save, &dostat); + name = getttyname ("/dev", st.st_rdev, st.st_ino, save, &dostat); #else - name = getttyname ("/dev", fd, st.st_dev, st.st_ino, save, &dostat); + name = getttyname ("/dev", st.st_dev, st.st_ino, save, &dostat); #endif } diff --git a/sysdeps/unix/sysv/linux/ttyname_r.c b/sysdeps/unix/sysv/linux/ttyname_r.c index 449942a..fe68e10 100644 --- a/sysdeps/unix/sysv/linux/ttyname_r.c +++ b/sysdeps/unix/sysv/linux/ttyname_r.c @@ -28,14 +28,13 @@ #include <stdio-common/_itoa.h> -static int getttyname_r __P ((int fd, char *buf, size_t buflen, +static int getttyname_r __P ((char *buf, size_t buflen, dev_t mydev, ino_t myino, int save, int *dostat)) internal_function; static int internal_function -getttyname_r (fd, buf, buflen, mydev, myino, save, dostat) - int fd; +getttyname_r (buf, buflen, mydev, myino, save, dostat) char *buf; size_t buflen; dev_t mydev; @@ -152,10 +151,10 @@ __ttyname_r (fd, buf, buflen) if (stat (buf, &st1) == 0 && S_ISDIR (st1.st_mode)) { #ifdef _STATBUF_ST_RDEV - ret = getttyname_r (fd, buf, buflen, st.st_rdev, st.st_ino, save, + ret = getttyname_r (buf, buflen, st.st_rdev, st.st_ino, save, &dostat); #else - ret = getttyname_r (fd, buf, buflen, st.st_dev, st.st_ino, save, + ret = getttyname_r (buf, buflen, st.st_dev, st.st_ino, save, &dostat); #endif } @@ -170,10 +169,10 @@ __ttyname_r (fd, buf, buflen) buf[sizeof ("/dev/") - 1] = '\0'; buflen += sizeof ("pts/") - 1; #ifdef _STATBUF_ST_RDEV - ret = getttyname_r (fd, buf, buflen, st.st_rdev, st.st_ino, save, + ret = getttyname_r (buf, buflen, st.st_rdev, st.st_ino, save, &dostat); #else - ret = getttyname_r (fd, buf, buflen, st.st_dev, st.st_ino, save, + ret = getttyname_r (buf, buflen, st.st_dev, st.st_ino, save, &dostat); #endif } @@ -183,10 +182,10 @@ __ttyname_r (fd, buf, buflen) buf[sizeof ("/dev/") - 1] = '\0'; dostat = 1; #ifdef _STATBUF_ST_RDEV - ret = getttyname_r (fd, buf, buflen, st.st_rdev, st.st_ino, + ret = getttyname_r (buf, buflen, st.st_rdev, st.st_ino, save, &dostat); #else - ret = getttyname_r (fd, buf, buflen, st.st_dev, st.st_ino, + ret = getttyname_r (buf, buflen, st.st_dev, st.st_ino, save, &dostat); #endif } |