home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / powerpc / include / asm / timex.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  823 b   |  51 lines

  1. #ifndef _ASM_POWERPC_TIMEX_H
  2. #define _ASM_POWERPC_TIMEX_H
  3.  
  4. #ifdef __KERNEL__
  5.  
  6. /*
  7.  * PowerPC architecture timex specifications
  8.  */
  9.  
  10. #include <asm/cputable.h>
  11. #include <asm/reg.h>
  12.  
  13. #define CLOCK_TICK_RATE    1024000 /* Underlying HZ */
  14.  
  15. typedef unsigned long cycles_t;
  16.  
  17. static inline cycles_t get_cycles(void)
  18. {
  19. #ifdef __powerpc64__
  20.     return mftb();
  21. #else
  22.     cycles_t ret;
  23.  
  24.     /*
  25.      * For the "cycle" counter we use the timebase lower half.
  26.      * Currently only used on SMP.
  27.      */
  28.  
  29.     ret = 0;
  30.  
  31.     __asm__ __volatile__(
  32.         "97:    mftb %0\n"
  33.         "99:\n"
  34.         ".section __ftr_fixup,\"a\"\n"
  35.         ".align 2\n"
  36.         "98:\n"
  37.         "    .long %1\n"
  38.         "    .long 0\n"
  39.         "    .long 97b-98b\n"
  40.         "    .long 99b-98b\n"
  41.         "    .long 0\n"
  42.         "    .long 0\n"
  43.         ".previous"
  44.         : "=r" (ret) : "i" (CPU_FTR_601));
  45.     return ret;
  46. #endif
  47. }
  48.  
  49. #endif    /* __KERNEL__ */
  50. #endif    /* _ASM_POWERPC_TIMEX_H */
  51.