From patchwork Wed Dec 8 12:49:11 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 74709 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id E32AAB6F14 for ; Thu, 9 Dec 2010 00:06:31 +1100 (EST) Received: from localhost ([127.0.0.1]:46088 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PQJUq-0005iR-LJ for incoming@patchwork.ozlabs.org; Wed, 08 Dec 2010 07:51:48 -0500 Received: from [140.186.70.92] (port=43603 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PQJSc-00058Y-Ud for qemu-devel@nongnu.org; Wed, 08 Dec 2010 07:49:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PQJSN-00019K-K3 for qemu-devel@nongnu.org; Wed, 08 Dec 2010 07:49:30 -0500 Received: from mail-bw0-f45.google.com ([209.85.214.45]:65402) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PQJSN-00018f-9l for qemu-devel@nongnu.org; Wed, 08 Dec 2010 07:49:15 -0500 Received: by bwz16 with SMTP id 16so1245944bwz.4 for ; Wed, 08 Dec 2010 04:49:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:from:to:cc:subject :date:message-id:x-mailer:in-reply-to:references; bh=532wOM14zTubm6B+p1NSvr5SabxRAEaKL7WPlKxR7xQ=; b=pClg1VF5hlrgCg+R9oHJwscg9e6QunRGAbl5xMR0UPAfpytMv1Ze7BIXegCfONbT7+ B5ghEXucbWv3oxSvsI8wYCVC+rMziqh8pqRSUux7rSxvoQiPYoBzbfUQoclxkIkSTUi9 r7esrNKwYKqGwij8Ms0zluQJE8BVHT01FioyY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references; b=HeMi+N0PmL3Rt91U60GNJ5PIWwQlQHVxJavXB98uq+X3HGozgHs23W8UWlT/3mzbVy Uk4eqsDhhzgkS+lAFLow8beyLgvvFZ6u3YHmmxjx13wiSsSj3YhiOrrJC8KC9BRQ5jYX 77mdlwcsc1byrsS/PYuViwbDpzYgHFUtNzMi8= Received: by 10.204.84.164 with SMTP id j36mr1227600bkl.124.1291812553797; Wed, 08 Dec 2010 04:49:13 -0800 (PST) Received: from localhost.localdomain (s209p8.home.99maxprogres.cz [85.93.118.17]) by mx.google.com with ESMTPS id p22sm302820bkp.21.2010.12.08.04.49.11 (version=TLSv1/SSLv3 cipher=RC4-MD5); Wed, 08 Dec 2010 04:49:12 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Wed, 8 Dec 2010 13:49:11 +0100 Message-Id: <1291812551-12590-1-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.7.3.2 In-Reply-To: <4CFF6E8F.7000300@gmail.com> References: <4CFF6E8F.7000300@gmail.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) Cc: stefboombastic@gmail.com Subject: [Qemu-devel] [PATCH] fix qruncom compilation problems X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Signed-off-by: Paolo Bonzini --- I had this patch lying around but I don't think I ever got qruncom to work completely. Makefile.target | 3 ++ tests/Makefile | 7 ++-- tests/qruncom.c | 93 +++++++++++++++++++++++++++++++++++------------------- 3 files changed, 67 insertions(+), 36 deletions(-) diff --git a/Makefile.target b/Makefile.target index 5784844..4ac8f6f 100644 --- a/Makefile.target +++ b/Makefile.target @@ -339,6 +339,9 @@ obj-y += $(addprefix ../libdis/, $(libdis-y)) obj-y += $(libobj-y) obj-y += $(addprefix $(HWDIR)/, $(hw-obj-y)) +else # !CONFIG_SOFTMMU +libqemu.a: $(addprefix ../, $(common-obj-y)) $(libobj-y) $(addprefix ../libdis/, $(libdis-y)) + ar rc $@ $^ endif # CONFIG_SOFTMMU obj-y += $(addprefix ../, $(trace-obj-y)) diff --git a/tests/Makefile b/tests/Makefile index e43ec70..6dbeb6f 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -116,9 +116,10 @@ speed: sha1 sha1-i386 # broken test # NOTE: -fomit-frame-pointer is currently needed : this is a bug in libqemu -qruncom: qruncom.c ../ioport-user.c ../i386-user/libqemu.a - $(CC) $(CFLAGS) -fomit-frame-pointer $(LDFLAGS) -I../target-i386 -I.. -I../i386-user -I../fpu \ - -o $@ $(filter %.c, $^) -L../i386-user -lqemu -lm +qruncom: qruncom.c + #$(MAKE) -C ../i386-linux-user libqemu.a + $(CC) $(CFLAGS) -fomit-frame-pointer $(LDFLAGS) -I../target-i386 -I.. -I../linux-user -I../i386-linux-user -I../fpu \ + -o $@ $(filter %.c, $^) -L../i386-linux-user -lqemu -lm # arm test hello-arm: hello-arm.o diff --git a/tests/qruncom.c b/tests/qruncom.c index 079f7a2..66fc223 100644 --- a/tests/qruncom.c +++ b/tests/qruncom.c @@ -12,10 +12,68 @@ #include #include +#define NEED_CPU_H 1 #include "cpu.h" //#define SIGTEST +unsigned long guest_base = 0; +int have_guest_base = 0; +int singlestep = 0; +unsigned long last_brk = 0; + +void cpu_outb(uint32_t addr, uint8_t val) +{ + fprintf(stderr, "outb: port=0x%04"PRIx32", data=%02"PRIx8"\n", + addr, val); +} + +void cpu_outw(uint32_t addr, uint16_t val) +{ + fprintf(stderr, "outw: port=0x%04"PRIx32", data=%04"PRIx16"\n", + addr, val); +} + +void cpu_outl(uint32_t addr, uint32_t val) +{ + fprintf(stderr, "outl: port=0x%04"PRIx32", data=%08"PRIx32"\n", + addr, val); +} + +uint8_t cpu_inb(uint32_t addr) +{ + fprintf(stderr, "inb: port=0x%04"PRIx32"\n", addr); + return 0; +} + +uint16_t cpu_inw(uint32_t addr) +{ + fprintf(stderr, "inw: port=0x%04"PRIx32"\n", addr); + return 0; +} + +uint32_t cpu_inl(uint32_t addr) +{ + fprintf(stderr, "inl: port=0x%04"PRIx32"\n", addr); + return 0; +} + +void cpu_list_lock(void) +{ +} + +void cpu_list_unlock(void) +{ +} + +void mmap_lock(void) +{ +} + +void mmap_unlock(void) +{ +} + int cpu_get_pic_interrupt(CPUState *env) { return -1; @@ -44,26 +102,6 @@ static void set_idt(int n, unsigned int dpl) set_gate(idt_table + n, 0, dpl, 0, 0); } -void qemu_free(void *ptr) -{ - free(ptr); -} - -void *qemu_malloc(size_t size) -{ - return malloc(size); -} - -void *qemu_mallocz(size_t size) -{ - void *ptr; - ptr = qemu_malloc(size); - if (!ptr) - return NULL; - memset(ptr, 0, size); - return ptr; -} - void *qemu_vmalloc(size_t size) { return memalign(4096, size); @@ -74,17 +112,6 @@ void qemu_vfree(void *ptr) free(ptr); } -void qemu_printf(const char *fmt, ...) -{ - va_list ap; - va_start(ap, fmt); - vprintf(fmt, ap); - va_end(ap); -} - -/* XXX: this is a bug in helper2.c */ -int errno; - /**********************************************/ #define COM_BASE_ADDR 0x10100 @@ -99,7 +126,7 @@ static void usage(void) static inline uint8_t *seg_to_linear(unsigned int seg, unsigned int reg) { - return (uint8_t *)((seg << 4) + (reg & 0xffff)); + return (uint8_t *)(uintptr_t) ((seg << 4) + (reg & 0xffff)); } static inline void pushw(CPUState *env, int val) @@ -241,7 +268,7 @@ int main(int argc, char **argv) case EXCP0D_GPF: { int int_num, ah; - int_num = *(uint8_t *)(env->segs[R_CS].base + env->eip + 1); + int_num = *(uint8_t *)(uintptr_t) (env->segs[R_CS].base + env->eip + 1); if (int_num != 0x21) goto unknown_int; ah = (env->regs[R_EAX] >> 8) & 0xff;