Upload Tizen:Base source
[framework/base/util-linux-ng.git] / hwclock / clock.h
1 #ifndef HWCLOCK_CLOCK_H
2 #define HWCLOCK_CLOCK_H
3
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <string.h>
7 #include <errno.h>              /* for errno, EPERM, EINVAL, ENOENT */
8 #include <time.h>
9
10 struct clock_ops {
11         char *interface_name;
12         int (*get_permissions)(void);
13         int (*read_hardware_clock)(struct tm *tm);
14         int (*set_hardware_clock)(const struct tm *tm);
15         int (*synchronize_to_clock_tick)(void);
16 };
17
18 extern struct clock_ops *probe_for_cmos_clock(void);
19 extern struct clock_ops *probe_for_rtc_clock(void);
20 extern struct clock_ops *probe_for_kd_clock(void);
21
22 typedef int bool;
23 #define TRUE 1
24 #define FALSE 0
25
26 /* hwclock.c */
27 extern char *progname;
28 extern int debug;
29 extern int epoch_option;
30 extern void outsyserr(char *msg, ...)
31 #ifdef __GNUC__
32         __attribute__ ((format (printf, 1, 2)));
33 #else
34         ;
35 #endif
36 extern double time_diff(struct timeval subtrahend, struct timeval subtractor);
37 /* cmos.c */
38 extern void set_cmos_epoch(int ARCconsole, int SRM);
39 extern void set_cmos_access(int Jensen, int funky_toy);
40
41 /* rtc.c */
42 extern int get_epoch_rtc(unsigned long *epoch, int silent);
43 extern int set_epoch_rtc(unsigned long epoch);
44 extern char *rtc_dev_name;
45
46 #ifdef HAVE_LIBAUDIT
47 extern void hwaudit_exit(int status);
48 # define hwclock_exit(_status)  hwaudit_exit(_status)
49 #else
50 # define hwclock_exit(_status)  exit(_status)
51 #endif
52
53 #endif /* HWCLOCK_CLOCK_H */