All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/54] WIP: chardev: qom-ify
@ 2016-12-12 22:42 Marc-André Lureau
  2016-12-12 22:42 ` [Qemu-devel] [PATCH 01/54] gtk: avoid oob array access Marc-André Lureau
                   ` (55 more replies)
  0 siblings, 56 replies; 85+ messages in thread
From: Marc-André Lureau @ 2016-12-12 22:42 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, Marc-André Lureau

Hi,

This is a followup of the series "char: fixes and improvements", where
I started to refactor a bit the code to allow qom-ification. Paolo
quickly reviewed some of those patches already.

qemu-char.c is quite a large file (~130k, 5000 loc) with may chardev
and a lot of #ifdef. It doesn't use qemu Object. Using Object
hopefully brings cleaner, more consitent code base. It helps to split
the various backends in different files. Eventually, we could also
allow or switch to -object-add interface.

Note: this series has been tested with Linux and cross-building with
mingw. It mostly breaks on other platforms, help welcome for
testing. I'd also like to write more chardev backend tests to ensure
no regression (test-char.c is quite limited for now)

Comments and testing welcome!

Marc-André Lureau (54):
  gtk: avoid oob array access
  char: use a const CharDriver
  char: use a static array for backends
  char: move callbacks in CharDriver
  char: fold single-user functions in caller
  char: introduce generic qemu_chr_get_kind()
  char: use a feature bit for replay
  char: allocate CharDriverState as a single object
  bt: use qemu_chr_alloc()
  char: rename CharDriverState Chardev
  char: rename TCPChardev and NetChardev
  spice-char: improve error reporting
  char: use error_report()
  gtk: overwrite the console.c char driver
  chardev: qom-ify
  spice-qemu-char: convert to finalize
  baum: convert to finalize
  msmouse: convert to finalize
  mux: convert to finalize
  char-udp: convert to finalize
  char-socket: convert to finalize
  char-pty: convert to finalize
  char-ringbuf: convert to finalize
  char-parallel: convert parallel to finalize
  char-stdio: convert to finalize
  char-win-stdio: convert to finalize
  char-win: do not override chr_free
  char-win: convert to finalize
  char-fd: convert to finalize
  char: remove chr_free
  char: get rid of CharDriver
  char: remove class kind field
  char: move to chardev/
  char: create chardev-obj-y
  char: make null_chr_write() the default method
  char: move null chardev to its own file
  char: move mux to its own file
  char: move ringbuf/memory to its own file
  char: rename and move to header CHR_READ_BUF_LEN
  char: remove unused READ_RETRIES
  char: move QIOChannel-related in char-io.h
  char: move fd chardev in its own file
  char: move win chardev base class in its own file
  char: move win-stdio into its own file
  char: move socket chardev to itw own file
  char: move udp chardev in its own file
  char: move file chardev in its own file
  char: move stdio in its own file
  char: move console in its own file
  char: move pipe chardev in its own file
  char: move pty chardev in its own file
  char: move serial chardev to itw own file
  char: move parallel chardev in its own file
  char: headers clean-up

 backends/baum.c                   |   97 +-
 backends/msmouse.c                |   72 +-
 backends/rng-egd.c                |    4 +-
 backends/testdev.c                |   48 +-
 chardev/char-console.c            |   30 +
 chardev/char-fd.c                 |  147 ++
 chardev/char-file.c               |  115 +
 chardev/char-io.c                 |  168 ++
 chardev/char-mux.c                |  332 +++
 chardev/char-null.c               |   31 +
 chardev/char-parallel.c           |  292 +++
 chardev/char-pipe.c               |  167 ++
 chardev/char-pty.c                |  277 +++
 chardev/char-ringbuf.c            |  225 ++
 chardev/char-serial.c             |  294 +++
 chardev/char-socket.c             |  995 ++++++++
 chardev/char-stdio.c              |  140 ++
 chardev/char-udp.c                |  211 ++
 chardev/char-win-stdio.c          |  243 ++
 chardev/char-win.c                |  245 ++
 chardev/char.c                    | 1311 ++++++++++
 gdbstub.c                         |   39 +-
 hw/arm/fsl-imx25.c                |    2 +-
 hw/arm/fsl-imx31.c                |    2 +-
 hw/arm/fsl-imx6.c                 |    2 +-
 hw/arm/nseries.c                  |    2 +-
 hw/arm/omap2.c                    |    2 +-
 hw/arm/pxa2xx.c                   |    2 +-
 hw/arm/virt.c                     |    2 +-
 hw/bt/hci-csr.c                   |   63 +-
 hw/char/escc.c                    |    2 +-
 hw/char/exynos4210_uart.c         |    2 +-
 hw/char/imx_serial.c              |    2 +-
 hw/char/mcf_uart.c                |    4 +-
 hw/char/omap_uart.c               |    6 +-
 hw/char/parallel.c                |    2 +-
 hw/char/serial-isa.c              |    2 +-
 hw/char/serial.c                  |    4 +-
 hw/char/sh_serial.c               |    2 +-
 hw/char/spapr_vty.c               |    2 +-
 hw/char/virtio-console.c          |    2 +-
 hw/core/qdev-properties-system.c  |    4 +-
 hw/display/milkymist-tmu2.c       |    2 +-
 hw/display/sm501.c                |    2 +-
 hw/isa/isa-bus.c                  |    2 +-
 hw/isa/pc87312.c                  |    2 +-
 hw/mips/mips_malta.c              |    4 +-
 hw/misc/ivshmem.c                 |    2 +-
 hw/misc/milkymist-pfpu.c          |    2 +-
 hw/usb/ccid-card-passthru.c       |    2 +-
 hw/usb/dev-serial.c               |    6 +-
 hw/usb/redirect.c                 |    4 +-
 monitor.c                         |    6 +-
 net/colo-compare.c                |    4 +-
 net/filter-mirror.c               |    4 +-
 net/slirp.c                       |    2 +-
 net/vhost-user.c                  |   10 +-
 qemu-char.c                       | 4956 -------------------------------------
 qmp.c                             |    2 +-
 qtest.c                           |    2 +-
 replay/replay-char.c              |    8 +-
 spice-qemu-char.c                 |  221 +-
 stubs/get-next-serial.c           |    2 +-
 stubs/monitor-init.c              |    2 +-
 stubs/replay.c                    |    4 +-
 tests/test-char.c                 |   10 +-
 tests/vhost-user-test.c           |    4 +-
 ui/console.c                      |  104 +-
 ui/gtk.c                          |   82 +-
 vl.c                              |   12 +-
 xen-common-stub.c                 |    2 +-
 xen-common.c                      |    4 +-
 Makefile                          |    3 +-
 Makefile.objs                     |    4 +-
 Makefile.target                   |    3 +
 chardev/Makefile.objs             |   17 +
 tests/Makefile.include            |    6 +-
 MAINTAINERS                       |    2 +-
 chardev/char-fd.h                 |   21 +
 chardev/char-io.h                 |   24 +
 chardev/char-mux.h                |   40 +
 chardev/char-parallel.h           |    9 +
 chardev/char-serial.h             |   12 +
 chardev/char-win-stdio.h          |    6 +
 chardev/char-win.h                |   30 +
 hw/lm32/lm32.h                    |    4 +-
 hw/lm32/milkymist-hw.h            |    2 +-
 include/hw/arm/exynos4210.h       |    2 +-
 include/hw/arm/omap.h             |    6 +-
 include/hw/bt.h                   |    4 +-
 include/hw/char/cadence_uart.h    |    2 +-
 include/hw/char/escc.h            |    2 +-
 include/hw/char/pl011.h           |    4 +-
 include/hw/char/serial.h          |    4 +-
 include/hw/char/xilinx_uartlite.h |    2 +-
 include/hw/cris/etraxfs.h         |    2 +-
 include/hw/devices.h              |    2 +-
 include/hw/i386/pc.h              |    2 +-
 include/hw/m68k/mcf.h             |    4 +-
 include/hw/ppc/spapr_vio.h        |    2 +-
 include/hw/qdev-properties.h      |    2 +-
 include/hw/sh4/sh.h               |    2 +-
 include/hw/sparc/grlib.h          |    2 +-
 include/hw/xen/xen.h              |    2 +-
 include/monitor/monitor.h         |    2 +-
 include/qemu/typedefs.h           |    2 +-
 include/sysemu/char.h             |  153 +-
 include/sysemu/replay.h           |    4 +-
 include/sysemu/sysemu.h           |    4 +-
 include/ui/console.h              |    2 +
 include/ui/gtk.h                  |    2 +-
 include/ui/qemu-spice.h           |    2 +-
 112 files changed, 6008 insertions(+), 5455 deletions(-)
 create mode 100644 chardev/char-console.c
 create mode 100644 chardev/char-fd.c
 create mode 100644 chardev/char-file.c
 create mode 100644 chardev/char-io.c
 create mode 100644 chardev/char-mux.c
 create mode 100644 chardev/char-null.c
 create mode 100644 chardev/char-parallel.c
 create mode 100644 chardev/char-pipe.c
 create mode 100644 chardev/char-pty.c
 create mode 100644 chardev/char-ringbuf.c
 create mode 100644 chardev/char-serial.c
 create mode 100644 chardev/char-socket.c
 create mode 100644 chardev/char-stdio.c
 create mode 100644 chardev/char-udp.c
 create mode 100644 chardev/char-win-stdio.c
 create mode 100644 chardev/char-win.c
 create mode 100644 chardev/char.c
 delete mode 100644 qemu-char.c
 create mode 100644 chardev/Makefile.objs
 create mode 100644 chardev/char-fd.h
 create mode 100644 chardev/char-io.h
 create mode 100644 chardev/char-mux.h
 create mode 100644 chardev/char-parallel.h
 create mode 100644 chardev/char-serial.h
 create mode 100644 chardev/char-win-stdio.h
 create mode 100644 chardev/char-win.h

