xref: /openbmc/linux/arch/loongarch/include/asm/linkage.h (revision 74e9347ebc5be452935fe4f3eddb150aa5a6f4fe)
1b738c106SHuacai Chen /* SPDX-License-Identifier: GPL-2.0 */
2b738c106SHuacai Chen #ifndef __ASM_LINKAGE_H
3b738c106SHuacai Chen #define __ASM_LINKAGE_H
4b738c106SHuacai Chen 
5b738c106SHuacai Chen #define __ALIGN		.align 2
6b738c106SHuacai Chen #define __ALIGN_STR	__stringify(__ALIGN)
7b738c106SHuacai Chen 
8b738c106SHuacai Chen #define SYM_FUNC_START(name)				\
9b738c106SHuacai Chen 	SYM_START(name, SYM_L_GLOBAL, SYM_A_ALIGN)	\
10b738c106SHuacai Chen 	.cfi_startproc;
11b738c106SHuacai Chen 
12b738c106SHuacai Chen #define SYM_FUNC_START_NOALIGN(name)			\
13b738c106SHuacai Chen 	SYM_START(name, SYM_L_GLOBAL, SYM_A_NONE)	\
14b738c106SHuacai Chen 	.cfi_startproc;
15b738c106SHuacai Chen 
16b738c106SHuacai Chen #define SYM_FUNC_START_LOCAL(name)			\
17b738c106SHuacai Chen 	SYM_START(name, SYM_L_LOCAL, SYM_A_ALIGN)	\
18b738c106SHuacai Chen 	.cfi_startproc;
19b738c106SHuacai Chen 
20b738c106SHuacai Chen #define SYM_FUNC_START_LOCAL_NOALIGN(name)		\
21b738c106SHuacai Chen 	SYM_START(name, SYM_L_LOCAL, SYM_A_NONE)	\
22b738c106SHuacai Chen 	.cfi_startproc;
23b738c106SHuacai Chen 
24b738c106SHuacai Chen #define SYM_FUNC_START_WEAK(name)			\
25b738c106SHuacai Chen 	SYM_START(name, SYM_L_WEAK, SYM_A_ALIGN)	\
26b738c106SHuacai Chen 	.cfi_startproc;
27b738c106SHuacai Chen 
28b738c106SHuacai Chen #define SYM_FUNC_START_WEAK_NOALIGN(name)		\
29b738c106SHuacai Chen 	SYM_START(name, SYM_L_WEAK, SYM_A_NONE)		\
30b738c106SHuacai Chen 	.cfi_startproc;
31b738c106SHuacai Chen 
32b738c106SHuacai Chen #define SYM_FUNC_END(name)				\
33b738c106SHuacai Chen 	.cfi_endproc;					\
34b738c106SHuacai Chen 	SYM_END(name, SYM_T_FUNC)
35b738c106SHuacai Chen 
36*00c2ca84STiezhu Yang #define SYM_CODE_START(name)				\
37*00c2ca84STiezhu Yang 	SYM_START(name, SYM_L_GLOBAL, SYM_A_ALIGN)	\
38*00c2ca84STiezhu Yang 	.cfi_startproc;
39*00c2ca84STiezhu Yang 
40*00c2ca84STiezhu Yang #define SYM_CODE_END(name)				\
41*00c2ca84STiezhu Yang 	.cfi_endproc;					\
42*00c2ca84STiezhu Yang 	SYM_END(name, SYM_T_NONE)
43*00c2ca84STiezhu Yang 
44b738c106SHuacai Chen #endif
45