4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-03 04:50:23 +08:00
Jeff Johnston c119e0ab7a 2002-07-19 Jeff Johnston <jjohnstn@redhat.com>
* libc/include/sys/config.h[__i386__][__linux__]: Define
        _LARGE64FILE_SOURCE to 1.
        * libc/sys/linux/Makefile.am: Add getrlimit64.c and setrlimit64.c.
        * libc/sys/linux/Makefile.in: Regenerated.
        * libc/sys/linux/resource.c: Add __getrlimit and __setrlimit aliases.
        * libc/sys/linux/sys/linux_time.h: Protect struct timeval definition.
        * libc/sys/linux/sys/resource.h: Include <bits/resource.h> instead
        of <linux/resource.h>.
        * libc/sys/linux/getrlimit64.c: New file.
        * libc/sys/linux/setrlimit64.c: Ditto.
2002-07-19 23:21:43 +00:00

77 lines
1.7 KiB
C

#ifndef _LINUX_TIME_H
#define _LINUX_TIME_H
#include <asm/param.h>
#include <sys/types.h>
#ifndef _STRUCT_TIMESPEC
#define _STRUCT_TIMESPEC
struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};
#endif /* _STRUCT_TIMESPEC */
/*
* Change timeval to jiffies, trying to avoid the
* most obvious overflows..
*
* And some not so obvious.
*
* Note that we don't want to return MAX_LONG, because
* for various timeout reasons we often end up having
* to wait "jiffies+1" in order to guarantee that we wait
* at _least_ "jiffies" - so "jiffies+1" had better still
* be positive.
*/
#define MAX_JIFFY_OFFSET ((~0UL >> 1)-1)
static __inline__ unsigned long
timespec_to_jiffies(struct timespec *value)
{
unsigned long sec = value->tv_sec;
long nsec = value->tv_nsec;
if (sec >= (MAX_JIFFY_OFFSET / HZ))
return MAX_JIFFY_OFFSET;
nsec += 1000000000L / HZ - 1;
nsec /= 1000000000L / HZ;
return HZ * sec + nsec;
}
static __inline__ void
jiffies_to_timespec(unsigned long jiffies, struct timespec *value)
{
value->tv_nsec = (jiffies % HZ) * (1000000000L / HZ);
value->tv_sec = jiffies / HZ;
}
#ifndef _STRUCT_TIMEVAL
#define _STRUCT_TIMEVAL
struct timeval {
time_t tv_sec; /* seconds */
suseconds_t tv_usec; /* microseconds */
};
#endif
struct timezone {
int tz_minuteswest; /* minutes west of Greenwich */
int tz_dsttime; /* type of dst correction */
};
#define ITIMER_REAL 0
#define ITIMER_VIRTUAL 1
#define ITIMER_PROF 2
struct itimerspec {
struct timespec it_interval; /* timer period */
struct timespec it_value; /* timer expiration */
};
struct itimerval {
struct timeval it_interval; /* timer interval */
struct timeval it_value; /* current value */
};
#endif