-- 
2.11.0

^ permalink raw reply	[flat|nested] 85+ messages in thread

end of thread, other threads:[~2017-01-05 16:20 UTC | newest]

Thread overview: 85+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-12 22:42 [Qemu-devel] [PATCH 00/54] WIP: chardev: qom-ify Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 01/54] gtk: avoid oob array access Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 02/54] char: use a const CharDriver Marc-André Lureau
2016-12-13 23:11   ` Eric Blake
2017-01-02 15:33     ` Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 03/54] char: use a static array for backends Marc-André Lureau
2016-12-14 14:52   ` Eric Blake
2017-01-02 15:33     ` Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 04/54] char: move callbacks in CharDriver Marc-André Lureau
2016-12-14 16:02   ` Eric Blake
2017-01-02 15:33     ` Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 05/54] char: fold single-user functions in caller Marc-André Lureau
2016-12-14 16:05   ` Eric Blake
2017-01-02 15:33     ` Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 06/54] char: introduce generic qemu_chr_get_kind() Marc-André Lureau
2016-12-19 21:16   ` Eric Blake
2016-12-12 22:42 ` [Qemu-devel] [PATCH 07/54] char: use a feature bit for replay Marc-André Lureau
2016-12-19 21:58   ` Eric Blake
2016-12-12 22:42 ` [Qemu-devel] [PATCH 08/54] char: allocate CharDriverState as a single object Marc-André Lureau
2017-01-04 20:24   ` Eric Blake
2017-01-04 21:09     ` Marc-André Lureau
2017-01-04 21:15       ` Eric Blake
2016-12-12 22:42 ` [Qemu-devel] [PATCH 09/54] bt: use qemu_chr_alloc() Marc-André Lureau
2017-01-04 21:18   ` Eric Blake
2016-12-12 22:42 ` [Qemu-devel] [PATCH 10/54] char: rename CharDriverState Chardev Marc-André Lureau
2017-01-04 21:30   ` Eric Blake
2016-12-12 22:42 ` [Qemu-devel] [PATCH 11/54] char: rename TCPChardev and NetChardev Marc-André Lureau
2017-01-04 21:55   ` Eric Blake
2016-12-12 22:42 ` [Qemu-devel] [PATCH 12/54] spice-char: improve error reporting Marc-André Lureau
2017-01-04 22:00   ` Eric Blake
2017-01-05 14:03     ` Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 13/54] char: use error_report() Marc-André Lureau
2017-01-04 22:04   ` Eric Blake
2016-12-12 22:42 ` [Qemu-devel] [PATCH 14/54] gtk: overwrite the console.c char driver Marc-André Lureau
2017-01-04 22:26   ` Eric Blake
2016-12-12 22:42 ` [Qemu-devel] [PATCH 15/54] chardev: qom-ify Marc-André Lureau
2017-01-05  2:30   ` Eric Blake
2017-01-05 15:54   ` Eric Blake
2017-01-05 16:20     ` Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 16/54] spice-qemu-char: convert to finalize Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 17/54] baum: " Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 18/54] msmouse: " Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 19/54] mux: " Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 20/54] char-udp: " Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 21/54] char-socket: " Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 22/54] char-pty: " Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 23/54] char-ringbuf: " Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 24/54] char-parallel: convert parallel " Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 25/54] char-stdio: convert " Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 26/54] char-win-stdio: " Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 27/54] char-win: do not override chr_free Marc-André Lureau
2016-12-12 22:42 ` [Qemu-devel] [PATCH 28/54] char-win: convert to finalize Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 29/54] char-fd: " Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 30/54] char: remove chr_free Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 31/54] char: get rid of CharDriver Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 32/54] char: remove class kind field Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 33/54] char: move to chardev/ Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 34/54] char: create chardev-obj-y Marc-André Lureau
2016-12-13 11:10   ` Paolo Bonzini
2016-12-13 12:40     ` Marc-André Lureau
2016-12-13 12:52       ` Paolo Bonzini
2016-12-12 22:43 ` [Qemu-devel] [PATCH 35/54] char: make null_chr_write() the default method Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 36/54] char: move null chardev to its own file Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 37/54] char: move mux " Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 38/54] char: move ringbuf/memory " Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 39/54] char: rename and move to header CHR_READ_BUF_LEN Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 40/54] char: remove unused READ_RETRIES Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 41/54] char: move QIOChannel-related in char-io.h Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 42/54] char: move fd chardev in its own file Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 43/54] char: move win chardev base class " Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 44/54] char: move win-stdio into " Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 45/54] char: move socket chardev to itw " Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 46/54] char: move udp chardev in its " Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 47/54] char: move file " Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 48/54] char: move stdio " Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 49/54] char: move console " Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 50/54] char: move pipe chardev " Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 51/54] char: move pty " Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 52/54] char: move serial chardev to itw " Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 53/54] char: move parallel chardev in its " Marc-André Lureau
2016-12-12 22:43 ` [Qemu-devel] [PATCH 54/54] char: headers clean-up Marc-André Lureau
2016-12-13  0:33 ` [Qemu-devel] [PATCH 00/54] WIP: chardev: qom-ify no-reply
2017-01-02 10:26 ` Paolo Bonzini
2017-01-04 21:20   ` Marc-André Lureau
2017-01-04 21:50     ` Eric Blake

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.