Blame view

include/asm-arm/glue.h 2.66 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  /*
   *  linux/include/asm-arm/glue.h
   *
   *  Copyright (C) 1997-1999 Russell King
   *  Copyright (C) 2000-2002 Deep Blue Solutions Ltd.
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU General Public License version 2 as
   * published by the Free Software Foundation.
   *
   *  This file provides the glue to stick the processor-specific bits
   *  into the kernel in an efficient manner.  The idea is to use branches
   *  when we're only targetting one class of TLB, or indirect calls
   *  when we're targetting multiple classes of TLBs.
   */
  #ifdef __KERNEL__
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
  
  #ifdef __STDC__
  #define ____glue(name,fn)	name##fn
  #else
  #define ____glue(name,fn)	name/**/fn
  #endif
  #define __glue(name,fn)		____glue(name,fn)
  
  
  
  /*
   *	Data Abort Model
   *	================
   *
   *	We have the following to choose from:
   *	  arm6          - ARM6 style
   *	  arm7		- ARM7 style
   *	  v4_early	- ARMv4 without Thumb early abort handler
   *	  v4t_late	- ARMv4 with Thumb late abort handler
   *	  v4t_early	- ARMv4 with Thumb early abort handler
   *	  v5tej_early	- ARMv5 with Thumb and Java early abort handler
   *	  xscale	- ARMv5 with Thumb with Xscale extensions
   *	  v6_early	- ARMv6 generic early abort handler
bbe888864   Catalin Marinas   [ARM] armv7: add ...
40
   *	  v7_early	- ARMv7 generic early abort handler
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
   */
  #undef CPU_ABORT_HANDLER
  #undef MULTI_ABORT
  
  #if defined(CONFIG_CPU_ARM610)
  # ifdef CPU_ABORT_HANDLER
  #  define MULTI_ABORT 1
  # else
  #  define CPU_ABORT_HANDLER cpu_arm6_data_abort
  # endif
  #endif
  
  #if defined(CONFIG_CPU_ARM710)
  # ifdef CPU_ABORT_HANDLER
  #  define MULTI_ABORT 1
  # else
  #  define CPU_ABORT_HANDLER cpu_arm7_data_abort
  # endif
  #endif
  
  #ifdef CONFIG_CPU_ABRT_LV4T
  # ifdef CPU_ABORT_HANDLER
  #  define MULTI_ABORT 1
  # else
  #  define CPU_ABORT_HANDLER v4t_late_abort
  # endif
  #endif
  
  #ifdef CONFIG_CPU_ABRT_EV4
  # ifdef CPU_ABORT_HANDLER
  #  define MULTI_ABORT 1
  # else
  #  define CPU_ABORT_HANDLER v4_early_abort
  # endif
  #endif
  
  #ifdef CONFIG_CPU_ABRT_EV4T
  # ifdef CPU_ABORT_HANDLER
  #  define MULTI_ABORT 1
  # else
  #  define CPU_ABORT_HANDLER v4t_early_abort
  # endif
  #endif
  
  #ifdef CONFIG_CPU_ABRT_EV5TJ
  # ifdef CPU_ABORT_HANDLER
  #  define MULTI_ABORT 1
  # else
  #  define CPU_ABORT_HANDLER v5tj_early_abort
  # endif
  #endif
  
  #ifdef CONFIG_CPU_ABRT_EV5T
  # ifdef CPU_ABORT_HANDLER
  #  define MULTI_ABORT 1
  # else
  #  define CPU_ABORT_HANDLER v5t_early_abort
  # endif
  #endif
  
  #ifdef CONFIG_CPU_ABRT_EV6
  # ifdef CPU_ABORT_HANDLER
  #  define MULTI_ABORT 1
  # else
  #  define CPU_ABORT_HANDLER v6_early_abort
  # endif
  #endif
bbe888864   Catalin Marinas   [ARM] armv7: add ...
108
109
110
111
112
113
114
  #ifdef CONFIG_CPU_ABRT_EV7
  # ifdef CPU_ABORT_HANDLER
  #  define MULTI_ABORT 1
  # else
  #  define CPU_ABORT_HANDLER v7_early_abort
  # endif
  #endif
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
115
116
117
118
119
  #ifndef CPU_ABORT_HANDLER
  #error Unknown data abort handler type
  #endif
  
  #endif