todr_gettime todr_settime todr_getcal todr_setcal clock_ymdhms_to_secs
clock_secs_to_ymdhms - time-of-day clock support
#include <dev/clock_subr.h>
int
todr_gettime(todr_chip_handle_t, struct timeval *);
int
todr_settime(todr_chip_handle_t, struct timeval *);
int
todr_getcal(todr_chip_handle_t, int *);
int
todr_setcal(todr_chip_handle_t, int);
void
clock_secs_to_ymdhms(int, struct clock_ymdhms *);
time_t
clock_ymdhms_to_secs(struct clock_ymdhms *);
The todr_*() functions provide an interface to read, set and control
`time-of-day' devices. The todr_chip_handle_t should be obtained from a
driver for a particular hardware device that implements this interface.
Examples of such drivers currently include mk48txx(4) and
intersil7170(4).
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.
todr_setcal() specifies a calibration value in PPM units to be programmed
in the TODR device. Positive values shall speed up the TODR clock, negative
values shall slow it down. If the device in not capable of handling
calibration, this function shall return EOPNOTSUPP. The measurement and
calculations necessary to utilize this method is expected to be provided
by higher-level software modules. todr_getcal() returns the current calibration
(in PPM units) in effect on the TODR device.
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 (0-365) */
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.
The todr_*() functions return 0 if the requested operation was successful;
otherwise an error code from <sys/errno.h> shall be returned. However,
behaviour is undefined if an invalid todr_chip_handle_t is passed
to any of these functions. The clock_secs_to_ymdhms() and
clock_ymdhms_to_secs() functions never fail.
inittodr(9), resettodr(9), time(9)
BSD July 22, 2000 BSD
[ Back ] |