|
@@ -113,6 +113,21 @@ struct timespec current_kernel_time(void);
|
|
|
#define CURRENT_TIME (current_kernel_time())
|
|
|
#define CURRENT_TIME_SEC ((struct timespec) { get_seconds(), 0 })
|
|
|
|
|
|
+/* Some architectures do not supply their own clocksource.
|
|
|
+ * This is mainly the case in architectures that get their
|
|
|
+ * inter-tick times by reading the counter on their interval
|
|
|
+ * timer. Since these timers wrap every tick, they're not really
|
|
|
+ * useful as clocksources. Wrapping them to act like one is possible
|
|
|
+ * but not very efficient. So we provide a callout these arches
|
|
|
+ * can implement for use with the jiffies clocksource to provide
|
|
|
+ * finer then tick granular time.
|
|
|
+ */
|
|
|
+#ifdef CONFIG_ARCH_USES_GETTIMEOFFSET
|
|
|
+extern u32 arch_gettimeoffset(void);
|
|
|
+#else
|
|
|
+static inline u32 arch_gettimeoffset(void) { return 0; }
|
|
|
+#endif
|
|
|
+
|
|
|
extern void do_gettimeofday(struct timeval *tv);
|
|
|
extern int do_settimeofday(struct timespec *tv);
|
|
|
extern int do_sys_settimeofday(struct timespec *tv, struct timezone *tz);
|