From mboxrd@z Thu Jan 1 00:00:00 1970 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) Sender: Paolo Bonzini From: Paolo Bonzini Date: Wed, 8 Dec 2010 13:49:11 +0100 Message-Id: <1291812551-12590-1-git-send-email-pbonzini@redhat.com> In-Reply-To: <4CFF6E8F.7000300@gmail.com> References: <4CFF6E8F.7000300@gmail.com> Subject: [Qemu-devel] [PATCH] fix qruncom compilation problems List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: stefboombastic@gmail.com 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; -- 1.7.3.2