1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

Use INLINE_SYSCALL_ERROR_RETURN_VALUE

This patch replaces

  {
    __set_errno (ERRNO);
    return -1;
  }

with INLINE_SYSCALL_ERROR_RETURN_VALUE (ERRNO).

	* sysdeps/unix/sysv/linux/adjtime.c (ADJTIME): Use
	INLINE_SYSCALL_ERROR_RETURN_VALUE.
	* sysdeps/unix/sysv/linux/dl-openat64.c (openat64): Likewise.
	* sysdeps/unix/sysv/linux/eventfd.c (eventfd): Likewise.
	* sysdeps/unix/sysv/linux/faccessat.c (faccessat): Likewise.
	* sysdeps/unix/sysv/linux/fchmodat.c (fchmodat): Likewise.
	* sysdeps/unix/sysv/linux/fcntl.c (do_fcntl): Likewise.
	* sysdeps/unix/sysv/linux/futimens.c (futimens): Likewise.
	* sysdeps/unix/sysv/linux/futimes.c (__futimes): Likewise.
	* sysdeps/unix/sysv/linux/fxstat.c (__fxstat): Likewise.
	* sysdeps/unix/sysv/linux/fxstatat.c (__fxstatat): Likewise.
	* sysdeps/unix/sysv/linux/fxstatat64.c (__fxstatat64): Likewise.
	* sysdeps/unix/sysv/linux/lutimes.c (lutimes): Likewise.
	* sysdeps/unix/sysv/linux/lxstat.c (__lxstat): Likewise.
	* sysdeps/unix/sysv/linux/lxstat64.c (___lxstat64): Likewise.
	* sysdeps/unix/sysv/linux/mmap64.c (__mmap64): Likewise.
	* sysdeps/unix/sysv/linux/mq_open.c (__mq_open): Likewise.
	* sysdeps/unix/sysv/linux/mq_unlink.c (mq_unlink): Likewise.
	* sysdeps/unix/sysv/linux/prlimit.c (prlimit): Likewise.
	* sysdeps/unix/sysv/linux/readahead.c (__readahead): Likewise.
	* sysdeps/unix/sysv/linux/shmat.c (shmat): Likewise.
	* sysdeps/unix/sysv/linux/signalfd.c (signalfd): Likewise.
	* sysdeps/unix/sysv/linux/speed.c (cfsetospeed): Likewise.
	* sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Likewise.
	* sysdeps/unix/sysv/linux/ustat.c (ustat): Likewise.
	* sysdeps/unix/sysv/linux/utimensat.c (utimensat): Likewise.
	* sysdeps/unix/sysv/linux/xmknod.c (__xmknod): Likewise.
	* sysdeps/unix/sysv/linux/xmknodat.c (__xmknodat): Likewise.
	* sysdeps/unix/sysv/linux/xstat.c (__xstat): Likewise.
	* sysdeps/unix/sysv/linux/xstatconv.c (__xstat_conv): Likewise.
	(__xstat64_conv): Likewise.
	(__xstat32_conv): Likewise.
This commit is contained in:
H.J. Lu
2015-10-13 12:00:45 -07:00
parent fb1cf10811
commit 2caca60d06
30 changed files with 88 additions and 158 deletions

View File

