/*
 * Copyright (c) 2022, ARM Limited and Contributors. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#ifndef SPMC_SVC_H
#define SPMC_SVC_H

#ifndef __ASSEMBLER__
#include <stdint.h>

#include <lib/utils_def.h>
#include <services/ffa_svc.h>

int spmc_setup(void);
void *spmc_get_config_addr(void);

void spmc_set_config_addr(uintptr_t soc_fw_config);

uint64_t spmc_smc_handler(uint32_t smc_fid,
			  bool secure_origin,
			  uint64_t x1,
			  uint64_t x2,
			  uint64_t x3,
			  uint64_t x4,
			  void *cookie,
			  void *handle,
			  uint64_t flags);

static inline bool is_spmc_at_el3(void)
{
	return SPMC_AT_EL3 == 1;
}

#endif /* __ASSEMBLER__ */

#endif /* SPMC_SVC_H */
