diff options
Diffstat (limited to 'sysdeps/unix/sysv')
-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 |
5 files changed, 29 insertions, 46 deletions
diff --git a/sysdeps/unix/sysv/linux/alpha/syscalls.list b/sysdeps/unix/sysv/linux/alpha/syscalls.list index b48f538211..9f002b2ad1 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 29d973f5b9..1a3cf37c6d 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 4266145d01..e57004f8ac 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 35eb4b4696..6ea406a8b8 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 449942a96d..fe68e10b4d 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 } |