[PATCH v2 00/14] chardev: Use QEMUChrEvent enum in IOEventHandler typedef

Philippe Mathieu-Daudé posted 14 patches 4 years, 4 months ago
Test asan failed
Test checkpatch failed
Test FreeBSD failed
Test docker-mingw@fedora failed
Test docker-clang@ubuntu failed
Test docker-quick@centos7 failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20191218172009.8868-1-philmd@redhat.com
Maintainers: "Marc-André Lureau" <marcandre.lureau@redhat.com>, Andrzej Zaborowski <balrogg@gmail.com>, Christian Borntraeger <borntraeger@de.ibm.com>, Antony Pavlov <antonynpavlov@gmail.com>, Thomas Huth <huth@tuxfamily.org>, Markus Armbruster <armbru@redhat.com>, Li Zhijian <lizhijian@cn.fujitsu.com>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, Laurent Vivier <lvivier@redhat.com>, Fabien Chouteau <chouteau@adacore.com>, Jason Wang <jasowang@redhat.com>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, Peter Maydell <peter.maydell@linaro.org>, Gerd Hoffmann <kraxel@redhat.com>, Alistair Francis <alistair@alistair23.me>, "Gonglei (Arei)" <arei.gonglei@huawei.com>, KONRAD Frederic <frederic.konrad@adacore.com>, Aleksandar Markovic <amarkovic@wavecomp.com>, Aurelien Jarno <aurelien@aurel32.net>, Corey Minyard <minyard@acm.org>, Paul Burton <pburton@wavecomp.com>, Palmer Dabbelt <palmer@dabbelt.com>, Joel Stanley <joel@jms.id.au>, "Philippe Mathieu-Daudé" <philmd@redhat.com>, Sagar Karandikar <sagark@eecs.berkeley.edu>, Michael Walle <michael@walle.cc>, "Michael S. Tsirkin" <mst@redhat.com>, Alberto Garcia <berto@igalia.com>, Kevin Wolf <kwolf@redhat.com>, Zhang Chen <chen.zhang@intel.com>, Max Reitz <mreitz@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Aleksandar Rikalo <aleksandar.rikalo@rt-rk.com>, Halil Pasic <pasic@linux.ibm.com>, Igor Mitsyanko <i.mitsyanko@gmail.com>, Samuel Thibault <samuel.thibault@ens-lyon.org>, Amit Shah <amit@kernel.org>, "Alex Bennée" <alex.bennee@linaro.org>, Cornelia Huck <cohuck@redhat.com>, Peter Chubb <peter.chubb@nicta.com.au>, Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
include/chardev/char-fe.h       |  2 +-
include/chardev/char-mux.h      |  2 +-
include/chardev/char.h          |  4 ++--
backends/cryptodev-vhost-user.c |  7 ++++++-
chardev/char-mux.c              |  8 ++++----
chardev/char.c                  |  9 +++++++--
gdbstub.c                       |  2 +-
hw/arm/pxa2xx.c                 |  2 +-
hw/arm/strongarm.c              |  2 +-
hw/block/vhost-user-blk.c       |  7 ++++++-
hw/char/cadence_uart.c          |  2 +-
hw/char/digic-uart.c            |  2 +-
hw/char/escc.c                  |  2 +-
hw/char/etraxfs_ser.c           |  2 +-
hw/char/exynos4210_uart.c       |  2 +-
hw/char/grlib_apbuart.c         |  2 +-
hw/char/imx_serial.c            |  2 +-
hw/char/ipoctal232.c            |  2 +-
hw/char/lm32_juart.c            |  2 +-
hw/char/lm32_uart.c             |  2 +-
hw/char/mcf_uart.c              |  2 +-
hw/char/milkymist-uart.c        |  2 +-
hw/char/nrf51_uart.c            |  2 +-
hw/char/pl011.c                 |  2 +-
hw/char/serial.c                |  2 +-
hw/char/sh_serial.c             |  2 +-
hw/char/terminal3270.c          |  7 ++++++-
hw/char/virtio-console.c        |  7 ++++++-
hw/char/xilinx_uartlite.c       |  2 +-
hw/ipmi/ipmi_bmc_extern.c       | 12 +++++++-----
hw/mips/boston.c                |  2 +-
hw/mips/mips_malta.c            |  2 +-
hw/riscv/riscv_htif.c           |  2 +-
hw/riscv/sifive_uart.c          |  2 +-
hw/usb/ccid-card-passthru.c     |  7 ++++++-
hw/usb/dev-serial.c             |  6 +++++-
hw/usb/redirect.c               |  7 ++++++-
monitor/hmp.c                   |  6 +++++-
monitor/qmp.c                   |  7 ++++++-
net/filter-mirror.c             |  2 +-
net/vhost-user.c                |  9 +++++++--
qtest.c                         |  2 +-
tests/test-char.c               |  6 +++---
tests/vhost-user-test.c         |  2 +-
44 files changed, 111 insertions(+), 56 deletions(-)
[PATCH v2 00/14] chardev: Use QEMUChrEvent enum in IOEventHandler typedef
Posted by Philippe Mathieu-Daudé 4 years, 4 months ago
Hi,

