blob: ca3b15e9a0a848d91d4c2bc4baea0479aa1b7dd3 [file] [log] [blame]
Manish V Badarkhe9e032182025-05-30 12:31:00 +01001/*
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
Manish V Badarkhe06a6f292025-04-15 20:16:34 +010010#include <stdbool.h>
Manish V Badarkhe9e032182025-05-30 12:31:00 +010011#include <stdint.h>
12
13typedef enum {
14 PRIME_NONE = 0,
Manish V Badarkhe67fa1822025-04-15 20:16:36 +010015 PRIME_STARTED,
16 PRIME_COMPLETE,
Manish V Badarkhe9e032182025-05-30 12:31:00 +010017} lfa_prime_status_t;
18
19struct lfa_component_status {
20 uint32_t component_id;
21 lfa_prime_status_t prime_status;
22};
23
24typedef int32_t (*component_prime_fn)(struct lfa_component_status *activation);
25typedef int32_t (*component_activate_fn)(struct lfa_component_status *activation,
26 uint64_t ep_address,
27 uint64_t context_id);
28
29struct lfa_component_ops {
30 component_prime_fn prime;
31 component_activate_fn activate;
Manish V Badarkhe06a6f292025-04-15 20:16:34 +010032 bool may_reset_cpu;
33 bool cpu_rendezvous_required;
Manish V Badarkhe9e032182025-05-30 12:31:00 +010034};
35
36#endif /* LFA_COMPONENT_DESC_H */