clksupport.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  *
  3.  * This file is subject to the terms and conditions of the GNU General Public
  4.  * License.  See the file "COPYING" in the main directory of this archive
  5.  * for more details.
  6.  *
  7.  * Copyright (C) 2000 Silicon Graphics, Inc.
  8.  * Copyright (C) 2000 by Jack Steiner (steiner@sgi.com)
  9.  */
  10. #ifndef  _ASM_KSYS_CLKSUPPORT_H
  11. #define _ASM_KSYS_CLKSUPPORT_H
  12. /* #include <sys/mips_addrspace.h> */
  13. #if SN
  14. #include <asm/sn/agent.h>
  15. #include <asm/sn/intr_public.h>
  16. typedef hubreg_t clkreg_t;
  17. extern nasid_t master_nasid;
  18. #define GET_LOCAL_RTC (clkreg_t)LOCAL_HUB_L(PI_RT_COUNT)
  19. #define DISABLE_TMO_INTR() if  (cpuid_to_localslice(cpuid())) 
  20. REMOTE_HUB_PI_S(get_nasid(),
  21. cputosubnode(cpuid()),
  22. PI_RT_COMPARE_B, 0); 
  23. else 
  24. REMOTE_HUB_PI_S(get_nasid(),
  25. cputosubnode(cpuid()),
  26. PI_RT_COMPARE_A, 0);
  27. /* This is a hack; we really need to figure these values out dynamically */
  28. /* 
  29.  * Since 800 ns works very well with various HUB frequencies, such as
  30.  * 360, 380, 390 and 400 MHZ, we use 800 ns rtc cycle time.
  31.  */
  32. #define NSEC_PER_CYCLE 800
  33. #define CYCLE_PER_SEC (NSEC_PER_SEC/NSEC_PER_CYCLE)
  34. /*
  35.  * Number of cycles per profiling intr 
  36.  */
  37. #define CLK_FCLOCK_FAST_FREQ 1250
  38. #define CLK_FCLOCK_SLOW_FREQ 0
  39. /* The is the address that the user will use to mmap the cycle counter */
  40. #define CLK_CYCLE_ADDRESS_FOR_USER LOCAL_HUB_ADDR(PI_RT_COUNT)
  41. #elif IP30
  42. #include <sys/cpu.h>
  43. typedef heartreg_t clkreg_t;
  44. #define NSEC_PER_CYCLE 80
  45. #define CYCLE_PER_SEC (NSEC_PER_SEC/NSEC_PER_CYCLE)
  46. #define GET_LOCAL_RTC *((volatile clkreg_t *)PHYS_TO_COMPATK1(HEART_COUNT))
  47. #define DISABLE_TMO_INTR()
  48. #define CLK_CYCLE_ADDRESS_FOR_USER PHYS_TO_K1(HEART_COUNT)
  49. #define CLK_FCLOCK_SLOW_FREQ (CYCLE_PER_SEC / HZ)
  50. #endif
  51. /* Prototypes */
  52. extern void init_timebase(void);
  53. extern void fastick_maint(struct eframe_s *);
  54. extern int audioclock;
  55. extern int prfclk_enabled_cnt;
  56. #endif  /* _ASM_KSYS_CLKSUPPORT_H */