[PATCH] smccc: Make constants available to assembly

Andrew Scull ascull at google.com
Mon Jun 29 08:34:37 EDT 2020


On Thu, Jun 18, 2020 at 03:55:11PM +0100, Andrew Scull wrote:
> Move constants out of the C-only section of the header next to the other
> constants that are available to assembly.
> 
> Signed-off-by: Andrew Scull <ascull at google.com>
> ---
>  include/linux/arm-smccc.h | 44 +++++++++++++++++++--------------------
>  1 file changed, 22 insertions(+), 22 deletions(-)
> 
> diff --git a/include/linux/arm-smccc.h b/include/linux/arm-smccc.h
> index 56d6a5c6e353..efcbde731f03 100644
> --- a/include/linux/arm-smccc.h
> +++ b/include/linux/arm-smccc.h
> @@ -81,6 +81,28 @@
>  			   ARM_SMCCC_SMC_32,				\
>  			   0, 0x7fff)
>  
> +/* Paravirtualised time calls (defined by ARM DEN0057A) */
> +#define ARM_SMCCC_HV_PV_TIME_FEATURES				\
> +	ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,			\
> +			   ARM_SMCCC_SMC_64,			\
> +			   ARM_SMCCC_OWNER_STANDARD_HYP,	\
> +			   0x20)
> +
> +#define ARM_SMCCC_HV_PV_TIME_ST					\
> +	ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,			\
> +			   ARM_SMCCC_SMC_64,			\
> +			   ARM_SMCCC_OWNER_STANDARD_HYP,	\
> +			   0x21)
> +
> +/*
> + * Return codes defined in ARM DEN 0070A
> + * ARM DEN 0070A is now merged/consolidated into ARM DEN 0028 C
> + */
> +#define SMCCC_RET_SUCCESS			0
> +#define SMCCC_RET_NOT_SUPPORTED			-1
> +#define SMCCC_RET_NOT_REQUIRED			-2
> +#define SMCCC_RET_INVALID_PARAMETER		-3
> +
>  #ifndef __ASSEMBLY__
>  
>  #include <linux/linkage.h>
> @@ -331,15 +353,6 @@ asmlinkage void __arm_smccc_hvc(unsigned long a0, unsigned long a1,
>   */
>  #define arm_smccc_1_1_hvc(...)	__arm_smccc_1_1(SMCCC_HVC_INST, __VA_ARGS__)
>  
> -/*
> - * Return codes defined in ARM DEN 0070A
> - * ARM DEN 0070A is now merged/consolidated into ARM DEN 0028 C
> - */
> -#define SMCCC_RET_SUCCESS			0
> -#define SMCCC_RET_NOT_SUPPORTED			-1
> -#define SMCCC_RET_NOT_REQUIRED			-2
> -#define SMCCC_RET_INVALID_PARAMETER		-3
> -
>  /*
>   * Like arm_smccc_1_1* but always returns SMCCC_RET_NOT_SUPPORTED.
>   * Used when the SMCCC conduit is not defined. The empty asm statement
> @@ -385,18 +398,5 @@ asmlinkage void __arm_smccc_hvc(unsigned long a0, unsigned long a1,
>  		method;							\
>  	})
>  
> -/* Paravirtualised time calls (defined by ARM DEN0057A) */
> -#define ARM_SMCCC_HV_PV_TIME_FEATURES				\
> -	ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,			\
> -			   ARM_SMCCC_SMC_64,			\
> -			   ARM_SMCCC_OWNER_STANDARD_HYP,	\
> -			   0x20)
> -
> -#define ARM_SMCCC_HV_PV_TIME_ST					\
> -	ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,			\
> -			   ARM_SMCCC_SMC_64,			\
> -			   ARM_SMCCC_OWNER_STANDARD_HYP,	\
> -			   0x21)
> -
>  #endif /*__ASSEMBLY__*/
>  #endif /*__LINUX_ARM_SMCCC_H*/
> -- 
> 2.27.0.290.gba653c62da-goog
> 

ping :)



More information about the linux-arm-kernel mailing list