]> gitweb.factorcode.org Git - factor.git/blob - basis/unix/time/time.factor
0a63965c20179fda605ac448a88183708c923ac9
[factor.git] / basis / unix / time / time.factor
1 ! Copyright (C) 2008 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel alien.syntax alien.c-types math unix.types
4 classes.struct accessors ;
5 IN: unix.time
6
7 STRUCT: timeval
8     { sec long }
9     { usec long } ;
10
11 STRUCT: timespec
12     { sec time_t }
13     { nsec long } ;
14
15 : make-timeval ( us -- timeval )
16     1000000 /mod
17     timeval <struct>
18         swap >>usec
19         swap >>sec ;
20
21 : make-timespec ( nanos -- timespec )
22     1000000000 /mod
23     timespec <struct>
24         swap >>nsec
25         swap >>sec ;
26
27 STRUCT: tm
28     { sec int }
29     { min int }
30     { hour int }
31     { mday int }
32     { mon int }
33     { year int }
34     { wday int }
35     { yday int }
36     { isdst int }
37     { gmtoff long }
38     { zone char* } ;
39
40 FUNCTION: time_t time ( time_t* t ) ;
41 FUNCTION: tm* localtime ( time_t* clock ) ;
42 FUNCTION: int gettimeofday ( timespec* TP, void* TZP ) ;