rem: if (x->tv_nsec < y->tv_nsec)
add: time_t sec = x->tv_sec - y->tv_sec; long int nsec = x->tv_nsec - y->tv_nsec;  if (x->tv_sec < y->tv_sec) return false;  if (sec < 0)
context: timespec_subtract (struct timespec *diff,		   const struct timespec *x, struct timespec *y){  /* Perform the carry for the later subtraction by updating Y. */  if (x->tv_nsec < y->tv_nsec)    {      int nsec = (y->tv_nsec - x->tv_nsec) / 1000000000 + 1;      y->tv_nsec -= 1000000000 * nsec;      y->tv_sec += nsec;    }  if (1000000000 < x->tv_nsec - y->tv_nsec)    {      int nsec = (y->tv_nsec - x->tv_nsec) / 1000000000;      y->tv_nsec += 1000000000 * nsec;      y->tv_sec -= nsec;    }  /* Compute the time remaining to wait.     `tv_nsec' is certainly positive. */  diff->tv_sec = x->tv_sec - y->tv_sec;  diff->tv_nsec = x->tv_nsec - y->tv_nsec;  /* Return 1 if result is positive. */  return y->tv_sec < x->tv_sec;}