X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/224c70764cab4e0e39a26aaf3ad3016552f62f55..HEAD:/include/time.h diff --git a/include/time.h b/include/time.h index 2914d40..100945b 100644 --- a/include/time.h +++ b/include/time.h @@ -64,28 +64,14 @@ #define _TIME_H_ #include <_types.h> - -#define __need_struct_timespec -#include <_structs.h> - -#ifndef NULL -#define NULL __DARWIN_NULL -#endif /* ! NULL */ - -#ifndef _CLOCK_T -#define _CLOCK_T -typedef __darwin_clock_t clock_t; -#endif - -#ifndef _SIZE_T -#define _SIZE_T -typedef __darwin_size_t size_t; -#endif - -#ifndef _TIME_T -#define _TIME_T -typedef __darwin_time_t time_t; -#endif +#include +#include +#ifndef UNIFDEF_DRIVERKIT +#include +#include +#include +#include +#include struct tm { int tm_sec; /* seconds after the minute [0-60] */ @@ -97,7 +83,7 @@ struct tm { int tm_wday; /* days since Sunday [0-6] */ int tm_yday; /* days since January 1 [0-365] */ int tm_isdst; /* Daylight Savings Time flag */ - long tm_gmtoff; /* offset from CUT in seconds */ + long tm_gmtoff; /* offset from UTC in seconds */ char *tm_zone; /* timezone abbreviation */ }; @@ -126,8 +112,10 @@ extern long timezone LIBC_ALIAS(timezone); //End-Libc #endif /* __DARWIN_UNIX03 */ extern int daylight; +#endif /* UNIFDEF_DRIVERKIT */ __BEGIN_DECLS +#ifndef UNIFDEF_DRIVERKIT char *asctime(const struct tm *); //Begin-Libc #ifndef LIBC_ALIAS_CLOCK @@ -197,13 +185,78 @@ time_t timegm(struct tm * const); //Begin-Libc #ifndef LIBC_ALIAS_NANOSLEEP //End-Libc -int nanosleep(const struct timespec *, struct timespec *) __DARWIN_ALIAS_C(nanosleep); +int nanosleep(const struct timespec *__rqtp, struct timespec *__rmtp) __DARWIN_ALIAS_C(nanosleep); //Begin-Libc #else /* LIBC_ALIAS_NANOSLEEP */ -int nanosleep(const struct timespec *, struct timespec *) LIBC_ALIAS_C(nanosleep); +int nanosleep(const struct timespec *__rqtp, struct timespec *__rmtp) LIBC_ALIAS_C(nanosleep); #endif /* !LIBC_ALIAS_NANOSLEEP */ //End-Libc #endif +#endif /* UNIFDEF_DRIVERKIT */ + +#if !defined(_DARWIN_FEATURE_CLOCK_GETTIME) || _DARWIN_FEATURE_CLOCK_GETTIME != 0 +#if __DARWIN_C_LEVEL >= 199309L +#if __has_feature(enumerator_attributes) +#define __CLOCK_AVAILABILITY __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0) +#else +#define __CLOCK_AVAILABILITY +#endif + +typedef enum { +_CLOCK_REALTIME __CLOCK_AVAILABILITY = 0, +#define CLOCK_REALTIME _CLOCK_REALTIME +_CLOCK_MONOTONIC __CLOCK_AVAILABILITY = 6, +#define CLOCK_MONOTONIC _CLOCK_MONOTONIC +#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) +_CLOCK_MONOTONIC_RAW __CLOCK_AVAILABILITY = 4, +#define CLOCK_MONOTONIC_RAW _CLOCK_MONOTONIC_RAW +_CLOCK_MONOTONIC_RAW_APPROX __CLOCK_AVAILABILITY = 5, +#define CLOCK_MONOTONIC_RAW_APPROX _CLOCK_MONOTONIC_RAW_APPROX +_CLOCK_UPTIME_RAW __CLOCK_AVAILABILITY = 8, +#define CLOCK_UPTIME_RAW _CLOCK_UPTIME_RAW +_CLOCK_UPTIME_RAW_APPROX __CLOCK_AVAILABILITY = 9, +#define CLOCK_UPTIME_RAW_APPROX _CLOCK_UPTIME_RAW_APPROX +#endif +_CLOCK_PROCESS_CPUTIME_ID __CLOCK_AVAILABILITY = 12, +#define CLOCK_PROCESS_CPUTIME_ID _CLOCK_PROCESS_CPUTIME_ID +_CLOCK_THREAD_CPUTIME_ID __CLOCK_AVAILABILITY = 16 +#define CLOCK_THREAD_CPUTIME_ID _CLOCK_THREAD_CPUTIME_ID +} clockid_t; + +#ifndef UNIFDEF_DRIVERKIT +__CLOCK_AVAILABILITY +int clock_getres(clockid_t __clock_id, struct timespec *__res); + +__CLOCK_AVAILABILITY +int clock_gettime(clockid_t __clock_id, struct timespec *__tp); + +#endif /* UNIFDEF_DRIVERKIT */ +#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) +__CLOCK_AVAILABILITY +__uint64_t clock_gettime_nsec_np(clockid_t __clock_id); +#endif + +#ifndef UNIFDEF_DRIVERKIT +__OSX_AVAILABLE(10.12) __IOS_PROHIBITED +__TVOS_PROHIBITED __WATCHOS_PROHIBITED +int clock_settime(clockid_t __clock_id, const struct timespec *__tp); + +#endif /* UNIFDEF_DRIVERKIT */ +#undef __CLOCK_AVAILABILITY +#endif /* __DARWIN_C_LEVEL */ +#endif /* _DARWIN_FEATURE_CLOCK_GETTIME */ + +#ifndef UNIFDEF_DRIVERKIT +#if (__DARWIN_C_LEVEL >= __DARWIN_C_FULL) || \ + (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ + (defined(__cplusplus) && __cplusplus >= 201703L) +/* ISO/IEC 9899:201x 7.27.2.5 The timespec_get function */ +#define TIME_UTC 1 /* time elapsed since epoch */ +__API_AVAILABLE(macosx(10.15), ios(13.0), tvos(13.0), watchos(6.0)) +int timespec_get(struct timespec *ts, int base); +#endif + +#endif /* UNIFDEF_DRIVERKIT */ __END_DECLS #ifdef _USE_EXTENDED_LOCALES_