/* This is file TIME.H */
/*
** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954
**
** This file is distributed under the terms listed in the document
** "copying.dj", available from DJ Delorie at the address above.
** A copy of "copying.dj" should accompany this file; if not, a copy
** should be available from where this file was obtained.  This file
** may not be distributed without a verbatim copy of "copying.dj".
**
** This file is distributed WITHOUT ANY WARRANTY; without even the implied
** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*/

#ifndef _SYS_TIME_H_
#define _SYS_TIME_H_

#ifdef __cplusplus
extern "C" {
#endif

#include <time.h>

struct timeval
{
    long tv_sec;
    long tv_usec;
};

struct timestruc
{
    time_t tv_sec;
    long tv_nsec;
};

struct timezone
{
    int tz_minuteswest;
    int tz_dsttime;
};

/* 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;
};


int _EXFUN(getitimer, (int which, struct itimerval *value));
int _EXFUN(setitimer, (int which, const struct itimerval *value, struct itimerval *ovalue));
int _EXFUN(gettimeofday, (struct timeval *tv, struct timezone *tz));
int _EXFUN(utimes, (const char *filename, const struct timeval *tvp));

#ifdef __cplusplus
}
#endif

#endif

