Files
qemu/qapi/meson.build
Mauro Carvalho Chehab ddd8f3baa2 qapi/acpi-hest: add an interface to do generic CPER error injection
Create a QMP command to be used for generic ACPI APEI hardware error
injection (HEST) via GHESv2, and add support for it for ARM guests.

Error injection uses ACPI_HEST_SRC_ID_QMP source ID to be platform
independent. This is mapped at arch virt bindings, depending on the
types supported by QEMU and by the BIOS. So, on ARM, this is supported
via ACPI_GHES_NOTIFY_GPIO notification type.

This patch was co-authored:
    - original ghes logic to inject a simple ARM record by Shiju Jose;
    - generic logic to handle block addresses by Jonathan Cameron;
    - generic GHESv2 error inject by Mauro Carvalho Chehab;

Co-authored-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Co-authored-by: Shiju Jose <shiju.jose@huawei.com>
Co-authored-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Shiju Jose <shiju.jose@huawei.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-ID: <81e2118b3c8b7e5da341817f277d61251655e0db.1758610789.git.mchehab+huawei@kernel.org>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2025-10-05 08:06:32 -04:00

133 lines
2.7 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',
'ebpf',
'error',
'introspect',
'job',
'machine-common',
'machine',
'machine-s390x',
'migration',
'misc',
'net',
'pragma',
'qom',
'replay',
'run-state',
'sockets',
'stats',
'trace',
'transaction',
'vfio',
'virtio',
'yank',
]
if have_system
qapi_all_modules += [
'accelerator',
'acpi',
'acpi-hest',
'audio',
'cryptodev',
'qdev',
'pci',
'rocker',
'misc-arm',
'misc-i386',
'tpm',
'uefi',
]
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',
]
qapi_outputs = qapi_nonmodule_outputs + [
'qapi-builtin-types.c', 'qapi-builtin-visit.c',
'qapi-builtin-types.h', 'qapi-builtin-visit.h',
]
qapi_inputs = []
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
qapi_outputs += qapi_module_outputs
endforeach
qapi_files = custom_target('shared QAPI source files',
output: qapi_outputs,
input: [ files('qapi-schema.json') ],
command: [ qapi_gen, '-o', 'qapi', '-b', '@INPUT0@' ],
depend_files: [ qapi_inputs, qapi_gen_depends ])
i = 0
foreach output : qapi_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