Use common objects for qemu-img and qemu-nbd

Right now, we sprinkle #if defined(QEMU_IMG) && defined(QEMU_NBD) all over the
code.  It's ugly and causes us to have to build multiple object files for
linking against qemu and the tools.

This patch introduces a new file, qemu-tool.c which contains enough for
qemu-img, qemu-nbd, and QEMU to all share the same objects.

This also required getting qemu-nbd to be a bit more Windows friendly.  I also
changed the Windows block-raw to use normal IO instead of overlapping IO since
we don't actually do AIO yet on Windows.  I changed the various #if 0's to
 #if WIN32_AIO to make it easier for someone to eventually fix AIO on Windows.

After this patch, there are no longer any #ifdef's related to qemu-img and
qemu-nbd.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5226 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
aliguori 2008-09-15 15:51:35 +00:00
parent d9cf15784f
commit 03ff3ca30f
11 changed files with 211 additions and 176 deletions

20
vl.c
View file

@ -100,11 +100,10 @@
#include <stropts.h>
#endif
#endif
#else
#include <winsock2.h>
int inet_aton(const char *cp, struct in_addr *ia);
#endif
#include "qemu_socket.h"
#if defined(CONFIG_SLIRP)
#include "libslirp.h"
#endif
@ -125,8 +124,6 @@ int inet_aton(const char *cp, struct in_addr *ia);
#define memalign(align, size) malloc(size)
#endif
#include "qemu_socket.h"
#ifdef CONFIG_SDL
#ifdef __APPLE__
#include <SDL/SDL.h>
@ -2133,12 +2130,6 @@ static int send_all(int fd, const uint8_t *buf, int len1)
return len1 - len;
}
void socket_set_nonblock(int fd)
{
unsigned long opt = 1;
ioctlsocket(fd, FIONBIO, &opt);
}
#else
static int unix_write(int fd, const uint8_t *buf, int len1)
@ -2165,13 +2156,6 @@ static inline int send_all(int fd, const uint8_t *buf, int len1)
{
return unix_write(fd, buf, len1);
}
void socket_set_nonblock(int fd)
{
int f;
f = fcntl(fd, F_GETFL);
fcntl(fd, F_SETFL, f | O_NONBLOCK);
}
#endif /* !_WIN32 */
#ifndef _WIN32