1 /* SPDX-License-Identifier: GPL-2.0-only */ << 2 /* 1 /* 3 * sched_clock.h: support for extending counte 2 * sched_clock.h: support for extending counters to full 64-bit ns counter >> 3 * >> 4 * This program is free software; you can redistribute it and/or modify >> 5 * it under the terms of the GNU General Public License version 2 as >> 6 * published by the Free Software Foundation. 4 */ 7 */ 5 #ifndef LINUX_SCHED_CLOCK 8 #ifndef LINUX_SCHED_CLOCK 6 #define LINUX_SCHED_CLOCK 9 #define LINUX_SCHED_CLOCK 7 10 8 #include <linux/types.h> << 9 << 10 #ifdef CONFIG_GENERIC_SCHED_CLOCK 11 #ifdef CONFIG_GENERIC_SCHED_CLOCK 11 /** !! 12 extern void sched_clock_postinit(void); 12 * struct clock_read_data - data required to r !! 13 #else 13 * !! 14 static inline void sched_clock_postinit(void) { } 14 * @epoch_ns: sched_clock() value at !! 15 #endif 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); << 40 16 41 extern void sched_clock_register(u64 (*read)(v 17 extern void sched_clock_register(u64 (*read)(void), int bits, 42 unsigned long 18 unsigned long rate); 43 #else << 44 static inline void generic_sched_clock_init(vo << 45 << 46 static inline void sched_clock_register(u64 (* << 47 unsign << 48 { << 49 } << 50 #endif << 51 19 52 #endif 20 #endif 53 21
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.