Blame view

kernel/linux-rt-4.4.41/arch/ia64/include/asm/timex.h 1.4 KB
5113f6f70   김현기   kernel add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
  #ifndef _ASM_IA64_TIMEX_H
  #define _ASM_IA64_TIMEX_H
  
  /*
   * Copyright (C) 1998-2001, 2003 Hewlett-Packard Co
   *	David Mosberger-Tang <davidm@hpl.hp.com>
   */
  /*
   * 2001/01/18 davidm	Removed CLOCK_TICK_RATE.  It makes no sense on IA-64.
   *			Also removed cacheflush_time as it's entirely unused.
   */
  
  #include <asm/intrinsics.h>
  #include <asm/processor.h>
  
  typedef unsigned long cycles_t;
  
  extern void (*ia64_udelay)(unsigned long usecs);
  
  /*
   * For performance reasons, we don't want to define CLOCK_TICK_TRATE as
   * local_cpu_data->itc_rate.  Fortunately, we don't have to, either: according to George
   * Anzinger, 1/CLOCK_TICK_RATE is taken as the resolution of the timer clock.  The time
   * calculation assumes that you will use enough of these so that your tick size <= 1/HZ.
   * If the calculation shows that your CLOCK_TICK_RATE can not supply exactly 1/HZ ticks,
   * the actual value is calculated and used to update the wall clock each jiffie.  Setting
   * the CLOCK_TICK_RATE to x*HZ insures that the calculation will find no errors.  Hence we
   * pick a multiple of HZ which gives us a (totally virtual) CLOCK_TICK_RATE of about
   * 100MHz.
   */
  #define CLOCK_TICK_RATE		(HZ * 100000UL)
  
  static inline cycles_t
  get_cycles (void)
  {
  	cycles_t ret;
  
  	ret = ia64_getreg(_IA64_REG_AR_ITC);
  	return ret;
  }
  
  extern void ia64_cpu_local_tick (void);
  extern unsigned long long ia64_native_sched_clock (void);
  
  #endif /* _ASM_IA64_TIMEX_H */