On Tue, 9 Mar 2010, Juan Quintela wrote:

> 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(-)

What's the point if it ends up adding 48 lines of code?

-- 
mailto:av1...@comtv.ru


Reply via email to