MOXA linux-2.6.x / linux-2.6.19-uc1 from UC-7110-LX-BOOTLOADER-1.9_VERSION-4.2.tgz
[linux-2.6.19-moxart.git] / include / asm-arm / glue.h
blob8210e015d80921db04a1d97fc4c5d62530d61221
1 /*
2 * linux/include/asm-arm/glue.h
4 * Copyright (C) 1997-1999 Russell King
5 * Copyright (C) 2000-2002 Deep Blue Solutions Ltd.
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.
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.
16 #ifdef __KERNEL__
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)
29 * Data Abort Model
30 * ================
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
42 #undef CPU_ABORT_HANDLER
43 #undef MULTI_ABORT
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
53 #if defined(CONFIG_CPU_S3C4510B)
54 # ifdef CPU_ABORT_HANDLER
55 # define MULTI_ABORT 1
56 # else
57 # define CPU_ABORT_HANDLER cpu_s3c4510b_data_abort
58 # endif
59 #endif
61 #if defined(CONFIG_CPU_ARM710)
62 # ifdef CPU_ABORT_HANDLER
63 # define MULTI_ABORT 1
64 # else
65 # define CPU_ABORT_HANDLER cpu_arm7_data_abort
66 # endif
67 #endif
69 #ifdef CONFIG_CPU_ABRT_LV4T
70 # ifdef CPU_ABORT_HANDLER
71 # define MULTI_ABORT 1
72 # else
73 # define CPU_ABORT_HANDLER v4t_late_abort
74 # endif
75 #endif
77 #ifdef CONFIG_CPU_ABRT_EV4
78 # ifdef CPU_ABORT_HANDLER
79 # define MULTI_ABORT 1
80 # else
81 # define CPU_ABORT_HANDLER v4_early_abort
82 # endif
83 #endif
85 #ifdef CONFIG_CPU_ABRT_NOMMU
86 # ifdef CPU_ABORT_HANDLER
87 # define MULTI_ABORT 1
88 # else
89 # define CPU_ABORT_HANDLER nommu_early_abort
90 # endif
91 #endif
93 #ifdef CONFIG_CPU_ABRT_EV4T
94 # ifdef CPU_ABORT_HANDLER
95 # define MULTI_ABORT 1
96 # else
97 # define CPU_ABORT_HANDLER v4t_early_abort
98 # endif
99 #endif
101 #ifdef CONFIG_CPU_ABRT_EV5TJ
102 # ifdef CPU_ABORT_HANDLER
103 # define MULTI_ABORT 1
104 # else
105 # define CPU_ABORT_HANDLER v5tj_early_abort
106 # endif
107 #endif
109 #ifdef CONFIG_CPU_ABRT_EV5T
110 # ifdef CPU_ABORT_HANDLER
111 # define MULTI_ABORT 1
112 # else
113 # define CPU_ABORT_HANDLER v5t_early_abort
114 # endif
115 #endif
117 #ifdef CONFIG_CPU_ABRT_EV6
118 # ifdef CPU_ABORT_HANDLER
119 # define MULTI_ABORT 1
120 # else
121 # define CPU_ABORT_HANDLER v6_early_abort
122 # endif
123 #endif
125 #ifndef CPU_ABORT_HANDLER
126 #error Unknown data abort handler type
127 #endif
129 #endif