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