home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-ia64 / timex.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.3 KB  |  43 lines

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