|
@@ -1159,56 +1159,6 @@ void __init time_init(void)
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-#define FEBRUARY 2
|
|
|
-#define STARTOFTIME 1970
|
|
|
-#define SECDAY 86400L
|
|
|
-#define SECYR (SECDAY * 365)
|
|
|
-#define leapyear(year) ((year) % 4 == 0 && \
|
|
|
- ((year) % 100 != 0 || (year) % 400 == 0))
|
|
|
-#define days_in_year(a) (leapyear(a) ? 366 : 365)
|
|
|
-#define days_in_month(a) (month_days[(a) - 1])
|
|
|
-
|
|
|
-static int month_days[12] = {
|
|
|
- 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
|
|
|
-};
|
|
|
-
|
|
|
-void to_tm(int tim, struct rtc_time * tm)
|
|
|
-{
|
|
|
- register int i;
|
|
|
- register long hms, day;
|
|
|
-
|
|
|
- day = tim / SECDAY;
|
|
|
- hms = tim % SECDAY;
|
|
|
-
|
|
|
- /* Hours, minutes, seconds are easy */
|
|
|
- tm->tm_hour = hms / 3600;
|
|
|
- tm->tm_min = (hms % 3600) / 60;
|
|
|
- tm->tm_sec = (hms % 3600) % 60;
|
|
|
-
|
|
|
- /* Number of years in days */
|
|
|
- for (i = STARTOFTIME; day >= days_in_year(i); i++)
|
|
|
- day -= days_in_year(i);
|
|
|
- tm->tm_year = i;
|
|
|
-
|
|
|
- /* Number of months in days left */
|
|
|
- if (leapyear(tm->tm_year))
|
|
|
- days_in_month(FEBRUARY) = 29;
|
|
|
- for (i = 1; day >= days_in_month(i); i++)
|
|
|
- day -= days_in_month(i);
|
|
|
- days_in_month(FEBRUARY) = 28;
|
|
|
- tm->tm_mon = i;
|
|
|
-
|
|
|
- /* Days are what is left over (+1) from all that. */
|
|
|
- tm->tm_mday = day + 1;
|
|
|
-
|
|
|
- /*
|
|
|
- * No-one uses the day of the week.
|
|
|
- */
|
|
|
- tm->tm_wday = -1;
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(to_tm);
|
|
|
-
|
|
|
/*
|
|
|
* Divide a 128-bit dividend by a 32-bit divisor, leaving a 128 bit
|
|
|
* result.
|