The
todr_*() functions provide an interface to read, set and control ‘time-of-day' devices. A driver for a ‘time-of-day' device registers its
todr_chip_handle_t with machine-dependent code using the
todr_attach() function. Alternatively, a machine-dependent front-end to a ‘time-of-day' device driver may obtain the
todr_chip_handle_t directly.
The
todr_gettime() retrieves the current data and time from the TODR device and returns it in the
struct timeval storage provided by the caller.
todr_settime() sets the date and time in the TODR device represented by
todr_chip_handle_t according to the
struct timeval argument.
The utilities
clock_secs_to_ymdhms() and
clock_ymdhms_to_secs() are provided to convert a time value in seconds to and from a structure representing the date and time as a <year,month,day,weekday,hour,minute,seconds> tuple. This structure is defined as follows:
struct clock_ymdhms {
u_short dt_year; /* Year */
u_char dt_mon; /* Month (1-12) */
u_char dt_day; /* Day (1-31) */
u_char dt_wday; /* Day of week (0-6) */
u_char dt_hour; /* Hour (0-23) */
u_char dt_min; /* Minute (0-59) */
u_char dt_sec; /* Second (0-59) */
};
Note: leap years are recognised by these conversion routines.