.. | .. |
---|
2 | 2 | #ifndef __ASM_LINKAGE_H |
---|
3 | 3 | #define __ASM_LINKAGE_H |
---|
4 | 4 | |
---|
| 5 | +#include <asm/asm-const.h> |
---|
5 | 6 | #include <linux/stringify.h> |
---|
6 | 7 | |
---|
7 | 8 | #define __ALIGN .align 4, 0x07 |
---|
8 | 9 | #define __ALIGN_STR __stringify(__ALIGN) |
---|
9 | 10 | |
---|
10 | | -#ifndef __ASSEMBLY__ |
---|
11 | | - |
---|
12 | 11 | /* |
---|
13 | 12 | * Helper macro for exception table entries |
---|
14 | 13 | */ |
---|
15 | | -#define EX_TABLE(_fault, _target) \ |
---|
16 | | - ".section __ex_table,\"a\"\n" \ |
---|
17 | | - ".align 4\n" \ |
---|
18 | | - ".long (" #_fault ") - .\n" \ |
---|
19 | | - ".long (" #_target ") - .\n" \ |
---|
20 | | - ".previous\n" |
---|
21 | 14 | |
---|
22 | | -#else /* __ASSEMBLY__ */ |
---|
| 15 | +#define __EX_TABLE(_section, _fault, _target) \ |
---|
| 16 | + stringify_in_c(.section _section,"a";) \ |
---|
| 17 | + stringify_in_c(.align 8;) \ |
---|
| 18 | + stringify_in_c(.long (_fault) - .;) \ |
---|
| 19 | + stringify_in_c(.long (_target) - .;) \ |
---|
| 20 | + stringify_in_c(.quad 0;) \ |
---|
| 21 | + stringify_in_c(.previous) |
---|
23 | 22 | |
---|
24 | | -#define EX_TABLE(_fault, _target) \ |
---|
25 | | - .section __ex_table,"a" ; \ |
---|
26 | | - .align 4 ; \ |
---|
27 | | - .long (_fault) - . ; \ |
---|
28 | | - .long (_target) - . ; \ |
---|
29 | | - .previous |
---|
| 23 | +#define EX_TABLE(_fault, _target) \ |
---|
| 24 | + __EX_TABLE(__ex_table, _fault, _target) |
---|
| 25 | +#define EX_TABLE_DMA(_fault, _target) \ |
---|
| 26 | + __EX_TABLE(.dma.ex_table, _fault, _target) |
---|
30 | 27 | |
---|
31 | | -#endif /* __ASSEMBLY__ */ |
---|
32 | 28 | #endif |
---|