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 }; 23 24 typedef int32_t (*component_prime_fn)(struct lfa_component_status *activation); 25 typedef int32_t (*component_activate_fn)(struct lfa_component_status *activation, 26 uint64_t ep_address, 27 uint64_t context_id); 28 29 struct lfa_component_ops { 30 component_prime_fn prime; 31 component_activate_fn activate; 32 bool may_reset_cpu; 33 bool cpu_rendezvous_required; 34 }; 35 36 #endif /* LFA_COMPONENT_DESC_H */ 37