[Qemu-devel] [PATCH] enhance gdbstub to support x86-64

2006-07-25 Thread Avi Kivity

The following patch adds x86-64 support to gdbstub.  Please consider for
inclusion.

Index: gdbstub.c
===
--- gdbstub.c   (revision 2399)
+++ gdbstub.c   (revision 2400)
@@ -175,10 +175,144 @@
return 0;
}

-#if defined(TARGET_I386)
+#if defined(TARGET_X86_64)

static int cpu_gdb_read_registers(CPUState *env, uint8_t *mem_buf)
{
+uint8_t *p = mem_buf;
+int i, fpus;
+
+#define PUTREG(x) do { \
+   target_ulong reg = tswapl(x); \
+   memcpy(p, ®, sizeof reg); \
+   p += sizeof reg; \
+} while (0)
+#define PUTREG32(x) do { \
+   uint32_t reg = tswap32(x);  \
+   memcpy(p, ®, sizeof reg); \
+   p += sizeof reg; \
+} while (0)
+#define PUTREGF(x) do { \
+   memcpy(p, &(x), 10);\
+   p += sizeof (x);\
+} while (0)
+
+PUTREG(env->regs[R_EAX]);
+PUTREG(env->regs[R_EBX]);
+PUTREG(env->regs[R_ECX]);
+PUTREG(env->regs[R_EDX]);
+PUTREG(env->regs[R_ESI]);
+PUTREG(env->regs[R_EDI]);
+PUTREG(env->regs[R_EBP]);
+PUTREG(env->regs[R_ESP]);
+PUTREG(env->regs[8]);
+PUTREG(env->regs[9]);
+PUTREG(env->regs[10]);
+PUTREG(env->regs[11]);
+PUTREG(env->regs[12]);
+PUTREG(env->regs[13]);
+PUTREG(env->regs[14]);
+PUTREG(env->regs[15]);
+
+PUTREG(env->eip);
+PUTREG32(env->eflags);
+PUTREG32(env->segs[R_CS].selector);
+PUTREG32(env->segs[R_SS].selector);
+PUTREG32(env->segs[R_DS].selector);
+PUTREG32(env->segs[R_ES].selector);
+PUTREG32(env->segs[R_FS].selector);
+PUTREG32(env->segs[R_GS].selector);
+/* XXX: convert floats */
+for(i = 0; i < 8; i++) {
+PUTREGF(env->fpregs[i]);
+}
+PUTREG32(env->fpuc);
+fpus = (env->fpus & ~0x3800) | (env->fpstt & 0x7) << 11;
+PUTREG32(fpus);
+PUTREG32(0); /* XXX: convert tags */
+PUTREG32(0); /* fiseg */
+PUTREG32(0); /* fioff */
+PUTREG32(0); /* foseg */
+PUTREG32(0); /* fooff */
+PUTREG32(0); /* fop */
+
+#undef PUTREG
+#undef PUTREG32
+#undef PUTREGF
+
+return p - mem_buf;
+}
+
+static void cpu_gdb_write_registers(CPUState *env, uint8_t *mem_buf, 
int size)

