| /* |
| * 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> |
| #include <services/spm_core_manifest.h> |
| |
| 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 */ |