[clang][lib][sm] Add initializer macro for smc32_arg_t
Change-Id: Iba67be5ee7350217945900d67226447f24beb9fe
diff --git a/lib/sm/halt.c b/lib/sm/halt.c
index c93db4d..fea2339 100644
--- a/lib/sm/halt.c
+++ b/lib/sm/halt.c
@@ -30,7 +30,7 @@
void platform_halt(platform_halt_action suggested_action,
platform_halt_reason reason)
{
- smc32_args_t args = {0};
+ smc32_args_t args = SMC32_ARGS_INITIAL_VALUE(args);
dprintf(ALWAYS, "HALT: (reason = %d)\n", reason);
arch_disable_ints();
diff --git a/lib/sm/include/lib/sm.h b/lib/sm/include/lib/sm.h
index 8b5a8c3..87d3828 100644
--- a/lib/sm/include/lib/sm.h
+++ b/lib/sm/include/lib/sm.h
@@ -40,6 +40,8 @@
uint32_t params[SMC_NUM_PARAMS];
} smc32_args_t;
+#define SMC32_ARGS_INITIAL_VALUE(args) {0, {0}}
+
typedef long (*smc32_handler_t)(smc32_args_t *args);
typedef struct smc32_entity {
diff --git a/lib/sm/sm.c b/lib/sm/sm.c
index b07f465..2768812 100644
--- a/lib/sm/sm.c
+++ b/lib/sm/sm.c
@@ -185,7 +185,7 @@
/* must be called with irqs disabled */
static void sm_return_and_wait_for_next_stdcall(long ret, int cpu)
{
- smc32_args_t args = {0};
+ smc32_args_t args = SMC32_ARGS_INITIAL_VALUE(args);
do {
arch_disable_fiqs();
@@ -427,7 +427,7 @@
void sm_handle_fiq(void)
{
uint32_t expected_return;
- smc32_args_t args = {0};
+ smc32_args_t args = SMC32_ARGS_INITIAL_VALUE(args);
if (sm_get_api_version() >= TRUSTY_API_VERSION_RESTART_FIQ) {
sm_sched_nonsecure(SM_ERR_FIQ_INTERRUPTED, &args);
expected_return = SMC_SC_RESTART_FIQ;