After this chat on #qemu IRC:
13:20 <stsquad> so what is the difference between a IOReadHandler and IOEventHandler?
13:25 <f4bug> stsquad: one is in-band and the other out-of-band?
13:26 <stsquad> f4bug: ahh yes it seems so - connect/disconnect etc...
13:27 <f4bug> see QEMUChrEvent for IOEventHandler

I thought it might be a good opportunity to make the IOEventHandler
typedef meaning more obvious, by using the QEMUChrEvent enum.

To be able to build I had to explicit all enums ignored in the
switch(event) statement by these frontends.

Then I used a coccinelle spatch to change the various IOEventHandler.
I don't think the last patch can be split, but suggestions are welcome!

Regards,

Phil.

v2:
- do blindly ignore all events using a 'default' case.

Philippe Mathieu-Daudé (14):
  hw/ipmi: Remove unnecessary declarations
  hw/ipmi: Explicit we ignore some QEMUChrEvent in IOEventHandler
  hw/char/terminal3270: Explicit ignored QEMUChrEvent in IOEventHandler
  hw/usb/dev-serial: Explicit we ignore few QEMUChrEvent in IOEventHandler
  hw/usb/redirect: Explicit we ignore few QEMUChrEvent in IOEventHandler
  ccid-card-passthru: Explicit we ignore QEMUChrEvent in IOEventHandler
  vhost-user-crypto: Explicit we ignore some QEMUChrEvent in IOEventHandler
  vhost-user-net: Explicit we ignore few QEMUChrEvent in IOEventHandler
  vhost-user-blk: Explicit we ignore few QEMUChrEvent in IOEventHandler
  virtio-console: Explicit we ignore some QEMUChrEvent in IOEventHandler
  monitor/qmp: Explicit we ignore few QEMUChrEvent in IOEventHandler
  monitor/hmp: Explicit we ignore a QEMUChrEvent in IOEventHandler
  chardev/char: Explicit we ignore some QEMUChrEvent in IOEventHandler
  chardev: Use QEMUChrEvent enum in IOEventHandler typedef

 include/chardev/char-fe.h       |  2 +-
 include/chardev/char-mux.h      |  2 +-
 include/chardev/char.h          |  4 ++--
 backends/cryptodev-vhost-user.c |  7 ++++++-
 chardev/char-mux.c              |  8 ++++----
 chardev/char.c                  |  9 +++++++--
 gdbstub.c                       |  2 +-
 hw/arm/pxa2xx.c                 |  2 +-
 hw/arm/strongarm.c              |  2 +-
 hw/block/vhost-user-blk.c       |  7 ++++++-
 hw/char/cadence_uart.c          |  2 +-
 hw/char/digic-uart.c            |  2 +-
 hw/char/escc.c                  |  2 +-
 hw/char/etraxfs_ser.c           |  2 +-
 hw/char/exynos4210_uart.c       |  2 +-
 hw/char/grlib_apbuart.c         |  2 +-
 hw/char/imx_serial.c            |  2 +-
 hw/char/ipoctal232.c            |  2 +-
 hw/char/lm32_juart.c            |  2 +-
 hw/char/lm32_uart.c             |  2 +-
 hw/char/mcf_uart.c              |  2 +-
 hw/char/milkymist-uart.c        |  2 +-
 hw/char/nrf51_uart.c            |  2 +-
 hw/char/pl011.c                 |  2 +-
 hw/char/serial.c                |  2 +-
 hw/char/sh_serial.c             |  2 +-
 hw/char/terminal3270.c          |  7 ++++++-
 hw/char/virtio-console.c        |  7 ++++++-
 hw/char/xilinx_uartlite.c       |  2 +-
 hw/ipmi/ipmi_bmc_extern.c       | 12 +++++++-----
 hw/mips/boston.c                |  2 +-
 hw/mips/mips_malta.c            |  2 +-
 hw/riscv/riscv_htif.c           |  2 +-
 hw/riscv/sifive_uart.c          |  2 +-
 hw/usb/ccid-card-passthru.c     |  7 ++++++-
 hw/usb/dev-serial.c             |  6 +++++-
 hw/usb/redirect.c               |  7 ++++++-
 monitor/hmp.c                   |  6 +++++-
 monitor/qmp.c                   |  7 ++++++-
 net/filter-mirror.c             |  2 +-
 net/vhost-user.c                |  9 +++++++--
 qtest.c                         |  2 +-
 tests/test-char.c               |  6 +++---
 tests/vhost-user-test.c         |  2 +-
 44 files changed, 111 insertions(+), 56 deletions(-)

