Mercurial > projects > ldc
view 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 |
line wrap: on
line source
/** * D header file for POSIX. * * Copyright: Public Domain * License: Public Domain * Authors: Sean Kelly * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition */ module tango.stdc.posix.time; private import tango.stdc.posix.config; public import tango.stdc.time; public import tango.stdc.posix.sys.types; public import tango.stdc.posix.signal; // for sigevent extern (C): // // Required (defined in tango.stdc.time) // /* char* asctime(tm*); clock_t clock(); char* ctime(time_t*); double difftime(time_t, time_t); tm* gmtime(time_t*); tm* localtime(time_t*); time_t mktime(tm*); size_t strftime(char*, size_t, char*, tm*); time_t time(time_t*); */ version( linux ) { time_t timegm(tm*); // non-standard } else version( darwin ) { time_t timegm(tm*); // non-standard } // // C Extension (CX) // (defined in tango.stdc.time) // /* char* tzname[]; void tzset(); */ // // Process CPU-Time Clocks (CPT) // /* int clock_getcpuclockid(pid_t, clockid_t*); */ // // Clock Selection (CS) // /* int clock_nanosleep(clockid_t, int, timespec*, timespec*); */ // // Monotonic Clock (MON) // /* CLOCK_MONOTONIC */ // // Timer (TMR) // /* CLOCK_PROCESS_CPUTIME_ID (TMR|CPT) CLOCK_THREAD_CPUTIME_ID (TMR|TCT) NOTE: timespec must be defined in tango.stdc.posix.signal to break a circular import. struct timespec { time_t tv_sec; int tv_nsec; } struct itimerspec { timespec it_interval; timespec it_value; } CLOCK_REALTIME TIMER_ABSTIME clockid_t timer_t int clock_getres(clockid_t, timespec*); int clock_gettime(clockid_t, timespec*); int clock_settime(clockid_t, timespec*); int nanosleep(timespec*, timespec*); int timer_create(clockid_t, sigevent*, timer_t*); int timer_delete(timer_t); int timer_gettime(timer_t, itimerspec*); int timer_getoverrun(timer_t); int timer_settime(timer_t, int, itimerspec*, itimerspec*); */ version( linux ) { const CLOCK_PROCESS_CPUTIME_ID = 2; // (TMR|CPT) const CLOCK_THREAD_CPUTIME_ID = 3; // (TMR|TCT) // NOTE: See above for why this is commented out. // //struct timespec //{ // time_t tv_sec; // c_long tv_nsec; //} struct itimerspec { timespec it_interval; timespec it_value; } const CLOCK_REALTIME = 0; const TIMER_ABSTIME = 0x01; alias int clockid_t; alias int timer_t; int clock_getres(clockid_t, timespec*); //int clock_gettime(clockid_t, timespec*); //int clock_settime(clockid_t, timespec*); int nanosleep(timespec*, timespec*); int timer_create(clockid_t, sigevent*, timer_t*); int timer_delete(timer_t); int timer_gettime(timer_t, itimerspec*); int timer_getoverrun(timer_t); int timer_settime(timer_t, int, itimerspec*, itimerspec*); } else version( darwin ) { int nanosleep(timespec*, timespec*); } // // Thread-Safe Functions (TSF) // /* char* asctime_r(tm*, char*); char* ctime_r(time_t*, char*); tm* gmtime_r(time_t*, tm*); tm* localtime_r(time_t*, tm*); */ version( linux ) { char* asctime_r(tm*, char*); char* ctime_r(time_t*, char*); tm* gmtime_r(time_t*, tm*); tm* localtime_r(time_t*, tm*); } else version( darwin ) { char* asctime_r(tm*, char*); char* ctime_r(time_t*, char*); tm* gmtime_r(time_t*, tm*); tm* localtime_r(time_t*, tm*); } // // XOpen (XSI) // /* getdate_err int daylight; int timezone; tm* getdate(char*); char* strptime(char*, char*, tm*); */ version( linux ) { extern int daylight; extern c_long timezone; tm* getdate(char*); char* strptime(char*, char*, tm*); } else version( darwin ) { extern c_long timezone; tm* getdate(char *); char* strptime(char*, char*, tm*); }