timespec.h 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. #ifndef _TIMESPEC_H
  2. #define _TIMESPEC_H
  3. #ifdef HAVE_CONFIG_H
  4. #include "config.h"
  5. #endif
  6. #ifndef HAVE_TIMESPEC
  7. struct timespec {
  8. time_t tv_sec;
  9. long tv_nsec;
  10. };
  11. #endif /* !HAVE_TIMESPEC */
  12. #ifndef timespecclear
  13. # define timespecclear(ts) (ts)->tv_sec = (ts)->tv_nsec = 0
  14. #endif
  15. #ifndef timespecisset
  16. # define timespecisset(ts) ((ts)->tv_sec || (ts)->tv_nsec)
  17. #endif
  18. #ifndef timespecsub
  19. # define timespecsub(minuend, subrahend, difference) \
  20. do { \
  21. (difference)->tv_sec = (minuend)->tv_sec - (subrahend)->tv_sec; \
  22. (difference)->tv_nsec = (minuend)->tv_nsec - (subrahend)->tv_nsec; \
  23. if ((difference)->tv_nsec < 0) { \
  24. (difference)->tv_nsec += 1000000000L; \
  25. (difference)->tv_sec--; \
  26. } \
  27. } while (0)
  28. #endif
  29. #endif /* !_TIMESPEC_H */