comparison tango/tango/stdc/posix/time.d @ 132:1700239cab2e trunk

[svn r136] MAJOR UNSTABLE UPDATE!!! Initial commit after moving to Tango instead of Phobos. Lots of bugfixes... This build is not suitable for most things.
author lindquist
date Fri, 11 Jan 2008 17:57:40 +0100
parents
children
comparison
equal deleted inserted replaced
131:5825d48b27d1 132:1700239cab2e
1 /**
2 * D header file for POSIX.
3 *
4 * Copyright: Public Domain
5 * License: Public Domain
6 * Authors: Sean Kelly
7 * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
8 */
9 module tango.stdc.posix.time;
10
11 private import tango.stdc.posix.config;
12 public import tango.stdc.time;
13 public import tango.stdc.posix.sys.types;
14 public import tango.stdc.posix.signal; // for sigevent
15
16 extern (C):
17
18 //
19 // Required (defined in tango.stdc.time)
20 //
21 /*
22 char* asctime(tm*);
23 clock_t clock();
24 char* ctime(time_t*);
25 double difftime(time_t, time_t);
26 tm* gmtime(time_t*);
27 tm* localtime(time_t*);
28 time_t mktime(tm*);
29 size_t strftime(char*, size_t, char*, tm*);
30 time_t time(time_t*);
31 */
32
33 version( linux )
34 {
35 time_t timegm(tm*); // non-standard
36 }
37 else version( darwin )
38 {
39 time_t timegm(tm*); // non-standard
40 }
41
42 //
43 // C Extension (CX)
44 // (defined in tango.stdc.time)
45 //
46 /*
47 char* tzname[];
48 void tzset();
49 */
50
51 //
52 // Process CPU-Time Clocks (CPT)
53 //
54 /*
55 int clock_getcpuclockid(pid_t, clockid_t*);
56 */
57
58 //
59 // Clock Selection (CS)
60 //
61 /*
62 int clock_nanosleep(clockid_t, int, timespec*, timespec*);
63 */
64
65 //
66 // Monotonic Clock (MON)
67 //
68 /*
69 CLOCK_MONOTONIC
70 */
71
72 //
73 // Timer (TMR)
74 //
75 /*
76 CLOCK_PROCESS_CPUTIME_ID (TMR|CPT)
77 CLOCK_THREAD_CPUTIME_ID (TMR|TCT)
78
79 NOTE: timespec must be defined in tango.stdc.posix.signal to break
80 a circular import.
81
82 struct timespec
83 {
84 time_t tv_sec;
85 int tv_nsec;
86 }
87
88 struct itimerspec
89 {
90 timespec it_interval;
91 timespec it_value;
92 }
93
94 CLOCK_REALTIME
95 TIMER_ABSTIME
96
97 clockid_t
98 timer_t
99
100 int clock_getres(clockid_t, timespec*);
101 int clock_gettime(clockid_t, timespec*);
102 int clock_settime(clockid_t, timespec*);
103 int nanosleep(timespec*, timespec*);
104 int timer_create(clockid_t, sigevent*, timer_t*);
105 int timer_delete(timer_t);
106 int timer_gettime(timer_t, itimerspec*);
107 int timer_getoverrun(timer_t);
108 int timer_settime(timer_t, int, itimerspec*, itimerspec*);
109 */
110
111 version( linux )
112 {
113 const CLOCK_PROCESS_CPUTIME_ID = 2; // (TMR|CPT)
114 const CLOCK_THREAD_CPUTIME_ID = 3; // (TMR|TCT)
115
116 // NOTE: See above for why this is commented out.
117 //
118 //struct timespec
119 //{
120 // time_t tv_sec;
121 // c_long tv_nsec;
122 //}
123
124 struct itimerspec
125 {
126 timespec it_interval;
127 timespec it_value;
128 }
129
130 const CLOCK_REALTIME = 0;
131 const TIMER_ABSTIME = 0x01;
132
133 alias int clockid_t;
134 alias int timer_t;
135
136 int clock_getres(clockid_t, timespec*);
137 //int clock_gettime(clockid_t, timespec*);
138 //int clock_settime(clockid_t, timespec*);
139 int nanosleep(timespec*, timespec*);
140 int timer_create(clockid_t, sigevent*, timer_t*);
141 int timer_delete(timer_t);
142 int timer_gettime(timer_t, itimerspec*);
143 int timer_getoverrun(timer_t);
144 int timer_settime(timer_t, int, itimerspec*, itimerspec*);
145 }
146 else version( darwin )
147 {
148 int nanosleep(timespec*, timespec*);
149 }
150
151
152 //
153 // Thread-Safe Functions (TSF)
154 //
155 /*
156 char* asctime_r(tm*, char*);
157 char* ctime_r(time_t*, char*);
158 tm* gmtime_r(time_t*, tm*);
159 tm* localtime_r(time_t*, tm*);
160 */
161
162 version( linux )
163 {
164 char* asctime_r(tm*, char*);
165 char* ctime_r(time_t*, char*);
166 tm* gmtime_r(time_t*, tm*);
167 tm* localtime_r(time_t*, tm*);
168 }
169 else version( darwin )
170 {
171 char* asctime_r(tm*, char*);
172 char* ctime_r(time_t*, char*);
173 tm* gmtime_r(time_t*, tm*);
174 tm* localtime_r(time_t*, tm*);
175 }
176
177 //
178 // XOpen (XSI)
179 //
180 /*
181 getdate_err
182
183 int daylight;
184 int timezone;
185
186 tm* getdate(char*);
187 char* strptime(char*, char*, tm*);
188 */
189
190 version( linux )
191 {
192 extern int daylight;
193 extern c_long timezone;
194
195 tm* getdate(char*);
196 char* strptime(char*, char*, tm*);
197 }
198 else version( darwin )
199 {
200 extern c_long timezone;
201
202 tm* getdate(char *);
203 char* strptime(char*, char*, tm*);
204 }