aboutsummaryrefslogtreecommitdiff
path: root/libbb/rtc.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbb/rtc.c')
-rw-r--r--libbb/rtc.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/libbb/rtc.c b/libbb/rtc.c
index 4cbf32206..78f10c65d 100644
--- a/libbb/rtc.c
+++ b/libbb/rtc.c
@@ -40,21 +40,23 @@ int rtc_adjtime_is_utc(void)
40 return utc; 40 return utc;
41} 41}
42 42
43int rtc_xopen(const char *default_rtc, int flags) 43int rtc_xopen(const char **default_rtc, int flags)
44{ 44{
45 int rtc; 45 int rtc;
46 46
47 if (!default_rtc) { 47 if (!*default_rtc) {
48 rtc = open("/dev/rtc", flags); 48 *default_rtc = "/dev/rtc";
49 rtc = open(*default_rtc, flags);
49 if (rtc >= 0) 50 if (rtc >= 0)
50 return rtc; 51 return rtc;
51 rtc = open("/dev/rtc0", flags); 52 *default_rtc = "/dev/rtc0";
53 rtc = open(*default_rtc, flags);
52 if (rtc >= 0) 54 if (rtc >= 0)
53 return rtc; 55 return rtc;
54 default_rtc = "/dev/misc/rtc"; 56 *default_rtc = "/dev/misc/rtc";
55 } 57 }
56 58
57 return xopen(default_rtc, flags); 59 return xopen(*default_rtc, flags);
58} 60}
59 61
60time_t rtc_read_time(int fd, int utc) 62time_t rtc_read_time(int fd, int utc)