timex.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  * BK Id: SCCS/s.timex.h 1.8 08/15/01 22:43:07 paulus
  3.  */
  4. /*
  5.  * linux/include/asm-ppc/timex.h
  6.  *
  7.  * ppc architecture timex specifications
  8.  */
  9. #ifdef __KERNEL__
  10. #ifndef _ASMppc_TIMEX_H
  11. #define _ASMppc_TIMEX_H
  12. #include <linux/config.h>
  13. #include <asm/cputable.h>
  14. #define CLOCK_TICK_RATE 1193180 /* Underlying HZ */
  15. #define CLOCK_TICK_FACTOR 20 /* Factor of both 1000000 and CLOCK_TICK_RATE */
  16. #define FINETUNE ((((((long)LATCH * HZ - CLOCK_TICK_RATE) << SHIFT_HZ) * 
  17. (1000000/CLOCK_TICK_FACTOR) / (CLOCK_TICK_RATE/CLOCK_TICK_FACTOR)) 
  18. << (SHIFT_SCALE-SHIFT_HZ)) / HZ)
  19. typedef unsigned long cycles_t;
  20. /*
  21.  * For the "cycle" counter we use the timebase lower half.
  22.  * Currently only used on SMP.
  23.  */
  24. extern cycles_t cacheflush_time;
  25. static inline cycles_t get_cycles(void)
  26. {
  27. cycles_t ret = 0;
  28. __asm__ __volatile__(
  29. "98: mftb %0n"
  30. "99:n"
  31. ".section __ftr_fixup,"a"n"
  32. " .long %1n"
  33. " .long 0n"
  34. " .long 98bn"
  35. " .long 99bn"
  36. ".previous"
  37. : "=r" (ret) : "i" (CPU_FTR_601));
  38. return ret;
  39. }
  40. #endif
  41. #define vxtime_lock() do {} while (0)
  42. #define vxtime_unlock() do {} while (0)
  43. #endif /* __KERNEL__ */