1 /*
2  * Arm SCP/MCP Software
3  * Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  *
7  * Description:
8  *      CMN_BOOKER Context structure Interface
9  */
10 
11 #ifndef INTERNAL_CMN_BOOKER_CTX_H
12 #define INTERNAL_CMN_BOOKER_CTX_H
13 
14 #include <cmn_booker.h>
15 
16 #include <mod_cmn_booker.h>
17 
18 #include <stdbool.h>
19 #include <stdint.h>
20 
21 static struct cmn_booker_ctx {
22     const struct mod_cmn_booker_config *config;
23 
24     struct cmn_booker_cfgm_reg *root;
25 
26     /* Number of HN-F (system cache) nodes in the system */
27     unsigned int hnf_count;
28     uint64_t *hnf_cache_group;
29     uint64_t *sn_nodeid_group;
30 
31     /*
32      * External RN-SAMs. The driver keeps a list of tuples (node identifier and
33      * node pointers). The configuration of these nodes is via the SAM API.
34      */
35     unsigned int external_rnsam_count;
36     struct external_rnsam_tuple *external_rnsam_table;
37 
38     /*
39      * Internal RN-SAMs. The driver keeps a list of RN-SAM pointers to
40      * configure them once the system has been fully discovered and all
41      * parameters are known
42      */
43     unsigned int internal_rnsam_count;
44     struct cmn_booker_rnsam_reg **internal_rnsam_table;
45 
46     bool initialized;
47 } *ctx;
48 
49 
50 #endif /* INTERNAL_CMN600_CTX_H */
51