X-Git-Url: https://rtime.felk.cvut.cz/gitweb/frescor/frsh-include.git/blobdiff_plain/b06ccfcf9a800a5ea2c2975aafa8af0e32d6e5c7..d6ccdcca3ca032b65ce0eb294f0c9657a7446725:/timespec_operations.h diff --git a/timespec_operations.h b/timespec_operations.h index e9e13ad..2a4cf27 100644 --- a/timespec_operations.h +++ b/timespec_operations.h @@ -170,23 +170,25 @@ do { \ // msec2timespec // //---------------// -static inline void msec2timespec(long msec, struct timespec *timespec) +static inline struct timespec msec2timespec(long msec) { - memset(timespec, 0, sizeof(struct timespec)); + struct timespec result = {-1, -1}; if (msec >= 1000) { - timespec->tv_sec = msec/1000; - timespec->tv_nsec = (msec % 1000) * 1000000; + result.tv_sec = msec/1000; + result.tv_nsec = (msec % 1000) * 1000000; } else { - timespec->tv_sec = 0; - timespec->tv_nsec = msec * 1000000; + result.tv_sec = 0; + result.tv_nsec = msec * 1000000; } + + return result; } -static inline void timespec2msec(const struct timespec *timespec, long *msec) +static inline long timespec2msec(const struct timespec *timespec) { - *msec = (timespec->tv_sec % 2147482) * 1000 + timespec->tv_nsec/1000000; + return (timespec->tv_sec % 2147482) * 1000 + timespec->tv_nsec/1000000; } @@ -225,7 +227,7 @@ static inline int timespec_lessthan_msec(struct timespec *timespec, long msec) { struct timespec msec_timespec = {0, 0}; - msec2timespec(msec, &msec_timespec); + msec_timespec = msec2timespec(msec); return smaller_timespec(timespec, &msec_timespec); } @@ -237,7 +239,7 @@ static inline void msec_addto_timespec(long msec, struct timespec *timespec) { struct timespec msec_timespec = {0, 0}; - msec2timespec(msec, &msec_timespec); + msec_timespec = msec2timespec(msec); incr_timespec(timespec, &msec_timespec); }