his_addr_len = sizeof(his_addr);
/* Get timestamp */
- SCH_GetFileReadyTime(&now, NULL);
+ SCH_GetLastEventTime(&now, NULL, NULL);
sock_fd = (long)anything;
status = recvfrom (sock_fd, (char *)&msg, message_length, flags,
assert(initialised);
- SCH_GetFileReadyTime(&now, &now_err);
+ SCH_GetLastEventTime(&now, &now_err, NULL);
iov.iov_base = message.arbitrary;
iov.iov_len = sizeof(message);
/* Read RTC time, sandwiched between two polls of the system clock
so we can bound any error. */
- SCH_GetFileReadyTime(&sys_time, NULL);
+ SCH_GetLastEventTime(&sys_time, NULL, NULL);
status = ioctl(fd, RTC_RD_TIME, &rtc_raw);
if (status < 0) {
/* ================================================== */
void
-SCH_GetFileReadyTime(struct timeval *tv, double *err)
+SCH_GetLastEventTime(struct timeval *cooked, double *err, struct timeval *raw)
{
- *tv = last_select_ts;
- if (err)
- *err = last_select_ts_err;
+ if (cooked) {
+ *cooked = last_select_ts;
+ if (err)
+ *err = last_select_ts_err;
+ }
+ if (raw)
+ *raw = last_select_ts_raw;
}
/* ================================================== */
);
extern void SCH_RemoveInputFileHandler(int fd);
-/* Get the time (cooked) when file descriptor became ready, intended for use
- in file handlers */
-extern void SCH_GetFileReadyTime(struct timeval *tv, double *err);
+/* Get the time stamp taken after a file descriptor became ready or a timeout expired */
+extern void SCH_GetLastEventTime(struct timeval *cooked, double *err, struct timeval *raw);
/* This queues a timeout to elapse at a given (raw) local time */
extern SCH_TimeoutID SCH_AddTimeout(struct timeval *tv, SCH_TimeoutHandler, SCH_ArbitraryArgument);