PageRenderTime 23ms CodeModel.GetById 19ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/arch/arm/include/asm/glue.h

https://bitbucket.org/sammyz/iscream_thunderc-2.6.35-rebase
C++ Header | 163 lines | 102 code | 22 blank | 39 comment | 0 complexity | fbf51dac000a95e1441d3da3fb35a6fd MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.0, AGPL-1.0
  1/*
  2 *  arch/arm/include/asm/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 *	  v7_early	- ARMv7 generic early abort handler
 42 */
 43#undef CPU_DABORT_HANDLER
 44#undef MULTI_DABORT
 45
 46#if defined(CONFIG_CPU_ARM610)
 47# ifdef CPU_DABORT_HANDLER
 48#  define MULTI_DABORT 1
 49# else
 50#  define CPU_DABORT_HANDLER cpu_arm6_data_abort
 51# endif
 52#endif
 53
 54#if defined(CONFIG_CPU_ARM710)
 55# ifdef CPU_DABORT_HANDLER
 56#  define MULTI_DABORT 1
 57# else
 58#  define CPU_DABORT_HANDLER cpu_arm7_data_abort
 59# endif
 60#endif
 61
 62#ifdef CONFIG_CPU_ABRT_LV4T
 63# ifdef CPU_DABORT_HANDLER
 64#  define MULTI_DABORT 1
 65# else
 66#  define CPU_DABORT_HANDLER v4t_late_abort
 67# endif
 68#endif
 69
 70#ifdef CONFIG_CPU_ABRT_EV4
 71# ifdef CPU_DABORT_HANDLER
 72#  define MULTI_DABORT 1
 73# else
 74#  define CPU_DABORT_HANDLER v4_early_abort
 75# endif
 76#endif
 77
 78#ifdef CONFIG_CPU_ABRT_EV4T
 79# ifdef CPU_DABORT_HANDLER
 80#  define MULTI_DABORT 1
 81# else
 82#  define CPU_DABORT_HANDLER v4t_early_abort
 83# endif
 84#endif
 85
 86#ifdef CONFIG_CPU_ABRT_EV5TJ
 87# ifdef CPU_DABORT_HANDLER
 88#  define MULTI_DABORT 1
 89# else
 90#  define CPU_DABORT_HANDLER v5tj_early_abort
 91# endif
 92#endif
 93
 94#ifdef CONFIG_CPU_ABRT_EV5T
 95# ifdef CPU_DABORT_HANDLER
 96#  define MULTI_DABORT 1
 97# else
 98#  define CPU_DABORT_HANDLER v5t_early_abort
 99# endif
100#endif
101
102#ifdef CONFIG_CPU_ABRT_EV6
103# ifdef CPU_DABORT_HANDLER
104#  define MULTI_DABORT 1
105# else
106#  define CPU_DABORT_HANDLER v6_early_abort
107# endif
108#endif
109
110#ifdef CONFIG_CPU_ABRT_EV7
111# ifdef CPU_DABORT_HANDLER
112#  define MULTI_DABORT 1
113# else
114#  define CPU_DABORT_HANDLER v7_early_abort
115# endif
116#endif
117
118#ifndef CPU_DABORT_HANDLER
119#error Unknown data abort handler type
120#endif
121
122/*
123 *	Prefetch Abort Model
124 *	================
125 *
126 *	We have the following to choose from:
127 *	  legacy	- no IFSR, no IFAR
128 *	  v6		- ARMv6: IFSR, no IFAR
129 *	  v7		- ARMv7: IFSR and IFAR
130 */
131
132#undef CPU_PABORT_HANDLER
133#undef MULTI_PABORT
134
135#ifdef CONFIG_CPU_PABRT_LEGACY
136# ifdef CPU_PABORT_HANDLER
137#  define MULTI_PABORT 1
138# else
139#  define CPU_PABORT_HANDLER legacy_pabort
140# endif
141#endif
142
143#ifdef CONFIG_CPU_PABRT_V6
144# ifdef CPU_PABORT_HANDLER
145#  define MULTI_PABORT 1
146# else
147#  define CPU_PABORT_HANDLER v6_pabort
148# endif
149#endif
150
151#ifdef CONFIG_CPU_PABRT_V7
152# ifdef CPU_PABORT_HANDLER
153#  define MULTI_PABORT 1
154# else
155#  define CPU_PABORT_HANDLER v7_pabort
156# endif
157#endif
158
159#ifndef CPU_PABORT_HANDLER
160#error Unknown prefetch abort handler type
161#endif
162
163#endif