| #ifndef HWCLOCK_CLOCK_H |
| #define HWCLOCK_CLOCK_H |
| |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <string.h> |
| #include <errno.h> /* for errno, EPERM, EINVAL, ENOENT */ |
| #include <time.h> |
| |
| #include "c.h" |
| |
| struct clock_ops { |
| char *interface_name; |
| int (*get_permissions)(void); |
| int (*read_hardware_clock)(struct tm *tm); |
| int (*set_hardware_clock)(const struct tm *tm); |
| int (*synchronize_to_clock_tick)(void); |
| }; |
| |
| extern struct clock_ops *probe_for_cmos_clock(void); |
| extern struct clock_ops *probe_for_rtc_clock(void); |
| extern struct clock_ops *probe_for_kd_clock(void); |
| |
| typedef int bool; |
| |
| /* hwclock.c */ |
| extern char *progname; |
| extern int debug; |
| extern int epoch_option; |
| extern void outsyserr(char *msg, ...) |
| #ifdef __GNUC__ |
| __attribute__ ((format (printf, 1, 2))); |
| #else |
| ; |
| #endif |
| extern double time_diff(struct timeval subtrahend, struct timeval subtractor); |
| /* cmos.c */ |
| extern void set_cmos_epoch(int ARCconsole, int SRM); |
| extern void set_cmos_access(int Jensen, int funky_toy); |
| |
| /* rtc.c */ |
| extern int get_epoch_rtc(unsigned long *epoch, int silent); |
| extern int set_epoch_rtc(unsigned long epoch); |
| extern char *rtc_dev_name; |
| |
| #ifdef HAVE_LIBAUDIT |
| extern void hwaudit_exit(int status); |
| # define hwclock_exit(_status) hwaudit_exit(_status) |
| #else |
| # define hwclock_exit(_status) exit(_status) |
| #endif |
| |
| #endif /* HWCLOCK_CLOCK_H */ |