aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-arm/glue.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-16 18:20:36 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-16 18:20:36 -0400
commit1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch)
tree0bba044c4ce775e45a88a51686b5d9f90697ea9d /include/asm-arm/glue.h
Linux-2.6.12-rc2
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
Diffstat (limited to 'include/asm-arm/glue.h')
-rw-r--r--include/asm-arm/glue.h114
1 files changed, 114 insertions, 0 deletions
diff --git a/include/asm-arm/glue.h b/include/asm-arm/glue.h
new file mode 100644
index 00000000000..223e0d6c41b
--- /dev/null
+++ b/include/asm-arm/glue.h
@@ -0,0 +1,114 @@
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#include <linux/config.h>
19
20#ifdef __STDC__
21#define ____glue(name,fn) name##fn
22#else
23#define ____glue(name,fn) name/**/fn
24#endif
25#define __glue(name,fn) ____glue(name,fn)
26
27
28
29/*
30 * Data Abort Model
31 * ================
32 *
33 * We have the following to choose from:
34 * arm6 - ARM6 style
35 * arm7 - ARM7 style
36 * v4_early - ARMv4 without Thumb early abort handler
37 * v4t_late - ARMv4 with Thumb late abort handler
38 * v4t_early - ARMv4 with Thumb early abort handler
39 * v5tej_early - ARMv5 with Thumb and Java early abort handler
40 * xscale - ARMv5 with Thumb with Xscale extensions
41 * v6_early - ARMv6 generic early abort handler
42 */
43#undef CPU_ABORT_HANDLER
44#undef MULTI_ABORT
45
46#if defined(CONFIG_CPU_ARM610)
47# ifdef CPU_ABORT_HANDLER
48# define MULTI_ABORT 1
49# else
50# define CPU_ABORT_HANDLER cpu_arm6_data_abort
51# endif
52#endif
53
54#if defined(CONFIG_CPU_ARM710)
55# ifdef CPU_ABORT_HANDLER
56# define MULTI_ABORT 1
57# else
58# define CPU_ABORT_HANDLER cpu_arm7_data_abort
59# endif
60#endif
61
62#ifdef CONFIG_CPU_ABRT_LV4T
63# ifdef CPU_ABORT_HANDLER
64# define MULTI_ABORT 1
65# else
66# define CPU_ABORT_HANDLER v4t_late_abort
67# endif
68#endif
69
70#ifdef CONFIG_CPU_ABRT_EV4
71# ifdef CPU_ABORT_HANDLER
72# define MULTI_ABORT 1
73# else
74# define CPU_ABORT_HANDLER v4_early_abort
75# endif
76#endif
77
78#ifdef CONFIG_CPU_ABRT_EV4T
79# ifdef CPU_ABORT_HANDLER
80# define MULTI_ABORT 1
81# else
82# define CPU_ABORT_HANDLER v4t_early_abort
83# endif
84#endif
85
86#ifdef CONFIG_CPU_ABRT_EV5TJ
87# ifdef CPU_ABORT_HANDLER
88# define MULTI_ABORT 1
89# else
90# define CPU_ABORT_HANDLER v5tj_early_abort
91# endif
92#endif
93
94#ifdef CONFIG_CPU_ABRT_EV5T
95# ifdef CPU_ABORT_HANDLER
96# define MULTI_ABORT 1
97# else
98# define CPU_ABORT_HANDLER v5t_early_abort
99# endif
100#endif
101
102#ifdef CONFIG_CPU_ABRT_EV6
103# ifdef CPU_ABORT_HANDLER
104# define MULTI_ABORT 1
105# else
106# define CPU_ABORT_HANDLER v6_early_abort
107# endif
108#endif
109
110#ifndef CPU_ABORT_HANDLER
111#error Unknown data abort handler type
112#endif
113
114#endif