+{
+uint8_t *p = mem_buf;
+uint32_t junk;
+int i, fpus;
+
+#define GETREG(x) do { \
+   target_ulong reg; \
+   memcpy(®, p, sizeof reg); \
+   x = tswapl(reg); \
+   p += sizeof reg; \
+} while (0)
+#define GETREG32(x) do { \
+   uint32_t reg; \
+   memcpy(®, p, sizeof reg); \
+   x = tswap32(reg);\
+   p += sizeof reg; \
+} while (0)
+#define GETREGF(x) do { \
+   memcpy(&(x), p, 10); \
+   p += 10; \
+} while (0)
+
+GETREG(env->regs[R_EAX]);
+GETREG(env->regs[R_EBX]);
+GETREG(env->regs[R_ECX]);
+GETREG(env->regs[R_EDX]);
+GETREG(env->regs[R_ESI]);
+GETREG(env->regs[R_EDI]);
+GETREG(env->regs[R_EBP]);
+GETREG(env->regs[R_ESP]);
+GETREG(env->regs[8]);
+GETREG(env->regs[9]);
+GETREG(env->regs[10]);
+GETREG(env->regs[11]);
+GETREG(env->regs[12]);
+GETREG(env->regs[13]);
+GETREG(env->regs[14]);
+GETREG(env->regs[15]);
+
+GETREG(env->eip);
+GETREG32(env->eflags);
+GETREG32(env->segs[R_CS].selector);
+GETREG32(env->segs[R_SS].selector);
+GETREG32(env->segs[R_DS].selector);
+GETREG32(env->segs[R_ES].selector);
+GETREG32(env->segs[R_FS].selector);
+GETREG32(env->segs[R_GS].selector);
+/* XXX: convert floats */
+for(i = 0; i < 8; i++) {
+GETREGF(env->fpregs[i]);
+}
+GETREG32(env->fpuc);
+GETREG32(fpus); /* XXX: convert fpus */
+GETREG32(junk); /* XXX: convert tags */
+GETREG32(junk); /* fiseg */
+GETREG32(junk); /* fioff */
+GETREG32(junk); /* foseg */
+GETREG32(junk); /* fooff */
+GETREG32(junk); /* fop */
+
+#undef GETREG
+#undef GETREG32
+#undef GETREGF
+}
+
+#elif defined(TARGET_I386)
+
+static int cpu_gdb_read_registers(CPUState *env, uint8_t *mem_buf)
+{
uint32_t *registers = (uint32_t *)mem_buf;
int i, fpus;

@@ -545,7 +679,8 @@
char buf[4096];
uint8_t mem_buf[2000];
uint32_t *registers;
-uint32_t addr, len;
+target_ulong addr;
+uint32_t len;

#ifdef DEBUG_GDB
printf("command='%s'\n", line_buf);


--
error compiling committee.c: too many arguments to function



___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] Compile errors on Solaris for qemu 0.8.2

2006-07-25 Thread Jonathan Kalbfeld

I went ahead and made Leo's change and it built.  Also, I bit the
bullet and used the blastwave compiler.  However, I still get
segfaults trying to run sparc-test on qemu-system-sparc from my
sparc/solaris box.  Is this a known issue?  Also happens with mips.



On 7/24/06, Blue Swirl <[EMAIL PROTECTED]> wrote:

>I ran into this myself yesterday.  I couldn't figure out a definitive
>answer, because I am no expert on the SPARC architecture, but it appears
>that at least on an UltraSparc IIi machine from a few years ago, the
>"sparc V9" instructions are supported.  However, the gcc by default
>doesn't define __sparc_v9__ on that architecture.  There are some -m
>flags that can be passed to gcc (like multisparc, etc.), but I'm not
>sure for what host machines they are appropriate exactly.  Perhaps the
>SPARC experts on the list can comment more, but in the meantime, the
>following simple (but likely incorrect) patch worked fine for me:

Well, at least my gcc defines __sparc_v9__ if cpu is either v9, ultrasparc
or ultrasparc3:
%{mcpu=v9:-D__sparc_v9__} %{mcpu=ultrasparc:-D__sparc_v9__}
%{mcpu=ultrasparc3:-D__sparc_v9__}

This is from /usr/lib/gcc-lib/sparc-linux/3.3.5/specs. What does your
compiler define, as you still can compile the RDTICK instruction in the
#ifdef section? RDTICK is not available on V8 (Sparc32) architecture, only
on V9.

_
FREE pop-up blocking with the new MSN Toolbar - get it now!
http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/





--
--
Jonathan Kalbfeld
+1 323 620 6682


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


[Qemu-devel] Re: [PATCH]some vnc enhancement

2006-07-25 Thread Anthony Liguori

Hi Xiaowei,

Fabrice had mentioned some interest in refactoring some of the SDL code 
so that the VC switching was shared between VNC/SDL.  Not sure quite 
what he was thinking so hopefully he'll chime in.


