linux/kernel/time
Patrick Ohly a038a353c3 clocksource: allow usage independent of timekeeping.c
So far struct clocksource acted as the interface between time/timekeeping.c
and hardware. This patch generalizes the concept so that a similar
interface can also be used in other contexts. For that it introduces
new structures and related functions *without* touching the existing
struct clocksource.

The reasons for adding these new structures to clocksource.[ch] are
* the APIs are clearly related
* struct clocksource could be cleaned up to use the new structs
* avoids proliferation of files with similar names (timesource.h?
  timecounter.h?)

As outlined in the discussion with John Stultz, this patch adds
* struct cyclecounter: stateless API to hardware which counts clock cycles
* struct timecounter: stateful utility code built on a cyclecounter which
  provides a nanosecond counter
* only the function to read the nanosecond counter; deltas are used internally
  and not exposed to users of timecounter

The code does no locking of the shared state. It must be called at least
as often as the cycle counter wraps around to detect these wrap arounds.
Both is the responsibility of the timecounter user.

Acked-by: John Stultz <johnstul@us.ibm.com>
Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-02-15 22:43:31 -08:00
..
clockevents.c cpumask: convert struct clock_event_device to cpumask pointers. 2008-12-13 21:20:26 +10:30
clocksource.c clocksource: allow usage independent of timekeeping.c 2009-02-15 22:43:31 -08:00
jiffies.c trivial: fix then -> than typos in comments and documentation 2009-01-06 11:28:06 +01:00
Kconfig Kconfig: eliminate "def_bool n" constructs 2008-10-16 11:21:31 -07:00
Makefile clockevents: Allow build w/o run-tine usage for migration purposes 2007-10-12 23:04:05 +02:00
ntp.c hrtimer: removing all ur callback modes 2008-11-25 15:45:46 +01:00
tick-broadcast.c cpumask: replace for_each_cpu_mask_nr with for_each_cpu in kernel/time/ 2009-01-01 10:12:29 +10:30
tick-common.c hrtimers: allow the hot-unplugging of all cpus 2009-01-30 22:35:29 +01:00
tick-internal.h NOHZ: restart tick device from irq_enter() 2008-10-17 18:13:38 +02:00
tick-oneshot.c clockevents: remove WARN_ON which was used to gather information 2008-09-09 22:20:01 +02:00
tick-sched.c time-sched.c: tick_nohz_update_jiffies should be static 2009-01-15 12:06:56 +01:00
timekeeping.c sched_clock: prevent scd->clock from moving backwards, take #2 2008-12-31 09:53:21 +01:00
timer_list.c Merge branch 'timers/range-hrtimers' into v28-range-hrtimers-for-linus-v2 2008-10-22 09:48:06 +02:00
timer_stats.c kernel: use non-racy method for proc entries creation 2008-04-29 08:06:22 -07:00