From 28f540f45bbacd939bfd07f213bcad2bf730b1bf Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sat, 18 Feb 1995 01:27:10 +0000 Subject: initial import --- time/sys/time.h | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ time/sys/timeb.h | 43 ++++++++++++++++ 2 files changed, 190 insertions(+) create mode 100644 time/sys/time.h create mode 100644 time/sys/timeb.h (limited to 'time/sys') diff --git a/time/sys/time.h b/time/sys/time.h new file mode 100644 index 0000000..7275561 --- /dev/null +++ b/time/sys/time.h @@ -0,0 +1,147 @@ +/* Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc. +This file is part of the GNU C Library. + +The GNU C Library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +The GNU C Library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with the GNU C Library; see the file COPYING.LIB. If +not, write to the, 1992 Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139, USA. */ + +#ifndef _SYS_TIME_H + +#define _SYS_TIME_H 1 +#include + +#include + +__BEGIN_DECLS + +/* A time value that is accurate to the nearest + microsecond but also has a range of years. */ +struct timeval + { + int tv_sec; /* Seconds. */ + int tv_usec; /* Microseconds. */ + }; + +/* POSIX.4 structure for a time value. This is like a `struct timeval' but + has nanoseconds instead of microseconds. */ +struct timespec + { + long int ts_sec; /* Seconds. */ + long int ts_nsec; /* Nanoseconds. */ + }; + +/* Macros for converting between `struct timeval' and `struct timespec'. */ +#define TIMEVAL_TO_TIMESPEC(tv, ts) { \ + (ts)->ts_sec = (tv)->tv_sec; \ + (ts)->ts_nsec = (tv)->tv_usec * 1000; \ +} +#define TIMESPEC_TO_TIMEVAL(tv, ts) { \ + (tv)->tv_sec = (ts)->ts_sec; \ + (tv)->tv_usec = (ts)->ts_nsec / 1000; \ +} + + +/* Structure crudely representing a timezone. + This is obsolete and should never be used. */ +struct timezone + { + int tz_minuteswest; /* Minutes west of GMT. */ + int tz_dsttime; /* Nonzero if DST is ever in effect. */ + }; + +/* Get the current time of day and timezone information, + putting it into *TV and *TZ. If TZ is NULL, *TZ is not filled. + Returns 0 on success, -1 on errors. + NOTE: This form of timezone information is obsolete. + Use the functions and variables declared in instead. */ +extern int __gettimeofday __P ((struct timeval *__tv, + struct timezone *__tz)); +extern int gettimeofday __P ((struct timeval *__tv, + struct timezone *__tz)); + +/* Set the current time of day and timezone information. + This call is restricted to the super-user. */ +extern int __settimeofday __P ((__const struct timeval *__tv, + __const struct timezone *__tz)); +extern int settimeofday __P ((__const struct timeval *__tv, + __const struct timezone *__tz)); + +/* Adjust the current time of day by the amount in DELTA. + If OLDDELTA is not NULL, it is filled in with the amount + of time adjustment remaining to be done from the last `adjtime' call. + This call is restricted to the super-user. */ +extern int __adjtime __P ((__const struct timeval *__delta, + struct timeval *__olddelta)); +extern int adjtime __P ((__const struct timeval *__delta, + struct timeval *__olddelta)); + + +/* Values for the first argument to `getitimer' and `setitimer'. */ +enum __itimer_which + { + /* Timers run in real time. */ + ITIMER_REAL = 0, + /* Timers run only when the process is executing. */ + ITIMER_VIRTUAL = 1, + /* Timers run when the process is executing and when + the system is executing on behalf of the process. */ + ITIMER_PROF = 2 + }; + +/* Type of the second argument to `getitimer' and + the second and third arguments `setitimer'. */ +struct itimerval + { + /* Value to put into `it_value' when the timer expires. */ + struct timeval it_interval; + /* Time to the next timer expiration. */ + struct timeval it_value; + }; + +/* Set *VALUE to the current setting of timer WHICH. + Return 0 on success, -1 on errors. */ +extern int __getitimer __P ((enum __itimer_which __which, + struct itimerval *__value)); +extern int getitimer __P ((enum __itimer_which __which, + struct itimerval *__value)); + +/* Set the timer WHICH to *NEW. If OLD is not NULL, + set *OLD to the old value of timer WHICH. + Returns 0 on success, -1 on errors. */ +extern int __setitimer __P ((enum __itimer_which __which, + struct itimerval *__new, + struct itimerval *__old)); +extern int setitimer __P ((enum __itimer_which __which, + struct itimerval *__new, + struct itimerval *__old)); + +/* Change the access time of FILE to TVP[0] and + the modification time of FILE to TVP[1]. */ +extern int __utimes __P ((__const char *__file, struct timeval __tvp[2])); +extern int utimes __P ((__const char *__file, struct timeval __tvp[2])); + + +/* Convenience macros for operations on timevals. + NOTE: `timercmp' does not work for >= or <=. */ +#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) +#define timercmp(tvp, uvp, CMP) \ + ((tvp)->tv_sec CMP (uvp)->tv_sec || \ + (tvp)->tv_sec == (uvp)->tv_sec && (tvp)->tv_usec CMP (uvp)->tv_usec) +#define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0) + + + +__END_DECLS + +#endif /* sys/time.h */ diff --git a/time/sys/timeb.h b/time/sys/timeb.h new file mode 100644 index 0000000..965cb3d --- /dev/null +++ b/time/sys/timeb.h @@ -0,0 +1,43 @@ +/* Copyright (C) 1994 Free Software Foundation, Inc. +This file is part of the GNU C Library. + +The GNU C Library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +The GNU C Library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with the GNU C Library; see the file COPYING.LIB. If +not, write to the Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139, USA. */ + +#ifndef _SYS_TIMEB_H + +#define _SYS_TIMEB_H 1 +#include + +#define __need_time_t +#include + + +/* Structure returned by the `ftime' function. */ + +struct timeb + { + time_t time; /* Seconds since epoch, as from `time'. */ + unsigned short int millitm; /* Additional milliseconds. */ + short int timezone; /* Minutes west of GMT. */ + short int dstflag; /* Nonzero if Daylight Savings Time used. */ + }; + +/* Fill in TIMEBUF with information about the current time. */ + +extern int ftime __P ((struct timeb *__timebuf)); + + +#endif /* sys/timeb.h */ -- cgit v1.1