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

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  * include/asm-sh/machvec.h
  3.  *
  4.  * Copyright 2000 Stuart Menefy (stuart.menefy@st.com)
  5.  *
  6.  * May be copied or modified under the terms of the GNU General Public
  7.  * License.  See linux/COPYING for more information.
  8.  */
  9. #ifndef _ASM_SH_MACHVEC_H
  10. #define _ASM_SH_MACHVEC_H 1
  11. #include <linux/config.h>
  12. #include <linux/types.h>
  13. struct timeval;
  14. struct sh_machine_vector
  15. {
  16. const char *mv_name;
  17. int mv_nr_irqs;
  18. unsigned char (*mv_inb)(unsigned long);
  19. unsigned short (*mv_inw)(unsigned long);
  20. unsigned int (*mv_inl)(unsigned long);
  21. void (*mv_outb)(unsigned char, unsigned long);
  22. void (*mv_outw)(unsigned short, unsigned long);
  23. void (*mv_outl)(unsigned int, unsigned long);
  24. unsigned char (*mv_inb_p)(unsigned long);
  25. unsigned short (*mv_inw_p)(unsigned long);
  26. unsigned int (*mv_inl_p)(unsigned long);
  27. void (*mv_outb_p)(unsigned char, unsigned long);
  28. void (*mv_outw_p)(unsigned short, unsigned long);
  29. void (*mv_outl_p)(unsigned int, unsigned long);
  30. void (*mv_insb)(unsigned long port, void *addr, unsigned long count);
  31. void (*mv_insw)(unsigned long port, void *addr, unsigned long count);
  32. void (*mv_insl)(unsigned long port, void *addr, unsigned long count);
  33. void (*mv_outsb)(unsigned long port, const void *addr, unsigned long count);
  34. void (*mv_outsw)(unsigned long port, const void *addr, unsigned long count);
  35. void (*mv_outsl)(unsigned long port, const void *addr, unsigned long count);
  36. unsigned char (*mv_readb)(unsigned long);
  37. unsigned short (*mv_readw)(unsigned long);
  38. unsigned int (*mv_readl)(unsigned long);
  39. void (*mv_writeb)(unsigned char, unsigned long);
  40. void (*mv_writew)(unsigned short, unsigned long);
  41. void (*mv_writel)(unsigned int, unsigned long);
  42. void* (*mv_ioremap)(unsigned long offset, unsigned long size);
  43. void (*mv_iounmap)(void *addr);
  44. unsigned long (*mv_isa_port2addr)(unsigned long offset);
  45. int (*mv_irq_demux)(int irq);
  46. void (*mv_init_arch)(void);
  47. void (*mv_init_irq)(void);
  48. void (*mv_init_pci)(void);
  49. void (*mv_kill_arch)(int);
  50. void (*mv_heartbeat)(void);
  51. void (*mv_rtc_gettimeofday)(struct timeval *tv);
  52. int (*mv_rtc_settimeofday)(const struct timeval *tv);
  53. unsigned int mv_hw_se : 1;
  54. unsigned int mv_hw_hp600 : 1;
  55. unsigned int mv_hw_hp620 : 1;
  56. unsigned int mv_hw_hp680 : 1;
  57. unsigned int mv_hw_hp690 : 1;
  58. unsigned int mv_hw_hd64461 : 1;
  59. unsigned int mv_hw_sh2000 : 1;
  60. unsigned int mv_hw_hd64465 : 1;
  61. unsigned int mv_hw_dreamcast : 1;
  62. unsigned int mv_hw_bigsur : 1;
  63. unsigned int mv_hw_7751se: 1;
  64. unsigned int mv_hw_adx : 1;
  65. };
  66. extern struct sh_machine_vector sh_mv;
  67. /* Machine check macros */
  68. #ifdef CONFIG_SH_GENERIC
  69. #define MACH_SE (sh_mv.mv_hw_se)
  70. #define MACH_HP600 (sh_mv.mv_hw_hp600)
  71. #define MACH_HP620 (sh_mv.mv_hw_hp620)
  72. #define MACH_HP680 (sh_mv.mv_hw_hp680)
  73. #define MACH_HP690 (sh_mv.mv_hw_hp690)
  74. #define MACH_HD64461 (sh_mv.mv_hw_hd64461)
  75. #define MACH_HD64465 (sh_mv.mv_hw_hd64465)
  76. #define MACH_SH2000 (sh_mv.mv_hw_sh2000)
  77. #define MACH_DREAMCAST (sh_mv.mv_hw_dreamcast)
  78. #define MACH_BIGSUR (sh_mv.mv_hw_bigsur)
  79. #define MACH_7751SE (sh_mv.mv_hw_7751se)
  80. #define MACH_ADX (sh_mv.mv_hw_adx)
  81. #else
  82. # ifdef CONFIG_SH_SOLUTION_ENGINE
  83. #  define MACH_SE 1
  84. # else
  85. #  define MACH_SE 0
  86. # endif
  87. # ifdef CONFIG_SH_7751_SOLUTION_ENGINE
  88. #  define MACH_7751SE 1
  89. # else
  90. #  define MACH_7751SE 0
  91. # endif
  92. # ifdef CONFIG_SH_HP600
  93. #  define MACH_HP600 1
  94. # else
  95. #  define MACH_HP600 0
  96. # endif
  97. # ifdef CONFIG_SH_HP620
  98. #  define MACH_HP620 1
  99. # else
  100. #  define MACH_HP620 0
  101. # endif
  102. # ifdef CONFIG_SH_HP680
  103. #  define MACH_HP680 1
  104. # else
  105. #  define MACH_HP680 0
  106. # endif
  107. # ifdef CONFIG_SH_HP690
  108. #  define MACH_HP690 1
  109. # else
  110. #  define MACH_HP690 0
  111. # endif
  112. # ifdef CONFIG_HD64461
  113. #  define MACH_HD64461 1
  114. # else
  115. #  define MACH_HD64461 0
  116. # endif
  117. # ifdef CONFIG_HD64465
  118. #  define MACH_HD64465 1
  119. # else
  120. #  define MACH_HD64465 0
  121. # endif
  122. # ifdef CONFIG_SH_SH2000
  123. #  define MACH_SH2000 1
  124. # else
  125. #  define MACH_SH2000 0
  126. # endif
  127. # ifdef CONFIG_SH_EC3104
  128. #  define MACH_EC3104 1
  129. # else
  130. #  define MACH_EC3104 0
  131. # endif
  132. # ifdef CONFIG_SH_DREAMCAST
  133. #  define MACH_DREAMCAST 1
  134. # else
  135. #  define MACH_DREAMCAST 0
  136. # endif
  137. # ifdef CONFIG_SH_BIGSUR
  138. #  define MACH_BIGSUR 1
  139. # else
  140. #  define MACH_BIGSUR 0
  141. # endif
  142. # ifdef CONFIG_SH_ADX
  143. #  define MACH_ADX 1
  144. # else
  145. #  define MACH_ADX 0
  146. # endif
  147. #endif
  148. #endif /* _ASM_SH_MACHVEC_H */