1 /* 2 * Copyright (c) 2025, Arm Limited. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef LFA_COMPONENT_DESC_H 8 #define LFA_COMPONENT_DESC_H 9 10 #include <stdbool.h> 11 #include <stdint.h> 12 13 typedef enum { 14 PRIME_NONE = 0, 15 PRIME_STARTED, 16 PRIME_COMPLETE, 17 } lfa_prime_status_t; 18 19 struct lfa_component_status { 20 uint32_t component_id; 21 lfa_prime_status_t prime_status; 22 bool cpu_rendezvous_required; 23 }; 24 25 typedef int32_t (*component_prime_fn)(struct lfa_component_status *activation); 26 typedef int32_t (*component_activate_fn)(struct lfa_component_status *activation, 27 uint64_t ep_address, 28 uint64_t context_id); 29 30 struct lfa_component_ops { 31 component_prime_fn prime; 32 component_activate_fn activate; 33 bool may_reset_cpu; 34 bool cpu_rendezvous_required; 35 }; 36 37 #endif /* LFA_COMPONENT_DESC_H */ 38