/* Check whether T fits in int32_t, assume all usages are for
sizeof(time_t) == 32. */
static inline bool
-in_time_t_range (__time64_t t)
+in_int32_t_range (__time64_t t)
{
int32_t s = t;
return s == t;
}
+/* Check whether T fits in time_t. */
+static inline bool
+in_time_t_range (__time64_t t)
+{
+ time_t s = t;
+ return s == t;
+}
+
/* Convert a known valid struct timeval into a struct __timespec64. */
static inline struct __timespec64
valid_timeval_to_timespec64 (const struct timeval tv)
err = __futex_abstimed_wait_common64 (futex_word, expected, op, abstime,
private, cancel);
#else
- bool need_time64 = abstime != NULL && !in_time_t_range (abstime->tv_sec);
+ bool need_time64 = abstime != NULL && !in_int32_t_range (abstime->tv_sec);
if (need_time64)
{
err = __futex_abstimed_wait_common64 (futex_word, expected, op, abstime,
# ifdef __ASSUME_TIME64_SYSCALLS
err = INTERNAL_SYSCALL_CALL (futex_time64, futex_word, op_pi, 0, abstime);
# else
- bool need_time64 = abstime != NULL && !in_time_t_range (abstime->tv_sec);
+ bool need_time64 = abstime != NULL && !in_int32_t_range (abstime->tv_sec);
if (need_time64)
err = INTERNAL_SYSCALL_CALL (futex_time64, futex_word, op_pi, 0, abstime);
else
return r;
if (tx64->modes & ADJ_SETOFFSET
- && ! in_time_t_range (tx64->time.tv_sec))
+ && ! in_int32_t_range (tx64->time.tv_sec))
{
__set_errno (EOVERFLOW);
return -1;
r = INTERNAL_SYSCALL_CANCEL (clock_nanosleep_time64, clock_id, flags, req,
rem);
#else
- if (!in_time_t_range (req->tv_sec))
+ if (!in_int32_t_range (req->tv_sec))
{
r = INTERNAL_SYSCALL_CANCEL (clock_nanosleep_time64, clock_id, flags,
req, rem);
if (ret == 0 || errno != ENOSYS)
return ret;
- if (! in_time_t_range (tp->tv_sec))
+ if (! in_int32_t_range (tp->tv_sec))
{
__set_errno (EOVERFLOW);
return -1;
msg_prio, abs_timeout);
#else
bool need_time64 = abs_timeout != NULL
- && !in_time_t_range (abs_timeout->tv_sec);
+ && !in_int32_t_range (abs_timeout->tv_sec);
if (need_time64)
{
int r = SYSCALL_CANCEL (mq_timedreceive_time64, mqdes, msg_ptr, msg_len,
msg_prio, abs_timeout);
#else
bool need_time64 = abs_timeout != NULL
- && !in_time_t_range (abs_timeout->tv_sec);
+ && !in_int32_t_range (abs_timeout->tv_sec);
if (need_time64)
{
int r = SYSCALL_CANCEL (mq_timedsend_time64, mqdes, msg_ptr, msg_len,
__NSIG_BYTES);
#else
int ret;
- bool need_time64 = timeout != NULL && !in_time_t_range (timeout->tv_sec);
+ bool need_time64 = timeout != NULL && !in_int32_t_range (timeout->tv_sec);
if (need_time64)
{
ret = SYSCALL_CANCEL (ppoll_time64, fds, nfds, timeout, sigmask,
return pselect64_syscall (nfds, readfds, writefds, exceptfds, timeout,
sigmask);
#else
- bool need_time64 = timeout != NULL && !in_time_t_range (timeout->tv_sec);
+ bool need_time64 = timeout != NULL && !in_int32_t_range (timeout->tv_sec);
if (need_time64)
{
int r = pselect64_syscall (nfds, readfds, writefds, exceptfds, timeout,
struct timespec ts32, *pts32 = NULL;
if (timeout != NULL)
{
- if (! in_time_t_range (timeout->tv_sec))
+ if (! in_int32_t_range (timeout->tv_sec))
{
__set_errno (EINVAL);
return -1;
TIMESPEC_TO_TIMEVAL (timeout, pts64);
return r;
#else
- bool need_time64 = timeout != NULL && !in_time_t_range (timeout->tv_sec);
+ bool need_time64 = timeout != NULL && !in_int32_t_range (timeout->tv_sec);
if (need_time64)
{
int r = SYSCALL_CANCEL (pselect6_time64, nfds, readfds, writefds,
#ifdef __ASSUME_TIME64_SYSCALLS
return semtimedop_syscall (semid, sops, nsops, timeout);
#else
- bool need_time64 = timeout != NULL && !in_time_t_range (timeout->tv_sec);
+ bool need_time64 = timeout != NULL && !in_int32_t_range (timeout->tv_sec);
if (need_time64)
{
int r = semtimedop_syscall (semid, sops, nsops, timeout);
#else
struct __itimerval32 new_value_32;
- if (! in_time_t_range (new_value->it_interval.tv_sec)
- || ! in_time_t_range (new_value->it_value.tv_sec))
+ if (! in_int32_t_range (new_value->it_interval.tv_sec)
+ || ! in_int32_t_range (new_value->it_value.tv_sec))
{
__set_errno (EOVERFLOW);
return -1;
}
struct __timeval64 *tv64 = (struct __timeval64 *) optval;
- if (! in_time_t_range (tv64->tv_sec))
+ if (! in_int32_t_range (tv64->tv_sec))
{
__set_errno (EOVERFLOW);
break;
result = SYSCALL_CANCEL (rt_sigtimedwait_time64, set, info, timeout,
__NSIG_BYTES);
#else
- bool need_time64 = timeout != NULL && !in_time_t_range (timeout->tv_sec);
+ bool need_time64 = timeout != NULL && !in_int32_t_range (timeout->tv_sec);
if (need_time64)
{
result = SYSCALL_CANCEL (rt_sigtimedwait_time64, set, info, timeout,
# endif
struct itimerspec its32, oits32;
- if (! in_time_t_range ((value->it_value).tv_sec)
- || ! in_time_t_range ((value->it_interval).tv_sec))
+ if (! in_int32_t_range ((value->it_value).tv_sec)
+ || ! in_int32_t_range ((value->it_interval).tv_sec))
{
__set_errno (EOVERFLOW);
return -1;
#ifdef __ASSUME_TIME64_SYSCALLS
return INLINE_SYSCALL_CALL (timerfd_settime64, fd, flags, value, ovalue);
#else
- bool need_time64 = !in_time_t_range (value->it_value.tv_sec)
- || !in_time_t_range (value->it_interval.tv_sec);
+ bool need_time64 = !in_int32_t_range (value->it_value.tv_sec)
+ || !in_int32_t_range (value->it_interval.tv_sec);
if (need_time64)
{
int r = INLINE_SYSCALL_CALL (timerfd_settime64, fd, flags, value,
bool need_time64 = tsp64 != NULL
&& ((!TS_SPECIAL (tsp64[0])
- && !in_time_t_range (tsp64[0].tv_sec))
+ && !in_int32_t_range (tsp64[0].tv_sec))
|| (!TS_SPECIAL (tsp64[1])
- && !in_time_t_range (tsp64[1].tv_sec)));
+ && !in_int32_t_range (tsp64[1].tv_sec)));
if (need_time64)
{
int r = INLINE_SYSCALL_CALL (utimensat_time64, fd, file, &tsp64[0],