Subversion Repositories Kolibri OS

Rev

Rev 6934 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6934 Rev 6936
Line 60... Line 60...
60
 * @flags:		flags describing special properties
60
 * @flags:		flags describing special properties
61
 * @archdata:		arch-specific data
61
 * @archdata:		arch-specific data
62
 * @suspend:		suspend function for the clocksource, if necessary
62
 * @suspend:		suspend function for the clocksource, if necessary
63
 * @resume:		resume function for the clocksource, if necessary
63
 * @resume:		resume function for the clocksource, if necessary
64
 * @owner:		module reference, must be set by clocksource in modules
64
 * @owner:		module reference, must be set by clocksource in modules
-
 
65
 *
-
 
66
 * Note: This struct is not used in hotpathes of the timekeeping code
-
 
67
 * because the timekeeper caches the hot path fields in its own data
-
 
68
 * structure, so no line cache alignment is required,
-
 
69
 *
-
 
70
 * The pointer to the clocksource itself is handed to the read
-
 
71
 * callback. If you need extra information there you can wrap struct
-
 
72
 * clocksource into your own struct. Depending on the amount of
-
 
73
 * information you need you should consider to cache line align that
-
 
74
 * structure.
65
 */
75
 */
66
struct clocksource {
76
struct clocksource {
67
	/*
-
 
68
	 * Hotpath data, fits in a single cache line when the
-
 
69
	 * clocksource itself is cacheline aligned.
-
 
70
	 */
-
 
71
	cycle_t (*read)(struct clocksource *cs);
77
	cycle_t (*read)(struct clocksource *cs);
72
	cycle_t mask;
78
	cycle_t mask;
73
	u32 mult;
79
	u32 mult;
74
	u32 shift;
80
	u32 shift;
75
	u64 max_idle_ns;
81
	u64 max_idle_ns;
Line 93... Line 99...
93
	struct list_head wd_list;
99
	struct list_head wd_list;
94
	cycle_t cs_last;
100
	cycle_t cs_last;
95
	cycle_t wd_last;
101
	cycle_t wd_last;
96
#endif
102
#endif
97
	struct module *owner;
103
	struct module *owner;
98
} ____cacheline_aligned;
104
};
Line 99... Line 105...
99
 
105
 
100
/*
106
/*
101
 * Clock source flags bits::
107
 * Clock source flags bits::
102
 */
108
 */