home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-arm / proc-fns.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  3.2 KB  |  182 lines

  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.  
  14. #ifdef __KERNEL__
  15.  
  16.  
  17. /*
  18.  * Work out if we need multiple CPU support
  19.  */
  20. #undef MULTI_CPU
  21. #undef CPU_NAME
  22.  
  23. /*
  24.  * CPU_NAME - the prefix for CPU related functions
  25.  */
  26.  
  27. #ifdef CONFIG_CPU_32
  28. # ifdef CONFIG_CPU_ARM610
  29. #  ifdef CPU_NAME
  30. #   undef  MULTI_CPU
  31. #   define MULTI_CPU
  32. #  else
  33. #   define CPU_NAME cpu_arm6
  34. #  endif
  35. # endif
  36. # ifdef CONFIG_CPU_ARM710
  37. #  ifdef CPU_NAME
  38. #   undef  MULTI_CPU
  39. #   define MULTI_CPU
  40. #  else
  41. #   define CPU_NAME cpu_arm7
  42. #  endif
  43. # endif
  44. # ifdef CONFIG_CPU_ARM720T
  45. #  ifdef CPU_NAME
  46. #   undef  MULTI_CPU
  47. #   define MULTI_CPU
  48. #  else
  49. #   define CPU_NAME cpu_arm720
  50. #  endif
  51. # endif
  52. # ifdef CONFIG_CPU_ARM920T
  53. #  ifdef CPU_NAME
  54. #   undef  MULTI_CPU
  55. #   define MULTI_CPU
  56. #  else
  57. #   define CPU_NAME cpu_arm920
  58. #  endif
  59. # endif
  60. # ifdef CONFIG_CPU_ARM922T
  61. #  ifdef CPU_NAME
  62. #   undef  MULTI_CPU
  63. #   define MULTI_CPU
  64. #  else
  65. #   define CPU_NAME cpu_arm922
  66. #  endif
  67. # endif
  68. # ifdef CONFIG_CPU_ARM925T
  69. #  ifdef CPU_NAME
  70. #   undef  MULTI_CPU
  71. #   define MULTI_CPU
  72. #  else
  73. #   define CPU_NAME cpu_arm925
  74. #  endif
  75. # endif
  76. # ifdef CONFIG_CPU_ARM926T
  77. #  ifdef CPU_NAME
  78. #   undef  MULTI_CPU
  79. #   define MULTI_CPU
  80. #  else
  81. #   define CPU_NAME cpu_arm926
  82. #  endif
  83. # endif
  84. # ifdef CONFIG_CPU_SA110
  85. #  ifdef CPU_NAME
  86. #   undef  MULTI_CPU
  87. #   define MULTI_CPU
  88. #  else
  89. #   define CPU_NAME cpu_sa110
  90. #  endif
  91. # endif
  92. # ifdef CONFIG_CPU_SA1100
  93. #  ifdef CPU_NAME
  94. #   undef  MULTI_CPU
  95. #   define MULTI_CPU
  96. #  else
  97. #   define CPU_NAME cpu_sa1100
  98. #  endif
  99. # endif
  100. # ifdef CONFIG_CPU_ARM1020
  101. #  ifdef CPU_NAME
  102. #   undef  MULTI_CPU
  103. #   define MULTI_CPU
  104. #  else
  105. #   define CPU_NAME cpu_arm1020
  106. #  endif
  107. # endif
  108. # ifdef CONFIG_CPU_ARM1020E
  109. #  ifdef CPU_NAME
  110. #   undef  MULTI_CPU
  111. #   define MULTI_CPU
  112. #  else
  113. #   define CPU_NAME cpu_arm1020e
  114. #  endif
  115. # endif
  116. # ifdef CONFIG_CPU_ARM1022
  117. #  ifdef CPU_NAME
  118. #   undef  MULTI_CPU
  119. #   define MULTI_CPU
  120. #  else
  121. #   define CPU_NAME cpu_arm1022
  122. #  endif
  123. # endif
  124. # ifdef CONFIG_CPU_ARM1026
  125. #  ifdef CPU_NAME
  126. #   undef  MULTI_CPU
  127. #   define MULTI_CPU
  128. #  else
  129. #   define CPU_NAME cpu_arm1026
  130. #  endif
  131. # endif
  132. # ifdef CONFIG_CPU_XSCALE
  133. #  ifdef CPU_NAME
  134. #   undef  MULTI_CPU
  135. #   define MULTI_CPU
  136. #  else
  137. #   define CPU_NAME cpu_xscale
  138. #  endif
  139. # endif
  140. # ifdef CONFIG_CPU_XSC3
  141. #  ifdef CPU_NAME
  142. #   undef  MULTI_CPU
  143. #   define MULTI_CPU
  144. #  else
  145. #   define CPU_NAME cpu_xsc3
  146. #  endif
  147. # endif
  148. # ifdef CONFIG_CPU_V6
  149. #  ifdef CPU_NAME
  150. #   undef  MULTI_CPU
  151. #   define MULTI_CPU
  152. #  else
  153. #   define CPU_NAME cpu_v6
  154. #  endif
  155. # endif
  156. #endif
  157.  
  158. #ifndef __ASSEMBLY__
  159.  
  160. #ifndef MULTI_CPU
  161. #include "asm/cpu-single.h"
  162. #else
  163. #include "asm/cpu-multi32.h"
  164. #endif
  165.  
  166. #include <asm/memory.h>
  167.  
  168. #define cpu_switch_mm(pgd,mm) cpu_do_switch_mm(virt_to_phys(pgd),mm)
  169.  
  170. #define cpu_get_pgd()    \
  171.     ({                        \
  172.         unsigned long pg;            \
  173.         __asm__("mrc    p15, 0, %0, c2, c0, 0"    \
  174.              : "=r" (pg) : : "cc");        \
  175.         pg &= ~0x3fff;                \
  176.         (pgd_t *)phys_to_virt(pg);        \
  177.     })
  178.  
  179. #endif /* __ASSEMBLY__ */
  180. #endif /* __KERNEL__ */
  181. #endif /* __ASM_PROCFNS_H */
  182.