Cc: "Gonglei (Arei)" <arei.gonglei@huawei.com>
Cc: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Alex Bennée" <alex.bennee@linaro.org>
Cc: "Philippe Mathieu-Daudé" <philmd@redhat.com>
Cc: Andrzej Zaborowski <balrogg@gmail.com>
Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Cc: Max Reitz <mreitz@redhat.com>
Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Cc: Alistair Francis <alistair@alistair23.me>
Cc: Antony Pavlov <antonynpavlov@gmail.com>
Cc: Igor Mitsyanko <i.mitsyanko@gmail.com>
Cc: Fabien Chouteau <chouteau@adacore.com>
Cc: KONRAD Frederic <frederic.konrad@adacore.com>
Cc: Peter Chubb <peter.chubb@nicta.com.au>
Cc: Alberto Garcia <berto@igalia.com>
Cc: Michael Walle <michael@walle.cc>
Cc: Thomas Huth <huth@tuxfamily.org>
Cc: Joel Stanley <joel@jms.id.au>
Cc: Cornelia Huck <cohuck@redhat.com>
Cc: Halil Pasic <pasic@linux.ibm.com>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Laurent Vivier <lvivier@redhat.com>
Cc: Amit Shah <amit@kernel.org>
Cc: Corey Minyard <minyard@acm.org>
Cc: Paul Burton <pburton@wavecomp.com>
Cc: Aleksandar Rikalo <aleksandar.rikalo@rt-rk.com>
Cc: Aurelien Jarno <aurelien@aurel32.net>
Cc: Aleksandar Markovic <amarkovic@wavecomp.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Sagar Karandikar <sagark@eecs.berkeley.edu>
Cc: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Cc: Zhang Chen <chen.zhang@intel.com>
Cc: Li Zhijian <lizhijian@cn.fujitsu.com>
Cc: Jason Wang <jasowang@redhat.com>
Cc: qemu-arm@nongnu.org
Cc: qemu-block@nongnu.org
Cc: qemu-s390x@nongnu.org
Cc: qemu-riscv@nongnu.org

-- 
2.21.0


Re: [PATCH v2 00/14] chardev: Use QEMUChrEvent enum in IOEventHandler typedef
Posted by Marc-André Lureau 4 years, 4 months ago
On Wed, Dec 18, 2019 at 9:20 PM Philippe Mathieu-Daudé
<philmd@redhat.com> wrote:
>
> Hi,
>
> After this chat on #qemu IRC:
> 13:20 <stsquad> so what is the difference between a IOReadHandler and IOEventHandler?
> 13:25 <f4bug> stsquad: one is in-band and the other out-of-band?
> 13:26 <stsquad> f4bug: ahh yes it seems so - connect/disconnect etc...
> 13:27 <f4bug> see QEMUChrEvent for IOEventHandler
>
> I thought it might be a good opportunity to make the IOEventHandler
> typedef meaning more obvious, by using the QEMUChrEvent enum.
>
> To be able to build I had to explicit all enums ignored in the
> switch(event) statement by these frontends.
>
> Then I used a coccinelle spatch to change the various IOEventHandler.
> I don't think the last patch can be split, but suggestions are welcome!
>
> Regards,
>
> Phil.
>
> v2:
> - do blindly ignore all events using a 'default' case.
>
> Philippe Mathieu-Daudé (14):
>   hw/ipmi: Remove unnecessary declarations
>   hw/ipmi: Explicit we ignore some QEMUChrEvent in IOEventHandler
>   hw/char/terminal3270: Explicit ignored QEMUChrEvent in IOEventHandler
>   hw/usb/dev-serial: Explicit we ignore few QEMUChrEvent in IOEventHandler
>   hw/usb/redirect: Explicit we ignore few QEMUChrEvent in IOEventHandler
>   ccid-card-passthru: Explicit we ignore QEMUChrEvent in IOEventHandler
>   vhost-user-crypto: Explicit we ignore some QEMUChrEvent in IOEventHandler
>   vhost-user-net: Explicit we ignore few QEMUChrEvent in IOEventHandler
>   vhost-user-blk: Explicit we ignore few QEMUChrEvent in IOEventHandler
>   virtio-console: Explicit we ignore some QEMUChrEvent in IOEventHandler
>   monitor/qmp: Explicit we ignore few QEMUChrEvent in IOEventHandler
>   monitor/hmp: Explicit we ignore a QEMUChrEvent in IOEventHandler
>   chardev/char: Explicit we ignore some QEMUChrEvent in IOEventHandler
>   chardev: Use QEMUChrEvent enum in IOEventHandler typedef

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

