hw/cxl-host: Add an index field to CXLFixedMemoryWindow
To enable these to be found in a fixed order, that order needs to be known. This will later be used to sort a list of these structures so that address map and ACPI table entries are predictable. Tested-by: Li Zhijian <lizhijian@fujitsu.com> Reviewed-by: Li Zhijian <lizhijian@fujitsu.com> Reviewed-by: Fan Ni <fan.ni@samsung.com> Reviewed-by: Eric Auger <eric.auger@redhat.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Tested-by: Itaru Kitayama <itaru.kitayama@fujitsu.com> Message-id: 20250703104110.992379-2-Jonathan.Cameron@huawei.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
4b3a1eb066
commit
35566583d8
2 changed files with 7 additions and 3 deletions
|
|
@ -24,13 +24,15 @@
|
|||
|
||||
static void cxl_fixed_memory_window_config(CXLState *cxl_state,
|
||||
CXLFixedMemoryWindowOptions *object,
|
||||
Error **errp)
|
||||
int index, Error **errp)
|
||||
{
|
||||
ERRP_GUARD();
|
||||
g_autofree CXLFixedWindow *fw = g_malloc0(sizeof(*fw));
|
||||
strList *target;
|
||||
int i;
|
||||
|
||||
fw->index = index;
|
||||
|
||||
for (target = object->targets; target; target = target->next) {
|
||||
fw->num_targets++;
|
||||
}
|
||||
|
|
@ -325,14 +327,15 @@ static void machine_set_cfmw(Object *obj, Visitor *v, const char *name,
|
|||
CXLState *state = opaque;
|
||||
CXLFixedMemoryWindowOptionsList *cfmw_list = NULL;
|
||||
CXLFixedMemoryWindowOptionsList *it;
|
||||
int index;
|
||||
|
||||
visit_type_CXLFixedMemoryWindowOptionsList(v, name, &cfmw_list, errp);
|
||||
if (!cfmw_list) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (it = cfmw_list; it; it = it->next) {
|
||||
cxl_fixed_memory_window_config(state, it->value, errp);
|
||||
for (it = cfmw_list, index = 0; it; it = it->next, index++) {
|
||||
cxl_fixed_memory_window_config(state, it->value, index, errp);
|
||||
}
|
||||
state->cfmw_list = cfmw_list;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@
|
|||
typedef struct PXBCXLDev PXBCXLDev;
|
||||
|
||||
typedef struct CXLFixedWindow {
|
||||
int index;
|
||||
uint64_t size;
|
||||
char **targets;
|
||||
PXBCXLDev *target_hbs[16];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue