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