mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-09 15:29:16 +00:00
00c2ca84c6
As described in include/linux/linkage.h, FUNC -- C-like functions (proper stack frame etc.) CODE -- non-C code (e.g. irq handlers with different, special stack etc.) SYM_FUNC_{START, END} -- use for global functions SYM_CODE_{START, END} -- use for non-C (special) functions So use SYM_CODE_* to annotate exception handlers. Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
45 lines
1.0 KiB
C
45 lines
1.0 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __ASM_LINKAGE_H
|
|
#define __ASM_LINKAGE_H
|
|
|
|
#define __ALIGN .align 2
|
|
#define __ALIGN_STR __stringify(__ALIGN)
|
|
|
|
#define SYM_FUNC_START(name) \
|
|
SYM_START(name, SYM_L_GLOBAL, SYM_A_ALIGN) \
|
|
.cfi_startproc;
|
|
|
|
#define SYM_FUNC_START_NOALIGN(name) \
|
|
SYM_START(name, SYM_L_GLOBAL, SYM_A_NONE) \
|
|
.cfi_startproc;
|
|
|
|
#define SYM_FUNC_START_LOCAL(name) \
|
|
SYM_START(name, SYM_L_LOCAL, SYM_A_ALIGN) \
|
|
.cfi_startproc;
|
|
|
|
#define SYM_FUNC_START_LOCAL_NOALIGN(name) \
|
|
SYM_START(name, SYM_L_LOCAL, SYM_A_NONE) \
|
|
.cfi_startproc;
|
|
|
|
#define SYM_FUNC_START_WEAK(name) \
|
|
SYM_START(name, SYM_L_WEAK, SYM_A_ALIGN) \
|
|
.cfi_startproc;
|
|
|
|
#define SYM_FUNC_START_WEAK_NOALIGN(name) \
|
|
SYM_START(name, SYM_L_WEAK, SYM_A_NONE) \
|
|
.cfi_startproc;
|
|
|
|
#define SYM_FUNC_END(name) \
|
|
.cfi_endproc; \
|
|
SYM_END(name, SYM_T_FUNC)
|
|
|
|
#define SYM_CODE_START(name) \
|
|
SYM_START(name, SYM_L_GLOBAL, SYM_A_ALIGN) \
|
|
.cfi_startproc;
|
|
|
|
#define SYM_CODE_END(name) \
|
|
.cfi_endproc; \
|
|
SYM_END(name, SYM_T_NONE)
|
|
|
|
#endif
|