@ -1,3 +1,38 @@
2015-10-13 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/unix/sysv/linux/adjtime.c (ADJTIME): Use
INLINE_SYSCALL_ERROR_RETURN_VALUE.
* sysdeps/unix/sysv/linux/dl-openat64.c (openat64): Likewise.
* sysdeps/unix/sysv/linux/eventfd.c (eventfd): Likewise.
* sysdeps/unix/sysv/linux/faccessat.c (faccessat): Likewise.
* sysdeps/unix/sysv/linux/fchmodat.c (fchmodat): Likewise.
* sysdeps/unix/sysv/linux/fcntl.c (do_fcntl): Likewise.
* sysdeps/unix/sysv/linux/futimens.c (futimens): Likewise.
* sysdeps/unix/sysv/linux/futimes.c (__futimes): Likewise.
* sysdeps/unix/sysv/linux/fxstat.c (__fxstat): Likewise.
* sysdeps/unix/sysv/linux/fxstatat.c (__fxstatat): Likewise.
* sysdeps/unix/sysv/linux/fxstatat64.c (__fxstatat64): Likewise.
* sysdeps/unix/sysv/linux/lutimes.c (lutimes): Likewise.
* sysdeps/unix/sysv/linux/lxstat.c (__lxstat): Likewise.
* sysdeps/unix/sysv/linux/lxstat64.c (___lxstat64): Likewise.
* sysdeps/unix/sysv/linux/mmap64.c (__mmap64): Likewise.
* sysdeps/unix/sysv/linux/mq_open.c (__mq_open): Likewise.
* sysdeps/unix/sysv/linux/mq_unlink.c (mq_unlink): Likewise.
* sysdeps/unix/sysv/linux/prlimit.c (prlimit): Likewise.
* sysdeps/unix/sysv/linux/readahead.c (__readahead): Likewise.
* sysdeps/unix/sysv/linux/shmat.c (shmat): Likewise.
* sysdeps/unix/sysv/linux/signalfd.c (signalfd): Likewise.
* sysdeps/unix/sysv/linux/speed.c (cfsetospeed): Likewise.
* sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Likewise.
* sysdeps/unix/sysv/linux/ustat.c (ustat): Likewise.
* sysdeps/unix/sysv/linux/utimensat.c (utimensat): Likewise.
* sysdeps/unix/sysv/linux/xmknod.c (__xmknod): Likewise.
* sysdeps/unix/sysv/linux/xmknodat.c (__xmknodat): Likewise.
* sysdeps/unix/sysv/linux/xstat.c (__xstat): Likewise.
* sysdeps/unix/sysv/linux/xstatconv.c (__xstat_conv): Likewise.
(__xstat64_conv): Likewise.
(__xstat32_conv): Likewise.
2015-10-13 H.J. Lu <hongjiu.lu@intel.com> 2015-10-13 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/unix/sysv/linux/sysdep.h: New file. * sysdeps/unix/sysv/linux/sysdep.h: New file.

View File

@ -61,10 +61,7 @@ ADJTIME (const struct TIMEVAL *itv, struct TIMEVAL *otv)
tmp.tv_sec = itv->tv_sec + itv->tv_usec / 1000000L; tmp.tv_sec = itv->tv_sec + itv->tv_usec / 1000000L;
tmp.tv_usec = itv->tv_usec % 1000000L; tmp.tv_usec = itv->tv_usec % 1000000L;
if (tmp.tv_sec > MAX_SEC || tmp.tv_sec < MIN_SEC) if (tmp.tv_sec > MAX_SEC || tmp.tv_sec < MIN_SEC)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return -1;
}
tntx.offset = tmp.tv_usec + tmp.tv_sec * 1000000L; tntx.offset = tmp.tv_usec + tmp.tv_sec * 1000000L;
tntx.modes = ADJ_OFFSET_SINGLESHOT; tntx.modes = ADJ_OFFSET_SINGLESHOT;
} }

View File

@ -33,7 +33,6 @@ openat64 (dfd, file, oflag)
#ifdef __NR_openat #ifdef __NR_openat
return INLINE_SYSCALL (openat, 3, dfd, file, oflag | O_LARGEFILE); return INLINE_SYSCALL (openat, 3, dfd, file, oflag | O_LARGEFILE);
#else #else
__set_errno (ENOSYS); return INLINE_SYSCALL_ERROR_RETURN_VALUE (ENOSYS);
return -1;
#endif #endif
} }

View File

