From: Gerd Hoffmann <kra...@redhat.com> --- hw/pc_piix.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 56 insertions(+), 0 deletions(-)
diff --git a/hw/pc_piix.c b/hw/pc_piix.c index 12359a7..ef746d3 100644 --- a/hw/pc_piix.c +++ b/hw/pc_piix.c @@ -35,6 +35,7 @@ #include "sysemu.h" #include "sysbus.h" #include "blockdev.h" +#include "smbios.h" #define MAX_IDE_BUS 2 @@ -328,6 +329,60 @@ static QEMUMachine isapc_machine = { .max_cpus = 1, }; +/* RHEL machine types */ + +static void rhel_common_init(const char *type1_version, + int legacy_smbios_vendor) +{ + char buf[32]; + + if (legacy_smbios_vendor) { + snprintf(buf, sizeof(buf), "QEMU"); + smbios_add_field(0, offsetof(struct smbios_type_0, vendor_str), + strlen(buf) + 1, buf); + } + snprintf(buf, sizeof(buf), "Red Hat"); + smbios_add_field(1, offsetof(struct smbios_type_1, manufacturer_str), + strlen(buf) + 1, buf); + snprintf(buf, sizeof(buf), "KVM"); + smbios_add_field(1, offsetof(struct smbios_type_1, product_name_str), + strlen(buf) + 1, buf); + snprintf(buf, sizeof(buf), type1_version); + smbios_add_field(1, offsetof(struct smbios_type_1, version_str), + strlen(buf) + 1, buf); + snprintf(buf, sizeof(buf), "Red Hat Enterprise Linux"); + smbios_add_field(1, offsetof(struct smbios_type_1, family_str), + strlen(buf) + 1, buf); +} + +static void pc_init_rhel600(ram_addr_t ram_size, + const char *boot_device, + const char *kernel_filename, + const char *kernel_cmdline, + const char *initrd_filename, + const char *cpu_model) +{ + rhel_common_init("RHEL 6.0.0 PC", 0); + pc_init_pci(ram_size, boot_device, kernel_filename, kernel_cmdline, + initrd_filename, cpu_model); +} + +static QEMUMachine pc_machine_rhel600 = { + .name = "rhel6.0.0", + .alias = "pc", + .desc = "RHEL 6.0.0 PC", + .init = pc_init_rhel600, + .max_cpus = 255, + .compat_props = (GlobalProperty[]) { + { + .driver = "qxl", + .property = "revision", + .value = "1", + }, + { /* end of list */ } + } +}; + static void pc_machine_init(void) { qemu_register_machine(&pc_machine); @@ -335,6 +390,7 @@ static void pc_machine_init(void) qemu_register_machine(&pc_machine_v0_11); qemu_register_machine(&pc_machine_v0_10); qemu_register_machine(&isapc_machine); + qemu_register_machine(&pc_machine_rhel600); } machine_init(pc_machine_init); -- 1.7.0.1 _______________________________________________ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel