Wanted to add a note here:
- Add two timespec64 values and do a safety check for overflow.
- It's assumed that both values are valid (>= 0).
- And, each timespec64 is in normalized form.
- */
+struct timespec64 timespec64_add_safe(const struct timespec64 lhs,
const struct timespec64 rhs)
+{
struct timespec64 res;
set_normalized_timespec64(&res, lhs.tv_sec + rhs.tv_sec,
lhs.tv_nsec + rhs.tv_nsec);
if (unlikely(res.tv_sec < lhs.tv_sec || res.tv_sec < rhs.tv_sec)) {
This check can be reduced to only the first condition if we assume the timespecs passed in to be normalized. The current patch maintains the way timespec_add_safe() does it for consistency.
-Deepa