@ -38,16 +38,12 @@ eventfd (unsigned int count, int flags)
kernel (sys_indirect) before implementing setting flags like kernel (sys_indirect) before implementing setting flags like
O_NONBLOCK etc. */ O_NONBLOCK etc. */
if (flags != 0) if (flags != 0)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return -1;
}
# ifdef __NR_eventfd # ifdef __NR_eventfd
return INLINE_SYSCALL (eventfd, 1, count); return INLINE_SYSCALL (eventfd, 1, count);
# else # else
__set_errno (ENOSYS); return INLINE_SYSCALL_ERROR_RETURN_VALUE (ENOSYS);
return -1;
# endif # endif
#elif !defined __NR_eventfd2 #elif !defined __NR_eventfd2
# error "__ASSUME_EVENTFD2 defined but not __NR_eventfd2" # error "__ASSUME_EVENTFD2 defined but not __NR_eventfd2"

View File

@ -35,10 +35,7 @@ faccessat (fd, file, mode, flag)
int flag; int flag;
{ {
if (flag & ~(AT_SYMLINK_NOFOLLOW | AT_EACCESS)) if (flag & ~(AT_SYMLINK_NOFOLLOW | AT_EACCESS))
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return -1;
}
if ((flag == 0 || ((flag & ~AT_EACCESS) == 0 && ! __libc_enable_secure))) if ((flag == 0 || ((flag & ~AT_EACCESS) == 0 && ! __libc_enable_secure)))
return INLINE_SYSCALL (faccessat, 3, fd, file, mode); return INLINE_SYSCALL (faccessat, 3, fd, file, mode);
@ -74,6 +71,5 @@ faccessat (fd, file, mode, flag)
if (granted == mode) if (granted == mode)
return 0; return 0;
__set_errno (EACCES); return INLINE_SYSCALL_ERROR_RETURN_VALUE (EACCES);
return -1;
} }

View File

@ -34,16 +34,10 @@ fchmodat (fd, file, mode, flag)
int flag; int flag;
{ {
if (flag & ~AT_SYMLINK_NOFOLLOW) if (flag & ~AT_SYMLINK_NOFOLLOW)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return -1;
}
#ifndef __NR_lchmod /* Linux so far has no lchmod syscall. */ #ifndef __NR_lchmod /* Linux so far has no lchmod syscall. */
if (flag & AT_SYMLINK_NOFOLLOW) if (flag & AT_SYMLINK_NOFOLLOW)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (ENOTSUP);
__set_errno (ENOTSUP);
return -1;
}
#endif #endif
return INLINE_SYSCALL (fchmodat, 3, fd, file, mode); return INLINE_SYSCALL (fchmodat, 3, fd, file, mode);

View File

@ -36,8 +36,8 @@ do_fcntl (int fd, int cmd, void *arg)
if (!INTERNAL_SYSCALL_ERROR_P (res, err)) if (!INTERNAL_SYSCALL_ERROR_P (res, err))
return fex.type == F_OWNER_GID ? -fex.pid : fex.pid; return fex.type == F_OWNER_GID ? -fex.pid : fex.pid;
__set_errno (INTERNAL_SYSCALL_ERRNO (res, err)); return INLINE_SYSCALL_ERROR_RETURN_VALUE (INTERNAL_SYSCALL_ERRNO (res,
return -1; err));
} }

View File

@ -33,15 +33,11 @@ futimens (int fd, const struct timespec tsp[2])
{ {
#ifdef __NR_utimensat #ifdef __NR_utimensat
if (fd < 0) if (fd < 0)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EBADF);
__set_errno (EBADF);
return -1;
}
/* Avoid implicit array coercion in syscall macros. */ /* Avoid implicit array coercion in syscall macros. */
return INLINE_SYSCALL (utimensat, 4, fd, NULL, &tsp[0], 0); return INLINE_SYSCALL (utimensat, 4, fd, NULL, &tsp[0], 0);
#else #else
__set_errno (ENOSYS); return INLINE_SYSCALL_ERROR_RETURN_VALUE (ENOSYS);
return -1;
#endif #endif
} }
#ifndef __NR_utimensat #ifndef __NR_utimensat

