xref: /openbmc/linux/arch/s390/include/asm/linkage.h (revision b2441318)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2c6557e7fSMartin Schwidefsky #ifndef __ASM_LINKAGE_H
3c6557e7fSMartin Schwidefsky #define __ASM_LINKAGE_H
4c6557e7fSMartin Schwidefsky 
5144d634aSJan Glauber #include <linux/stringify.h>
6144d634aSJan Glauber 
7144d634aSJan Glauber #define __ALIGN .align 4, 0x07
8144d634aSJan Glauber #define __ALIGN_STR __stringify(__ALIGN)
9c6557e7fSMartin Schwidefsky 
102e54dc3cSHendrik Brueckner #ifndef __ASSEMBLY__
112e54dc3cSHendrik Brueckner 
122e54dc3cSHendrik Brueckner /*
132e54dc3cSHendrik Brueckner  * Helper macro for exception table entries
142e54dc3cSHendrik Brueckner  */
152e54dc3cSHendrik Brueckner #define EX_TABLE(_fault, _target)	\
162e54dc3cSHendrik Brueckner 	".section __ex_table,\"a\"\n"	\
172e54dc3cSHendrik Brueckner 	".align	4\n"			\
182e54dc3cSHendrik Brueckner 	".long	(" #_fault ") - .\n"	\
192e54dc3cSHendrik Brueckner 	".long	(" #_target ") - .\n"	\
202e54dc3cSHendrik Brueckner 	".previous\n"
212e54dc3cSHendrik Brueckner 
222e54dc3cSHendrik Brueckner #else /* __ASSEMBLY__ */
232e54dc3cSHendrik Brueckner 
242e54dc3cSHendrik Brueckner #define EX_TABLE(_fault, _target)	\
252e54dc3cSHendrik Brueckner 	.section __ex_table,"a"	;	\
262e54dc3cSHendrik Brueckner 	.align	4 ;			\
272e54dc3cSHendrik Brueckner 	.long	(_fault) - . ;		\
282e54dc3cSHendrik Brueckner 	.long	(_target) - . ;		\
292e54dc3cSHendrik Brueckner 	.previous
302e54dc3cSHendrik Brueckner 
312e54dc3cSHendrik Brueckner #endif /* __ASSEMBLY__ */
32c6557e7fSMartin Schwidefsky #endif
33