#ifndef _TIME_H_
#define _TIME_H_
#include <sys/cdefs.h>
#include <sys/_null.h>
#include <sys/_types.h>
#include <sys/_time.h>
#ifndef _CLOCK_T_DEFINED_
#define _CLOCK_T_DEFINED_
typedef __clock_t clock_t;
#endif
#ifndef _TIME_T_DEFINED_
#define _TIME_T_DEFINED_
typedef __time_t time_t;
#endif
#ifndef _SIZE_T_DEFINED_
#define _SIZE_T_DEFINED_
typedef __size_t size_t;
#endif
#if __POSIX_VISIBLE > 0 && __POSIX_VISIBLE < 200112 || __BSD_VISIBLE
#define CLK_TCK 100
#endif
#if __POSIX_VISIBLE >= 199309
#ifndef _CLOCKID_T_DEFINED_
#define _CLOCKID_T_DEFINED_
typedef __clockid_t clockid_t;
#endif
#ifndef _TIMER_T_DEFINED_
#define _TIMER_T_DEFINED_
typedef __timer_t timer_t;
#endif
#endif
#if __POSIX_VISIBLE >= 200112
#ifndef _PID_T_DEFINED_
#define _PID_T_DEFINED_
typedef __pid_t pid_t;
#endif
#endif
#if __POSIX_VISIBLE >= 200809
#ifndef _LOCALE_T_DEFINED_
#define _LOCALE_T_DEFINED_
typedef void *locale_t;
#endif
#endif
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
long tm_gmtoff;
const char *tm_zone;
};
__BEGIN_DECLS
char *asctime(const struct tm *);
clock_t clock(void);
char *ctime(const time_t *);
double difftime(time_t, time_t);
struct tm *gmtime(const time_t *);
struct tm *localtime(const time_t *);
time_t mktime(struct tm *);
size_t strftime(char *__restrict, size_t, const char *__restrict,
const struct tm *__restrict)
__attribute__ ((__bounded__(__string__,1,2)));
time_t time(time_t *);
#if __XPG_VISIBLE >= 300
extern int daylight;
extern long timezone;
#endif
#if __XPG_VISIBLE >= 400
char *strptime(const char *__restrict, const char *__restrict,
struct tm *__restrict);
#endif
#if __POSIX_VISIBLE >= 199506
char *asctime_r(const struct tm *__restrict, char *__restrict)
__attribute__ ((__bounded__(__minbytes__,2,26)));
char *ctime_r(const time_t *, char *)
__attribute__ ((__bounded__(__minbytes__,2,26)));
struct tm *gmtime_r(const time_t *__restrict, struct tm *__restrict);
struct tm *localtime_r(const time_t *__restrict, struct tm *__restrict);
#endif
#if __POSIX_VISIBLE
extern char *tzname[2];
void tzset(void);
#endif
#if __POSIX_VISIBLE >= 199309
int clock_getres(clockid_t, struct timespec *);
int clock_gettime(clockid_t, struct timespec *);
int clock_settime(clockid_t, const struct timespec *);
int nanosleep(const struct timespec *, struct timespec *);
#endif
#if __POSIX_VISIBLE >= 200112
int clock_getcpuclockid(pid_t, clockid_t *);
#endif
#if __POSIX_VISIBLE >= 200809
size_t strftime_l(char *__restrict, size_t, const char *__restrict,
const struct tm *__restrict, locale_t)
__attribute__ ((__bounded__(__string__,1,2)));
#endif
#if __ISO_C_VISIBLE >= 2011
#define TIME_UTC 1
int timespec_get(struct timespec *_ts, int _base);
#endif
#if __BSD_VISIBLE
void tzsetwall(void);
time_t timelocal(struct tm *);
time_t timegm(struct tm *);
time_t timeoff(struct tm *, const long);
#endif
__END_DECLS
#endif