From: Shailabh N. <na...@wa...> - 2006-01-03 23:46:35
|
Forwarding again as this patch didn't make it to lse-tech, ckrm-tech and elsa-devel. Please include Andrew Morton and lkml on replies. -- Shailabh -------- Original Message -------- Subject: [Patch 1/6] Delay accounting: timespec diff Date: Tue, 03 Jan 2006 23:23:59 +0000 From: Shailabh Nagar <na...@wa...> To: Shailabh Nagar <na...@wa...> CC: Andrew Morton <ak...@os...>, linux-kernel <lin...@vg...>, elsa-devel <els...@li...>, LSE <lse...@li...>, ckrm-tech <ckr...@li...> References: <43B...@wa...> nstimestamp_diff.patch Add kernel utility function for measuring the interval (diff) between two timespec values, adjusting for overflow Signed-off-by: Shailabh Nagar <na...@wa...> include/linux/time.h | 15 +++++++++++++++ 1 files changed, 15 insertions(+) Index: linux-2.6.15-rc7/include/linux/time.h =================================================================== --- linux-2.6.15-rc7.orig/include/linux/time.h +++ linux-2.6.15-rc7/include/linux/time.h @@ -114,6 +114,21 @@ set_normalized_timespec (struct timespec ts->tv_nsec = nsec; } +/* + * timespec_diff_ns - Return difference of two timestamps in nanoseconds + * In the rare case of @end being earlier than @start, return zero + */ +static inline unsigned long long +timespec_diff_ns(struct timespec *start, struct timespec *end) +{ + long long ret; + + ret = end->tv_sec*(1000000000) + end->tv_nsec; + ret -= start->tv_sec*(1000000000) + start->tv_nsec; + if (ret < 0) + return 0; + return ret; +} #endif /* __KERNEL__ */ #define NFDBITS __NFDBITS |