mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-30 00:13:03 +00:00
106 lines
3 KiB
C
106 lines
3 KiB
C
|
|
||
|
/*
|
||
|
* Copyright (c) 2018 Chris Jones <jonesc@macports.org>
|
||
|
*
|
||
|
* Permission to use, copy, modify, and distribute this software for any
|
||
|
* purpose with or without fee is hereby granted, provided that the above
|
||
|
* copyright notice and this permission notice appear in all copies.
|
||
|
*
|
||
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||
|
*/
|
||
|
|
||
|
#ifndef _MACPORTS_TIME_H_
|
||
|
#define _MACPORTS_TIME_H_
|
||
|
|
||
|
/* MP support header */
|
||
|
#include "MacportsLegacySupport.h"
|
||
|
|
||
|
/* Include the primary system time.h */
|
||
|
#include_next <time.h>
|
||
|
|
||
|
/* The following functions are implemented by Tiger, but the declarations are
|
||
|
* missing if _ANSI_SOURCE or _POSIX_C_SOURCE are defined, which occurs when
|
||
|
* _XOPEN_SOURCE is set. */
|
||
|
#if __MP_LEGACY_SUPPORT_TIME_THREAD_SAFE_FUNCTIONS__
|
||
|
|
||
|
__MP__BEGIN_DECLS
|
||
|
#if defined(_ANSI_SOURCE) || defined(_POSIX_C_SOURCE)
|
||
|
char *asctime_r(const struct tm *, char *);
|
||
|
char *ctime_r(const time_t *, char *);
|
||
|
struct tm *gmtime_r(const time_t *, struct tm *);
|
||
|
struct tm *localtime_r(const time_t *, struct tm *);
|
||
|
#endif /* defined(_ANSI_SOURCE) || defined(_POSIX_C_SOURCE) */
|
||
|
__MP__END_DECLS
|
||
|
|
||
|
#endif /* __MP_LEGACY_SUPPORT_TIME_THREAD_SAFE_FUNCTIONS__ */
|
||
|
|
||
|
/* Legacy implementation of clock_gettime */
|
||
|
#if __MP_LEGACY_SUPPORT_GETTIME__
|
||
|
|
||
|
/* One define types and methods if not already defined. */
|
||
|
#if !defined(CLOCK_REALTIME) && !defined(CLOCK_MONOTONIC)
|
||
|
typedef int clockid_t;
|
||
|
#endif /* !defined(CLOCK_REALTIME) && !defined(CLOCK_MONOTONIC) */
|
||
|
|
||
|
#ifndef CLOCK_REALTIME
|
||
|
#define CLOCK_REALTIME 0
|
||
|
#endif
|
||
|
#ifndef CLOCK_MONOTONIC
|
||
|
#define CLOCK_MONOTONIC 6
|
||
|
#endif
|
||
|
|
||
|
#ifndef CLOCK_MONOTONIC_RAW
|
||
|
#define CLOCK_MONOTONIC_RAW 4
|
||
|
#endif
|
||
|
#ifndef CLOCK_MONOTONIC_RAW_APPROX
|
||
|
#define CLOCK_MONOTONIC_RAW_APPROX 5
|
||
|
#endif
|
||
|
|
||
|
#ifndef CLOCK_UPTIME_RAW
|
||
|
#define CLOCK_UPTIME_RAW 8
|
||
|
#endif
|
||
|
|
||
|
#ifndef CLOCK_UPTIME_RAW_APPROX
|
||
|
#define CLOCK_UPTIME_RAW_APPROX 8
|
||
|
#endif
|
||
|
|
||
|
#ifndef CLOCK_PROCESS_CPUTIME_ID
|
||
|
#define CLOCK_PROCESS_CPUTIME_ID 12
|
||
|
#endif
|
||
|
|
||
|
#ifndef CLOCK_THREAD_CPUTIME_ID
|
||
|
#define CLOCK_THREAD_CPUTIME_ID 16
|
||
|
#endif
|
||
|
|
||
|
__MP__BEGIN_DECLS
|
||
|
|
||
|
extern int clock_gettime( clockid_t clk_id, struct timespec *ts );
|
||
|
extern int clock_getres ( clockid_t clk_id, struct timespec *ts );
|
||
|
|
||
|
__MP__END_DECLS
|
||
|
|
||
|
#endif /* __MP_LEGACY_SUPPORT_GETTIME__ */
|
||
|
|
||
|
/* Legacy implementation of timespec */
|
||
|
#if __MP_LEGACY_SUPPORT_TIMESPEC_GET__
|
||
|
|
||
|
#ifndef TIME_UTC
|
||
|
#define TIME_UTC 1 /* time elapsed since epoch */
|
||
|
#endif
|
||
|
|
||
|
__MP__BEGIN_DECLS
|
||
|
|
||
|
extern int timespec_get(struct timespec *ts, int base);
|
||
|
|
||
|
__MP__END_DECLS
|
||
|
|
||
|
#endif /* __MP_LEGACY_SUPPORT_TIMESPEC_GET__ */
|
||
|
|
||
|
#endif /* _MACPORTS_TIME_H_ */
|