atime.it_value.tv_sec = ap->time.tv_sec;
atime.it_value.tv_nsec = ap->time.tv_usec * NS_PER_US;
/* perform borrow for subtraction if necessary */
atime.it_value.tv_sec = ap->time.tv_sec;
atime.it_value.tv_nsec = ap->time.tv_usec * NS_PER_US;
/* perform borrow for subtraction if necessary */
atime.it_value.tv_sec--, atime.it_value.tv_nsec += US_PER_S * NS_PER_US;
atime.it_value.tv_sec -= now.tv_sec;
atime.it_value.tv_sec--, atime.it_value.tv_nsec += US_PER_S * NS_PER_US;
atime.it_value.tv_sec -= now.tv_sec;
timerfd_settime(intr_handle.fd, 0, &atime, NULL);
}
rte_spinlock_unlock(&alarm_list_lk);
timerfd_settime(intr_handle.fd, 0, &atime, NULL);
}
rte_spinlock_unlock(&alarm_list_lk);
- new_alarm->time.tv_usec = (now.tv_usec + us) % US_PER_S;
- new_alarm->time.tv_sec = now.tv_sec + ((now.tv_usec + us) / US_PER_S);
+ new_alarm->time.tv_usec = ((now.tv_nsec / NS_PER_US) + us) % US_PER_S;
+ new_alarm->time.tv_sec = now.tv_sec + (((now.tv_nsec / NS_PER_US) + us) / US_PER_S);