(I guess Paolo will take the series for next PR?)

>
>  include/chardev/char-fe.h       |  2 +-
>  include/chardev/char-mux.h      |  2 +-
>  include/chardev/char.h          |  4 ++--
>  backends/cryptodev-vhost-user.c |  7 ++++++-
>  chardev/char-mux.c              |  8 ++++----
>  chardev/char.c                  |  9 +++++++--
>  gdbstub.c                       |  2 +-
>  hw/arm/pxa2xx.c                 |  2 +-
>  hw/arm/strongarm.c              |  2 +-
>  hw/block/vhost-user-blk.c       |  7 ++++++-
>  hw/char/cadence_uart.c          |  2 +-
>  hw/char/digic-uart.c            |  2 +-
>  hw/char/escc.c                  |  2 +-
>  hw/char/etraxfs_ser.c           |  2 +-
>  hw/char/exynos4210_uart.c       |  2 +-
>  hw/char/grlib_apbuart.c         |  2 +-
>  hw/char/imx_serial.c            |  2 +-
>  hw/char/ipoctal232.c            |  2 +-
>  hw/char/lm32_juart.c            |  2 +-
>  hw/char/lm32_uart.c             |  2 +-
>  hw/char/mcf_uart.c              |  2 +-
>  hw/char/milkymist-uart.c        |  2 +-
>  hw/char/nrf51_uart.c            |  2 +-
>  hw/char/pl011.c                 |  2 +-
>  hw/char/serial.c                |  2 +-
>  hw/char/sh_serial.c             |  2 +-
>  hw/char/terminal3270.c          |  7 ++++++-
>  hw/char/virtio-console.c        |  7 ++++++-
>  hw/char/xilinx_uartlite.c       |  2 +-
>  hw/ipmi/ipmi_bmc_extern.c       | 12 +++++++-----
>  hw/mips/boston.c                |  2 +-
>  hw/mips/mips_malta.c            |  2 +-
>  hw/riscv/riscv_htif.c           |  2 +-
>  hw/riscv/sifive_uart.c          |  2 +-
>  hw/usb/ccid-card-passthru.c     |  7 ++++++-
>  hw/usb/dev-serial.c             |  6 +++++-
>  hw/usb/redirect.c               |  7 ++++++-
>  monitor/hmp.c                   |  6 +++++-
>  monitor/qmp.c                   |  7 ++++++-
>  net/filter-mirror.c             |  2 +-
>  net/vhost-user.c                |  9 +++++++--
>  qtest.c                         |  2 +-
>  tests/test-char.c               |  6 +++---
>  tests/vhost-user-test.c         |  2 +-
>  44 files changed, 111 insertions(+), 56 deletions(-)
>
> Cc: "Gonglei (Arei)" <arei.gonglei@huawei.com>
> Cc: "Marc-André Lureau" <marcandre.lureau@redhat.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: "Alex Bennée" <alex.bennee@linaro.org>
> Cc: "Philippe Mathieu-Daudé" <philmd@redhat.com>
> Cc: Andrzej Zaborowski <balrogg@gmail.com>
> Cc: Peter Maydell <peter.maydell@linaro.org>
> Cc: "Michael S. Tsirkin" <mst@redhat.com>
> Cc: Kevin Wolf <kwolf@redhat.com>
> Cc: Max Reitz <mreitz@redhat.com>
> Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
> Cc: Alistair Francis <alistair@alistair23.me>
> Cc: Antony Pavlov <antonynpavlov@gmail.com>
> Cc: Igor Mitsyanko <i.mitsyanko@gmail.com>
> Cc: Fabien Chouteau <chouteau@adacore.com>
> Cc: KONRAD Frederic <frederic.konrad@adacore.com>
> Cc: Peter Chubb <peter.chubb@nicta.com.au>
> Cc: Alberto Garcia <berto@igalia.com>
> Cc: Michael Walle <michael@walle.cc>
> Cc: Thomas Huth <huth@tuxfamily.org>
> Cc: Joel Stanley <joel@jms.id.au>
> Cc: Cornelia Huck <cohuck@redhat.com>
> Cc: Halil Pasic <pasic@linux.ibm.com>
> Cc: Christian Borntraeger <borntraeger@de.ibm.com>
> Cc: Laurent Vivier <lvivier@redhat.com>
> Cc: Amit Shah <amit@kernel.org>
> Cc: Corey Minyard <minyard@acm.org>
> Cc: Paul Burton <pburton@wavecomp.com>
> Cc: Aleksandar Rikalo <aleksandar.rikalo@rt-rk.com>
> Cc: Aurelien Jarno <aurelien@aurel32.net>
> Cc: Aleksandar Markovic <amarkovic@wavecomp.com>
> Cc: Palmer Dabbelt <palmer@dabbelt.com>
> Cc: Sagar Karandikar <sagark@eecs.berkeley.edu>
> Cc: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>
> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> Cc: Markus Armbruster <armbru@redhat.com>
> Cc: Zhang Chen <chen.zhang@intel.com>
> Cc: Li Zhijian <lizhijian@cn.fujitsu.com>
> Cc: Jason Wang <jasowang@redhat.com>
> Cc: qemu-arm@nongnu.org
> Cc: qemu-block@nongnu.org
> Cc: qemu-s390x@nongnu.org
> Cc: qemu-riscv@nongnu.org
>
> --
> 2.21.0
>


