From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MMN5N-0004TS-Hz for qemu-devel@nongnu.org; Thu, 02 Jul 2009 10:16:25 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MMN5J-0004Ps-Uh for qemu-devel@nongnu.org; Thu, 02 Jul 2009 10:16:25 -0400 Received: from [199.232.76.173] (port=37741 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MMN5J-0004Pf-Qj for qemu-devel@nongnu.org; Thu, 02 Jul 2009 10:16:21 -0400 Received: from relay3.sgi.com ([192.48.156.57]:53848 helo=relay.sgi.com) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MMN5J-0008Vb-DW for qemu-devel@nongnu.org; Thu, 02 Jul 2009 10:16:21 -0400 Message-ID: <4A4CC12A.3030908@sgi.com> Date: Thu, 02 Jul 2009 16:16:10 +0200 From: Jes Sorensen MIME-Version: 1.0 References: <4A4B7DC7.9020906@sgi.com> <20090702013515.GA28392@morn.localdomain> In-Reply-To: <20090702013515.GA28392@morn.localdomain> Content-Type: multipart/mixed; boundary="------------010505090305020901090001" Subject: [Qemu-devel] Re: [PATCH] Seabios: seperate qemu_cfg from smbios List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin O'Connor Cc: qemu-devel This is a multi-part message in MIME format. --------------010505090305020901090001 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 07/02/2009 03:35 AM, Kevin O'Connor wrote: > The patch looks fine to me. I'd like to see the followup patches > before committing this preliminary patch though. > > One note - all header files need header guards due to some bugs in > various gcc implementations of -fwhole-program. Hi Kevin, DOH, stupid me for forgetting that. Here's an updated version of the patch with that fixed. I'll send you the seabioa patch for maxcpus using QEMU_CFG next. It's similar to what I pushed into qemu/bochs already. Cheers, Jes --------------010505090305020901090001 Content-Type: text/x-patch; name="0002-seperate-qemu-cfg.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0002-seperate-qemu-cfg.patch" Move QEMU_CFG related code out of smbios.c and into seperate files. Signed-off-by: Jes Sorensen --- Makefile | 4 ++-- src/qemu-cfg.c | 29 +++++++++++++++++++++++++++++ src/qemu-cfg.h | 19 +++++++++++++++++++ src/smbios.c | 22 +--------------------- 4 files changed, 51 insertions(+), 23 deletions(-) Index: seabios/Makefile =================================================================== --- seabios.orig/Makefile +++ seabios/Makefile @@ -13,8 +13,8 @@ SRCBOTH=output.c util.c floppy.c ata.c m pnpbios.c pirtable.c SRC16=$(SRCBOTH) system.c disk.c apm.c pcibios.c vgahooks.c font.c SRC32=$(SRCBOTH) post.c shadow.c memmap.c coreboot.c boot.c \ - acpi.c smm.c mptable.c smbios.c pciinit.c optionroms.c mtrr.c \ - lzmadecode.c + acpi.c smm.c mptable.c qemu-cfg.c smbios.c pciinit.c optionroms.c \ + mtrr.c lzmadecode.c cc-option = $(shell if test -z "`$(1) $(2) -S -o /dev/null -xc \ /dev/null 2>&1`"; then echo "$(2)"; else echo "$(3)"; fi ;) Index: seabios/src/qemu-cfg.c =================================================================== --- /dev/null +++ seabios/src/qemu-cfg.c @@ -0,0 +1,29 @@ +// qemu-cfg.c: QEMU_CFG related code +// +// Copyright (C) 2009 Jes Sorensen, SGI +// Copyright (C) 2008 Kevin O'Connor +// Copyright (C) 2006 Fabrice Bellard +// +// This file may be distributed under the terms of the GNU LGPLv3 license. + +#include "types.h" +#include "ioport.h" +#include "qemu-cfg.h" + +void +qemu_cfg_read(u8 *buf, u16 f, int len) +{ + outw(f, PORT_QEMU_CFG_CTL); + while (len--) + *(buf++) = inb(PORT_QEMU_CFG_DATA); +} + +int +qemu_cfg_port_probe() +{ + u8 sig[4] = "QEMU"; + u8 buf[4]; + qemu_cfg_read(buf, QEMU_CFG_SIGNATURE, 4); + return *(u32*)buf == *(u32*)sig; +} + Index: seabios/src/qemu-cfg.h =================================================================== --- /dev/null +++ seabios/src/qemu-cfg.h @@ -0,0 +1,19 @@ +// qemu-cfg.h: QEMU_CFG related definitions +// +// Copyright (C) 2009 Jes Sorensen, SGI +// Copyright (C) 2008 Kevin O'Connor +// Copyright (C) 2006 Fabrice Bellard +// +// This file may be distributed under the terms of the GNU LGPLv3 license. + +#ifndef __QEMU_CFG_H +#define __QEMU_CFG_H + +#define QEMU_CFG_SIGNATURE 0x00 +#define QEMU_CFG_ID 0x01 +#define QEMU_CFG_UUID 0x02 + +void qemu_cfg_read(u8 *buf, u16 f, int len); +int qemu_cfg_port_probe(); + +#endif Index: seabios/src/smbios.c =================================================================== --- seabios.orig/src/smbios.c +++ seabios/src/smbios.c @@ -8,33 +8,13 @@ #include "util.h" // dprintf #include "memmap.h" // bios_table_cur_addr #include "biosvar.h" // GET_EBDA +#include "qemu-cfg.h" // QEMU_CFG_UUID /**************************************************************** * UUID probe ****************************************************************/ -#define QEMU_CFG_SIGNATURE 0x00 -#define QEMU_CFG_ID 0x01 -#define QEMU_CFG_UUID 0x02 - -static void -qemu_cfg_read(u8 *buf, u16 f, int len) -{ - outw(f, PORT_QEMU_CFG_CTL); - while (len--) - *(buf++) = inb(PORT_QEMU_CFG_DATA); -} - -static int -qemu_cfg_port_probe() -{ - u8 sig[4] = "QEMU"; - u8 buf[4]; - qemu_cfg_read(buf, QEMU_CFG_SIGNATURE, 4); - return *(u32*)buf == *(u32*)sig; -} - static void uuid_probe(u8 *bios_uuid) { --------------010505090305020901090001--