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