x86: Add 3.1 machine types
PATCH 1/1 x86: Add 3.1 machine types
From: "Dr. David Alan Gilbert" <[email protected]>
x86 doesn't need a 3.1 machine type, because there's no incompatibility, but it looks odd not having one, especially since s390, ppc and ARM have it. Join the party.
--- hw/i386/pc_piix.c | 15 ++++++++++++--- hw/i386/pc_q35.c | 13 +++++++++++-- include/hw/i386/pc.h | 3 +++ 3 files changed, 26 insertions(+), 5 deletions(-)
hw/i386/pc_piix.c +12 -3
@@ -428,21 +428,30 @@ static void pc_i440fx_machine_options(MachineClass *m)machine_class_allow_dynamic_sysbus_dev (m,TYPE_RAMFB_DEVICE ); } -static void pc_i440fx_3_0_machine_options (MachineClass *m) +static void pc_i440fx_3_1_machine_options (MachineClass *m) {pc_i440fx_machine_options (m); m->alias ="pc" ; m->is_default =1 ; } +DEFINE_I440FX_MACHINE (v3_1,"pc-i440fx-3.1" ,NULL , + pc_i440fx_3_1_machine_options); + +static void pc_i440fx_3_0_machine_options (MachineClass *m) +{ +pc_i440fx_3_1_machine_options (m); + m->is_default =0 ; + m->alias =NULL ; +SET_MACHINE_COMPAT (m,PC_COMPAT_3_0 ); +} +DEFINE_I440FX_MACHINE (v3_0,"pc-i440fx-3.0" ,NULL , pc_i440fx_3_0_machine_options);static void pc_i440fx_2_12_machine_options (MachineClass *m) {pc_i440fx_3_0_machine_options (m); - m->is_default =0 ; - m->alias =NULL ;SET_MACHINE_COMPAT (m,PC_COMPAT_2_12 ); }
hw/i386/pc_q35.c +11 -2
@@ -311,19 +311,28 @@ static void pc_q35_machine_options(MachineClass *m) m->max_cpus =288 ; } -static void pc_q35_3_0_machine_options (MachineClass *m) +static void pc_q35_3_1_machine_options (MachineClass *m) {pc_q35_machine_options (m); m->alias ="q35" ; } +DEFINE_Q35_MACHINE (v3_1,"pc-q35-3.1" ,NULL , + pc_q35_3_1_machine_options); + +static void pc_q35_3_0_machine_options (MachineClass *m) +{ +pc_q35_3_1_machine_options (m); + m->alias =NULL ; +SET_MACHINE_COMPAT (m,PC_COMPAT_3_0 ); +} +DEFINE_Q35_MACHINE (v3_0,"pc-q35-3.0" ,NULL , pc_q35_3_0_machine_options);static void pc_q35_2_12_machine_options (MachineClass *m) {pc_q35_3_0_machine_options (m); - m->alias =NULL ;SET_MACHINE_COMPAT (m,PC_COMPAT_2_12 ); }
include/hw/i386/pc.h +3 -0
@@ -294,6 +294,9 @@ int e820_add_entry(uint64_t, uint64_t, uint32_t);int e820_get_num_entries (void );bool e820_get_entry (int ,uint32_t ,uint64_t *,uint64_t *); +#define PC_COMPAT_3_1 \ + HW_COMPAT_3_1 +#define PC_COMPAT_3_0 \ HW_COMPAT_3_0 \ {\
Signature · 1 line
2.19.1
Quoted 9 lines · Dr. David Alan Gilbert (git)
From: "Dr. David Alan Gilbert" <[email protected]>
x86 doesn't need a 3.1 machine type, because there's no incompatibility, but it looks odd not having one, especially since s390, ppc and ARM have it. Join the party.
Signed-off-by Dr. David Alan Gilbert <[email protected]>Suggested-by Peter Maydell <[email protected]>
I sent same patch already reviewed by Michael a few weeks ago:
https://lists.nongnu.org/archive/html/qemu-devel/2018-10/msg06574.html
Quoted 84 lines
--- hw/i386/pc_piix.c | 15 ++++++++++++--- hw/i386/pc_q35.c | 13 +++++++++++-- include/hw/i386/pc.h | 3 +++ 3 files changed, 26 insertions(+), 5 deletions(-)hw/i386/pc_piix.c +12
-3@@ -428,21 +428,30 @@ static void pc_i440fx_machine_options(MachineClass *m)machine_class_allow_dynamic_sysbus_dev (m,TYPE_RAMFB_DEVICE ); } -static void pc_i440fx_3_0_machine_options (MachineClass *m) +static void pc_i440fx_3_1_machine_options (MachineClass *m) {pc_i440fx_machine_options (m); m->alias ="pc" ; m->is_default =1 ; } +DEFINE_I440FX_MACHINE (v3_1,"pc-i440fx-3.1" ,NULL , + pc_i440fx_3_1_machine_options); + +static void pc_i440fx_3_0_machine_options (MachineClass *m) +{ +pc_i440fx_3_1_machine_options (m); + m->is_default =0 ; + m->alias =NULL ; +SET_MACHINE_COMPAT (m,PC_COMPAT_3_0 ); +} +DEFINE_I440FX_MACHINE (v3_0,"pc-i440fx-3.0" ,NULL , pc_i440fx_3_0_machine_options);static void pc_i440fx_2_12_machine_options (MachineClass *m) {pc_i440fx_3_0_machine_options (m); - m->is_default =0 ; - m->alias =NULL ;SET_MACHINE_COMPAT (m,PC_COMPAT_2_12 ); }hw/i386/pc_q35.c +11
-2@@ -311,19 +311,28 @@ static void pc_q35_machine_options(MachineClass *m) m->max_cpus =288 ; } -static void pc_q35_3_0_machine_options (MachineClass *m) +static void pc_q35_3_1_machine_options (MachineClass *m) {pc_q35_machine_options (m); m->alias ="q35" ; } +DEFINE_Q35_MACHINE (v3_1,"pc-q35-3.1" ,NULL , + pc_q35_3_1_machine_options); + +static void pc_q35_3_0_machine_options (MachineClass *m) +{ +pc_q35_3_1_machine_options (m); + m->alias =NULL ; +SET_MACHINE_COMPAT (m,PC_COMPAT_3_0 ); +} +DEFINE_Q35_MACHINE (v3_0,"pc-q35-3.0" ,NULL , pc_q35_3_0_machine_options);static void pc_q35_2_12_machine_options (MachineClass *m) {pc_q35_3_0_machine_options (m); - m->alias =NULL ;SET_MACHINE_COMPAT (m,PC_COMPAT_2_12 ); }include/hw/i386/pc.h +0
-0
include/hw/i386/pc.h int e820_add_entry(uint64_t, uint64_t, uint32_t); · line 298
Quoted 5 lines
include/hw/i386/pc.h +2
-0@@ -294,6 +294,9 @@ int e820_add_entry(uint64_t, uint64_t, uint32_t);int e820_get_num_entries (void );bool e820_get_entry (int ,uint32_t ,uint64_t *,uint64_t *); +#define PC_COMPAT_3_1 \ + HW_COMPAT_3_1
you shouldn't need that, right?
Quoted 8 lines
include/hw/i386/pc.h +1
-1+#define PC_COMPAT_3_0 \ HW_COMPAT_3_0 \ {\ --2.19.1
Signature · 1 line
Marc-André Lureau
Quoted 9 lines · * Marc-André Lureau ([email protected]) wrote:
Quoted 7 lines · Dr. David Alan Gilbert (git)
From: "Dr. David Alan Gilbert" <[email protected]>
x86 doesn't need a 3.1 machine type, because there's no incompatibility, but it looks odd not having one, especially since s390, ppc and ARM have it. Join the party.
Quoted 5 lines
Quoted 2 lines
Signed-off-by Dr. David Alan Gilbert <[email protected]>Suggested-by Peter Maydell <[email protected]>I sent same patch already reviewed by Michael a few weeks ago:
https://lists.nongnu.org/archive/html/qemu-devel/2018-10/msg06574.html
OK, the problem is it's buried in the middle of a big series; can we just take either this version or your version for 3.1?
Quoted 87 lines
Quoted 87 lines
--- hw/i386/pc_piix.c | 15 ++++++++++++--- hw/i386/pc_q35.c | 13 +++++++++++-- include/hw/i386/pc.h | 3 +++ 3 files changed, 26 insertions(+), 5 deletions(-)hw/i386/pc_piix.c +12
-3@@ -428,21 +428,30 @@ static void pc_i440fx_machine_options(MachineClass *m)machine_class_allow_dynamic_sysbus_dev (m,TYPE_RAMFB_DEVICE ); } -static void pc_i440fx_3_0_machine_options (MachineClass *m) +static void pc_i440fx_3_1_machine_options (MachineClass *m) {pc_i440fx_machine_options (m); m->alias ="pc" ; m->is_default =1 ; } +DEFINE_I440FX_MACHINE (v3_1,"pc-i440fx-3.1" ,NULL , + pc_i440fx_3_1_machine_options); + +static void pc_i440fx_3_0_machine_options (MachineClass *m) +{ +pc_i440fx_3_1_machine_options (m); + m->is_default =0 ; + m->alias =NULL ; +SET_MACHINE_COMPAT (m,PC_COMPAT_3_0 ); +} +DEFINE_I440FX_MACHINE (v3_0,"pc-i440fx-3.0" ,NULL , pc_i440fx_3_0_machine_options);static void pc_i440fx_2_12_machine_options (MachineClass *m) {pc_i440fx_3_0_machine_options (m); - m->is_default =0 ; - m->alias =NULL ;SET_MACHINE_COMPAT (m,PC_COMPAT_2_12 ); }hw/i386/pc_q35.c +11
-2@@ -311,19 +311,28 @@ static void pc_q35_machine_options(MachineClass *m) m->max_cpus =288 ; } -static void pc_q35_3_0_machine_options (MachineClass *m) +static void pc_q35_3_1_machine_options (MachineClass *m) {pc_q35_machine_options (m); m->alias ="q35" ; } +DEFINE_Q35_MACHINE (v3_1,"pc-q35-3.1" ,NULL , + pc_q35_3_1_machine_options); + +static void pc_q35_3_0_machine_options (MachineClass *m) +{ +pc_q35_3_1_machine_options (m); + m->alias =NULL ; +SET_MACHINE_COMPAT (m,PC_COMPAT_3_0 ); +} +DEFINE_Q35_MACHINE (v3_0,"pc-q35-3.0" ,NULL , pc_q35_3_0_machine_options);static void pc_q35_2_12_machine_options (MachineClass *m) {pc_q35_3_0_machine_options (m); - m->alias =NULL ;SET_MACHINE_COMPAT (m,PC_COMPAT_2_12 ); }include/hw/i386/pc.h +0
-0@@ -294,6 +294,9 @@ int e820_add_entry(uint64_t, uint64_t, uint32_t);int e820_get_num_entries (void );bool e820_get_entry (int ,uint32_t ,uint64_t *,uint64_t *);
Quoted 4 lines
include/hw/i386/pc.h int e820_add_entry(uint64_t, uint64_t, uint32_t); · line 298
Quoted 2 lines
include/hw/i386/pc.h +2
-0+#define PC_COMPAT_3_1 \ + HW_COMPAT_3_1you shouldn't need that, right?
Oops, true, that's for next time around.
Dave
Quoted 12 lines
Quoted 8 lines
include/hw/i386/pc.h +1
-1+#define PC_COMPAT_3_0 \ HW_COMPAT_3_0 \ {\ --2.19.1
Signature · 1 line
Marc-André Lureau
--
Dr. David Alan Gilbert / [email protected] / Manchester, UK
Quoted 9 lines · Marc-André Lureau
Quoted 7 lines · Dr. David Alan Gilbert (git)
From: "Dr. David Alan Gilbert" <[email protected]>
x86 doesn't need a 3.1 machine type, because there's no incompatibility, but it looks odd not having one, especially since s390, ppc and ARM have it. Join the party.
Quoted 5 lines
Quoted 2 lines
Signed-off-by Dr. David Alan Gilbert <[email protected]>Suggested-by Peter Maydell <[email protected]>I sent same patch already reviewed by Michael a few weeks ago:
https://lists.nongnu.org/archive/html/qemu-devel/2018-10/msg06574.html
Could you post that as a standalone patch marked as for-3.1 please? Then we can put it into the release without having to manually fish it out of a big patchset.
thanks
-- PMM