]> gitweb.factorcode.org Git - factor.git/commitdiff
monotonic-count on mac
authorDoug Coleman <doug.coleman@gmail.com>
Sun, 15 Nov 2009 06:47:27 +0000 (00:47 -0600)
committerDoug Coleman <doug.coleman@gmail.com>
Sun, 15 Nov 2009 06:47:27 +0000 (00:47 -0600)
extra/monotonic-clock/unix/macosx/macosx.factor

index b16061d12a6bc3d199d636489acff3c77a69e796..5bdb8ffa29fa94aeac4788e9306641a03f5447ee 100755 (executable)
@@ -1,4 +1,24 @@
 ! Copyright (C) 2009 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: ;
+USING: accessors alien.syntax classes.struct kernel math
+monotonic-clock system unix.types ;
 IN: monotonic-clock.unix.macosx
+
+STRUCT: mach_timebase_info
+    { numer uint32_t }
+    { denom uint32_t } ;
+
+TYPEDEF: mach_timebase_info* mach_timebase_info_t
+TYPEDEF: mach_timebase_info mach_timebase_info_data_t
+
+FUNCTION: uint64_t mach_absolute_time ( ) ;
+FUNCTION: kern_return_t mach_timebase_info ( mach_timebase_info_t info ) ;
+FUNCTION: kern_return_t mach_wait_until ( uint64_t deadline ) ;
+
+ERROR: mach-timebase-info ret ;
+
+M: macosx monotonic-count 
+    mach_absolute_time
+    \ mach_timebase_info <struct> [
+        mach_timebase_info [ mach-timebase-info ] unless-zero
+    ] keep [ numer>> ] [ denom>> ] bi / * ;