Hi This series : - convert io_handlers to one QLIST - once there, qemu_set_fd_handlers2() has lots of arguments that are a lot of times NULL. Introduce a set of functions to not have to pass NULL values. - qemu_clear_fd_handlers(): remove it - qemu_set_fd_read_handler(): only read - qemu_set_fd_write_handler(): only write - qemu_set_fd_rw_handler(): read/write - qemu_set_fd_poll_handler(): it was only used for reads and in qemu-char.c.
- once there fix bt that don't need poll at all (having a poll function that always return true is the equivalent of not having one). - remove cast to (void *)(unsigned long) for things that already were pointers - IOCanRWHandler is only used for reads -> rename it (almost no users). ToDo: - to remove the export of qemu_set_fd_handlers2() we need a solution for tap. Tap is the only user in qemu that uses poll, read and write, and it changes in very imaginative ways: qemu_set_fd_handler2(s->fd, s->read_poll ? tap_can_send : NULL, s->read_poll ? tap_send : NULL, s->write_poll ? tap_writable : NULL, s); No ideas about how to transform this into something that don't use NULL's in any of its fields other than a row of if's. - removal of poll function. comment of qemu_set_fd_handler2() /* XXX: fd_read_poll should be suppressed, but an API change is necessary in the character devices to suppress fd_can_read(). */ But qemu-char.c is a complex beast, and would preffer to 1st get this patches in, and then work on the other stuff. - obvious optimization now is to have the FD_SET() for write/read already filled, but I haven't done any meassurement. Comments? Juan Quintela (9): Convert io handlers to QLIST Introduce qemu_clear_fd_handler() Introduce qemu_set_fd_read_handler() Introduce qemu_set_fd_write_handler() Introduce qemu_set_fd_rw_handler() bt: remove bt_host_read_poll() Introduce qemu_set_fd_poll_handler() remove useless cast rename IOCanRWHandler to IOCanReadHandler aio.c | 2 +- audio/alsaaudio.c | 12 +++--- audio/ossaudio.c | 10 ++-- bt-host.c | 9 +---- bt-vhci.c | 2 +- hw/baum.c | 2 +- hw/xen_backend.c | 10 ++-- migration-exec.c | 8 ++-- migration-fd.c | 5 +- migration-tcp.c | 10 ++-- migration-unix.c | 10 ++-- migration.c | 8 ++-- net/socket.c | 14 +++--- net/vde.c | 4 +- qemu-aio.h | 4 +- qemu-char.c | 48 +++++++++++----------- qemu-char.h | 25 ++++++++--- qemu-common.h | 2 +- qemu-tool.c | 9 ++-- usb-linux.c | 4 +- vl.c | 114 +++++++++++++++++++++++++++++++++++--------------- vnc-auth-sasl.c | 2 +- vnc-auth-vencrypt.c | 6 +- vnc.c | 12 +++--- 24 files changed, 190 insertions(+), 142 deletions(-)