/src/VBox/GuestHost/OpenGL/include/cr_timer.h

https://gitlab.com/ufo/virtualbox-ose-3-1-8 · C Header · 54 lines · 44 code · 10 blank · 0 comment · 7 complexity · 2b14247cd7c6d6a6bf747752ba8e823c MD5 · raw file

  1. #ifndef CR_TIMER_H
  2. #define CR_TIMER_H
  3. #ifndef WINDOWS
  4. #include <sys/time.h>
  5. #if defined (IRIX) || defined( IRIX64 )
  6. typedef unsigned long long iotimer64_t;
  7. typedef unsigned int iotimer32_t;
  8. #endif
  9. #else
  10. #include <windows.h>
  11. #endif
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15. typedef struct Timer
  16. {
  17. double time0, elapsed;
  18. char running;
  19. int fd;
  20. #if defined (IRIX) || defined( IRIX64 )
  21. unsigned long long counter64;
  22. unsigned int counter32;
  23. unsigned int cycleval;
  24. volatile iotimer64_t *iotimer_addr64;
  25. volatile iotimer32_t *iotimer_addr32;
  26. void *unmapLocation;
  27. int unmapSize;
  28. #elif defined(WINDOWS)
  29. LARGE_INTEGER performance_counter, performance_frequency;
  30. double one_over_frequency;
  31. #elif defined( Linux ) || defined( FreeBSD ) || defined(DARWIN) || defined(AIX) || defined (SunOS) || defined(OSF1)
  32. struct timeval timeofday;
  33. #endif
  34. } CRTimer;
  35. CRTimer *crTimerNewTimer( void );
  36. void crDestroyTimer( CRTimer *t );
  37. void crStartTimer( CRTimer *t );
  38. void crStopTimer( CRTimer *t );
  39. void crResetTimer( CRTimer *t );
  40. double crTimerTime( CRTimer *t );
  41. #ifdef __cplusplus
  42. }
  43. #endif
  44. #endif /* CR_TIMER_H */