The only issue I see in the patch is that you're using the XK_ symbols.  
I purposefully didn't rely on those since they aren't available on Win32 
and the VNC spec is suggests that the actual value of these symbols can 
vary greatly on different platforms (especially the control keys).


Regards,

Anthony Liguori

Yang, Xiaowei wrote:

Qemu 0.8 uses a written-from-scratch VNC implementation, which lacks of
some original features. One thing is that it doesn't recognize
ctrl+alt+1/2/3 to switch among screens. Another issue is VNC client may
reset color depth after connection, so if we don't re-calculate
color_table, monitor/console's background is abnormal. I made a patch to
add them. 


Thanks,
Xiaowei
  




___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


[Qemu-devel] Re: high CPU load / async IO?

2006-07-25 Thread Anthony Liguori
On Tue, 25 Jul 2006 00:51:23 +0200, Sven Köhler wrote:

>> IDE only supports one outstanding request, so having a thread that runs
>> the synchronous block routines appears reasonable.  However, SATA and SCSI
>> both support multiple outstanding requests.  The extension to the existing
>> patch would be simple--increase the number of threads.
> 
> ???
> 
> Wasn't there another variant using the async-I/O support of the Host OS
> and thereby supporting a larger number of outstanding requests?

Not that I know of.  Do you have a pointer?

> The approch that i mentioned above (using the host's async I/O) is what
> you mean with using linux-aio, right?

It depends on what you mean by the host's async I/O implementation.

>> So the current thread-based async dma patch is really just the wrong long
>> term solution.  A more long term solution is likely in the works.  It
>> requires quite a bit of code modification though.
> 
> I see. So in other words:
> 
> don't ask for simple async I/O now. The more complex and flexible
> sollution will follow soon.

Yes, hopefully really soon.

Regards,

Anthony Liguori

> ___
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel




___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] Re QuickStartGuide on QEMU Wiki

2006-07-25 Thread Dirk Behme

Andrew Malcolmson wrote:

Here is a super short addition you might want to add to the
QuickStartGuide page,


A Wiki is something anybody can add improvements himself ;)


Create an empty 3 GB image file. You will be installing into this:


a)


{{{
qemu-img create mylinux.raw 3G
}}}


b)


Install from a downloaded iso file:

{{{
qemu -hda mylinux.raw -cdrom /dev/cdrom -boot d -net user -m 256
}}}


c)


Run the installation:

{{{
qemu -hda mylinux.raw -cdrom /dev/cdrom -boot c -net user -m 256
}}}


Mmh, sorry, but I didn't get the point here. What is the key 
difference between the things above and


- your step (a) and QuickStartGuide step 2: creation of 
blank disk image:


qemu-img create -f qcow c.img 3G

- your step (b) and QuickStartGuide step 3b: suppose you 
have an install iso image, called my_os_install.iso. Then run:


qemu -cdrom my_os_install.iso -hda c.img -m 256 -boot d

already in QuickStartGuide?

Your step (c) is an extension of QuickStartGuide's "qemu 
-hda c.img -m 256" which I think can be done by anybody who 
understands the basics of QuickStartGuide on his own.


Let us keep the QuickStartGuide simple and easy and don't 
explain every possible variant. For this anybody can use


http://fabrice.bellard.free.fr/qemu/qemu-doc.html

Regards

Dirk


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


RE: [Qemu-devel] sparc-softmmu

2006-07-25 Thread Blue Swirl

After openbios-sparc32 is introduced for sparc-softmmu, I can see a Linux
penguin but can't see booting texts.


This happens because OpenBIOS didn't understand Qemu's nographic flag and 
therefore the Linux console was not changed to the correct device. Adding 
'console=/dev/tty0' to command line helps. The current version of OpenBIOS 
(SVN revision 71) supports the flag, so the sparc-test scripts work like 
with Proll.


_
Express yourself instantly with MSN Messenger! Download today it's FREE! 
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/




___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


[Qemu-devel] Re: FreeBSD qemu 0.8.2 update - please test! (and usb cardreader SET_ADDR_FAILED)

