1 #include <linux/errno.h>
2 #include <linux/sched.h>
3 #include <linux/kernel.h>
4 #include <linux/param.h>
5 #include <linux/string.h>
8 #include <asm/machdep.h>
11 #include <linux/timex.h>
13 unsigned long m68k_get_rtc_time(void)
15 unsigned int year
, mon
, day
, hour
, min
, sec
;
17 extern void arch_gettod(int *year
, int *mon
, int *day
, int *hour
,
20 arch_gettod (&year
, &mon
, &day
, &hour
, &min
, &sec
);
22 if ((year
+= 1900) < 1970)
25 return mktime(year
, mon
, day
, hour
, min
, sec
);
28 int m68k_set_rtc_time(unsigned long nowtime
)
30 if (mach_set_clock_mmss
)
31 return mach_set_clock_mmss (nowtime
);
35 void apus_heartbeat (void)
37 #ifdef CONFIG_HEARTBEAT
38 static unsigned cnt
= 0, period
= 0, dist
= 0;
40 if (cnt
== 0 || cnt
== dist
)
42 else if (cnt
== 7 || cnt
== dist
+7)
47 /* The hyperbolic function below modifies the heartbeat period
48 * length in dependency of the current (5min) load. It goes
49 * through the points f(0)=126, f(1)=86, f(5)=51,
51 period
= ((672<<FSHIFT
)/(5*avenrun
[0]+(7<<FSHIFT
))) + 30;
55 /* should be made smarter */
56 ppc_md
.heartbeat_count
= 1;