diff options
author | Eduardo Habkost <ehabkost@redhat.com> | 2015-12-01 20:58:08 -0200 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2015-12-22 17:45:12 +0200 |
commit | 71ae9e94d99240cd02926ad76fadb4963a873b09 (patch) | |
tree | 51ed8c6f4ff335519f8722d653eba80d81dd067a /hw/core | |
parent | cdedce0564a50a01d3121480e67b5b141c8e0c54 (diff) |
pc: Move option_rom_has_mr/rom_file_has_mr globals to MachineClass
This way, these settings can be simply set on the corresponding
machine_options() function, instead of requiring code in
pc_compat_*() functions.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
Diffstat (limited to 'hw/core')
-rw-r--r-- | hw/core/loader.c | 10 | ||||
-rw-r--r-- | hw/core/machine.c | 1 |
2 files changed, 6 insertions, 5 deletions
diff --git a/hw/core/loader.c b/hw/core/loader.c index eb67f05ee2..6b69852479 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -51,12 +51,10 @@ #include "hw/nvram/fw_cfg.h" #include "exec/memory.h" #include "exec/address-spaces.h" +#include "hw/boards.h" #include <zlib.h> -bool option_rom_has_mr = false; -bool rom_file_has_mr = true; - static int roms_loaded; /* return the size or -1 if error */ @@ -754,6 +752,7 @@ int rom_add_file(const char *file, const char *fw_dir, hwaddr addr, int32_t bootindex, bool option_rom) { + MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine()); Rom *rom; int rc, fd = -1; char devpath[100]; @@ -810,7 +809,7 @@ int rom_add_file(const char *file, const char *fw_dir, basename); snprintf(devpath, sizeof(devpath), "/rom@%s", fw_file_name); - if ((!option_rom || option_rom_has_mr) && rom_file_has_mr) { + if ((!option_rom || mc->option_rom_has_mr) && mc->rom_file_has_mr) { data = rom_set_mr(rom, OBJECT(fw_cfg), devpath); } else { data = rom->data; @@ -838,6 +837,7 @@ MemoryRegion *rom_add_blob(const char *name, const void *blob, size_t len, size_t max_len, hwaddr addr, const char *fw_file_name, FWCfgReadCallback fw_callback, void *callback_opaque) { + MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine()); Rom *rom; MemoryRegion *mr = NULL; @@ -855,7 +855,7 @@ MemoryRegion *rom_add_blob(const char *name, const void *blob, size_t len, snprintf(devpath, sizeof(devpath), "/rom@%s", fw_file_name); - if (rom_file_has_mr) { + if (mc->rom_file_has_mr) { data = rom_set_mr(rom, OBJECT(fw_cfg), devpath); mr = rom->mr; } else { diff --git a/hw/core/machine.c b/hw/core/machine.c index 82be54e751..c46ddc7d15 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -342,6 +342,7 @@ static void machine_class_init(ObjectClass *oc, void *data) /* Default 128 MB as guest ram size */ mc->default_ram_size = 128 * M_BYTE; + mc->rom_file_has_mr = true; } static void machine_class_base_init(ObjectClass *oc, void *data) |