4 * Copyright 2003, 2004 Develer S.r.l. (http://www.develer.com/)
5 * This file is part of DevLib - See README.devlib for information.
8 * \brief Portable abstraction for high-resolution time handling (interface)
11 * \author Bernardo Innocenti <bernie@develer.com>
16 *#* Revision 1.9 2006/07/19 12:53:58 bernie
17 *#* Documentation fixes.
19 *#* Revision 1.8 2006/02/20 01:46:46 bernie
22 *#* Revision 1.7 2006/01/16 03:28:25 bernie
23 *#* Remove redundant mtime_t definition (cfg/compiler.h has one already).
25 *#* Revision 1.6 2005/11/27 03:57:22 bernie
26 *#* Use C99 types to match cfg/compiler.h without depending on it.
28 *#* Revision 1.5 2005/11/04 16:20:02 bernie
29 *#* Fix reference to README.devlib in header.
31 *#* Revision 1.4 2004/08/25 14:12:09 rasky
32 *#* Aggiornato il comment block dei log RCS
34 *#* Revision 1.3 2004/08/10 05:45:04 bernie
35 *#* Fix spacing in header.
37 *#* Revision 1.2 2004/06/03 11:27:09 bernie
38 *#* Add dual-license information.
40 *#* Revision 1.1 2004/06/03 09:01:06 bernie
41 *#* Import into DevLib.
49 #endif /* __cplusplus */
53 /** our type for "high precision absolute time" */
54 typedef __int64 hptime_t;
56 #define HPTIME_TICKS_PER_SECOND ((hptime_t)10000000I64)
57 #define HPTIME_TICKS_PER_MILLISEC ((hptime_t)10000I64)
58 #define HPTIME_TICKS_PER_MICRO ((hptime_t)10I64)
60 #elif defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
64 /** Type for "high precision absolute time". */
65 typedef int64_t hptime_t;
67 #define HPTIME_TICKS_PER_SECOND 1000000LL
68 #define HPTIME_TICKS_PER_MILLISEC 1000LL
69 #define HPTIME_TICKS_PER_MICRO 1LL
72 #error OS dependent support code missing for this OS
73 #endif /* !__unix__ */
76 * Return the current time with the maximum precision made available from the hosting OS
78 extern hptime_t hptime_get(void);
82 #endif /* __cplusplus */