2 * D header file for POSIX.
4 * Copyright: Copyright Sean Kelly 2005 - 2009.
5 * License: $(HTTP www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
6 * Authors: Sean Kelly, Alex Rønne Petersen
7 * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
10 /* Copyright Sean Kelly 2005 - 2009.
11 * Distributed under the Boost Software License, Version 1.0.
12 * (See accompanying file LICENSE or copy at
13 * http://www.boost.org/LICENSE_1_0.txt)
15 module core
.sys
.posix
.sys
.time
;
17 import core
.sys
.posix
.config
;
18 public import core
.sys
.posix
.sys
.types
; // for time_t, suseconds_t
19 public import core
.sys
.posix
.sys
.select
; // for fd_set, FD_CLR() FD_ISSET() FD_SET() FD_ZERO() FD_SETSIZE, select()
27 else version (WatchOS
)
30 version (linux
) public import core
.sys
.linux
.sys
.time
;
33 extern (C
) nothrow @nogc:
55 int getitimer(int, itimerval*);
56 int gettimeofday(timeval*, void*);
57 int select(int, fd_set*, fd_set*, fd_set*, timeval*); (defined in core.sys.posix.sys.signal)
58 int setitimer(int, const scope itimerval*, itimerval*);
59 int utimes(const scope char*, ref const(timeval)[2]); // LEGACY
62 version (CRuntime_Glibc
)
77 enum ITIMER_VIRTUAL
= 1;
80 int getitimer(int, itimerval
*);
81 int gettimeofday(timeval
*, void*);
82 int setitimer(int, const scope itimerval
*, itimerval
*);
83 int utimes(const scope char*, ref const(timeval
)[2]); // LEGACY
85 else version (CRuntime_Musl
)
92 pragma(mangle
, muslRedirTime64Mangle
!("gettimeofday", "__gettimeofday_time64"))
93 int gettimeofday(timeval
*, void*);
94 pragma(mangle
, muslRedirTime64Mangle
!("utimes", "__utimes_time64"))
95 int utimes(const scope char*, ref const(timeval
)[2]);
118 int getitimer(int, itimerval
*);
119 int gettimeofday(timeval
*, timezone_t
*); // timezone_t* is normally void*
120 int setitimer(int, const scope itimerval
*, itimerval
*);
121 int utimes(const scope char*, ref const(timeval
)[2]);
123 else version (FreeBSD
)
144 int getitimer(int, itimerval
*);
145 int gettimeofday(timeval
*, timezone_t
*); // timezone_t* is normally void*
146 int setitimer(int, const scope itimerval
*, itimerval
*);
147 int utimes(const scope char*, ref const(timeval
)[2]);
149 else version (NetBSD
)
163 int getitimer(int, itimerval
*);
164 int gettimeofday(timeval
*, void*); // timezone_t* is normally void*
165 int setitimer(int, const scope itimerval
*, itimerval
*);
166 int utimes(const scope char*, ref const(timeval
)[2]);
168 else version (OpenBSD
)
189 int getitimer(int, itimerval
*);
190 int gettimeofday(timeval
*, timezone_t
*);
191 int setitimer(int, const scope itimerval
*, itimerval
*);
192 int utimes(const scope char*, ref const(timeval
)[2]);
194 else version (DragonFlyBSD
)
215 int getitimer(int, itimerval
*);
216 int gettimeofday(timeval
*, timezone_t
*); // timezone_t* is normally void*
217 int setitimer(int, const scope itimerval
*, itimerval
*);
218 int utimes(const scope char*, ref const(timeval
)[2]);
220 else version (Solaris
)
234 int getitimer(int, itimerval
*);
235 int gettimeofday(timeval
*, void*);
236 int setitimer(int, const scope itimerval
*, itimerval
*);
237 int utimes(const scope char*, ref const(timeval
)[2]);
239 else version (CRuntime_Bionic
)
259 enum ITIMER_REAL
= 0;
260 enum ITIMER_VIRTUAL
= 1;
261 enum ITIMER_PROF
= 2;
263 int getitimer(int, itimerval
*);
264 int gettimeofday(timeval
*, timezone_t
*);
265 int setitimer(int, const scope itimerval
*, itimerval
*);
266 int utimes(const scope char*, ref const(timeval
)[2]);
268 else version (CRuntime_UClibc
)
282 enum ITIMER_REAL
= 0;
283 enum ITIMER_VIRTUAL
= 1;
284 enum ITIMER_PROF
= 2;
286 int getitimer(int, itimerval
*);
287 int gettimeofday(timeval
*, void*);
288 int setitimer(int, const scope itimerval
*, itimerval
*);
289 int utimes(const scope char*, ref const(timeval
)[2]);
293 static assert(false, "Unsupported platform");