| 
									
										
										
										
											2008-10-06 18:34:58 -04:00
										 |  |  | ! Copyright (C) 2008 Doug Coleman. | 
					
						
							|  |  |  | ! See http://factorcode.org/license.txt for BSD license. | 
					
						
							|  |  |  | USING: kernel alien.syntax alien.c-types math unix.types ;
 | 
					
						
							| 
									
										
										
										
											2008-03-01 08:11:44 -05:00
										 |  |  | IN: unix.time | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-10-06 19:18:33 -04:00
										 |  |  | C-STRUCT: timeval | 
					
						
							|  |  |  |     { "long" "sec" } | 
					
						
							|  |  |  |     { "long" "usec" } ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | C-STRUCT: timespec | 
					
						
							|  |  |  |     { "time_t" "sec" } | 
					
						
							|  |  |  |     { "long" "nsec" } ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-11-19 02:50:05 -05:00
										 |  |  | : make-timeval ( us -- timeval )
 | 
					
						
							|  |  |  |     1000000 /mod
 | 
					
						
							| 
									
										
										
										
											2008-10-06 22:41:06 -04:00
										 |  |  |     "timeval" <c-object> | 
					
						
							|  |  |  |     [ set-timeval-usec ] keep
 | 
					
						
							|  |  |  |     [ set-timeval-sec ] keep ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-11-19 02:50:05 -05:00
										 |  |  | : make-timespec ( us -- timespec )
 | 
					
						
							|  |  |  |     1000000 /mod 1000 *
 | 
					
						
							| 
									
										
										
										
											2008-10-06 22:41:06 -04:00
										 |  |  |     "timespec" <c-object> | 
					
						
							|  |  |  |     [ set-timespec-nsec ] keep
 | 
					
						
							|  |  |  |     [ set-timespec-sec ] keep ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-03-01 08:11:44 -05:00
										 |  |  | C-STRUCT: tm | 
					
						
							|  |  |  |     { "int" "sec" }    ! Seconds: 0-59 (K&R says 0-61?) | 
					
						
							|  |  |  |     { "int" "min" }    ! Minutes: 0-59 | 
					
						
							|  |  |  |     { "int" "hour" }   ! Hours since midnight: 0-23 | 
					
						
							|  |  |  |     { "int" "mday" }   ! Day of the month: 1-31 | 
					
						
							|  |  |  |     { "int" "mon" }    ! Months *since* january: 0-11 | 
					
						
							|  |  |  |     { "int" "year" }   ! Years since 1900 | 
					
						
							|  |  |  |     { "int" "wday" }   ! Days since Sunday (0-6) | 
					
						
							|  |  |  |     { "int" "yday" }   ! Days since Jan. 1: 0-365 | 
					
						
							|  |  |  |     { "int" "isdst" }  ! +1 Daylight Savings Time, 0 No DST, | 
					
						
							|  |  |  |     { "long" "gmtoff" } ! Seconds: 0-59 (K&R says 0-61?) | 
					
						
							|  |  |  |     { "char*" "zone" } ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | FUNCTION: time_t time ( time_t* t ) ;
 | 
					
						
							| 
									
										
										
										
											2008-06-27 14:49:10 -04:00
										 |  |  | FUNCTION: tm* localtime ( time_t* clock ) ;
 | 
					
						
							|  |  |  | FUNCTION: int gettimeofday ( timespec* TP, void* TZP ) ;
 |