There are three main data structures used by the RTC framework on Linux systems. They are the strcut rtc_time, struct rtc_device, and struct rtc_class_ops structures. The former is an opaque structure that represents a given date and time; the second structure represents the physical RTC device; and the last one represents a set of operations exposed by the driver and used by the RTC core to read/update a device's date/time/alarm.
The only header needed to pull RTC functions from within your driver is:
#include <linux/rtc.h>
The same file contains all of the three structures enumerated in the preceding section:
struct rtc_time { int tm_sec; /* seconds after the minute */ int tm_min; /* minutes after the hour - [0, 59] */ int tm_hour; /* hours since midnight - [0, 23] */ int tm_mday; /* day of the month - [1, 31]...