blob: 5f198bda8abd5256739e5e12123034243b12c250 [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;
Manish V Badarkhe07de22d2025-05-16 15:16:53 +010022 bool cpu_rendezvous_required;
Manish V Badarkhe9e032182025-05-30 12:31:00 +010023};
24
25typedef int32_t (*component_prime_fn)(struct lfa_component_status *activation);
26typedef int32_t (*component_activate_fn)(struct lfa_component_status *activation,
27 uint64_t ep_address,
28 uint64_t context_id);
29
30struct lfa_component_ops {
31 component_prime_fn prime;
32 component_activate_fn activate;
Manish V Badarkhe06a6f292025-04-15 20:16:34 +010033 bool may_reset_cpu;
34 bool cpu_rendezvous_required;
Manish V Badarkhe9e032182025-05-30 12:31:00 +010035};
36
37#endif /* LFA_COMPONENT_DESC_H */