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 / glue.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  2.5 KB  |  114 lines

  1. /*
  2.  *  linux/include/asm-arm/glue.h
  3.  *
  4.  *  Copyright (C) 1997-1999 Russell King
  5.  *  Copyright (C) 2000-2002 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.  *  This file provides the glue to stick the processor-specific bits
  12.  *  into the kernel in an efficient manner.  The idea is to use branches
  13.  *  when we're only targetting one class of TLB, or indirect calls
  14.  *  when we're targetting multiple classes of TLBs.
  15.  */
  16. #ifdef __KERNEL__
  17.  
  18.  
  19. #ifdef __STDC__
  20. #define ____glue(name,fn)    name##fn
  21. #else
  22. #define ____glue(name,fn)    name/**/fn
  23. #endif
  24. #define __glue(name,fn)        ____glue(name,fn)
  25.  
  26.  
  27.  
  28. /*
  29.  *    Data Abort Model
  30.  *    ================
  31.  *
  32.  *    We have the following to choose from:
  33.  *      arm6          - ARM6 style
  34.  *      arm7        - ARM7 style
  35.  *      v4_early    - ARMv4 without Thumb early abort handler
  36.  *      v4t_late    - ARMv4 with Thumb late abort handler
  37.  *      v4t_early    - ARMv4 with Thumb early abort handler
  38.  *      v5tej_early    - ARMv5 with Thumb and Java early abort handler
  39.  *      xscale    - ARMv5 with Thumb with Xscale extensions
  40.  *      v6_early    - ARMv6 generic early abort handler
  41.  */
  42. #undef CPU_ABORT_HANDLER
  43. #undef MULTI_ABORT
  44.  
  45. #if defined(CONFIG_CPU_ARM610)
  46. # ifdef CPU_ABORT_HANDLER
  47. #  define MULTI_ABORT 1
  48. # else
  49. #  define CPU_ABORT_HANDLER cpu_arm6_data_abort
  50. # endif
  51. #endif
  52.  
  53. #if defined(CONFIG_CPU_ARM710)
  54. # ifdef CPU_ABORT_HANDLER
  55. #  define MULTI_ABORT 1
  56. # else
  57. #  define CPU_ABORT_HANDLER cpu_arm7_data_abort
  58. # endif
  59. #endif
  60.  
  61. #ifdef CONFIG_CPU_ABRT_LV4T
  62. # ifdef CPU_ABORT_HANDLER
  63. #  define MULTI_ABORT 1
  64. # else
  65. #  define CPU_ABORT_HANDLER v4t_late_abort
  66. # endif
  67. #endif
  68.  
  69. #ifdef CONFIG_CPU_ABRT_EV4
  70. # ifdef CPU_ABORT_HANDLER
  71. #  define MULTI_ABORT 1
  72. # else
  73. #  define CPU_ABORT_HANDLER v4_early_abort
  74. # endif
  75. #endif
  76.  
  77. #ifdef CONFIG_CPU_ABRT_EV4T
  78. # ifdef CPU_ABORT_HANDLER
  79. #  define MULTI_ABORT 1
  80. # else
  81. #  define CPU_ABORT_HANDLER v4t_early_abort
  82. # endif
  83. #endif
  84.  
  85. #ifdef CONFIG_CPU_ABRT_EV5TJ
  86. # ifdef CPU_ABORT_HANDLER
  87. #  define MULTI_ABORT 1
  88. # else
  89. #  define CPU_ABORT_HANDLER v5tj_early_abort
  90. # endif
  91. #endif
  92.  
  93. #ifdef CONFIG_CPU_ABRT_EV5T
  94. # ifdef CPU_ABORT_HANDLER
  95. #  define MULTI_ABORT 1
  96. # else
  97. #  define CPU_ABORT_HANDLER v5t_early_abort
  98. # endif
  99. #endif
  100.  
  101. #ifdef CONFIG_CPU_ABRT_EV6
  102. # ifdef CPU_ABORT_HANDLER
  103. #  define MULTI_ABORT 1
  104. # else
  105. #  define CPU_ABORT_HANDLER v6_early_abort
  106. # endif
  107. #endif
  108.  
  109. #ifndef CPU_ABORT_HANDLER
  110. #error Unknown data abort handler type
  111. #endif
  112.  
  113. #endif
  114.