View File

@ -40,10 +40,7 @@ __futimes (int fd, const struct timeval tvp[2])
{ {
if (tvp[0].tv_usec < 0 || tvp[0].tv_usec >= 1000000 if (tvp[0].tv_usec < 0 || tvp[0].tv_usec >= 1000000
|| tvp[1].tv_usec < 0 || tvp[1].tv_usec >= 1000000) || tvp[1].tv_usec < 0 || tvp[1].tv_usec >= 1000000)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return -1;
}
TIMEVAL_TO_TIMESPEC (&tvp[0], &ts[0]); TIMEVAL_TO_TIMESPEC (&tvp[0], &ts[0]);
TIMEVAL_TO_TIMESPEC (&tvp[1], &ts[1]); TIMEVAL_TO_TIMESPEC (&tvp[1], &ts[1]);

View File

@ -39,8 +39,7 @@ __fxstat (int vers, int fd, struct stat *buf)
return INLINE_SYSCALL (fstat, 2, fd, (struct kernel_stat *) buf); return INLINE_SYSCALL (fstat, 2, fd, (struct kernel_stat *) buf);
#ifdef STAT_IS_KERNEL_STAT #ifdef STAT_IS_KERNEL_STAT
errno = EINVAL; return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
return -1;
#else #else
struct kernel_stat kbuf; struct kernel_stat kbuf;
int result; int result;

View File

@ -54,10 +54,8 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
#endif #endif
} }
else else
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (INTERNAL_SYSCALL_ERRNO (result,
__set_errno (INTERNAL_SYSCALL_ERRNO (result, err)); err));
return -1;
}
} }
libc_hidden_def (__fxstatat) libc_hidden_def (__fxstatat)
#ifdef XSTAT_IS_XSTAT64 #ifdef XSTAT_IS_XSTAT64

View File

@ -32,10 +32,7 @@ int
__fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag) __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
{ {
if (__glibc_unlikely (vers != _STAT_VER_LINUX)) if (__glibc_unlikely (vers != _STAT_VER_LINUX))
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return -1;
}
int result; int result;
INTERNAL_SYSCALL_DECL (err); INTERNAL_SYSCALL_DECL (err);
@ -44,9 +41,7 @@ __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
if (!__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 1)) if (!__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 1))
return 0; return 0;
else else
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (INTERNAL_SYSCALL_ERRNO (result,
__set_errno (INTERNAL_SYSCALL_ERRNO (result, err)); err));
return -1;
}
} }
libc_hidden_def (__fxstatat64) libc_hidden_def (__fxstatat64)

View File

@ -34,10 +34,7 @@ lutimes (const char *file, const struct timeval tvp[2])
{ {
if (tvp[0].tv_usec < 0 || tvp[0].tv_usec >= 1000000 if (tvp[0].tv_usec < 0 || tvp[0].tv_usec >= 1000000
|| tvp[1].tv_usec < 0 || tvp[1].tv_usec >= 1000000) || tvp[1].tv_usec < 0 || tvp[1].tv_usec >= 1000000)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return -1;
}
TIMEVAL_TO_TIMESPEC (&tvp[0], &ts[0]); TIMEVAL_TO_TIMESPEC (&tvp[0], &ts[0]);
TIMEVAL_TO_TIMESPEC (&tvp[1], &ts[1]); TIMEVAL_TO_TIMESPEC (&tvp[1], &ts[1]);
@ -46,8 +43,7 @@ lutimes (const char *file, const struct timeval tvp[2])
return INLINE_SYSCALL (utimensat, 4, AT_FDCWD, file, tvp ? ts : NULL, return INLINE_SYSCALL (utimensat, 4, AT_FDCWD, file, tvp ? ts : NULL,
AT_SYMLINK_NOFOLLOW); AT_SYMLINK_NOFOLLOW);
#else #else
__set_errno (ENOSYS); return INLINE_SYSCALL_ERROR_RETURN_VALUE (ENOSYS);
return -1;
#endif #endif
} }

