|
@@ -47,6 +47,7 @@ struct clocksource;
|
|
|
* @mult: cycle to nanosecond multiplier
|
|
|
* @shift: cycle to nanosecond divisor (power of two)
|
|
|
* @flags: flags describing special properties
|
|
|
+ * @vread: vsyscall based read
|
|
|
* @cycle_interval: Used internally by timekeeping core, please ignore.
|
|
|
* @xtime_interval: Used internally by timekeeping core, please ignore.
|
|
|
*/
|
|
@@ -59,6 +60,7 @@ struct clocksource {
|
|
|
u32 mult;
|
|
|
u32 shift;
|
|
|
unsigned long flags;
|
|
|
+ cycle_t (*vread)(void);
|
|
|
|
|
|
/* timekeeping specific data, ignore */
|
|
|
cycle_t cycle_last, cycle_interval;
|
|
@@ -197,4 +199,12 @@ extern int clocksource_register(struct clocksource*);
|
|
|
extern struct clocksource* clocksource_get_next(void);
|
|
|
extern void clocksource_change_rating(struct clocksource *cs, int rating);
|
|
|
|
|
|
+#ifdef CONFIG_GENERIC_TIME_VSYSCALL
|
|
|
+extern void update_vsyscall(struct timespec *ts, struct clocksource *c);
|
|
|
+#else
|
|
|
+static inline void update_vsyscall(struct timespec *ts, struct clocksource *c)
|
|
|
+{
|
|
|
+}
|
|
|
+#endif
|
|
|
+
|
|
|
#endif /* _LINUX_CLOCKSOURCE_H */
|