From d0613cb79dcbe6b579371176d74ae34af57c2d23 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Sun, 15 Nov 2009 00:47:27 -0600 Subject: [PATCH] monotonic-count on mac --- .../monotonic-clock/unix/macosx/macosx.factor | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/extra/monotonic-clock/unix/macosx/macosx.factor b/extra/monotonic-clock/unix/macosx/macosx.factor index b16061d12a..5bdb8ffa29 100755 --- a/extra/monotonic-clock/unix/macosx/macosx.factor +++ b/extra/monotonic-clock/unix/macosx/macosx.factor @@ -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 [ + mach_timebase_info [ mach-timebase-info ] unless-zero + ] keep [ numer>> ] [ denom>> ] bi / * ;