View File

@ -38,8 +38,7 @@ __lxstat (int vers, const char *name, struct stat *buf)
return INLINE_SYSCALL (lstat, 2, name, (struct kernel_stat *) buf); return INLINE_SYSCALL (lstat, 2, name, (struct kernel_stat *) buf);
#ifdef STAT_IS_KERNEL_STAT #ifdef STAT_IS_KERNEL_STAT
errno = EINVAL; return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
return -1;
#else #else
struct kernel_stat kbuf; struct kernel_stat kbuf;
int result; int result;

View File

@ -46,10 +46,7 @@ __mmap64 (void *addr, size_t len, int prot, int flags, int fd, off64_t offset)
} }
#endif #endif
if (offset & ((1 << page_shift) - 1)) if (offset & ((1 << page_shift) - 1))
{ return (void *) INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return MAP_FAILED;
}
void *result; void *result;
result = (void *) result = (void *)
INLINE_SYSCALL (mmap2, 6, addr, INLINE_SYSCALL (mmap2, 6, addr,

View File

@ -35,10 +35,7 @@ mqd_t
__mq_open (const char *name, int oflag, ...) __mq_open (const char *name, int oflag, ...)
{ {
if (name[0] != '/') if (name[0] != '/')
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return -1;
}
mode_t mode = 0; mode_t mode = 0;
struct mq_attr *attr = NULL; struct mq_attr *attr = NULL;

View File

@ -26,10 +26,7 @@ int
mq_unlink (const char *name) mq_unlink (const char *name)
{ {
if (name[0] != '/') if (name[0] != '/')
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return -1;
}
INTERNAL_SYSCALL_DECL (err); INTERNAL_SYSCALL_DECL (err);
int ret = INTERNAL_SYSCALL (mq_unlink, err, 1, name + 1); int ret = INTERNAL_SYSCALL (mq_unlink, err, 1, name + 1);
@ -41,8 +38,7 @@ mq_unlink (const char *name)
ret = INTERNAL_SYSCALL_ERRNO (ret, err); ret = INTERNAL_SYSCALL_ERRNO (ret, err);
if (ret == EPERM) if (ret == EPERM)
ret = EACCES; ret = EACCES;
__set_errno (ret); return INLINE_SYSCALL_ERROR_RETURN_VALUE (ret);
ret = -1;
} }
return ret; return ret;

View File

@ -59,20 +59,14 @@ prlimit (__pid_t pid, enum __rlimit_resource resource,
if (old_rlimit->rlim_cur != old_rlimit64_mem.rlim_cur) if (old_rlimit->rlim_cur != old_rlimit64_mem.rlim_cur)
{ {
if (new_rlimit == NULL) if (new_rlimit == NULL)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EOVERFLOW);
__set_errno (EOVERFLOW);
return -1;
}
old_rlimit->rlim_cur = RLIM_INFINITY; old_rlimit->rlim_cur = RLIM_INFINITY;
} }
old_rlimit->rlim_max = old_rlimit64_mem.rlim_max; old_rlimit->rlim_max = old_rlimit64_mem.rlim_max;
if (old_rlimit->rlim_max != old_rlimit64_mem.rlim_max) if (old_rlimit->rlim_max != old_rlimit64_mem.rlim_max)
{ {
if (new_rlimit == NULL) if (new_rlimit == NULL)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EOVERFLOW);
__set_errno (EOVERFLOW);
return -1;
}
old_rlimit->rlim_max = RLIM_INFINITY; old_rlimit->rlim_max = RLIM_INFINITY;
} }
} }
@ -84,8 +78,7 @@ int
prlimit (__pid_t pid, enum __rlimit_resource resource, prlimit (__pid_t pid, enum __rlimit_resource resource,
const struct rlimit *new_rlimit, struct rlimit *old_rlimit) const struct rlimit *new_rlimit, struct rlimit *old_rlimit)
{ {
__set_errno (ENOSYS); return INLINE_SYSCALL_ERROR_RETURN_VALUE (ENOSYS);
return -1;
} }
stub_warning (prlimit) stub_warning (prlimit)
#endif #endif

