/* * 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 #include #include #include int spmc_setup(void); void spmc_populate_attrs(spmc_manifest_attribute_t *spmc_attrs); 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 */