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.5 2005/11/04 16:20:02 bernie
17 *#* Fix reference to README.devlib in header.
19 *#* Revision 1.4 2004/08/25 14:12:09 rasky
20 *#* Aggiornato il comment block dei log RCS
22 *#* Revision 1.3 2004/08/10 05:45:04 bernie
23 *#* Fix spacing in header.
25 *#* Revision 1.2 2004/06/03 11:27:09 bernie
26 *#* Add dual-license information.
28 *#* Revision 1.1 2004/06/03 09:01:06 bernie
29 *#* Import into DevLib.
37 #endif /* __cplusplus */
41 /* type for time expressed in ms */
42 typedef unsigned long mtime_t;
44 /* our type for "high precision absolute time" */
45 typedef unsigned __int64 hptime_t;
47 #define HPTIME_TICKS_PER_SECOND ((hptime_t)10000000I64)
48 #define HPTIME_TICKS_PER_MILLISEC ((hptime_t)10000I64)
49 #define HPTIME_TICKS_PER_MICRO ((hptime_t)10I64)
51 #elif defined(__unix__)
53 /* type for time expressed in ms */
56 /* our type for "high precision absolute time" */
57 typedef long long hptime_t;
59 #define HPTIME_TICKS_PER_SECOND ((hptime_t)1000000LL)
60 #define HPTIME_TICKS_PER_MILLISEC ((hptime_t)1000LL)
61 #define HPTIME_TICKS_PER_MICRO ((hptime_t)1LL)
64 #error OS dependent support code missing for this OS
65 #endif /* !__unix__ */
68 * Return the current time with the maximum precision made available from the hosting OS
70 extern hptime_t hptime_get(void);
74 #endif /* __cplusplus */