View File

@ -38,8 +38,7 @@ __readahead (int fd, off64_t offset, size_t count)
ssize_t ssize_t
__readahead (int fd, off64_t offset, size_t count) __readahead (int fd, off64_t offset, size_t count)
{ {
__set_errno (ENOSYS); return INLINE_SYSCALL_ERROR_RETURN_VALUE (ENOSYS);
return -1;
} }
stub_warning (readahead) stub_warning (readahead)
#endif #endif

View File

@ -43,10 +43,8 @@ shmat (shmid, shmaddr, shmflg)
(long int) &raddr, (long int) &raddr,
(void *) shmaddr); (void *) shmaddr);
if (INTERNAL_SYSCALL_ERROR_P (resultvar, err)) if (INTERNAL_SYSCALL_ERROR_P (resultvar, err))
{ return (void *) INLINE_SYSCALL_ERROR_RETURN_VALUE (INTERNAL_SYSCALL_ERRNO (resultvar,
__set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, err)); err));
return (void *) -1l;
}
return raddr; return raddr;
} }

View File

@ -39,16 +39,12 @@ signalfd (int fd, const sigset_t *mask, int flags)
kernel (sys_indirect) before implementing setting flags like kernel (sys_indirect) before implementing setting flags like
O_NONBLOCK etc. */ O_NONBLOCK etc. */
if (flags != 0) if (flags != 0)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return -1;
}
# ifdef __NR_signalfd # ifdef __NR_signalfd
return INLINE_SYSCALL (signalfd, 3, fd, mask, _NSIG / 8); return INLINE_SYSCALL (signalfd, 3, fd, mask, _NSIG / 8);
# else # else
__set_errno (ENOSYS); return INLINE_SYSCALL_ERROR_RETURN_VALUE (ENOSYS);
return -1;
# endif # endif
#elif !defined __NR_signalfd4 #elif !defined __NR_signalfd4
# error "__ASSUME_SIGNALFD4 defined but not __NR_signalfd4" # error "__ASSUME_SIGNALFD4 defined but not __NR_signalfd4"

View File

@ -60,10 +60,7 @@ cfsetospeed (termios_p, speed)
{ {
if ((speed & ~CBAUD) != 0 if ((speed & ~CBAUD) != 0
&& (speed < B57600 || speed > __MAX_BAUD)) && (speed < B57600 || speed > __MAX_BAUD))
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return -1;
}
#ifdef _HAVE_STRUCT_TERMIOS_C_OSPEED #ifdef _HAVE_STRUCT_TERMIOS_C_OSPEED
termios_p->c_ospeed = speed; termios_p->c_ospeed = speed;
@ -87,10 +84,7 @@ cfsetispeed (termios_p, speed)
{ {
if ((speed & ~CBAUD) != 0 if ((speed & ~CBAUD) != 0
&& (speed < B57600 || speed > __MAX_BAUD)) && (speed < B57600 || speed > __MAX_BAUD))
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return -1;
}
#ifdef _HAVE_STRUCT_TERMIOS_C_ISPEED #ifdef _HAVE_STRUCT_TERMIOS_C_ISPEED
termios_p->c_ispeed = speed; termios_p->c_ispeed = speed;

View File

@ -39,7 +39,6 @@ tcsendbreak (int fd, int duration)
/* ioctl can't send a break of any other duration for us. /* ioctl can't send a break of any other duration for us.
This could be changed to use trickery (e.g. lower speed and This could be changed to use trickery (e.g. lower speed and
send a '\0') to send the break, but for now just return an error. */ send a '\0') to send the break, but for now just return an error. */
__set_errno (EINVAL); return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
return -1;
#endif #endif
} }

