diff options
| author | Mark Brown <broonie@kernel.org> | 2026-11-13 17:23:31 +0000 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-11-13 17:23:31 +0000 |
| commit | 4507970404e9dde2a3cb6b799d36d44f03131879 (patch) | |
| tree | cfba3e60dafbd235bc1b48e9c2b5ccdc2c680e58 /include/linux | |
| parent | 7c8148fe46e7a3730da09d20a430fd991cbba2d5 (diff) | |
| parent | eab80895d447ec164a1d91a1ab377bd3a9dc9044 (diff) | |
| download | linux-next-4507970404e9dde2a3cb6b799d36d44f03131879.tar.gz linux-next-4507970404e9dde2a3cb6b799d36d44f03131879.zip | |
Merge branch 'hyperv-next' of https://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/arm-rsi-cmds.h | 22 | ||||
| -rw-r--r-- | include/linux/arm-smccc-rsi.h | 7 |
2 files changed, 29 insertions, 0 deletions
diff --git a/include/linux/arm-rsi-cmds.h b/include/linux/arm-rsi-cmds.h index 3f7a6a833993..01d292e028a9 100644 --- a/include/linux/arm-rsi-cmds.h +++ b/include/linux/arm-rsi-cmds.h @@ -236,4 +236,26 @@ static inline unsigned long rsi_attestation_token_continue(phys_addr_t granule, return res.a0; } +/** + * rsi_host_call - Make a Host call. + * @host_call_struct: IPA of host call structure + * + * This call will fail if the IPA of the host call structure: + * * is not aligned to 256 bytes, + * * is not protected / encrypted, + * * is RIPAS_EMPTY + * + * Returns: + * On success, returns RSI_SUCCESS. + * Otherwise, returns an error code. + */ +static inline unsigned long rsi_host_call(phys_addr_t host_call_struct) +{ + struct arm_smccc_res res; + + arm_smccc_smc(SMC_RSI_HOST_CALL, host_call_struct, 0, 0, 0, 0, 0, 0, + &res); + return res.a0; +} + #endif /* __LINUX_ARM_RSI_CMDS_H_ */ diff --git a/include/linux/arm-smccc-rsi.h b/include/linux/arm-smccc-rsi.h index cca881ddfdba..791e6a2b0a08 100644 --- a/include/linux/arm-smccc-rsi.h +++ b/include/linux/arm-smccc-rsi.h @@ -142,6 +142,13 @@ struct realm_config { */ } __aligned(0x1000); +struct rsi_host_call { + u16 immediate; + u8 _padding[6]; + u64 gprs[31]; +} __aligned(256); +static_assert(sizeof(struct rsi_host_call) == 256); + #endif /* __ASSEMBLER__ */ /* |
