hc
2024-11-01 2f529f9b558ca1c1bd74be7437a84e4711743404
kernel/kernel/time/tick-internal.h
....@@ -48,15 +48,26 @@
4848 dev->state_use_accessors = state;
4949 }
5050
51
+static inline bool tick_check_is_proxy(struct clock_event_device *dev)
52
+{
53
+ if (!irqs_pipelined())
54
+ return false;
55
+
56
+ return dev && dev->features & CLOCK_EVT_FEAT_PROXY;
57
+}
58
+
5159 extern void clockevents_shutdown(struct clock_event_device *dev);
5260 extern void clockevents_exchange_device(struct clock_event_device *old,
5361 struct clock_event_device *new);
54
-extern void clockevents_switch_state(struct clock_event_device *dev,
55
- enum clock_event_state state);
5662 extern int clockevents_program_event(struct clock_event_device *dev,
5763 ktime_t expires, bool force);
5864 extern void clockevents_handle_noop(struct clock_event_device *dev);
5965 extern int __clockevents_update_freq(struct clock_event_device *dev, u32 freq);
66
+#ifdef CONFIG_IRQ_PIPELINE
67
+int clockevents_register_proxy(struct clock_proxy_device *dev);
68
+extern void clockevents_unregister_proxy(struct clock_proxy_device *dev);
69
+int tick_setup_proxy(struct clock_proxy_device *dev);
70
+#endif
6071 extern ssize_t sysfs_get_uname(const char *buf, char *dst, size_t cnt);
6172
6273 /* Broadcasting support */