[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 07/16] main-loop: Drop qemu_set_fd_handler2
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PULL 07/16] main-loop: Drop qemu_set_fd_handler2 |
Date: |
Fri, 12 Jun 2015 13:57:32 +0100 |
From: Fam Zheng <address@hidden>
All users are converted to qemu_set_fd_handler now, drop
qemu_set_fd_handler2 and IOHandlerRecord.fd_read_poll.
Signed-off-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
include/block/aio.h | 2 +-
include/qemu/main-loop.h | 49 +-----------------------------------------------
iohandler.c | 26 +++++--------------------
stubs/set-fd-handler.c | 9 ---------
4 files changed, 7 insertions(+), 79 deletions(-)
diff --git a/include/block/aio.h b/include/block/aio.h
index d2bb423..b46103e 100644
--- a/include/block/aio.h
+++ b/include/block/aio.h
@@ -241,7 +241,7 @@ bool aio_dispatch(AioContext *ctx);
bool aio_poll(AioContext *ctx, bool blocking);
/* Register a file descriptor and associated callbacks. Behaves very similarly
- * to qemu_set_fd_handler2. Unlike qemu_set_fd_handler2, these callbacks will
+ * to qemu_set_fd_handler. Unlike qemu_set_fd_handler, these callbacks will
* be invoked when using aio_poll().
*
* Code that invokes AIO completion functions should rely on this function
diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h
index 62c68c0..7da1d63 100644
--- a/include/qemu/main-loop.h
+++ b/include/qemu/main-loop.h
@@ -96,8 +96,7 @@ AioContext *qemu_get_aio_context(void);
* that the main loop waits for.
*
* Calling qemu_notify_event is rarely necessary, because main loop
- * services (bottom halves and timers) call it themselves. One notable
- * exception occurs when using qemu_set_fd_handler2 (see below).
+ * services (bottom halves and timers) call it themselves.
*/
void qemu_notify_event(void);
@@ -172,52 +171,6 @@ typedef void IOReadHandler(void *opaque, const uint8_t
*buf, int size);
typedef int IOCanReadHandler(void *opaque);
/**
- * qemu_set_fd_handler2: Register a file descriptor with the main loop
- *
- * This function tells the main loop to wake up whenever one of the
- * following conditions is true:
- *
- * 1) if @fd_write is not %NULL, when the file descriptor is writable;
- *
- * 2) if @fd_read is not %NULL, when the file descriptor is readable.
- *
- * @fd_read_poll can be used to disable the @fd_read callback temporarily.
- * This is useful to avoid calling qemu_set_fd_handler2 every time the
- * client becomes interested in reading (or dually, stops being interested).
- * A typical example is when @fd is a listening socket and you want to bound
- * the number of active clients. Remember to call qemu_notify_event whenever
- * the condition may change from %false to %true.
- *
- * The callbacks that are set up by qemu_set_fd_handler2 are level-triggered.
- * If @fd_read does not read from @fd, or @fd_write does not write to @fd
- * until its buffers are full, they will be called again on the next
- * iteration.
- *
- * @fd: The file descriptor to be observed. Under Windows it must be
- * a #SOCKET.
- *
- * @fd_read_poll: A function that returns 1 if the @fd_read callback
- * should be fired. If the function returns 0, the main loop will not
- * end its iteration even if @fd becomes readable.
- *
- * @fd_read: A level-triggered callback that is fired if @fd is readable
- * at the beginning of a main loop iteration, or if it becomes readable
- * during one.
- *
- * @fd_write: A level-triggered callback that is fired when @fd is writable
- * at the beginning of a main loop iteration, or if it becomes writable
- * during one.
- *
- * @opaque: A pointer-sized value that is passed to @fd_read_poll,
- * @fd_read and @fd_write.
- */
-int qemu_set_fd_handler2(int fd,
- IOCanReadHandler *fd_read_poll,
- IOHandler *fd_read,
- IOHandler *fd_write,
- void *opaque);
-
-/**
* qemu_set_fd_handler: Register a file descriptor with the main loop
*
* This function tells the main loop to wake up whenever one of the
diff --git a/iohandler.c b/iohandler.c
index cca614f..d361cf2 100644
--- a/iohandler.c
+++ b/iohandler.c
@@ -33,7 +33,6 @@
#endif
typedef struct IOHandlerRecord {
- IOCanReadHandler *fd_read_poll;
IOHandler *fd_read;
IOHandler *fd_write;
void *opaque;
@@ -46,14 +45,10 @@ typedef struct IOHandlerRecord {
static QLIST_HEAD(, IOHandlerRecord) io_handlers =
QLIST_HEAD_INITIALIZER(io_handlers);
-
-/* XXX: fd_read_poll should be suppressed, but an API change is
- necessary in the character devices to suppress fd_can_read(). */
-int qemu_set_fd_handler2(int fd,
- IOCanReadHandler *fd_read_poll,
- IOHandler *fd_read,
- IOHandler *fd_write,
- void *opaque)
+int qemu_set_fd_handler(int fd,
+ IOHandler *fd_read,
+ IOHandler *fd_write,
+ void *opaque)
{
IOHandlerRecord *ioh;
@@ -75,7 +70,6 @@ int qemu_set_fd_handler2(int fd,
QLIST_INSERT_HEAD(&io_handlers, ioh, next);
found:
ioh->fd = fd;
- ioh->fd_read_poll = fd_read_poll;
ioh->fd_read = fd_read;
ioh->fd_write = fd_write;
ioh->opaque = opaque;
@@ -86,14 +80,6 @@ int qemu_set_fd_handler2(int fd,
return 0;
}
-int qemu_set_fd_handler(int fd,
- IOHandler *fd_read,
- IOHandler *fd_write,
- void *opaque)
-{
- return qemu_set_fd_handler2(fd, NULL, fd_read, fd_write, opaque);
-}
-
void qemu_iohandler_fill(GArray *pollfds)
{
IOHandlerRecord *ioh;
@@ -103,9 +89,7 @@ void qemu_iohandler_fill(GArray *pollfds)
if (ioh->deleted)
continue;
- if (ioh->fd_read &&
- (!ioh->fd_read_poll ||
- ioh->fd_read_poll(ioh->opaque) != 0)) {
+ if (ioh->fd_read) {
events |= G_IO_IN | G_IO_HUP | G_IO_ERR;
}
if (ioh->fd_write) {
diff --git a/stubs/set-fd-handler.c b/stubs/set-fd-handler.c
index 25cca8c..a895e62 100644
--- a/stubs/set-fd-handler.c
+++ b/stubs/set-fd-handler.c
@@ -8,12 +8,3 @@ int qemu_set_fd_handler(int fd,
{
abort();
}
-
-int qemu_set_fd_handler2(int fd,
- IOCanReadHandler *fd_read_poll,
- IOHandler *fd_read,
- IOHandler *fd_write,
- void *opaque)
-{
- abort();
-}
--
2.4.2
- [Qemu-devel] [PULL 00/16] Net patches, Stefan Hajnoczi, 2015/06/12
- [Qemu-devel] [PULL 02/16] l2tpv3: Drop l2tpv3_can_send, Stefan Hajnoczi, 2015/06/12
- [Qemu-devel] [PULL 01/16] stubs: Add qemu_set_fd_handler, Stefan Hajnoczi, 2015/06/12
- [Qemu-devel] [PULL 03/16] netmap: Drop netmap_can_send, Stefan Hajnoczi, 2015/06/12
- [Qemu-devel] [PULL 04/16] net/socket: Drop net_socket_can_send, Stefan Hajnoczi, 2015/06/12
- [Qemu-devel] [PULL 05/16] tap: Drop tap_can_send, Stefan Hajnoczi, 2015/06/12
- [Qemu-devel] [PULL 06/16] Change qemu_set_fd_handler2(..., NULL, ...) to qemu_set_fd_handler, Stefan Hajnoczi, 2015/06/12
- [Qemu-devel] [PULL 07/16] main-loop: Drop qemu_set_fd_handler2,
Stefan Hajnoczi <=
- [Qemu-devel] [PULL 08/16] alsaaudio: Remove unused error handling of qemu_set_fd_handler, Stefan Hajnoczi, 2015/06/12
- [Qemu-devel] [PULL 09/16] oss: Remove unused error handling of qemu_set_fd_handler, Stefan Hajnoczi, 2015/06/12
- [Qemu-devel] [PULL 10/16] xen_backend: Remove unused error handling of qemu_set_fd_handler, Stefan Hajnoczi, 2015/06/12
- [Qemu-devel] [PULL 11/16] event-notifier: Always return 0 for posix implementation, Stefan Hajnoczi, 2015/06/12
- [Qemu-devel] [PULL 12/16] iohandler: Change return type of qemu_set_fd_handler to "void", Stefan Hajnoczi, 2015/06/12
- [Qemu-devel] [PULL 13/16] rocker: Add support for phys name, Stefan Hajnoczi, 2015/06/12
- [Qemu-devel] [PULL 15/16] rocker: bring link up/down on PHY enable/disable, Stefan Hajnoczi, 2015/06/12
- [Qemu-devel] [PULL 14/16] rocker: update tests using hw-derived interface names, Stefan Hajnoczi, 2015/06/12
- [Qemu-devel] [PULL 16/16] qmp/hmp: add rocker device support, Stefan Hajnoczi, 2015/06/12