HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-26-0-120 6.17.0-1009-aws #9~24.04.2-Ubuntu SMP Fri Mar 6 23:50:29 UTC 2026 x86_64
User: ubuntu (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: //usr/src/linux-headers-7.0.0-1009-aws/arch/arm64/include/asm/static_call.h
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ASM_STATIC_CALL_H
#define _ASM_STATIC_CALL_H

#define __ARCH_DEFINE_STATIC_CALL_TRAMP(name, target)		    \
	asm("	.pushsection .static_call.text, \"ax\"		\n" \
	    "	.align	4					\n" \
	    "	.globl	" name "				\n" \
	    name ":						\n" \
	    "	hint	34	/* BTI C */			\n" \
	    "	adrp	x16, 1f					\n" \
	    "	ldr	x16, [x16, :lo12:1f]			\n" \
	    "	br	x16					\n" \
	    "	.type	" name ", %function			\n" \
	    "	.size	" name ", . - " name "			\n" \
	    "	.popsection					\n" \
	    "	.pushsection .rodata, \"a\"			\n" \
	    "	.align	3					\n" \
	    "1:	.quad	" target "				\n" \
	    "	.popsection					\n")

#define ARCH_DEFINE_STATIC_CALL_TRAMP(name, func)			\
	__ARCH_DEFINE_STATIC_CALL_TRAMP(STATIC_CALL_TRAMP_STR(name), #func)

#define ARCH_DEFINE_STATIC_CALL_NULL_TRAMP(name)			\
	ARCH_DEFINE_STATIC_CALL_TRAMP(name, __static_call_return0)

#define ARCH_DEFINE_STATIC_CALL_RET0_TRAMP(name)			\
	ARCH_DEFINE_STATIC_CALL_TRAMP(name, __static_call_return0)

#endif /* _ASM_STATIC_CALL_H */