1 /* SPDX-License-Identifier: GPL-2.0-only */ 1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 2 /* 3 * sched_clock.h: support for extending counte 3 * sched_clock.h: support for extending counters to full 64-bit ns counter 4 */ 4 */ 5 #ifndef LINUX_SCHED_CLOCK 5 #ifndef LINUX_SCHED_CLOCK 6 #define LINUX_SCHED_CLOCK 6 #define LINUX_SCHED_CLOCK 7 7 8 #include <linux/types.h> << 9 << 10 #ifdef CONFIG_GENERIC_SCHED_CLOCK 8 #ifdef CONFIG_GENERIC_SCHED_CLOCK 11 /** << 12 * struct clock_read_data - data required to r << 13 * << 14 * @epoch_ns: sched_clock() value at << 15 * @epoch_cyc: Clock cycle value at l << 16 * @sched_clock_mask: Bitmask for two's comp << 17 * clocks. << 18 * @read_sched_clock: Current clock source ( << 19 * @mult: Multiplier for scaled << 20 * @shift: Shift value for scaled << 21 * << 22 * Care must be taken when updating this struc << 23 * some very hot code paths. It occupies <=40 << 24 * with the seqcount used to synchronize acces << 25 * a 64 byte cache line. << 26 */ << 27 struct clock_read_data { << 28 u64 epoch_ns; << 29 u64 epoch_cyc; << 30 u64 sched_clock_mask; << 31 u64 (*read_sched_clock)(void); << 32 u32 mult; << 33 u32 shift; << 34 }; << 35 << 36 extern struct clock_read_data *sched_clock_rea << 37 extern int sched_clock_read_retry(unsigned int << 38 << 39 extern void generic_sched_clock_init(void); 9 extern void generic_sched_clock_init(void); 40 10 41 extern void sched_clock_register(u64 (*read)(v 11 extern void sched_clock_register(u64 (*read)(void), int bits, 42 unsigned long 12 unsigned long rate); 43 #else 13 #else 44 static inline void generic_sched_clock_init(vo 14 static inline void generic_sched_clock_init(void) { } 45 15 46 static inline void sched_clock_register(u64 (* 16 static inline void sched_clock_register(u64 (*read)(void), int bits, 47 unsign 17 unsigned long rate) 48 { 18 { 49 } 19 } 50 #endif 20 #endif 51 21 52 #endif 22 #endif 53 23
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.