X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=os%2Fhptime.h;h=a5072cca4801c18ae17cd2bc43d6d38287e7d533;hb=5f3952176a4e9a00ca8dd5ec4a6b994958f89e0a;hp=9f91ad3677b1cf51640e972fa784cead554b3516;hpb=277b540c0764dd376dcf583acdc97a2b2fd3d8e6;p=bertos.git diff --git a/os/hptime.h b/os/hptime.h old mode 100755 new mode 100644 index 9f91ad36..a5072cca --- a/os/hptime.h +++ b/os/hptime.h @@ -1,31 +1,14 @@ -/*! +/** * \file * * * \brief Portable abstraction for high-resolution time handling (interface) * - * \version $Id$ * \author Bernardo Innocenti */ - -/*#* - *#* $Log$ - *#* Revision 1.4 2004/08/25 14:12:09 rasky - *#* Aggiornato il comment block dei log RCS - *#* - *#* Revision 1.3 2004/08/10 05:45:04 bernie - *#* Fix spacing in header. - *#* - *#* Revision 1.2 2004/06/03 11:27:09 bernie - *#* Add dual-license information. - *#* - *#* Revision 1.1 2004/06/03 09:01:06 bernie - *#* Import into DevLib. - *#* - *#*/ #ifndef HPTIME_H #define HPTIME_H @@ -35,33 +18,36 @@ extern "C" { #ifdef _WIN32 - /* type for time expressed in ms */ - typedef unsigned long mtime_t; + /** our type for "high precision absolute time" */ + typedef __int64 hptime_t; - /* our type for "high precision absolute time" */ - typedef unsigned __int64 hptime_t; + #define HPTIME_TICKS_PER_SECOND (10000000I64) + #define HPTIME_TICKS_PER_MILLISEC (10000I64) + #define HPTIME_TICKS_PER_MICRO (10I64) - #define HPTIME_TICKS_PER_SECOND ((hptime_t)10000000I64) - #define HPTIME_TICKS_PER_MILLISEC ((hptime_t)10000I64) - #define HPTIME_TICKS_PER_MICRO ((hptime_t)10I64) +#elif defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)) -#elif defined(__unix__) + #include /* int64_t */ - /* type for time expressed in ms */ - typedef long mtime_t; + #ifndef DEVLIB_MTIME_DEFINED + #define DEVLIB_MTIME_DEFINED 1 /* Resolve conflict with */ + typedef int32_t mtime_t; + #define SIZEOF_MTIME_T (32 / CPU_BITS_PER_CHAR) + #define MTIME_INFINITE 0x7FFFFFFFL + #endif - /* our type for "high precision absolute time" */ - typedef long long hptime_t; + /** Type for "high precision absolute time". */ + typedef int64_t hptime_t; - #define HPTIME_TICKS_PER_SECOND ((hptime_t)1000000LL) - #define HPTIME_TICKS_PER_MILLISEC ((hptime_t)1000LL) - #define HPTIME_TICKS_PER_MICRO ((hptime_t)1LL) + #define HPTIME_TICKS_PER_SECOND (1000000LL) + #define HPTIME_TICKS_PER_MILLISEC (1000LL) + #define HPTIME_TICKS_PER_MICRO (1LL) #else /* !__unix__ */ #error OS dependent support code missing for this OS #endif /* !__unix__ */ -/*! +/** * Return the current time with the maximum precision made available from the hosting OS */ extern hptime_t hptime_get(void);