proc-fns.h
上传用户:szlgq88
上传日期:2009-04-28
资源大小:48287k
文件大小:3k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  *  linux/include/asm-arm/proc-fns.h
  3.  *
  4.  *  Copyright (C) 1997-1999 Russell King
  5.  *  Copyright (C) 2000 Deep Blue Solutions Ltd
  6.  *
  7.  * This program is free software; you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License version 2 as
  9.  * published by the Free Software Foundation.
  10.  */
  11. #ifndef __ASM_PROCFNS_H
  12. #define __ASM_PROCFNS_H
  13. #ifdef __KERNEL__
  14. #include <linux/config.h>
  15. /*
  16.  * Work out if we need multiple CPU support
  17.  */
  18. #undef MULTI_CPU
  19. #undef CPU_NAME
  20. /*
  21.  * CPU_NAME - the prefix for CPU related functions
  22.  */
  23. #ifdef CONFIG_CPU_32
  24. # ifdef CONFIG_CPU_ARM610
  25. #  ifdef CPU_NAME
  26. #   undef  MULTI_CPU
  27. #   define MULTI_CPU
  28. #  else
  29. #   define CPU_NAME cpu_arm6
  30. #  endif
  31. # endif
  32. # ifdef CONFIG_CPU_ARM710
  33. #  ifdef CPU_NAME
  34. #   undef  MULTI_CPU
  35. #   define MULTI_CPU
  36. #  else
  37. #   define CPU_NAME cpu_arm7
  38. #  endif
  39. # endif
  40. # ifdef CONFIG_CPU_ARM720T
  41. #  ifdef CPU_NAME
  42. #   undef  MULTI_CPU
  43. #   define MULTI_CPU
  44. #  else
  45. #   define CPU_NAME cpu_arm720
  46. #  endif
  47. # endif
  48. # ifdef CONFIG_CPU_ARM920T
  49. #  ifdef CPU_NAME
  50. #   undef  MULTI_CPU
  51. #   define MULTI_CPU
  52. #  else
  53. #   define CPU_NAME cpu_arm920
  54. #  endif
  55. # endif
  56. # ifdef CONFIG_CPU_ARM922T
  57. #  ifdef CPU_NAME
  58. #   undef  MULTI_CPU
  59. #   define MULTI_CPU
  60. #  else
  61. #   define CPU_NAME cpu_arm922
  62. #  endif
  63. # endif
  64. # ifdef CONFIG_CPU_ARM925T
  65. #  ifdef CPU_NAME
  66. #   undef  MULTI_CPU
  67. #   define MULTI_CPU
  68. #  else
  69. #   define CPU_NAME cpu_arm925
  70. #  endif
  71. # endif
  72. # ifdef CONFIG_CPU_ARM926T
  73. #  ifdef CPU_NAME
  74. #   undef  MULTI_CPU
  75. #   define MULTI_CPU
  76. #  else
  77. #   define CPU_NAME cpu_arm926
  78. #  endif
  79. # endif
  80. # ifdef CONFIG_CPU_SA110
  81. #  ifdef CPU_NAME
  82. #   undef  MULTI_CPU
  83. #   define MULTI_CPU
  84. #  else
  85. #   define CPU_NAME cpu_sa110
  86. #  endif
  87. # endif
  88. # ifdef CONFIG_CPU_SA1100
  89. #  ifdef CPU_NAME
  90. #   undef  MULTI_CPU
  91. #   define MULTI_CPU
  92. #  else
  93. #   define CPU_NAME cpu_sa1100
  94. #  endif
  95. # endif
  96. # ifdef CONFIG_CPU_ARM1020
  97. #  ifdef CPU_NAME
  98. #   undef  MULTI_CPU
  99. #   define MULTI_CPU
  100. #  else
  101. #   define CPU_NAME cpu_arm1020
  102. #  endif
  103. # endif
  104. # ifdef CONFIG_CPU_ARM1020E
  105. #  ifdef CPU_NAME
  106. #   undef  MULTI_CPU
  107. #   define MULTI_CPU
  108. #  else
  109. #   define CPU_NAME cpu_arm1020e
  110. #  endif
  111. # endif
  112. # ifdef CONFIG_CPU_ARM1022
  113. #  ifdef CPU_NAME
  114. #   undef  MULTI_CPU
  115. #   define MULTI_CPU
  116. #  else
  117. #   define CPU_NAME cpu_arm1022
  118. #  endif
  119. # endif
  120. # ifdef CONFIG_CPU_ARM1026
  121. #  ifdef CPU_NAME
  122. #   undef  MULTI_CPU
  123. #   define MULTI_CPU
  124. #  else
  125. #   define CPU_NAME cpu_arm1026
  126. #  endif
  127. # endif
  128. # ifdef CONFIG_CPU_XSCALE
  129. #  ifdef CPU_NAME
  130. #   undef  MULTI_CPU
  131. #   define MULTI_CPU
  132. #  else
  133. #   define CPU_NAME cpu_xscale
  134. #  endif
  135. # endif
  136. # ifdef CONFIG_CPU_V6
  137. #  ifdef CPU_NAME
  138. #   undef  MULTI_CPU
  139. #   define MULTI_CPU
  140. #  else
  141. #   define CPU_NAME cpu_v6
  142. #  endif
  143. # endif
  144. #endif
  145. #ifndef __ASSEMBLY__
  146. #ifndef MULTI_CPU
  147. #include "asm/cpu-single.h"
  148. #else
  149. #include "asm/cpu-multi32.h"
  150. #endif
  151. #include <asm/memory.h>
  152. #define cpu_switch_mm(pgd,mm) cpu_do_switch_mm(virt_to_phys(pgd),mm)
  153. #define cpu_get_pgd()
  154. ({
  155. unsigned long pg;
  156. __asm__("mrc p15, 0, %0, c2, c0, 0"
  157.  : "=r" (pg) : : "cc");
  158. pg &= ~0x3fff;
  159. (pgd_t *)phys_to_virt(pg);
  160. })
  161. #endif /* __ASSEMBLY__ */
  162. #endif /* __KERNEL__ */
  163. #endif /* __ASM_PROCFNS_H */