Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* |
2 | * linux/include/asm-arm/rtc.h | |
3 | * | |
4 | * Copyright (C) 2003 Deep Blue Solutions Ltd. | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License version 2 as | |
8 | * published by the Free Software Foundation. | |
9 | */ | |
10 | #ifndef ASMARM_RTC_H | |
11 | #define ASMARM_RTC_H | |
12 | ||
13 | struct module; | |
14 | ||
15 | struct rtc_ops { | |
16 | struct module *owner; | |
17 | int (*open)(void); | |
18 | void (*release)(void); | |
19 | int (*ioctl)(unsigned int, unsigned long); | |
20 | ||
d5aa207e | 21 | int (*read_time)(struct rtc_time *); |
1da177e4 | 22 | int (*set_time)(struct rtc_time *); |
d5aa207e | 23 | int (*read_alarm)(struct rtc_wkalrm *); |
1da177e4 LT |
24 | int (*set_alarm)(struct rtc_wkalrm *); |
25 | int (*proc)(char *buf); | |
26 | }; | |
27 | ||
1da177e4 LT |
28 | void rtc_next_alarm_time(struct rtc_time *, struct rtc_time *, struct rtc_time *); |
29 | void rtc_update(unsigned long, unsigned long); | |
30 | int register_rtc(struct rtc_ops *); | |
31 | void unregister_rtc(struct rtc_ops *); | |
32 | ||
33 | static inline int rtc_periodic_alarm(struct rtc_time *tm) | |
34 | { | |
35 | return (tm->tm_year == -1) || | |
36 | ((unsigned)tm->tm_mon >= 12) || | |
37 | ((unsigned)(tm->tm_mday - 1) >= 31) || | |
38 | ((unsigned)tm->tm_hour > 23) || | |
39 | ((unsigned)tm->tm_min > 59) || | |
40 | ((unsigned)tm->tm_sec > 59); | |
41 | } | |
42 | ||
43 | #endif |