[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] fix qruncom compilation problems
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH] fix qruncom compilation problems |
Date: |
Wed, 8 Dec 2010 13:49:11 +0100 |
Signed-off-by: Paolo Bonzini <address@hidden>
---
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 <signal.h>
#include <malloc.h>
+#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
- [Qemu-devel] Compiling tests/qruncom.c, Stefano Bonifazi, 2010/12/08
- [Qemu-devel] [PATCH] fix qruncom compilation problems,
Paolo Bonzini <=
- [Qemu-devel] Re: [PATCH] fix qruncom compilation problems, Stefano Bonifazi, 2010/12/08
- [Qemu-devel] Re: [PATCH] fix qruncom compilation problems, Paolo Bonzini, 2010/12/09
- [Qemu-devel] Re: [PATCH] fix qruncom compilation problems, Stefano Bonifazi, 2010/12/09
- [Qemu-devel] Re: [PATCH] fix qruncom compilation problems, Paolo Bonzini, 2010/12/10
- [Qemu-devel] Re: [PATCH] fix qruncom compilation problems, Stefano Bonifazi, 2010/12/10
- Message not available
- [Qemu-devel] RE: [PATCH] fix qruncom compilation problems, Stefano Bonifazi, 2010/12/11
- [Qemu-devel] Re: [PATCH] fix qruncom compilation problems, Paolo Bonzini, 2010/12/13
Re: [Qemu-devel] [PATCH] fix qruncom compilation problems, Isaku Yamahata, 2010/12/08