2006-07-25 Thread Juergen Lock
On Mon, Jul 24, 2006 at 12:40:41AM +0200, Juergen Lock wrote:
> With the help of Lonnie Mendez (he updated his usb host support patch)
> I just put together an experimental qemu port update.  For some reason
> my usb cardreader didnt want to work today:
>   uhub1: device problem (SET_ADDR_FAILED), disabling port 1
> (anyone have an idea about this one?  this is the first time i tried using
> it since I updated this box to 6.1), so the usb host support is untested.
> 
>  To test usb best run qemu with -monitor stdio, then do `info usbhost'
> when its running and then `usb_add host:' where x.y is the host
> device you want to add (`plug into' the guest).  also see the port's
> pkg-message.

some quick test have been done on usb now (cardreader started working
again without me doing anything), also Bakul Shah tested usb with a
w2k guest.  usb is slow tho... (and watch out for the new pkg-message
note below.)

 Also Jung-uk Kim made me aware that FreeBSD has clock_gettime(2) too
and provided a patch to enable it.

 And I noted -kernel-kqemu doesnt seem to be faster than `regular'
kqemu anymore (subjectively it once even seemd a little slower!),
example startup time of root shell xterm on KANOTIX-2006-Easter-RC4.iso
went up from maybe 5 to over 20 seconds, and qemu now takes some 30%
cpu here even when the guest is idle.  And, I got two qemu hangs
(guest suddenly hangs completly, qemu eating 99% cpu) with
-kernel-kqemu.  So, if anyone has any ideas about this...
(can the new timing code slow things down that much?)
Oh, host has a single 2.0something GHz athlon cpu and 512 MB ram.

 new qemu port update below, enjoy,
Juergen

Removed files: files/patch-malc-17h_aqemu files/patch-sdl.c

Index: Makefile
===
RCS file: /home/ncvs/ports/emulators/qemu/Makefile,v
retrieving revision 1.53
diff -u -r1.53 Makefile
--- Makefile23 Jul 2006 00:04:01 -  1.53
+++ Makefile23 Jul 2006 15:51:45 -
@@ -6,8 +6,7 @@
 #
 
 PORTNAME=  qemu
-PORTVERSION=   0.8.1
-PORTREVISION=  2
+PORTVERSION=   0.8.2
 CATEGORIES=emulators
 MASTER_SITES=  http://www.qemu.org/:release \
http://people.fruitsalad.org/nox/qemu/:snapshot \
Index: distinfo
===
RCS file: /home/ncvs/ports/emulators/qemu/distinfo,v
retrieving revision 1.31
diff -u -r1.31 distinfo
--- distinfo6 May 2006 16:15:41 -   1.31
+++ distinfo23 Jul 2006 15:52:26 -
@@ -1,6 +1,6 @@
-MD5 (qemu/qemu-0.8.1.tar.gz) = 67d924324a5ab79d017bd97a1e767285
-SHA256 (qemu/qemu-0.8.1.tar.gz) = 
a1f83666f5c05eaee9bfc608a3a5034ad95d0fd3c99937bb399bf9235a6aa0c9
-SIZE (qemu/qemu-0.8.1.tar.gz) = 1623264
+MD5 (qemu/qemu-0.8.2.tar.gz) = 5b3a89eb2f256a8a6f3bb07f7b3f1b07
+SHA256 (qemu/qemu-0.8.2.tar.gz) = 
2a20d811296c859d678bdd00aa7ca7951a641327234f3af144e822d078f3
+SIZE (qemu/qemu-0.8.2.tar.gz) = 1810909
 MD5 (qemu/patch3_cirrus) = ebe7ed9fce804c49e024bc93bfdfc810
 SHA256 (qemu/patch3_cirrus) = 
e862371834b7d895a896fbdb84fd9f70d17b5729a6f6789a48a61504fc941e11
 SIZE (qemu/patch3_cirrus) = 8817
Index: pkg-descr
===
RCS file: /home/ncvs/ports/emulators/qemu/pkg-descr,v
retrieving revision 1.3
diff -u -r1.3 pkg-descr
--- pkg-descr   19 Jul 2005 06:06:56 -  1.3
+++ pkg-descr   23 Jul 2006 17:46:11 -
@@ -12,9 +12,9 @@
 cross-debugging. 
 
 As QEMU requires no host kernel patches to run, it is very safe and easy to 
use.
-(but kqemu is now also supported for the i386 on i386 case)
+(but kqemu is now also supported for the i386 on i386 and amd64 case)
 
 See also the preconfigured system images on http://oszoo.org/
 Many live cd isos also work.
 
-WWW: http://fabrice.bellard.free.fr/qemu/
+WWW: http://qemu.org/
Index: pkg-message
===
RCS file: /home/ncvs/ports/emulators/qemu/pkg-message,v
retrieving revision 1.13
diff -u -r1.13 pkg-message
--- pkg-message 23 Jul 2006 00:04:01 -  1.13
+++ pkg-message 25 Jul 2006 17:12:19 -
@@ -45,4 +45,9 @@
add path 'ugen*' mode 660 group operator
 corresponding rc.conf line:
devfs_system_ruleset="ugen_ruleset"
+- still usb: since the hub is no longer attached to the uchi controller
+and the wakeup mechanism, resume interrupt is not implemented yet linux
+guests will suspend the bus, i.e. they wont see devices usb_add'ed after
+its (linux') uhci module got loaded.  workaround: either add devices
+before linux loads the module or rmmod and modprobe it afterwards.
 
Index: pkg-plist
===
RCS file: /home/ncvs/ports/emulators/qemu/pkg-plist,v
retrieving revision 1.15
diff -u -r1.15 pkg-plist
--- pkg-plist   19 May 2006 08:17:54 -  1.15
+++ pkg-plist   23 Jul 2006 17:41:29 -
@@ -13,7 +13,7 @@
 %%DATADIR%%/vgabios.bin
 %%DATADIR%%/vgabios-cirrus

[Qemu-devel] Sparc32/64 linux-test errors

2006-07-25 Thread Blue Swirl
I get this error when running linux-test without any emulation on 
Sparc32/64:

linux-test.c:477: itimer

Strace output:
setitimer(ITIMER_REAL, {it_interval={0, 1}, it_value={0, 1}}, NULL) 
= 0

getitimer(ITIMER_REAL, {it_interval={0, 10998}, it_value={0, 10998}}) = 0
write(2, "linux-test.c:477: ", 18linux-test.c:477: )  = 18

Shouldn't the test run without errors?

Emulated Sparc32:
linux-test.c:221: No child processes (ret=-1, errno=10)

Strace output:
fork()  = 24871
--- SIGCHLD (Child exited) @ 0 (0) ---
rt_sigreturn(0x40149ff4)= 24871
mprotect(0x22000, 4096, PROT_READ|PROT_EXEC) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
mprotect(0x22000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
rt_sigreturn(0x22b80)   = -2073968511
waitpid(3, 0xbfffdd7c, 0)   = -1 ECHILD (No child processes)

Problem with waitpid?

_
Express yourself instantly with MSN Messenger! Download today it's FREE! 
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/




___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


[Qemu-devel] Re: high CPU load / async IO?

2006-07-25 Thread Sven Köhler
>>> IDE only supports one outstanding request, so having a thread that runs
>>> the synchronous block routines appears reasonable.  However, SATA and SCSI
>>> both support multiple outstanding requests.  The extension to the existing
>>> patch would be simple--increase the number of threads.
>> ???
>>
>> Wasn't there another variant using the async-I/O support of the Host OS
>> and thereby supporting a larger number of outstanding requests?
> 
> Not that I know of.  Do you have a pointer?

Hmm, perhaps i only heard people talking about it ...
But if i find anything, i post the link.

>>> So the current thread-based async dma patch is really just the wrong long
>>> term solution.  A more long term solution is likely in the works.  It
>>> requires quite a bit of code modification though.
>>
>> I see. So in other words:
>>
>> don't ask for simple async I/O now. The more complex and flexible
>> sollution will follow soon.
> 
> Yes, hopefully really soon.

So i will wait patiently :-)



signature.asc
Description: OpenPGP digital signature
___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] QuickStartGuide on QEMU Wiki

2006-07-25 Thread Dirk Behme

Fabrice Bellard wrote:
Thank you for the advices. I modified the web site: tell me if you see 
other problems.


Just an idea: What's about splitting KQEMU kqemu-xxx.tar.gz 
into two archives, one for Linux and one for Windows? If 
Linux is tar.gz and Windows uses .zip, people don't need a 
third party tool to extract tar.gz under Windows.


Regards

Dirk


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] Re: high CPU load / async IO?