View File

@ -61,8 +61,7 @@ tcsetattr (fd, optional_actions, termios_p)
cmd = TCSETSF; cmd = TCSETSF;
break; break;
default: default:
__set_errno (EINVAL); return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
return -1;
} }
k_termios.c_iflag = termios_p->c_iflag & ~IBAUD0; k_termios.c_iflag = termios_p->c_iflag & ~IBAUD0;

View File

@ -31,10 +31,7 @@ ustat (dev_t dev, struct ustat *ubuf)
/* We must convert the value to dev_t type used by the kernel. */ /* We must convert the value to dev_t type used by the kernel. */
k_dev = dev & ((1ULL << 32) - 1); k_dev = dev & ((1ULL << 32) - 1);
if (k_dev != dev) if (k_dev != dev)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return -1;
}
return INLINE_SYSCALL (ustat, 2, (unsigned int) k_dev, ubuf); return INLINE_SYSCALL (ustat, 2, (unsigned int) k_dev, ubuf);
} }

View File

@ -30,16 +30,12 @@ utimensat (int fd, const char *file, const struct timespec tsp[2],
int flags) int flags)
{ {
if (file == NULL) if (file == NULL)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return -1;
}
#ifdef __NR_utimensat #ifdef __NR_utimensat
/* Avoid implicit array coercion in syscall macros. */ /* Avoid implicit array coercion in syscall macros. */
return INLINE_SYSCALL (utimensat, 4, fd, file, &tsp[0], flags); return INLINE_SYSCALL (utimensat, 4, fd, file, &tsp[0], flags);
#else #else
__set_errno (ENOSYS); return INLINE_SYSCALL_ERROR_RETURN_VALUE (ENOSYS);
return -1;
#endif #endif
} }
#ifndef __NR_utimensat #ifndef __NR_utimensat

View File

@ -33,18 +33,12 @@ __xmknod (int vers, const char *path, mode_t mode, dev_t *dev)
unsigned long long int k_dev; unsigned long long int k_dev;
if (vers != _MKNOD_VER) if (vers != _MKNOD_VER)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return -1;
}
/* We must convert the value to dev_t type used by the kernel. */ /* We must convert the value to dev_t type used by the kernel. */
k_dev = (*dev) & ((1ULL << 32) - 1); k_dev = (*dev) & ((1ULL << 32) - 1);
if (k_dev != *dev) if (k_dev != *dev)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return -1;
}
return INLINE_SYSCALL (mknod, 3, path, mode, (unsigned int) k_dev); return INLINE_SYSCALL (mknod, 3, path, mode, (unsigned int) k_dev);
} }

View File

@ -34,18 +34,12 @@ int
__xmknodat (int vers, int fd, const char *file, mode_t mode, dev_t *dev) __xmknodat (int vers, int fd, const char *file, mode_t mode, dev_t *dev)
{ {
if (vers != _MKNOD_VER) if (vers != _MKNOD_VER)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return -1;
}
/* We must convert the value to dev_t type used by the kernel. */ /* We must convert the value to dev_t type used by the kernel. */
unsigned long long int k_dev = (*dev) & ((1ULL << 32) - 1); unsigned long long int k_dev = (*dev) & ((1ULL << 32) - 1);
if (k_dev != *dev) if (k_dev != *dev)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
__set_errno (EINVAL);
return -1;
}
return INLINE_SYSCALL (mknodat, 4, fd, file, mode, (unsigned int) k_dev); return INLINE_SYSCALL (mknodat, 4, fd, file, mode, (unsigned int) k_dev);
} }

View File

@ -38,8 +38,7 @@ __xstat (int vers, const char *name, struct stat *buf)
return INLINE_SYSCALL (stat, 2, name, (struct kernel_stat *) buf); return INLINE_SYSCALL (stat, 2, name, (struct kernel_stat *) buf);
#ifdef STAT_IS_KERNEL_STAT #ifdef STAT_IS_KERNEL_STAT
errno = EINVAL; return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
return -1;
#else #else
struct kernel_stat kbuf; struct kernel_stat kbuf;
int result; int result;

