From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LYemT-0005cv-9d for qemu-devel@nongnu.org; Sun, 15 Feb 2009 06:03:26 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LYemR-0005cF-3c for qemu-devel@nongnu.org; Sun, 15 Feb 2009 06:03:24 -0500 Received: from [199.232.76.173] (port=44930 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LYemP-0005bm-W0 for qemu-devel@nongnu.org; Sun, 15 Feb 2009 06:03:22 -0500 Received: from mx2.redhat.com ([66.187.237.31]:41778) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LYemP-0005Qf-5U for qemu-devel@nongnu.org; Sun, 15 Feb 2009 06:03:21 -0500 From: Amit Shah Date: Sun, 15 Feb 2009 16:33:29 +0530 Message-Id: <1234695809-14967-1-git-send-email-amit.shah@redhat.com> Subject: [Qemu-devel] [PATCH] Introduce get_datafile_dir() to replace bios_dir Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: aliguori@us.ibm.com Cc: Amit Shah , qemu-devel@nongnu.org bios_dir really is $(PREFIX)/share/qemu/ (or the dir. specified by -L). It currently stores some firmware images and keymaps, so the name bios_dir is really a misnomer. Replace it with a helper, get_datafile_dir(). Signed-off-by: Amit Shah --- hw/mips_jazz.c | 2 +- hw/mips_malta.c | 2 +- hw/mips_mipssim.c | 2 +- hw/mips_r4k.c | 2 +- hw/pc.c | 8 +++++--- hw/ppc405_boards.c | 4 ++-- hw/ppc440_bamboo.c | 6 ++++-- hw/ppc_newworld.c | 4 ++-- hw/ppc_oldworld.c | 4 ++-- hw/ppc_prep.c | 2 +- hw/sun4m.c | 6 +++--- hw/sun4u.c | 2 +- keymaps.c | 2 +- sysemu.h | 2 +- vl.c | 19 ++++++++++++++++--- 15 files changed, 42 insertions(+), 25 deletions(-) diff --git a/hw/mips_jazz.c b/hw/mips_jazz.c index 9bdb903..a7e0473 100644 --- a/hw/mips_jazz.c +++ b/hw/mips_jazz.c @@ -165,7 +165,7 @@ void mips_jazz_init (ram_addr_t ram_size, int vga_ram_size, bios_offset = ram_size + vga_ram_size; if (bios_name == NULL) bios_name = BIOS_FILENAME; - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); + snprintf(buf, sizeof(buf), "%s/%s", get_datafile_dir(), bios_name); bios_size = load_image(buf, phys_ram_base + bios_offset); if (bios_size < 0 || bios_size > MAGNUM_BIOS_SIZE) { fprintf(stderr, "qemu: Could not load MIPS bios '%s'\n", diff --git a/hw/mips_malta.c b/hw/mips_malta.c index af1abb8..54488c8 100644 --- a/hw/mips_malta.c +++ b/hw/mips_malta.c @@ -850,7 +850,7 @@ void mips_malta_init (ram_addr_t ram_size, int vga_ram_size, /* Load a BIOS image. */ if (bios_name == NULL) bios_name = BIOS_FILENAME; - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); + snprintf(buf, sizeof(buf), "%s/%s", get_datafile_dir(), bios_name); bios_size = load_image(buf, phys_ram_base + bios_offset); if ((bios_size < 0 || bios_size > BIOS_SIZE) && !kernel_filename) { fprintf(stderr, diff --git a/hw/mips_mipssim.c b/hw/mips_mipssim.c index 3f54900..b1f47cb 100644 --- a/hw/mips_mipssim.c +++ b/hw/mips_mipssim.c @@ -139,7 +139,7 @@ mips_mipssim_init (ram_addr_t ram_size, int vga_ram_size, bios_offset = ram_size + vga_ram_size; if (bios_name == NULL) bios_name = BIOS_FILENAME; - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); + snprintf(buf, sizeof(buf), "%s/%s", get_datafile_dir(), bios_name); bios_size = load_image(buf, phys_ram_base + bios_offset); if ((bios_size < 0 || bios_size > BIOS_SIZE) && !kernel_filename) { /* Bail out if we have neither a kernel image nor boot vector code. */ diff --git a/hw/mips_r4k.c b/hw/mips_r4k.c index ab0c110..80b068b 100644 --- a/hw/mips_r4k.c +++ b/hw/mips_r4k.c @@ -199,7 +199,7 @@ void mips_r4k_init (ram_addr_t ram_size, int vga_ram_size, bios_offset = ram_size + vga_ram_size; if (bios_name == NULL) bios_name = BIOS_FILENAME; - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); + snprintf(buf, sizeof(buf), "%s/%s", get_datafile_dir(), bios_name); bios_size = load_image(buf, phys_ram_base + bios_offset); if ((bios_size > 0) && (bios_size <= BIOS_SIZE)) { cpu_register_physical_memory(0x1fc00000, diff --git a/hw/pc.c b/hw/pc.c index 57ba803..4efc1ce 100644 --- a/hw/pc.c +++ b/hw/pc.c @@ -838,7 +838,7 @@ static void pc_init1(ram_addr_t ram_size, int vga_ram_size, /* BIOS load */ if (bios_name == NULL) bios_name = BIOS_FILENAME; - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); + snprintf(buf, sizeof(buf), "%s/%s", get_datafile_dir(), bios_name); bios_size = get_image_size(buf); if (bios_size <= 0 || (bios_size % 65536) != 0) { @@ -855,9 +855,11 @@ static void pc_init1(ram_addr_t ram_size, int vga_ram_size, if (cirrus_vga_enabled || std_vga_enabled || vmsvga_enabled) { /* VGA BIOS load */ if (cirrus_vga_enabled) { - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, VGABIOS_CIRRUS_FILENAME); + snprintf(buf, sizeof(buf), "%s/%s", get_datafile_dir(), + VGABIOS_CIRRUS_FILENAME); } else { - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, VGABIOS_FILENAME); + snprintf(buf, sizeof(buf), "%s/%s", get_datafile_dir(), + VGABIOS_FILENAME); } vga_bios_size = get_image_size(buf); if (vga_bios_size <= 0 || vga_bios_size > 65536) diff --git a/hw/ppc405_boards.c b/hw/ppc405_boards.c index 945f095..06e0451 100644 --- a/hw/ppc405_boards.c +++ b/hw/ppc405_boards.c @@ -238,7 +238,7 @@ static void ref405ep_init (ram_addr_t ram_size, int vga_ram_size, #endif if (bios_name == NULL) bios_name = BIOS_FILENAME; - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); + snprintf(buf, sizeof(buf), "%s/%s", get_datafile_dir(), bios_name); bios_size = load_image(buf, phys_ram_base + bios_offset); if (bios_size < 0 || bios_size > BIOS_SIZE) { fprintf(stderr, "qemu: could not load PowerPC bios '%s'\n", buf); @@ -550,7 +550,7 @@ static void taihu_405ep_init(ram_addr_t ram_size, int vga_ram_size, #endif if (bios_name == NULL) bios_name = BIOS_FILENAME; - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); + snprintf(buf, sizeof(buf), "%s/%s", get_datafile_dir(), bios_name); bios_size = load_image(buf, phys_ram_base + bios_offset); if (bios_size < 0 || bios_size > BIOS_SIZE) { fprintf(stderr, "qemu: could not load PowerPC bios '%s'\n", buf); diff --git a/hw/ppc440_bamboo.c b/hw/ppc440_bamboo.c index fbd447c..1c47b20 100644 --- a/hw/ppc440_bamboo.c +++ b/hw/ppc440_bamboo.c @@ -40,10 +40,12 @@ static void *bamboo_load_device_tree(void *addr, int pathlen; int ret; - pathlen = snprintf(NULL, 0, "%s/%s", bios_dir, BINARY_DEVICE_TREE_FILE) + 1; + pathlen = snprintf(NULL, 0, "%s/%s", get_datafile_dir(), + BINARY_DEVICE_TREE_FILE) + 1; path = qemu_malloc(pathlen); - snprintf(path, pathlen, "%s/%s", bios_dir, BINARY_DEVICE_TREE_FILE); + snprintf(path, pathlen, "%s/%s", get_datafile_dir(), + BINARY_DEVICE_TREE_FILE); fdt = load_device_tree(path, addr); free(path); diff --git a/hw/ppc_newworld.c b/hw/ppc_newworld.c index 6f60e49..2c520c4 100644 --- a/hw/ppc_newworld.c +++ b/hw/ppc_newworld.c @@ -135,7 +135,7 @@ static void ppc_core99_init (ram_addr_t ram_size, int vga_ram_size, bios_offset = qemu_ram_alloc(BIOS_SIZE); if (bios_name == NULL) bios_name = PROM_FILENAME; - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); + snprintf(buf, sizeof(buf), "%s/%s", get_datafile_dir(), bios_name); cpu_register_physical_memory(PROM_ADDR, BIOS_SIZE, bios_offset | IO_MEM_ROM); /* Load OpenBIOS (ELF) */ @@ -147,7 +147,7 @@ static void ppc_core99_init (ram_addr_t ram_size, int vga_ram_size, /* allocate and load VGA BIOS */ vga_bios_offset = qemu_ram_alloc(VGA_BIOS_SIZE); - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, VGABIOS_FILENAME); + snprintf(buf, sizeof(buf), "%s/%s", get_datafile_dir(), VGABIOS_FILENAME); vga_bios_size = load_image(buf, phys_ram_base + vga_bios_offset + 8); if (vga_bios_size < 0) { /* if no bios is present, we can still work */ diff --git a/hw/ppc_oldworld.c b/hw/ppc_oldworld.c index 3589812..c389735 100644 --- a/hw/ppc_oldworld.c +++ b/hw/ppc_oldworld.c @@ -171,7 +171,7 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size, bios_offset = qemu_ram_alloc(BIOS_SIZE); if (bios_name == NULL) bios_name = PROM_FILENAME; - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); + snprintf(buf, sizeof(buf), "%s/%s", get_datafile_dir(), bios_name); cpu_register_physical_memory(PROM_ADDR, BIOS_SIZE, bios_offset | IO_MEM_ROM); /* Load OpenBIOS (ELF) */ @@ -183,7 +183,7 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size, /* allocate and load VGA BIOS */ vga_bios_offset = qemu_ram_alloc(VGA_BIOS_SIZE); - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, VGABIOS_FILENAME); + snprintf(buf, sizeof(buf), "%s/%s", get_datafile_dir(), VGABIOS_FILENAME); vga_bios_size = load_image(buf, phys_ram_base + vga_bios_offset + 8); if (vga_bios_size < 0) { /* if no bios is present, we can still work */ diff --git a/hw/ppc_prep.c b/hw/ppc_prep.c index 7bd0979..115dd40 100644 --- a/hw/ppc_prep.c +++ b/hw/ppc_prep.c @@ -587,7 +587,7 @@ static void ppc_prep_init (ram_addr_t ram_size, int vga_ram_size, bios_offset = qemu_ram_alloc(BIOS_SIZE); if (bios_name == NULL) bios_name = BIOS_FILENAME; - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); + snprintf(buf, sizeof(buf), "%s/%s", get_datafile_dir(), bios_name); bios_size = load_image(buf, phys_ram_base + bios_offset); if (bios_size < 0 || bios_size > BIOS_SIZE) { cpu_abort(env, "qemu: could not load PPC PREP bios '%s'\n", buf); diff --git a/hw/sun4m.c b/hw/sun4m.c index bae8803..1ca0ea6 100644 --- a/hw/sun4m.c +++ b/hw/sun4m.c @@ -490,7 +490,7 @@ static void sun4m_hw_init(const struct sun4m_hwdef *hwdef, ram_addr_t RAM_size, if (bios_name == NULL) bios_name = PROM_FILENAME; - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); + snprintf(buf, sizeof(buf), "%s/%s", get_datafile_dir(), bios_name); ret = load_elf(buf, hwdef->slavio_base - PROM_VADDR, NULL, NULL, NULL); if (ret < 0 || ret > PROM_SIZE_MAX) ret = load_image_targphys(buf, hwdef->slavio_base, PROM_SIZE_MAX); @@ -1286,7 +1286,7 @@ static void sun4d_hw_init(const struct sun4d_hwdef *hwdef, ram_addr_t RAM_size, if (bios_name == NULL) bios_name = PROM_FILENAME; - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); + snprintf(buf, sizeof(buf), "%s/%s", get_datafile_dir(), bios_name); ret = load_elf(buf, hwdef->slavio_base - PROM_VADDR, NULL, NULL, NULL); if (ret < 0 || ret > PROM_SIZE_MAX) ret = load_image_targphys(buf, hwdef->slavio_base, PROM_SIZE_MAX); @@ -1493,7 +1493,7 @@ static void sun4c_hw_init(const struct sun4c_hwdef *hwdef, ram_addr_t RAM_size, if (bios_name == NULL) bios_name = PROM_FILENAME; - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); + snprintf(buf, sizeof(buf), "%s/%s", get_datafile_dir(), bios_name); ret = load_elf(buf, hwdef->slavio_base - PROM_VADDR, NULL, NULL, NULL); if (ret < 0 || ret > PROM_SIZE_MAX) ret = load_image_targphys(buf, hwdef->slavio_base, PROM_SIZE_MAX); diff --git a/hw/sun4u.c b/hw/sun4u.c index 234df7a..e24b912 100644 --- a/hw/sun4u.c +++ b/hw/sun4u.c @@ -449,7 +449,7 @@ static void sun4uv_init(ram_addr_t RAM_size, int vga_ram_size, if (bios_name == NULL) bios_name = PROM_FILENAME; - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); + snprintf(buf, sizeof(buf), "%s/%s", get_datafile_dir(), bios_name); ret = load_elf(buf, hwdef->prom_addr - PROM_VADDR, NULL, NULL, NULL); if (ret < 0) { ret = load_image_targphys(buf, hwdef->prom_addr, diff --git a/keymaps.c b/keymaps.c index 216e378..a1645ab 100644 --- a/keymaps.c +++ b/keymaps.c @@ -82,7 +82,7 @@ static kbd_layout_t *parse_keyboard_layout(const char *language, int len; snprintf(file_name, sizeof(file_name), - "%s/keymaps/%s", bios_dir, language); + "%s/keymaps/%s", get_datafile_dir(), language); if (!k) k = qemu_mallocz(sizeof(kbd_layout_t)); diff --git a/sysemu.h b/sysemu.h index 57217c1..2e90ddf 100644 --- a/sysemu.h +++ b/sysemu.h @@ -4,7 +4,7 @@ /* vl.c */ extern const char *bios_name; -extern const char *bios_dir; +extern char *get_datafile_dir(void); extern int vm_running; extern const char *qemu_name; diff --git a/vl.c b/vl.c index 5f237d0..42421e5 100644 --- a/vl.c +++ b/vl.c @@ -172,7 +172,7 @@ /* XXX: use a two level table to limit memory usage */ #define MAX_IOPORTS 65536 -const char *bios_dir = CONFIG_QEMU_SHAREDIR; +static char datafile_dir[512]; const char *bios_name = NULL; static void *ioport_opaque[MAX_IOPORTS]; static IOPortReadFunc *ioport_read_table[3][MAX_IOPORTS]; @@ -4581,6 +4581,17 @@ static void termsig_setup(void) #endif +static void set_datafile_dir(const char *dir) +{ + strncpy(datafile_dir, dir, sizeof(datafile_dir) - 1); + datafile_dir[sizeof(datafile_dir) - 1] = 0; +} + +char *get_datafile_dir(void) +{ + return datafile_dir; +} + int main(int argc, char **argv, char **envp) { #ifdef CONFIG_GDBSTUB @@ -4655,6 +4666,7 @@ int main(int argc, char **argv, char **envp) } #endif + set_datafile_dir(CONFIG_QEMU_SHAREDIR); register_machines(); machine = first_machine; cpu_model = NULL; @@ -5005,7 +5017,7 @@ int main(int argc, char **argv, char **envp) break; #endif case QEMU_OPTION_L: - bios_dir = optarg; + set_datafile_dir(optarg); break; case QEMU_OPTION_bios: bios_name = optarg; @@ -5425,7 +5437,8 @@ int main(int argc, char **argv, char **envp) if (net_boot & (1 << i)) { if (model == NULL) model = "ne2k_pci"; - snprintf(buf, sizeof(buf), "%s/pxe-%s.bin", bios_dir, model); + snprintf(buf, sizeof(buf), "%s/pxe-%s.bin", get_datafile_dir(), + model); if (get_image_size(buf) > 0) { if (nb_option_roms >= MAX_OPTION_ROMS) { fprintf(stderr, "Too many option ROMs\n"); -- 1.6.0.6