mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
Merge tag 'pull-request-2023-04-20' of https://gitlab.com/thuth/qemu into staging
* Compat machines for version 8.1 * Allow setting a chardev input file on the command line * Fix .travis.yml to work with non-public Travis instances, too * Move a lot of code from specifc_ss into softmmu_ss * Add a test case for TPM TIS I2C connected to Aspeed I2C controller * Update tests/vm/freebsd to version 13 * Some more misc minor fixes here and there # -----BEGIN PGP SIGNATURE----- # # iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmRBDtMRHHRodXRoQHJl # ZGhhdC5jb20ACgkQLtnXdP5wLbXfjw//UYytlyZsDOLAMfFNGQViMmVf29KbrDRe # doDh4Nl1oZLNKm9C5XlQExhsRbLm6Hi9nyQvSCJs4CvZ1jBY6U7GfgMNIaozXWb3 # 4gQyJb9ACe/z8bQmPUVF2sdW1QZ9zpf8LWpCOTGUZiI2Tevzkz7b/F5ZxiQiseG6 # dXe8UIwdZhG4jz2+6viqjHiGlKoBkegGYoJthcwnR07aRz2woiNr7rKRiJEiv2G7 # UfMVB96uLkpEhaDoohz440/rjviazO1nt6HDvgEajXT1X5P/8phT9IvT7olAZXZH # R2Qm6YyYcSWavoPms3AryAWG8FjomcyBjuebfAVW5/x+fl/401sn9quBMoZrYPEX # dfzF64vVokdXNQEH6+qc95PdB6/+d0CZPY8ilMRtAttf2sMw7IgqhG3zDLbj9t6R # dns2/DY9zu2pp07IEAXn/iVbW4rl2HADUQncr6B/cPy++lYiFvv7LX8OE+YWOsk0 # gvxzYx6rRhr5j7xT1sP30pLwsG3mX7qRDfba1Bt19CzSbu7UGN+w+S1xclgZDoqE # 0AZIeVUuqqNTEoBLoa2xHUDGs9NjeI2+qIh0R5csS/bqDscLXj0cOluvJO48n4Rt # +SGQSCSmU/lxn6EbBz4tw3orlp0clBH9fEaSg9lYxuUTYvQOpdYS7u4d63VQFvzp # dwQ9LRDFNsA= # =8ZFL # -----END PGP SIGNATURE----- # gpg: Signature made Thu 20 Apr 2023 11:07:15 AM BST # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [undefined] # gpg: aka "Thomas Huth <thuth@redhat.com>" [undefined] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [undefined] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * tag 'pull-request-2023-04-20' of https://gitlab.com/thuth/qemu: (23 commits) tests/vm/freebsd: Update to FreeBSD 13.2 qtest: Add a test case for TPM TIS I2C connected to Aspeed I2C controller qtest: Move tpm_util_tis_transmit() into tpm-tis-utils.c and rename it qtest: Add functions for accessing devices on Aspeed I2C controller MAINTAINERS: Add Juan Quintela to developer guides review cpu: Remove parameter of list_cpus() hw/core: Move numa.c into the target independent source set softmmu: Move dirtylimit.c into the target independent source set hw/display: Compile vga.c as target-independent code softmmu: Make qtest.c target independent include/exec: Provide the tswap() functions for target independent code, too softmmu/qtest: Move the target-specific pseries RTAS code out of qtest.c hw/char: Move two more files from specific_ss to softmmu_ss target/i386: Set family/model/stepping of the "max" CPU according to LM bit tests/migration: Only run auto_converge in slow mode travis.yml: Add missing 'flex', 'bison' packages to 'GCC (user)' job travis.yml: Add missing clang-10 package to the 'Clang (disable-tcg)' job chardev: Allow setting file chardev input file on the command line qtest: Don't assert on "-qtest chardev:myid" test: Fix test-crypto-secret when compiling without keyring support ... Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
+4
-1
@@ -237,13 +237,15 @@ jobs:
|
||||
- libglib2.0-dev
|
||||
- libgnutls28-dev
|
||||
- ninja-build
|
||||
- flex
|
||||
- bison
|
||||
env:
|
||||
- CONFIG="--disable-containers --disable-system"
|
||||
|
||||
- name: "[s390x] Clang (disable-tcg)"
|
||||
arch: s390x
|
||||
dist: focal
|
||||
compiler: clang
|
||||
compiler: clang-10
|
||||
addons:
|
||||
apt_packages:
|
||||
- libaio-dev
|
||||
@@ -269,6 +271,7 @@ jobs:
|
||||
- libvdeplug-dev
|
||||
- libvte-2.91-dev
|
||||
- ninja-build
|
||||
- clang-10
|
||||
env:
|
||||
- TEST_CMD="make check-unit"
|
||||
- CONFIG="--disable-containers --disable-tcg --enable-kvm --disable-tools
|
||||
|
||||
@@ -70,6 +70,7 @@ R: Daniel P. Berrangé <berrange@redhat.com>
|
||||
R: Thomas Huth <thuth@redhat.com>
|
||||
R: Markus Armbruster <armbru@redhat.com>
|
||||
R: Philippe Mathieu-Daudé <philmd@linaro.org>
|
||||
R: Juan Quintela <quintela@redhat.com>
|
||||
W: https://www.qemu.org/docs/master/devel/index.html
|
||||
S: Odd Fixes
|
||||
F: docs/devel/style.rst
|
||||
|
||||
@@ -100,6 +100,7 @@ static void qemu_chr_parse_file_out(QemuOpts *opts, ChardevBackend *backend,
|
||||
Error **errp)
|
||||
{
|
||||
const char *path = qemu_opt_get(opts, "path");
|
||||
const char *inpath = qemu_opt_get(opts, "input-path");
|
||||
ChardevFile *file;
|
||||
|
||||
backend->type = CHARDEV_BACKEND_KIND_FILE;
|
||||
@@ -107,9 +108,16 @@ static void qemu_chr_parse_file_out(QemuOpts *opts, ChardevBackend *backend,
|
||||
error_setg(errp, "chardev: file: no filename given");
|
||||
return;
|
||||
}
|
||||
#ifdef _WIN32
|
||||
if (inpath) {
|
||||
error_setg(errp, "chardev: file: input-path not supported on Windows");
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
file = backend->u.file.data = g_new0(ChardevFile, 1);
|
||||
qemu_chr_parse_common(opts, qapi_ChardevFile_base(file));
|
||||
file->out = g_strdup(path);
|
||||
file->in = g_strdup(inpath);
|
||||
|
||||
file->has_append = true;
|
||||
file->append = qemu_opt_get_bool(opts, "append", false);
|
||||
|
||||
@@ -805,6 +805,9 @@ QemuOptsList qemu_chardev_opts = {
|
||||
},{
|
||||
.name = "path",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "input-path",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "host",
|
||||
.type = QEMU_OPT_STRING,
|
||||
|
||||
@@ -284,7 +284,7 @@ const char *parse_cpu_option(const char *cpu_option)
|
||||
return cpu_type;
|
||||
}
|
||||
|
||||
void list_cpus(const char *optarg)
|
||||
void list_cpus(void)
|
||||
{
|
||||
/* XXX: implement xxx_cpu_list for targets that still miss it */
|
||||
#if defined(cpu_list)
|
||||
|
||||
@@ -111,7 +111,7 @@ Interfaces provided include:
|
||||
|
||||
CXL Root Ports (CXL RP)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
A CXL Root Port servers te same purpose as a PCIe Root Port.
|
||||
A CXL Root Port serves the same purpose as a PCIe Root Port.
|
||||
There are a number of CXL specific Designated Vendor Specific
|
||||
Extended Capabilities (DVSEC) in PCIe Configuration Space
|
||||
and associated component register access via PCI bars.
|
||||
|
||||
@@ -27,7 +27,7 @@ Tiny Code Generator (TCG) capable of emulating many CPUs.
|
||||
* - Hypervisor Framework (hvf)
|
||||
- MacOS
|
||||
- x86 (64 bit only), Arm (64 bit only)
|
||||
* - Windows Hypervisor Platform (wphx)
|
||||
* - Windows Hypervisor Platform (whpx)
|
||||
- Windows
|
||||
- x86
|
||||
* - NetBSD Virtual Machine Monitor (nvmm)
|
||||
|
||||
+9
-2
@@ -3234,10 +3234,17 @@ static void machvirt_machine_init(void)
|
||||
}
|
||||
type_init(machvirt_machine_init);
|
||||
|
||||
static void virt_machine_8_0_options(MachineClass *mc)
|
||||
static void virt_machine_8_1_options(MachineClass *mc)
|
||||
{
|
||||
}
|
||||
DEFINE_VIRT_MACHINE_AS_LATEST(8, 0)
|
||||
DEFINE_VIRT_MACHINE_AS_LATEST(8, 1)
|
||||
|
||||
static void virt_machine_8_0_options(MachineClass *mc)
|
||||
{
|
||||
virt_machine_8_1_options(mc);
|
||||
compat_props_add(mc->compat_props, hw_compat_8_0, hw_compat_8_0_len);
|
||||
}
|
||||
DEFINE_VIRT_MACHINE(8, 0)
|
||||
|
||||
static void virt_machine_7_2_options(MachineClass *mc)
|
||||
{
|
||||
|
||||
+2
-3
@@ -32,10 +32,9 @@ softmmu_ss.add(when: 'CONFIG_SIFIVE_UART', if_true: files('sifive_uart.c'))
|
||||
softmmu_ss.add(when: 'CONFIG_SH_SCI', if_true: files('sh_serial.c'))
|
||||
softmmu_ss.add(when: 'CONFIG_STM32F2XX_USART', if_true: files('stm32f2xx_usart.c'))
|
||||
softmmu_ss.add(when: 'CONFIG_MCHP_PFSOC_MMUART', if_true: files('mchp_pfsoc_mmuart.c'))
|
||||
softmmu_ss.add(when: 'CONFIG_HTIF', if_true: files('riscv_htif.c'))
|
||||
softmmu_ss.add(when: 'CONFIG_GOLDFISH_TTY', if_true: files('goldfish_tty.c'))
|
||||
|
||||
specific_ss.add(when: 'CONFIG_HTIF', if_true: files('riscv_htif.c'))
|
||||
specific_ss.add(when: 'CONFIG_TERMINAL3270', if_true: files('terminal3270.c'))
|
||||
specific_ss.add(when: 'CONFIG_VIRTIO', if_true: files('virtio-serial-bus.c'))
|
||||
specific_ss.add(when: 'CONFIG_PSERIES', if_true: files('spapr_vty.c'))
|
||||
|
||||
specific_ss.add(when: 'CONFIG_GOLDFISH_TTY', if_true: files('goldfish_tty.c'))
|
||||
|
||||
@@ -39,6 +39,9 @@
|
||||
#include "hw/virtio/virtio.h"
|
||||
#include "hw/virtio/virtio-pci.h"
|
||||
|
||||
GlobalProperty hw_compat_8_0[] = {};
|
||||
const size_t hw_compat_8_0_len = G_N_ELEMENTS(hw_compat_8_0);
|
||||
|
||||
GlobalProperty hw_compat_7_2[] = {
|
||||
{ "e1000e", "migrate-timadj", "off" },
|
||||
{ "virtio-mem", "x-early-migration", "false" },
|
||||
|
||||
+1
-1
@@ -44,6 +44,7 @@ softmmu_ss.add(files(
|
||||
'machine.c',
|
||||
'nmi.c',
|
||||
'null-machine.c',
|
||||
'numa.c',
|
||||
'qdev-fw.c',
|
||||
'qdev-properties-system.c',
|
||||
'sysbus.c',
|
||||
@@ -53,5 +54,4 @@ softmmu_ss.add(files(
|
||||
|
||||
specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: files(
|
||||
'machine-qmp-cmds.c',
|
||||
'numa.c',
|
||||
))
|
||||
|
||||
@@ -36,7 +36,7 @@ softmmu_ss.add(when: 'CONFIG_CG3', if_true: files('cg3.c'))
|
||||
softmmu_ss.add(when: 'CONFIG_MACFB', if_true: files('macfb.c'))
|
||||
softmmu_ss.add(when: 'CONFIG_NEXTCUBE', if_true: files('next-fb.c'))
|
||||
|
||||
specific_ss.add(when: 'CONFIG_VGA', if_true: files('vga.c'))
|
||||
softmmu_ss.add(when: 'CONFIG_VGA', if_true: files('vga.c'))
|
||||
|
||||
if (config_all_devices.has_key('CONFIG_VGA_CIRRUS') or
|
||||
config_all_devices.has_key('CONFIG_VGA_PCI') or
|
||||
|
||||
+22
-9
@@ -26,7 +26,9 @@
|
||||
#include "qemu/units.h"
|
||||
#include "sysemu/reset.h"
|
||||
#include "qapi/error.h"
|
||||
#include "hw/core/cpu.h"
|
||||
#include "hw/display/vga.h"
|
||||
#include "hw/i386/x86.h"
|
||||
#include "hw/pci/pci.h"
|
||||
#include "vga_int.h"
|
||||
#include "vga_regs.h"
|
||||
@@ -2244,11 +2246,8 @@ bool vga_common_init(VGACommonState *s, Object *obj, Error **errp)
|
||||
* into a device attribute set by the machine/platform to remove
|
||||
* all target endian dependencies from this file.
|
||||
*/
|
||||
#if TARGET_BIG_ENDIAN
|
||||
s->default_endian_fb = true;
|
||||
#else
|
||||
s->default_endian_fb = false;
|
||||
#endif
|
||||
s->default_endian_fb = target_words_bigendian();
|
||||
|
||||
vga_dirty_log_start(s);
|
||||
|
||||
return true;
|
||||
@@ -2263,11 +2262,15 @@ static const MemoryRegionPortio vga_portio_list[] = {
|
||||
PORTIO_END_OF_LIST(),
|
||||
};
|
||||
|
||||
static const MemoryRegionPortio vbe_portio_list[] = {
|
||||
static const MemoryRegionPortio vbe_portio_list_x86[] = {
|
||||
{ 0, 1, 2, .read = vbe_ioport_read_index, .write = vbe_ioport_write_index },
|
||||
# ifdef TARGET_I386
|
||||
{ 1, 1, 2, .read = vbe_ioport_read_data, .write = vbe_ioport_write_data },
|
||||
# endif
|
||||
{ 2, 1, 2, .read = vbe_ioport_read_data, .write = vbe_ioport_write_data },
|
||||
PORTIO_END_OF_LIST(),
|
||||
};
|
||||
|
||||
static const MemoryRegionPortio vbe_portio_list_no_x86[] = {
|
||||
{ 0, 1, 2, .read = vbe_ioport_read_index, .write = vbe_ioport_write_index },
|
||||
{ 2, 1, 2, .read = vbe_ioport_read_data, .write = vbe_ioport_write_data },
|
||||
PORTIO_END_OF_LIST(),
|
||||
};
|
||||
@@ -2278,9 +2281,19 @@ MemoryRegion *vga_init_io(VGACommonState *s, Object *obj,
|
||||
const MemoryRegionPortio **vbe_ports)
|
||||
{
|
||||
MemoryRegion *vga_mem;
|
||||
MachineState *ms = MACHINE(qdev_get_machine());
|
||||
|
||||
/*
|
||||
* We unfortunately need two VBE lists since non-x86 machines might
|
||||
* not be able to do 16-bit accesses at unaligned addresses (0x1cf)
|
||||
*/
|
||||
if (object_dynamic_cast(OBJECT(ms), TYPE_X86_MACHINE)) {
|
||||
*vbe_ports = vbe_portio_list_x86;
|
||||
} else {
|
||||
*vbe_ports = vbe_portio_list_no_x86;
|
||||
}
|
||||
|
||||
*vga_ports = vga_portio_list;
|
||||
*vbe_ports = vbe_portio_list;
|
||||
|
||||
vga_mem = g_malloc(sizeof(*vga_mem));
|
||||
memory_region_init_io(vga_mem, obj, &vga_mem_ops, s,
|
||||
|
||||
@@ -116,6 +116,9 @@
|
||||
{ "qemu64-" TYPE_X86_CPU, "model-id", "QEMU Virtual CPU version " v, },\
|
||||
{ "athlon-" TYPE_X86_CPU, "model-id", "QEMU Virtual CPU version " v, },
|
||||
|
||||
GlobalProperty pc_compat_8_0[] = {};
|
||||
const size_t pc_compat_8_0_len = G_N_ELEMENTS(pc_compat_8_0);
|
||||
|
||||
GlobalProperty pc_compat_7_2[] = {
|
||||
{ "ICH9-LPC", "noreboot", "true" },
|
||||
};
|
||||
|
||||
+13
-3
@@ -454,21 +454,31 @@ static void pc_i440fx_machine_options(MachineClass *m)
|
||||
machine_class_allow_dynamic_sysbus_dev(m, TYPE_VMBUS_BRIDGE);
|
||||
}
|
||||
|
||||
static void pc_i440fx_8_0_machine_options(MachineClass *m)
|
||||
static void pc_i440fx_8_1_machine_options(MachineClass *m)
|
||||
{
|
||||
pc_i440fx_machine_options(m);
|
||||
m->alias = "pc";
|
||||
m->is_default = true;
|
||||
}
|
||||
|
||||
DEFINE_I440FX_MACHINE(v8_1, "pc-i440fx-8.1", NULL,
|
||||
pc_i440fx_8_1_machine_options);
|
||||
|
||||
static void pc_i440fx_8_0_machine_options(MachineClass *m)
|
||||
{
|
||||
pc_i440fx_8_1_machine_options(m);
|
||||
m->alias = NULL;
|
||||
m->is_default = false;
|
||||
compat_props_add(m->compat_props, hw_compat_8_0, hw_compat_8_0_len);
|
||||
compat_props_add(m->compat_props, pc_compat_8_0, pc_compat_8_0_len);
|
||||
}
|
||||
|
||||
DEFINE_I440FX_MACHINE(v8_0, "pc-i440fx-8.0", NULL,
|
||||
pc_i440fx_8_0_machine_options);
|
||||
|
||||
static void pc_i440fx_7_2_machine_options(MachineClass *m)
|
||||
{
|
||||
pc_i440fx_8_0_machine_options(m);
|
||||
m->alias = NULL;
|
||||
m->is_default = false;
|
||||
compat_props_add(m->compat_props, hw_compat_7_2, hw_compat_7_2_len);
|
||||
compat_props_add(m->compat_props, pc_compat_7_2, pc_compat_7_2_len);
|
||||
}
|
||||
|
||||
+12
-2
@@ -373,19 +373,29 @@ static void pc_q35_machine_options(MachineClass *m)
|
||||
m->max_cpus = 288;
|
||||
}
|
||||
|
||||
static void pc_q35_8_0_machine_options(MachineClass *m)
|
||||
static void pc_q35_8_1_machine_options(MachineClass *m)
|
||||
{
|
||||
pc_q35_machine_options(m);
|
||||
m->alias = "q35";
|
||||
}
|
||||
|
||||
DEFINE_Q35_MACHINE(v8_1, "pc-q35-8.1", NULL,
|
||||
pc_q35_8_1_machine_options);
|
||||
|
||||
static void pc_q35_8_0_machine_options(MachineClass *m)
|
||||
{
|
||||
pc_q35_8_1_machine_options(m);
|
||||
m->alias = NULL;
|
||||
compat_props_add(m->compat_props, hw_compat_8_0, hw_compat_8_0_len);
|
||||
compat_props_add(m->compat_props, pc_compat_8_0, pc_compat_8_0_len);
|
||||
}
|
||||
|
||||
DEFINE_Q35_MACHINE(v8_0, "pc-q35-8.0", NULL,
|
||||
pc_q35_8_0_machine_options);
|
||||
|
||||
static void pc_q35_7_2_machine_options(MachineClass *m)
|
||||
{
|
||||
pc_q35_8_0_machine_options(m);
|
||||
m->alias = NULL;
|
||||
compat_props_add(m->compat_props, hw_compat_7_2, hw_compat_7_2_len);
|
||||
compat_props_add(m->compat_props, pc_compat_7_2, pc_compat_7_2_len);
|
||||
}
|
||||
|
||||
+9
-2
@@ -347,10 +347,17 @@ type_init(virt_machine_register_types)
|
||||
} \
|
||||
type_init(machvirt_machine_##major##_##minor##_init);
|
||||
|
||||
static void virt_machine_8_0_options(MachineClass *mc)
|
||||
static void virt_machine_8_1_options(MachineClass *mc)
|
||||
{
|
||||
}
|
||||
DEFINE_VIRT_MACHINE(8, 0, true)
|
||||
DEFINE_VIRT_MACHINE(8, 1, true)
|
||||
|
||||
static void virt_machine_8_0_options(MachineClass *mc)
|
||||
{
|
||||
virt_machine_8_1_options(mc);
|
||||
compat_props_add(mc->compat_props, hw_compat_8_0, hw_compat_8_0_len);
|
||||
}
|
||||
DEFINE_VIRT_MACHINE(8, 0, false)
|
||||
|
||||
static void virt_machine_7_2_options(MachineClass *mc)
|
||||
{
|
||||
|
||||
+14
-3
@@ -4735,14 +4735,25 @@ static void spapr_machine_latest_class_options(MachineClass *mc)
|
||||
type_init(spapr_machine_register_##suffix)
|
||||
|
||||
/*
|
||||
* pseries-8.0
|
||||
* pseries-8.1
|
||||
*/
|
||||
static void spapr_machine_8_0_class_options(MachineClass *mc)
|
||||
static void spapr_machine_8_1_class_options(MachineClass *mc)
|
||||
{
|
||||
/* Defaults for the latest behaviour inherited from the base class */
|
||||
}
|
||||
|
||||
DEFINE_SPAPR_MACHINE(8_0, "8.0", true);
|
||||
DEFINE_SPAPR_MACHINE(8_1, "8.1", true);
|
||||
|
||||
/*
|
||||
* pseries-8.0
|
||||
*/
|
||||
static void spapr_machine_8_0_class_options(MachineClass *mc)
|
||||
{
|
||||
spapr_machine_8_1_class_options(mc);
|
||||
compat_props_add(mc->compat_props, hw_compat_8_0, hw_compat_8_0_len);
|
||||
}
|
||||
|
||||
DEFINE_SPAPR_MACHINE(8_0, "8.0", false);
|
||||
|
||||
/*
|
||||
* pseries-7.2
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include "sysemu/cpus.h"
|
||||
#include "sysemu/hw_accel.h"
|
||||
#include "sysemu/runstate.h"
|
||||
#include "sysemu/qtest.h"
|
||||
#include "kvm_ppc.h"
|
||||
|
||||
#include "hw/ppc/spapr.h"
|
||||
@@ -548,6 +549,32 @@ uint64_t qtest_rtas_call(char *cmd, uint32_t nargs, uint64_t args,
|
||||
return H_PARAMETER;
|
||||
}
|
||||
|
||||
static bool spapr_qtest_callback(CharBackend *chr, gchar **words)
|
||||
{
|
||||
if (strcmp(words[0], "rtas") == 0) {
|
||||
uint64_t res, args, ret;
|
||||
unsigned long nargs, nret;
|
||||
int rc;
|
||||
|
||||
rc = qemu_strtoul(words[2], NULL, 0, &nargs);
|
||||
g_assert(rc == 0);
|
||||
rc = qemu_strtou64(words[3], NULL, 0, &args);
|
||||
g_assert(rc == 0);
|
||||
rc = qemu_strtoul(words[4], NULL, 0, &nret);
|
||||
g_assert(rc == 0);
|
||||
rc = qemu_strtou64(words[5], NULL, 0, &ret);
|
||||
g_assert(rc == 0);
|
||||
res = qtest_rtas_call(words[1], nargs, args, nret, ret);
|
||||
|
||||
qtest_send_prefix(chr);
|
||||
qtest_sendf(chr, "OK %"PRIu64"\n", res);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void spapr_rtas_register(int token, const char *name, spapr_rtas_fn fn)
|
||||
{
|
||||
assert((token >= RTAS_TOKEN_BASE) && (token < RTAS_TOKEN_MAX));
|
||||
@@ -630,6 +657,8 @@ static void core_rtas_register_types(void)
|
||||
rtas_ibm_nmi_register);
|
||||
spapr_rtas_register(RTAS_IBM_NMI_INTERLOCK, "ibm,nmi-interlock",
|
||||
rtas_ibm_nmi_interlock);
|
||||
|
||||
qtest_set_command_cb(spapr_qtest_callback);
|
||||
}
|
||||
|
||||
type_init(core_rtas_register_types)
|
||||
|
||||
@@ -826,14 +826,26 @@ bool css_migration_enabled(void)
|
||||
} \
|
||||
type_init(ccw_machine_register_##suffix)
|
||||
|
||||
static void ccw_machine_8_1_instance_options(MachineState *machine)
|
||||
{
|
||||
}
|
||||
|
||||
static void ccw_machine_8_1_class_options(MachineClass *mc)
|
||||
{
|
||||
}
|
||||
DEFINE_CCW_MACHINE(8_1, "8.1", true);
|
||||
|
||||
static void ccw_machine_8_0_instance_options(MachineState *machine)
|
||||
{
|
||||
ccw_machine_8_1_instance_options(machine);
|
||||
}
|
||||
|
||||
static void ccw_machine_8_0_class_options(MachineClass *mc)
|
||||
{
|
||||
ccw_machine_8_1_class_options(mc);
|
||||
compat_props_add(mc->compat_props, hw_compat_8_0, hw_compat_8_0_len);
|
||||
}
|
||||
DEFINE_CCW_MACHINE(8_0, "8.0", true);
|
||||
DEFINE_CCW_MACHINE(8_0, "8.0", false);
|
||||
|
||||
static void ccw_machine_7_2_instance_options(MachineState *machine)
|
||||
{
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user