Message ID | 20201123141435.2726558-34-pbonzini@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | cleanup qemu_init and make sense of command line processing | expand |
On Mon, 23 Nov 2020 09:14:32 -0500 Paolo Bonzini <pbonzini@redhat.com> wrote: > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> > --- > hw/core/machine.c | 2 ++ > include/exec/cpu-common.h | 3 ++ > include/exec/exec-all.h | 3 -- > softmmu/globals.c | 74 +++++++++++++++++++++++++++++++++++++++ > softmmu/meson.build | 1 + > softmmu/vl.c | 45 ++---------------------- > 6 files changed, 83 insertions(+), 45 deletions(-) > create mode 100644 softmmu/globals.c > > diff --git a/hw/core/machine.c b/hw/core/machine.c > index 745531c9d9..5659b1f49c 100644 > --- a/hw/core/machine.c > +++ b/hw/core/machine.c > @@ -213,6 +213,8 @@ GlobalProperty hw_compat_2_1[] = { > }; > const size_t hw_compat_2_1_len = G_N_ELEMENTS(hw_compat_2_1); > > +MachineState *current_machine; > + > static char *machine_get_kernel(Object *obj, Error **errp) > { > MachineState *ms = MACHINE(obj); > diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h > index bd5e15dd7d..5a0a2d93e0 100644 > --- a/include/exec/cpu-common.h > +++ b/include/exec/cpu-common.h > @@ -105,4 +105,7 @@ int ram_block_discard_range(RAMBlock *rb, uint64_t start, size_t length); > > #endif > > +/* vl.c */ > +extern int singlestep; > + > #endif /* CPU_COMMON_H */ > diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h > index 94fe05daaa..fab573da06 100644 > --- a/include/exec/exec-all.h > +++ b/include/exec/exec-all.h > @@ -676,7 +676,4 @@ hwaddr memory_region_section_get_iotlb(CPUState *cpu, > MemoryRegionSection *section); > #endif > > -/* vl.c */ > -extern int singlestep; > - > #endif > diff --git a/softmmu/globals.c b/softmmu/globals.c > new file mode 100644 > index 0000000000..e62d9cd8da > --- /dev/null > +++ b/softmmu/globals.c > @@ -0,0 +1,74 @@ > +/* > + * Global variables that (mostly) should not exist > + * > + * Copyright (c) 2003-2020 QEMU contributors > + * > + * Permission is hereby granted, free of charge, to any person obtaining a copy > + * of this software and associated documentation files (the "Software"), to deal > + * in the Software without restriction, including without limitation the rights > + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > + * copies of the Software, and to permit persons to whom the Software is > + * furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice shall be included in > + * all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > + * THE SOFTWARE. > + */ > + > +#include "qemu/osdep.h" > +#include "exec/cpu-common.h" > +#include "hw/display/vga.h" > +#include "hw/i386/pc.h" > +#include "hw/i386/x86.h" > +#include "hw/loader.h" > +#include "hw/xen/xen.h" > +#include "net/net.h" > +#include "sysemu/cpus.h" > +#include "sysemu/sysemu.h" > + > +enum vga_retrace_method vga_retrace_method = VGA_RETRACE_DUMB; > +int display_opengl; > +const char* keyboard_layout; > +bool enable_mlock; > +bool enable_cpu_pm; > +int nb_nics; > +NICInfo nd_table[MAX_NICS]; > +int autostart = 1; > +int vga_interface_type = VGA_NONE; > +Chardev *parallel_hds[MAX_PARALLEL_PORTS]; > +int win2k_install_hack; > +int singlestep; > +int fd_bootchk = 1; > +int no_reboot; > +int no_shutdown; > +int graphic_rotate; > +QEMUOptionRom option_rom[MAX_OPTION_ROMS]; > +int nb_option_roms; > +int old_param; > +const char *qemu_name; > +int alt_grab; > +int ctrl_grab; > +unsigned int nb_prom_envs; > +const char *prom_envs[MAX_PROM_ENVS]; > +int boot_menu; > +bool boot_strict; > +uint8_t *boot_splash_filedata; > +int only_migratable; /* turn it off unless user states otherwise */ > +int icount_align_option; > + > +/* The bytes in qemu_uuid are in the order specified by RFC4122, _not_ in the > + * little-endian "wire format" described in the SMBIOS 2.6 specification. > + */ > +QemuUUID qemu_uuid; > +bool qemu_uuid_set; > + > +uint32_t xen_domid; > +enum xen_mode xen_mode = XEN_EMULATE; > +bool xen_domid_restrict; > diff --git a/softmmu/meson.build b/softmmu/meson.build > index 2a73ebc223..e5865b97cb 100644 > --- a/softmmu/meson.build > +++ b/softmmu/meson.build > @@ -4,6 +4,7 @@ specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: [files( > 'cpus.c', > 'cpu-throttle.c', > 'datadir.c', > + 'globals.c', > 'physmem.c', > 'ioport.c', > 'rtc.c', > diff --git a/softmmu/vl.c b/softmmu/vl.c > index 914b86ee86..fce15c249a 100644 > --- a/softmmu/vl.c > +++ b/softmmu/vl.c > @@ -26,6 +26,7 @@ > #include "qemu-common.h" > #include "qemu/datadir.h" > #include "qemu/units.h" > +#include "exec/cpu-common.h" > #include "hw/boards.h" > #include "hw/qdev-properties.h" > #include "qapi/error.h" > @@ -67,6 +68,8 @@ > #include "qemu/log.h" > #include "sysemu/blockdev.h" > #include "hw/block/block.h" > +#include "hw/i386/x86.h" > +#include "hw/i386/pc.h" > #include "migration/misc.h" > #include "migration/snapshot.h" > #include "migration/global_state.h" > @@ -141,17 +144,8 @@ static bool preconfig_requested; > static QemuPluginList plugin_list = QTAILQ_HEAD_INITIALIZER(plugin_list); > static BlockdevOptionsQueue bdo_queue = QSIMPLEQ_HEAD_INITIALIZER(bdo_queue); > static bool nographic = false; > -enum vga_retrace_method vga_retrace_method = VGA_RETRACE_DUMB; > static int mem_prealloc; /* force preallocation of physical target memory */ > -int display_opengl; > -const char* keyboard_layout = NULL; > static ram_addr_t ram_size; > -bool enable_mlock = false; > -bool enable_cpu_pm = false; > -int nb_nics; > -NICInfo nd_table[MAX_NICS]; > -int autostart = 1; > -int vga_interface_type = VGA_NONE; > static const char *vga_model = NULL; > static DisplayOptions dpy; > static int num_serial_hds; > @@ -159,41 +153,10 @@ static Chardev **serial_hds; > static const char *log_mask; > static const char *log_file; > static bool list_data_dirs; > -Chardev *parallel_hds[MAX_PARALLEL_PORTS]; > -int win2k_install_hack = 0; > -int singlestep = 0; > -int fd_bootchk = 1; > -int no_reboot; > -int no_shutdown = 0; > -int graphic_rotate = 0; > static const char *watchdog; > -QEMUOptionRom option_rom[MAX_OPTION_ROMS]; > -int nb_option_roms; > -int old_param = 0; > -const char *qemu_name; > -int alt_grab = 0; > -int ctrl_grab = 0; > -unsigned int nb_prom_envs = 0; > -const char *prom_envs[MAX_PROM_ENVS]; > -int boot_menu; > -bool boot_strict; > -uint8_t *boot_splash_filedata; > -int only_migratable; /* turn it off unless user states otherwise */ > -bool wakeup_suspend_enabled; > -int icount_align_option; > static const char *qtest_chrdev; > static const char *qtest_log; > > -/* The bytes in qemu_uuid are in the order specified by RFC4122, _not_ in the > - * little-endian "wire format" described in the SMBIOS 2.6 specification. > - */ > -QemuUUID qemu_uuid; > -bool qemu_uuid_set; > - > -uint32_t xen_domid; > -enum xen_mode xen_mode = XEN_EMULATE; > -bool xen_domid_restrict; > - > static int has_defaults = 1; > static int default_serial = 1; > static int default_parallel = 1; > @@ -801,8 +764,6 @@ static int usb_parse(const char *cmdline) > /***********************************************************/ > /* machine registration */ > > -MachineState *current_machine; > - > static MachineClass *find_machine(const char *name, GSList *machines) > { > GSList *el;
diff --git a/hw/core/machine.c b/hw/core/machine.c index 745531c9d9..5659b1f49c 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -213,6 +213,8 @@ GlobalProperty hw_compat_2_1[] = { }; const size_t hw_compat_2_1_len = G_N_ELEMENTS(hw_compat_2_1); +MachineState *current_machine; + static char *machine_get_kernel(Object *obj, Error **errp) { MachineState *ms = MACHINE(obj); diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h index bd5e15dd7d..5a0a2d93e0 100644 --- a/include/exec/cpu-common.h +++ b/include/exec/cpu-common.h @@ -105,4 +105,7 @@ int ram_block_discard_range(RAMBlock *rb, uint64_t start, size_t length); #endif +/* vl.c */ +extern int singlestep; + #endif /* CPU_COMMON_H */ diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h index 94fe05daaa..fab573da06 100644 --- a/include/exec/exec-all.h +++ b/include/exec/exec-all.h @@ -676,7 +676,4 @@ hwaddr memory_region_section_get_iotlb(CPUState *cpu, MemoryRegionSection *section); #endif -/* vl.c */ -extern int singlestep; - #endif diff --git a/softmmu/globals.c b/softmmu/globals.c new file mode 100644 index 0000000000..e62d9cd8da --- /dev/null +++ b/softmmu/globals.c @@ -0,0 +1,74 @@ +/* + * Global variables that (mostly) should not exist + * + * Copyright (c) 2003-2020 QEMU contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "qemu/osdep.h" +#include "exec/cpu-common.h" +#include "hw/display/vga.h" +#include "hw/i386/pc.h" +#include "hw/i386/x86.h" +#include "hw/loader.h" +#include "hw/xen/xen.h" +#include "net/net.h" +#include "sysemu/cpus.h" +#include "sysemu/sysemu.h" + +enum vga_retrace_method vga_retrace_method = VGA_RETRACE_DUMB; +int display_opengl; +const char* keyboard_layout; +bool enable_mlock; +bool enable_cpu_pm; +int nb_nics; +NICInfo nd_table[MAX_NICS]; +int autostart = 1; +int vga_interface_type = VGA_NONE; +Chardev *parallel_hds[MAX_PARALLEL_PORTS]; +int win2k_install_hack; +int singlestep; +int fd_bootchk = 1; +int no_reboot; +int no_shutdown; +int graphic_rotate; +QEMUOptionRom option_rom[MAX_OPTION_ROMS]; +int nb_option_roms; +int old_param; +const char *qemu_name; +int alt_grab; +int ctrl_grab; +unsigned int nb_prom_envs; +const char *prom_envs[MAX_PROM_ENVS]; +int boot_menu; +bool boot_strict; +uint8_t *boot_splash_filedata; +int only_migratable; /* turn it off unless user states otherwise */ +int icount_align_option; + +/* The bytes in qemu_uuid are in the order specified by RFC4122, _not_ in the + * little-endian "wire format" described in the SMBIOS 2.6 specification. + */ +QemuUUID qemu_uuid; +bool qemu_uuid_set; + +uint32_t xen_domid; +enum xen_mode xen_mode = XEN_EMULATE; +bool xen_domid_restrict; diff --git a/softmmu/meson.build b/softmmu/meson.build index 2a73ebc223..e5865b97cb 100644 --- a/softmmu/meson.build +++ b/softmmu/meson.build @@ -4,6 +4,7 @@ specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: [files( 'cpus.c', 'cpu-throttle.c', 'datadir.c', + 'globals.c', 'physmem.c', 'ioport.c', 'rtc.c', diff --git a/softmmu/vl.c b/softmmu/vl.c index 914b86ee86..fce15c249a 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -26,6 +26,7 @@ #include "qemu-common.h" #include "qemu/datadir.h" #include "qemu/units.h" +#include "exec/cpu-common.h" #include "hw/boards.h" #include "hw/qdev-properties.h" #include "qapi/error.h" @@ -67,6 +68,8 @@ #include "qemu/log.h" #include "sysemu/blockdev.h" #include "hw/block/block.h" +#include "hw/i386/x86.h" +#include "hw/i386/pc.h" #include "migration/misc.h" #include "migration/snapshot.h" #include "migration/global_state.h" @@ -141,17 +144,8 @@ static bool preconfig_requested; static QemuPluginList plugin_list = QTAILQ_HEAD_INITIALIZER(plugin_list); static BlockdevOptionsQueue bdo_queue = QSIMPLEQ_HEAD_INITIALIZER(bdo_queue); static bool nographic = false; -enum vga_retrace_method vga_retrace_method = VGA_RETRACE_DUMB; static int mem_prealloc; /* force preallocation of physical target memory */ -int display_opengl; -const char* keyboard_layout = NULL; static ram_addr_t ram_size; -bool enable_mlock = false; -bool enable_cpu_pm = false; -int nb_nics; -NICInfo nd_table[MAX_NICS]; -int autostart = 1; -int vga_interface_type = VGA_NONE; static const char *vga_model = NULL; static DisplayOptions dpy; static int num_serial_hds; @@ -159,41 +153,10 @@ static Chardev **serial_hds; static const char *log_mask; static const char *log_file; static bool list_data_dirs; -Chardev *parallel_hds[MAX_PARALLEL_PORTS]; -int win2k_install_hack = 0; -int singlestep = 0; -int fd_bootchk = 1; -int no_reboot; -int no_shutdown = 0; -int graphic_rotate = 0; static const char *watchdog; -QEMUOptionRom option_rom[MAX_OPTION_ROMS]; -int nb_option_roms; -int old_param = 0; -const char *qemu_name; -int alt_grab = 0; -int ctrl_grab = 0; -unsigned int nb_prom_envs = 0; -const char *prom_envs[MAX_PROM_ENVS]; -int boot_menu; -bool boot_strict; -uint8_t *boot_splash_filedata; -int only_migratable; /* turn it off unless user states otherwise */ -bool wakeup_suspend_enabled; -int icount_align_option; static const char *qtest_chrdev; static const char *qtest_log; -/* The bytes in qemu_uuid are in the order specified by RFC4122, _not_ in the - * little-endian "wire format" described in the SMBIOS 2.6 specification. - */ -QemuUUID qemu_uuid; -bool qemu_uuid_set; - -uint32_t xen_domid; -enum xen_mode xen_mode = XEN_EMULATE; -bool xen_domid_restrict; - static int has_defaults = 1; static int default_serial = 1; static int default_parallel = 1; @@ -801,8 +764,6 @@ static int usb_parse(const char *cmdline) /***********************************************************/ /* machine registration */ -MachineState *current_machine; - static MachineClass *find_machine(const char *name, GSList *machines) { GSList *el;
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- hw/core/machine.c | 2 ++ include/exec/cpu-common.h | 3 ++ include/exec/exec-all.h | 3 -- softmmu/globals.c | 74 +++++++++++++++++++++++++++++++++++++++ softmmu/meson.build | 1 + softmmu/vl.c | 45 ++---------------------- 6 files changed, 83 insertions(+), 45 deletions(-) create mode 100644 softmmu/globals.c