View File

@ -96,8 +96,7 @@ __xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
break; break;
default: default:
__set_errno (EINVAL); return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
return -1;
} }
return 0; return 0;
@ -170,8 +169,7 @@ __xstat64_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
_STAT_VER_KERNEL does not make sense. */ _STAT_VER_KERNEL does not make sense. */
case _STAT_VER_KERNEL: case _STAT_VER_KERNEL:
default: default:
__set_errno (EINVAL); return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
return -1;
} }
return 0; return 0;
@ -201,19 +199,13 @@ __xstat32_conv (int vers, struct stat64 *kbuf, struct stat *buf)
buf->st_ino = kbuf->st_ino; buf->st_ino = kbuf->st_ino;
if (sizeof (buf->st_ino) != sizeof (kbuf->st_ino) if (sizeof (buf->st_ino) != sizeof (kbuf->st_ino)
&& buf->st_ino != kbuf->st_ino) && buf->st_ino != kbuf->st_ino)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EOVERFLOW);
__set_errno (EOVERFLOW);
return -1;
}
} }
#else #else
buf->st_ino = kbuf->st_ino; buf->st_ino = kbuf->st_ino;
if (sizeof (buf->st_ino) != sizeof (kbuf->st_ino) if (sizeof (buf->st_ino) != sizeof (kbuf->st_ino)
&& buf->st_ino != kbuf->st_ino) && buf->st_ino != kbuf->st_ino)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EOVERFLOW);
__set_errno (EOVERFLOW);
return -1;
}
#endif #endif
buf->st_mode = kbuf->st_mode; buf->st_mode = kbuf->st_mode;
buf->st_nlink = kbuf->st_nlink; buf->st_nlink = kbuf->st_nlink;
@ -227,19 +219,13 @@ __xstat32_conv (int vers, struct stat64 *kbuf, struct stat *buf)
/* Check for overflow. */ /* Check for overflow. */
if (sizeof (buf->st_size) != sizeof (kbuf->st_size) if (sizeof (buf->st_size) != sizeof (kbuf->st_size)
&& buf->st_size != kbuf->st_size) && buf->st_size != kbuf->st_size)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EOVERFLOW);
__set_errno (EOVERFLOW);
return -1;
}
buf->st_blksize = kbuf->st_blksize; buf->st_blksize = kbuf->st_blksize;
buf->st_blocks = kbuf->st_blocks; buf->st_blocks = kbuf->st_blocks;
/* Check for overflow. */ /* Check for overflow. */
if (sizeof (buf->st_blocks) != sizeof (kbuf->st_blocks) if (sizeof (buf->st_blocks) != sizeof (kbuf->st_blocks)
&& buf->st_blocks != kbuf->st_blocks) && buf->st_blocks != kbuf->st_blocks)
{ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EOVERFLOW);
__set_errno (EOVERFLOW);
return -1;
}
#ifdef _HAVE_STAT_NSEC #ifdef _HAVE_STAT_NSEC
buf->st_atim.tv_sec = kbuf->st_atim.tv_sec; buf->st_atim.tv_sec = kbuf->st_atim.tv_sec;
buf->st_atim.tv_nsec = kbuf->st_atim.tv_nsec; buf->st_atim.tv_nsec = kbuf->st_atim.tv_nsec;
@ -275,8 +261,7 @@ __xstat32_conv (int vers, struct stat64 *kbuf, struct stat *buf)
_STAT_VER_KERNEL does not make sense. */ _STAT_VER_KERNEL does not make sense. */
case _STAT_VER_KERNEL: case _STAT_VER_KERNEL:
default: default:
__set_errno (EINVAL); return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
return -1;
} }
return 0; return 0;