diff options
author | aliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-09-15 15:51:35 +0000 |
---|---|---|
committer | aliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-09-15 15:51:35 +0000 |
commit | 03ff3ca30f29f422ebfd10d2bee1393efb4d4f7a (patch) | |
tree | a910207407d9f3b1de0c0cd95299c7fe72065675 /qemu-tool.c | |
parent | d9cf15784f68935a25c5ece051ba595fccbc8f6c (diff) |
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
Diffstat (limited to 'qemu-tool.c')
-rw-r--r-- | qemu-tool.c | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/qemu-tool.c b/qemu-tool.c new file mode 100644 index 0000000000..63e205675c --- /dev/null +++ b/qemu-tool.c @@ -0,0 +1,83 @@ +/* + * Compatibility for qemu-img/qemu-nbd + * + * Copyright IBM, Corp. 2008 + * + * Authors: + * Anthony Liguori <aliguori@us.ibm.com> + * + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + * + */ + +#include "qemu-common.h" +#include "console.h" +#include "sysemu.h" +#include "qemu-timer.h" + +#include <sys/time.h> + +QEMUClock *rt_clock; + +struct QEMUBH +{ + QEMUBHFunc *cb; + void *opaque; +}; + +void term_printf(const char *fmt, ...) +{ +} + +void term_print_filename(const char *filename) +{ +} + +QEMUBH *qemu_bh_new(QEMUBHFunc *cb, void *opaque) +{ + QEMUBH *bh; + + bh = qemu_malloc(sizeof(*bh)); + if (bh) { + bh->cb = cb; + bh->opaque = opaque; + } + + return bh; +} + +int qemu_bh_poll(void) +{ + return 0; +} + +void qemu_bh_schedule(QEMUBH *bh) +{ + bh->cb(bh->opaque); +} + +void qemu_bh_cancel(QEMUBH *bh) +{ +} + +void qemu_bh_delete(QEMUBH *bh) +{ + qemu_free(bh); +} + +int qemu_set_fd_handler2(int fd, + IOCanRWHandler *fd_read_poll, + IOHandler *fd_read, + IOHandler *fd_write, + void *opaque) +{ + return 0; +} + +int64_t qemu_get_clock(QEMUClock *clock) +{ + struct timeval tv; + gettimeofday(&tv, NULL); + return (tv.tv_sec * 1000000000LL + (tv.tv_usec * 1000)) / 1000000; +} |