From c646a6f4e596f64ab388863122fa02636db96148 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Sat, 29 Nov 2014 19:45:06 +0000 Subject: Add monotonic timer for AmigaOS 4.0+ --- src/time.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/time.c b/src/time.c index 736c982..46a0be2 100644 --- a/src/time.c +++ b/src/time.c @@ -24,6 +24,8 @@ #include #include #include +#elif defined(__amigaos4__) +#include #else #include #endif @@ -54,6 +56,18 @@ nsuerror nsu_getmonotonic_ms(uint64_t *current_out) mach_port_deallocate(mach_task_self(), cclock); current = (mts.tv_sec * 1000) + (mts.tv_nsec / 1000000); +#elif defined(__amigaos4__) + struct TimeVal tv; + + /* NB: The calling task must already have opened timer.device + * and obtained the interface. + */ + if (ITimer != NULL) { + ITimer->GetUpTime(&tv); + current = (tv.Seconds * 1000) + (tv.Microseconds / 1000); + } else { + current = 0; /* \todo should we be opening timer.device, or printing a warning? */ + } #else #warning "Using dodgy gettimeofday() fallback" /** \todo Implement this properly! */ -- cgit v1.2.3