arch/arm64/kvm/hyp/include/nvhe/arm-smccc.h

Source file repositories/reference/linux-study-clean/arch/arm64/kvm/hyp/include/nvhe/arm-smccc.h

File Facts

System
Linux kernel
Corpus path
arch/arm64/kvm/hyp/include/nvhe/arm-smccc.h
Extension
.h
Size
621 bytes
Lines
24
Domain
Architecture Layer
Bucket
arch/arm64
Inferred role
Architecture Layer: implementation source
Status
source implementation candidate

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

#ifndef __ARM64_KVM_HYP_NVHE_ARM_SMCCC_H__
#define __ARM64_KVM_HYP_NVHE_ARM_SMCCC_H__

#include <asm/kvm_hypevents.h>

#include <linux/arm-smccc.h>

#define hyp_smccc_1_1_smc(...)					\
	do {							\
		trace_hyp_exit(NULL, HYP_REASON_SMC);		\
		arm_smccc_1_1_smc(__VA_ARGS__);			\
		trace_hyp_enter(NULL, HYP_REASON_SMC);		\
	} while (0)

#define hyp_smccc_1_2_smc(...)					\
	do {							\
		trace_hyp_exit(NULL, HYP_REASON_SMC);		\
		arm_smccc_1_2_smc(__VA_ARGS__);			\
		trace_hyp_enter(NULL, HYP_REASON_SMC);		\
	} while (0)

#endif /* __ARM64_KVM_HYP_NVHE_ARM_SMCCC_H__ */

Annotation

Implementation Notes