Re: [PATCH v2 00/14] chardev: Use QEMUChrEvent enum in IOEventHandler typedef
Posted by Paolo Bonzini 4 years, 3 months ago
On 20/12/19 14:32, Marc-André Lureau wrote:
> On Wed, Dec 18, 2019 at 9:20 PM Philippe Mathieu-Daudé
> <philmd@redhat.com> wrote:
>>
>> Hi,
>>
>> After this chat on #qemu IRC:
>> 13:20 <stsquad> so what is the difference between a IOReadHandler and IOEventHandler?
>> 13:25 <f4bug> stsquad: one is in-band and the other out-of-band?
>> 13:26 <stsquad> f4bug: ahh yes it seems so - connect/disconnect etc...
>> 13:27 <f4bug> see QEMUChrEvent for IOEventHandler
>>
>> I thought it might be a good opportunity to make the IOEventHandler
>> typedef meaning more obvious, by using the QEMUChrEvent enum.
>>
>> To be able to build I had to explicit all enums ignored in the
>> switch(event) statement by these frontends.
>>
>> Then I used a coccinelle spatch to change the various IOEventHandler.
>> I don't think the last patch can be split, but suggestions are welcome!
>>
>> Regards,
>>
>> Phil.
>>
>> v2:
>> - do blindly ignore all events using a 'default' case.
>>
>> Philippe Mathieu-Daudé (14):
>>   hw/ipmi: Remove unnecessary declarations
>>   hw/ipmi: Explicit we ignore some QEMUChrEvent in IOEventHandler
>>   hw/char/terminal3270: Explicit ignored QEMUChrEvent in IOEventHandler
>>   hw/usb/dev-serial: Explicit we ignore few QEMUChrEvent in IOEventHandler
>>   hw/usb/redirect: Explicit we ignore few QEMUChrEvent in IOEventHandler
>>   ccid-card-passthru: Explicit we ignore QEMUChrEvent in IOEventHandler
>>   vhost-user-crypto: Explicit we ignore some QEMUChrEvent in IOEventHandler
>>   vhost-user-net: Explicit we ignore few QEMUChrEvent in IOEventHandler
>>   vhost-user-blk: Explicit we ignore few QEMUChrEvent in IOEventHandler
>>   virtio-console: Explicit we ignore some QEMUChrEvent in IOEventHandler
>>   monitor/qmp: Explicit we ignore few QEMUChrEvent in IOEventHandler
>>   monitor/hmp: Explicit we ignore a QEMUChrEvent in IOEventHandler
>>   chardev/char: Explicit we ignore some QEMUChrEvent in IOEventHandler
>>   chardev: Use QEMUChrEvent enum in IOEventHandler typedef
> 
> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
> (I guess Paolo will take the series for next PR?)

Yes, I'm queuing it.  I'll check Richard's remark before sending out the
pull request.

Paolo