libfuncs is collection of code (list, queue, circular buffer, io, logging, etc.). https://georgi.unixsol.org/programs/libfuncs/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

misc.c 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include <sys/time.h>
  2. #include <string.h>
  3. #include <errno.h>
  4. int xstrcmp(char *a, char *b) {
  5. if (!a && b) return 1;
  6. if (!b && a) return 1;
  7. if (a == b) return 0;
  8. return strcmp(a, b);
  9. }
  10. unsigned long long timediff_nsec(struct timespec *start_ts, struct timespec *end_ts) {
  11. unsigned long long nsec;
  12. nsec = (end_ts->tv_sec - start_ts->tv_sec) * 1000000000;
  13. nsec += (end_ts->tv_nsec - start_ts->tv_nsec);
  14. return nsec;
  15. }
  16. unsigned long long timeval_diff_usec(struct timeval *start_ts, struct timeval *end_ts) {
  17. unsigned long long usec;
  18. usec = (end_ts->tv_sec - start_ts->tv_sec) * 1000000;
  19. usec += (end_ts->tv_usec - start_ts->tv_usec);
  20. return usec;
  21. }
  22. unsigned long long timeval_diff_msec(struct timeval *start_ts, struct timeval *end_ts) {
  23. unsigned long long msec;
  24. msec = (end_ts->tv_sec - start_ts->tv_sec) * 1000;
  25. msec += (end_ts->tv_usec - start_ts->tv_usec) / 1000;
  26. return msec;
  27. }
  28. unsigned long long timeval_diff_sec(struct timeval *start_ts, struct timeval *end_ts) {
  29. unsigned long long sec;
  30. sec = (end_ts->tv_sec - start_ts->tv_sec);
  31. sec += (end_ts->tv_usec - start_ts->tv_usec) / 1000000;
  32. return sec;
  33. }