2006-07-25 Thread Jens Axboe
On Tue, Jul 25 2006, Sven Köhler wrote:
> >>> So the current thread-based async dma patch is really just the wrong long
> >>> term solution.  A more long term solution is likely in the works.  It
> >>> requires quite a bit of code modification though.
> >>
> >> I see. So in other words:
> >>
> >> don't ask for simple async I/O now. The more complex and flexible
> >> sollution will follow soon.
> > 
> > Yes, hopefully really soon.
> 
> So i will wait patiently :-)

Is anyone actively working on this, or is it just speculation? I'd
greatly prefer (and might do, if no one is working on it and Fabrice
would take it) do a libaio version, since that'll for sure perform the
best on Linux. But a posixaio version might be saner, as that should
work on other operating systems as well.

Fabrice, can you let people know what you would prefer?

-- 
Jens Axboe



___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


[Qemu-devel] [PATCH][RFC] configure changes to support cross compiling with mingw32

2006-07-25 Thread Anthony Liguori
--enable-mingw32 hasn't ever worked for me.  The follow patch is a set 
of changes to configure so that --cross-prefix=i586-mingw32-msvc does 
the right thing.


It needs some testing.  It works for me but I don't know if people have 
weird setups where the gcc cross prefix != the sdl cross prefix or 
something odd like that.


