62,12 → 62,18 |
* @suspend: suspend function for the clocksource, if necessary |
* @resume: resume function for the clocksource, if necessary |
* @owner: module reference, must be set by clocksource in modules |
* |
* Note: This struct is not used in hotpathes of the timekeeping code |
* because the timekeeper caches the hot path fields in its own data |
* structure, so no line cache alignment is required, |
* |
* The pointer to the clocksource itself is handed to the read |
* callback. If you need extra information there you can wrap struct |
* clocksource into your own struct. Depending on the amount of |
* information you need you should consider to cache line align that |
* structure. |
*/ |
struct clocksource { |
/* |
* Hotpath data, fits in a single cache line when the |
* clocksource itself is cacheline aligned. |
*/ |
cycle_t (*read)(struct clocksource *cs); |
cycle_t mask; |
u32 mult; |
95,7 → 101,7 |
cycle_t wd_last; |
#endif |
struct module *owner; |
} ____cacheline_aligned; |
}; |
|
/* |
* Clock source flags bits:: |