|
@@ -2,38 +2,26 @@
|
|
|
#ifndef __ASM_LINKAGE_H
|
|
|
#define __ASM_LINKAGE_H
|
|
|
|
|
|
+#include <asm/asm-const.h>
|
|
|
#include <linux/stringify.h>
|
|
|
|
|
|
#define __ALIGN .align 4, 0x07
|
|
|
#define __ALIGN_STR __stringify(__ALIGN)
|
|
|
|
|
|
-#ifndef __ASSEMBLY__
|
|
|
-
|
|
|
/*
|
|
|
* Helper macro for exception table entries
|
|
|
*/
|
|
|
-#define EX_TABLE(_fault, _target) \
|
|
|
- ".section __ex_table,\"a\"\n" \
|
|
|
- ".align 4\n" \
|
|
|
- ".long (" #_fault ") - .\n" \
|
|
|
- ".long (" #_target ") - .\n" \
|
|
|
- ".previous\n"
|
|
|
-
|
|
|
-#else /* __ASSEMBLY__ */
|
|
|
|
|
|
-#define EX_TABLE(_fault, _target) \
|
|
|
- .section __ex_table,"a" ; \
|
|
|
- .align 4 ; \
|
|
|
- .long (_fault) - . ; \
|
|
|
- .long (_target) - . ; \
|
|
|
- .previous
|
|
|
+#define __EX_TABLE(_section, _fault, _target) \
|
|
|
+ stringify_in_c(.section _section,"a";) \
|
|
|
+ stringify_in_c(.align 4;) \
|
|
|
+ stringify_in_c(.long (_fault) - .;) \
|
|
|
+ stringify_in_c(.long (_target) - .;) \
|
|
|
+ stringify_in_c(.previous)
|
|
|
|
|
|
-#define EX_TABLE_DMA(_fault, _target) \
|
|
|
- .section .dma.ex_table, "a" ; \
|
|
|
- .align 4 ; \
|
|
|
- .long (_fault) - . ; \
|
|
|
- .long (_target) - . ; \
|
|
|
- .previous
|
|
|
+#define EX_TABLE(_fault, _target) \
|
|
|
+ __EX_TABLE(__ex_table, _fault, _target)
|
|
|
+#define EX_TABLE_DMA(_fault, _target) \
|
|
|
+ __EX_TABLE(.dma.ex_table, _fault, _target)
|
|
|
|
|
|
-#endif /* __ASSEMBLY__ */
|
|
|
#endif
|