mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-09-06 01:43:39 +00:00
![Pierre Morel](/assets/img/avatar_default.png)
S390 adds two new SMP levels, drawers and books to the CPU topology. S390 CPUs have specific topology features like dedication and entitlement. These indicate to the guest information on host vCPU scheduling and help the guest make better scheduling decisions. Add the new levels to the relevant QAPI structs. Add all the supported topology levels, dedication and entitlement as properties to S390 CPUs. Create machine-common.json so we can later include it in machine-target.json also. Signed-off-by: Pierre Morel <pmorel@linux.ibm.com> Reviewed-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Co-developed-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Message-ID: <20231016183925.2384704-3-nsg@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
148 lines
3.3 KiB
Meson
148 lines
3.3 KiB
Meson
util_ss.add(files(
|
|
'opts-visitor.c',
|
|
'qapi-clone-visitor.c',
|
|
'qapi-dealloc-visitor.c',
|
|
'qapi-forward-visitor.c',
|
|
'qapi-util.c',
|
|
'qapi-visit-core.c',
|
|
'qobject-input-visitor.c',
|
|
'qobject-output-visitor.c',
|
|
'string-input-visitor.c',
|
|
'string-output-visitor.c',
|
|
))
|
|
if have_system
|
|
util_ss.add(files('qapi-type-helpers.c'))
|
|
endif
|
|
if have_system or have_tools or have_ga
|
|
util_ss.add(files(
|
|
'qmp-dispatch.c',
|
|
'qmp-event.c',
|
|
'qmp-registry.c',
|
|
))
|
|
endif
|
|
|
|
qapi_all_modules = [
|
|
'authz',
|
|
'block',
|
|
'block-core',
|
|
'block-export',
|
|
'char',
|
|
'common',
|
|
'compat',
|
|
'control',
|
|
'crypto',
|
|
'cxl',
|
|
'dump',
|
|
'error',
|
|
'introspect',
|
|
'job',
|
|
'machine-common',
|
|
'machine',
|
|
'machine-target',
|
|
'migration',
|
|
'misc',
|
|
'misc-target',
|
|
'net',
|
|
'pragma',
|
|
'qom',
|
|
'replay',
|
|
'run-state',
|
|
'sockets',
|
|
'stats',
|
|
'trace',
|
|
'transaction',
|
|
'virtio',
|
|
'yank',
|
|
]
|
|
if have_system
|
|
qapi_all_modules += [
|
|
'acpi',
|
|
'audio',
|
|
'cryptodev',
|
|
'qdev',
|
|
'pci',
|
|
'rdma',
|
|
'rocker',
|
|
'tpm',
|
|
]
|
|
endif
|
|
if have_system or have_tools
|
|
qapi_all_modules += [
|
|
'ui',
|
|
]
|
|
endif
|
|
|
|
qapi_nonmodule_outputs = [
|
|
'qapi-introspect.c', 'qapi-introspect.h',
|
|
'qapi-types.c', 'qapi-types.h',
|
|
'qapi-visit.h', 'qapi-visit.c',
|
|
'qapi-commands.h', 'qapi-commands.c',
|
|
'qapi-init-commands.h', 'qapi-init-commands.c',
|
|
'qapi-events.h', 'qapi-events.c',
|
|
'qapi-emit-events.c', 'qapi-emit-events.h',
|
|
]
|
|
|
|
# First build all sources
|
|
qapi_util_outputs = [
|
|
'qapi-builtin-types.c', 'qapi-builtin-visit.c',
|
|
'qapi-builtin-types.h', 'qapi-builtin-visit.h',
|
|
]
|
|
|
|
qapi_inputs = []
|
|
qapi_specific_outputs = []
|
|
foreach module : qapi_all_modules
|
|
qapi_inputs += [ files(module + '.json') ]
|
|
qapi_module_outputs = [
|
|
'qapi-types-@0@.c'.format(module),
|
|
'qapi-types-@0@.h'.format(module),
|
|
'qapi-visit-@0@.c'.format(module),
|
|
'qapi-visit-@0@.h'.format(module),
|
|
]
|
|
if have_system or have_tools
|
|
qapi_module_outputs += [
|
|
'qapi-events-@0@.c'.format(module),
|
|
'qapi-events-@0@.h'.format(module),
|
|
'qapi-commands-@0@.c'.format(module),
|
|
'qapi-commands-@0@.h'.format(module),
|
|
'qapi-commands-@0@.trace-events'.format(module),
|
|
]
|
|
endif
|
|
if module.endswith('-target')
|
|
qapi_specific_outputs += qapi_module_outputs
|
|
else
|
|
qapi_util_outputs += qapi_module_outputs
|
|
endif
|
|
endforeach
|
|
|
|
qapi_files = custom_target('shared QAPI source files',
|
|
output: qapi_util_outputs + qapi_specific_outputs + qapi_nonmodule_outputs,
|
|
input: [ files('qapi-schema.json') ],
|
|
command: [ qapi_gen, '-o', 'qapi', '-b', '@INPUT0@' ],
|
|
depend_files: [ qapi_inputs, qapi_gen_depends ])
|
|
|
|
# Now go through all the outputs and add them to the right sourceset.
|
|
# These loops must be synchronized with the output of the above custom target.
|
|
|
|
i = 0
|
|
foreach output : qapi_util_outputs
|
|
if output.endswith('.h')
|
|
genh += qapi_files[i]
|
|
endif
|
|
if output.endswith('.trace-events')
|
|
qapi_trace_events += qapi_files[i]
|
|
endif
|
|
util_ss.add(qapi_files[i])
|
|
i = i + 1
|
|
endforeach
|
|
|
|
foreach output : qapi_specific_outputs + qapi_nonmodule_outputs
|
|
if output.endswith('.h')
|
|
genh += qapi_files[i]
|
|
endif
|
|
if output.endswith('.trace-events')
|
|
qapi_trace_events += qapi_files[i]
|
|
endif
|
|
specific_ss.add(when: 'CONFIG_SYSTEM_ONLY', if_true: qapi_files[i])
|
|
i = i + 1
|
|
endforeach
|