Regards,

Anthony Liguori
# HG changeset patch
# User Anthony Liguori <[EMAIL PROTECTED]>
# Node ID 157550eed1f5e456a0f43167bd21bc14ad164d51
# Parent  bda9c89460daa713765b316ea8ef1bfe7fd79091
A number of fixes to configure while getting cross compiling with mingw32 to
work.

Remove the --enable-mingw option.  It hardcoded a cross-compile prefix and a
different prefix is used on the mingw32 tools on some distros.  Now:

 ./configure --cross-prefix=i586-mingw32msvc- ...

will do the Right Thing so --enable-mingw is no longer needed.

Add a check after $cc includes the cross-compile prefix so we can determine
what the target really is (as opposed to using uname).

Remove the check for test -e for /usr/include/byteswap.h to a compile check.
This breaks cross compiling.

Add a check for zlib so that we give a nice error if zlib-devel is missing.

Use ${cross_prefix}sdl-config

When we exit, make sure to remove TMP files.

diff -r bda9c89460da -r 157550eed1f5 configure
--- a/configure	Sat Jul 22 22:06:44 2006 +
+++ b/configure	Tue Jul 25 15:13:19 2006 -0500
@@ -213,8 +213,6 @@ for opt do
   ;;
   --fmod-inc=*) fmod_inc="$optarg"
   ;;
-  --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; user="no"
-  ;;
   --disable-slirp) slirp="no"
   ;;
   --enable-adlib) adlib="yes"
@@ -278,7 +276,6 @@ echo "  --install=INSTALLuse spe
 echo "  --install=INSTALLuse specified install [$install]"
 echo "  --static enable static build [$static]"
 echo "  --enable-cocoa   enable COCOA (Mac OS X only)"
-echo "  --enable-mingw32 enable Win32 cross compilation with mingw32"
 echo "  --enable-adlib   enable Adlib emulation"
 echo "  --enable-coreaudio   enable Coreaudio audio driver"
 echo "  --enable-alsaenable ALSA audio driver"
