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-x86_64 / timex.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.1 KB  |  50 lines

  1. /*
  2.  * linux/include/asm-x86_64/timex.h
  3.  *
  4.  * x86-64 architecture timex specifications
  5.  */
  6. #ifndef _ASMx8664_TIMEX_H
  7. #define _ASMx8664_TIMEX_H
  8.  
  9. #include <asm/8253pit.h>
  10. #include <asm/msr.h>
  11. #include <asm/vsyscall.h>
  12. #include <asm/hpet.h>
  13. #include <asm/system.h>
  14. #include <asm/processor.h>
  15. #include <linux/compiler.h>
  16.  
  17. #define CLOCK_TICK_RATE    PIT_TICK_RATE    /* Underlying HZ */
  18.  
  19. typedef unsigned long long cycles_t;
  20.  
  21. static inline cycles_t get_cycles (void)
  22. {
  23.     unsigned long long ret;
  24.  
  25.     rdtscll(ret);
  26.     return ret;
  27. }
  28.  
  29. /* Like get_cycles, but make sure the CPU is synchronized. */
  30. static __always_inline cycles_t get_cycles_sync(void)
  31. {
  32.     unsigned long long ret;
  33.     unsigned eax;
  34.     /* Don't do an additional sync on CPUs where we know
  35.        RDTSC is already synchronous. */
  36.     alternative_io("cpuid", ASM_NOP2, X86_FEATURE_SYNC_RDTSC,
  37.               "=a" (eax), "0" (1) : "ebx","ecx","edx","memory");
  38.     rdtscll(ret);
  39.     return ret;
  40. }
  41.  
  42. extern unsigned int cpu_khz;
  43.  
  44. extern int read_current_timer(unsigned long *timer_value);
  45. #define ARCH_HAS_READ_CURRENT_TIMER    1
  46.  
  47. extern struct vxtime_data vxtime;
  48.  
  49. #endif
  50.