xref: /linux/arch/s390/include/asm/linkage.h (revision d19e470b6605c900db21fc7b34c66b6891a79983)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __ASM_LINKAGE_H
3 #define __ASM_LINKAGE_H
4 
5 #include <linux/stringify.h>
6 
7 #define __ALIGN .align 4, 0x07
8 #define __ALIGN_STR __stringify(__ALIGN)
9 
10 #ifndef __ASSEMBLY__
11 
12 /*
13  * Helper macro for exception table entries
14  */
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 
22 #else /* __ASSEMBLY__ */
23 
24 #define EX_TABLE(_fault, _target)	\
25 	.section __ex_table,"a"	;	\
26 	.align	4 ;			\
27 	.long	(_fault) - . ;		\
28 	.long	(_target) - . ;		\
29 	.previous
30 
31 #define EX_TABLE_DMA(_fault, _target)	\
32 	.section .dma.ex_table, "a" ;	\
33 	.align	4 ;			\
34 	.long	(_fault) - . ;		\
35 	.long	(_target) - . ;		\
36 	.previous
37 
38 #endif /* __ASSEMBLY__ */
39 #endif
40