@@ -301,6 +298,23 @@ ar="${cross_prefix}${ar}"
 ar="${cross_prefix}${ar}"
 strip="${cross_prefix}${strip}"
 
+# we really ought move the whole archecture check down here
+targetos=`$cc -dumpmachine`
+case $targetos in
+*-mingw32msvc)
+	mingw32="yes"
+	oss="no"
+	user="no"
+	linux="no" # hack
+	EXESUF=".exe"
+	if [ "$cpu" = "i386" ] ; then
+	kqemu="yes"
+	fi
+	;;
+*)
+	;;
+esac
+
 # check that the C compiler works.
 cat > $TMPC < $TMPC <
+int main(){(void)zlibVersion(); return 0;}
+EOF
+if $cc -o $TMPE $TMPC -lz 2>/dev/null; then
+zlib="yes"
+else
+zlib="no"
+fi
+
+if test "$zlib" = "no"; then
+echo "ERROR: QEMU requires the zlib library.  You may have to install"
+echo "the development package."
+rm -f $TMPO $TMPC $TMPE $TMPS
+exit 1;
+fi
+
 ##
 # SDL probe
 
@@ -448,15 +472,10 @@ sdl_too_old=no
 
 if test -z "$sdl" ; then
 
-sdl_config="sdl-config"
+sdl_config="${cross-prefix}sdl-config"
 sdl=no
 sdl_static=no
 
-if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
-# win32 cross compilation case
-sdl_config="i386-mingw32msvc-sdl-config"
-sdl=yes
-else
 # normal SDL probe
 cat > $TMPC << EOF
 #include 
@@ -489,7 +508,6 @@ fi # static link
 
 fi # sdl compile test
 
-fi # cross compilation
 fi # -z $sdl
 
 # Check if tools are available to build documentation.
@@ -540,7 +558,6 @@ if test "$sdl" != "no" ; then
 if test "$sdl" != "no" ; then
 echo "SDL static link   $sdl_static"
 fi
-echo "mingw32 support   $mingw32"
 echo "Adlib support $adlib"
 echo "CoreAudio support $coreaudio"
 echo "ALSA support  $alsa"
@@ -573,6 +590,13 @@ config_h="config-host.h"
 config_h="config-host.h"
 
 #echo "Creating $config_mak and $config_h"
+
+have_header() {
+cat > $TMPC <
+EOF
+$cc -c -o $TMPO $TMPC 2>/dev/null
+}
 
 echo "# Automatically generated by configure - do not modify" > $config_mak
 echo "# Configured with: $0 $@" >> $config_mak
@@ -644,7 +668,7 @@ if test "$mingw32" = "yes" ; then
 if test "$mingw32" = "yes" ; then
   echo "CONFIG_WIN32=yes" >> $config_mak
   echo "#define CONFIG_WIN32 1" >> $config_h
-elif test -f "/usr/include/byteswap.h" ; then
+elif have_header "/usr/include/byteswap.h" ; then
   echo "#define HAVE_BYTESWAP_H 1" >> $config_h
 fi
 if test "$darwin" = "yes" ; then
___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] Re: high CPU load / async IO?

2006-07-25 Thread Fabrice Bellard

Jens Axboe wrote:

On Tue, Jul 25 2006, Sven Köhler wrote:


So the current thread-based async dma patch is really just the wrong long
term solution.  A more long term solution is likely in the works.  It
requires quite a bit of code modification though.


I see. So in other words:

don't ask for simple async I/O now. The more complex and flexible
sollution will follow soon.


Yes, hopefully really soon.


So i will wait patiently :-)



Is anyone actively working on this, or is it just speculation? I'd
greatly prefer (and might do, if no one is working on it and Fabrice
would take it) do a libaio version, since that'll for sure perform the
best on Linux. But a posixaio version might be saner, as that should
work on other operating systems as well.

Fabrice, can you let people know what you would prefer?


I am working on an implementation and the first version will use the 
posix aio and possibly the Windows ReadFile/WriteFile overlapped I/Os. 
Anthony Liguori got a pre version of the code, but it is not commitable yet.


Fabrice.



___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel