[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] fix qruncom compilation problems
From: |
Isaku Yamahata |
Subject: |
Re: [Qemu-devel] [PATCH] fix qruncom compilation problems |
Date: |
Thu, 9 Dec 2010 12:32:43 +0900 |
User-agent: |
Mutt/1.5.19 (2009-01-05) |
What is the reason to duplicate cpu_{in,out}[bwl]() instead of
ioport-user.c?
On Wed, Dec 08, 2010 at 01:49:11PM +0100, Paolo Bonzini wrote:
> 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
>
>
--
yamahata
- [Qemu-devel] Compiling tests/qruncom.c, Stefano Bonifazi, 2010/12/08
- [Qemu-devel] [PATCH] fix qruncom compilation problems, Paolo Bonzini, 2010/12/08
- [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 <=