Projet_SETI_RISC-V/riscv-gnu-toolchain/gcc/libphobos/libdruntime/core/sys/posix/stdc/time.d
2023-03-06 14:48:14 +01:00

192 lines
4.2 KiB
D

/**
* D header file for C99.
*
* $(C_HEADER_DESCRIPTION pubs.opengroup.org/onlinepubs/009695399/basedefs/_time.h.html, _time.h)
*
* Copyright: Copyright Sean Kelly 2005 - 2009.
* License: Distributed under the
* $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0).
* (See accompanying file LICENSE)
* Authors: Sean Kelly,
* Alex Rønne Petersen
* Source: $(DRUNTIMESRC core/stdc/_time.d)
* Standards: ISO/IEC 9899:1999 (E)
*/
module core.sys.posix.stdc.time;
version (Posix):
import core.stdc.config;
version (OSX)
version = Darwin;
else version (iOS)
version = Darwin;
else version (TVOS)
version = Darwin;
else version (WatchOS)
version = Darwin;
extern (C):
@trusted: // There are only a few functions here that use unsafe C strings.
nothrow:
@nogc:
///
struct tm
{
int tm_sec; /// seconds after the minute [0-60]
int tm_min; /// minutes after the hour [0-59]
int tm_hour; /// hours since midnight [0-23]
int tm_mday; /// day of the month [1-31]
int tm_mon; /// months since January [0-11]
int tm_year; /// years since 1900
int tm_wday; /// days since Sunday [0-6]
int tm_yday; /// days since January 1 [0-365]
int tm_isdst; /// Daylight Savings Time flag
c_long tm_gmtoff; /// offset from CUT in seconds
char* tm_zone; /// timezone abbreviation
}
public import core.sys.posix.sys.types : time_t, clock_t;
///
version (CRuntime_Glibc)
{
enum clock_t CLOCKS_PER_SEC = 1_000_000;
clock_t clock();
}
else version (CRuntime_Musl)
{
enum clock_t CLOCKS_PER_SEC = 1_000_000;
clock_t clock();
}
else version (CRuntime_Bionic)
{
enum clock_t CLOCKS_PER_SEC = 1_000_000;
clock_t clock();
}
else version (CRuntime_UClibc)
{
enum clock_t CLOCKS_PER_SEC = 1_000_000;
clock_t clock();
}
else version (OSX)
{
enum clock_t CLOCKS_PER_SEC = 1_000_000; // was 100 until OSX 10.4/10.5
version (X86)
extern (C) pragma(mangle, "clock$UNIX2003") clock_t clock();
else
clock_t clock();
}
else version (Darwin) // other Darwins (iOS, TVOS, WatchOS)
{
enum clock_t CLOCKS_PER_SEC = 1_000_000;
clock_t clock();
}
else version (FreeBSD)
{
enum clock_t CLOCKS_PER_SEC = 128;
clock_t clock();
}
else version (NetBSD)
{
enum clock_t CLOCKS_PER_SEC = 100;
clock_t clock();
}
else version (OpenBSD)
{
enum clock_t CLOCKS_PER_SEC = 100;
clock_t clock();
}
else version (DragonFlyBSD)
{
enum clock_t CLOCKS_PER_SEC = 128;
clock_t clock();
}
else version (Solaris)
{
enum clock_t CLOCKS_PER_SEC = 1_000_000;
clock_t clock();
}
else
{
static assert(0, "unsupported system");
}
version (Darwin)
{
///
void tzset(); // non-standard
///
extern __gshared const(char)*[2] tzname; // non-standard
}
else version (CRuntime_Glibc)
{
///
void tzset(); // non-standard
///
extern __gshared const(char)*[2] tzname; // non-standard
}
else version (FreeBSD)
{
///
void tzset(); // non-standard
///
extern __gshared const(char)*[2] tzname; // non-standard
}
else version (NetBSD)
{
///
void tzset(); // non-standard
///
extern __gshared const(char)*[2] tzname; // non-standard
}
else version (OpenBSD)
{
///
void tzset(); // non-standard
///
extern __gshared const(char)*[2] tzname; // non-standard
}
else version (DragonFlyBSD)
{
///
void tzset(); // non-standard
///
extern __gshared const(char)*[2] tzname; // non-standard
}
else version (Solaris)
{
///
void tzset();
///
extern __gshared const(char)*[2] tzname;
}
else version (CRuntime_Bionic)
{
///
void tzset();
///
extern __gshared const(char)*[2] tzname;
}
else version (CRuntime_Musl)
{
///
void tzset(); // non-standard
///
extern __gshared const(char)*[2] tzname; // non-standard
}
else version (CRuntime_UClibc)
{
///
void tzset();
///
extern __gshared const(char)*[2] tzname;
}
else
{
static assert(false, "Unsupported platform");
}