qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/13] remove some types from typedefs.h
@ 2024-05-02 15:53 Paolo Bonzini
  2024-05-02 15:53 ` [PATCH 01/13] fw_cfg: remove useless declarations " Paolo Bonzini
                   ` (12 more replies)
  0 siblings, 13 replies; 24+ messages in thread
From: Paolo Bonzini @ 2024-05-02 15:53 UTC (permalink / raw)
  To: qemu-devel

The main reason for typedefs.h to exist is to avoid the need for
"struct Foo;" forward declarations of types that are needed in function
prototypes.  It avoids the infamous "struct declared inside parameter list
will not be visible outside of this definition or declaration" warning.
Another less common use is when the struct is used as a pointer in
another struct (when the struct is embedded by value, the typedef is
obviously not enough).

This series is a first pass removing unnecessary typedefs.  In most
cases, the users are actually already including it.  In a few patches
towards the end, new includes are introduced but not in files that
already "rebuild the world" when changed.

Personally, I think that in many cases the uses are so limited
(often they only appear only in the few non-qdev boards that are
left) that they could use forward declarations of structs.  I did
that for patch 12 (tcg) because there are already a couple of
forward declataions in include/hw/core/cpu.h, but that's more as
food for thought than anything else.

Paolo

Paolo Bonzini (13):
  fw_cfg: remove useless declarations from typedefs.h
  qdev-core: remove DeviceListener from typedefs.h
  numa: remove types from typedefs.h
  net: remove AnnounceTimer from typedefs.h
  qemu-option: remove QemuOpt from typedefs.h
  intc: remove PICCommonState from typedefs.h
  lockable: remove QemuLockable from typedefs.h
  migration: remove PostcopyDiscardState from typedefs.h
  monitor: remove MonitorDef from typedefs.h
  qapi/machine: remove types from typedefs.h
  display: remove GraphicHwOps from typedefs.h
  tcg: remove CPU* types from typedefs.h
  pci: remove some types from typedefs.h

 accel/tcg/tb-jmp-cache.h     |  4 ++--
 hw/display/vga_int.h         |  1 +
 include/hw/core/cpu.h        | 11 +++++++++--
 include/hw/intc/i8259.h      |  2 ++
 include/hw/nvram/fw_cfg.h    |  2 ++
 include/hw/pci/pcie.h        |  3 +++
 include/hw/pci/pcie_aer.h    | 38 ++++++++++++++++++------------------
 include/hw/pci/pcie_sriov.h  |  8 ++++----
 include/hw/qdev-core.h       |  1 +
 include/monitor/hmp-target.h | 11 +++++++----
 include/net/announce.h       |  4 ++--
 include/qemu/coroutine.h     |  4 ++--
 include/qemu/lockable.h      |  4 ++--
 include/qemu/option.h        |  2 ++
 include/qemu/typedefs.h      | 23 ----------------------
 include/sysemu/numa.h        |  8 ++++----
 migration/postcopy-ram.c     |  4 ++--
 stubs/target-monitor-defs.c  |  3 +--
 system/physmem.c             |  4 ++--
 19 files changed, 67 insertions(+), 70 deletions(-)

-- 
2.44.0



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

end of thread, other threads:[~2024-05-03  8:46 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-02 15:53 [PATCH 00/13] remove some types from typedefs.h Paolo Bonzini
2024-05-02 15:53 ` [PATCH 01/13] fw_cfg: remove useless declarations " Paolo Bonzini
2024-05-03  7:27   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 02/13] qdev-core: remove DeviceListener " Paolo Bonzini
2024-05-03  7:28   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 03/13] numa: remove types " Paolo Bonzini
2024-05-03  7:29   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 04/13] net: remove AnnounceTimer " Paolo Bonzini
2024-05-03  8:44   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 05/13] qemu-option: remove QemuOpt " Paolo Bonzini
2024-05-03  8:45   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 06/13] intc: remove PICCommonState " Paolo Bonzini
2024-05-03  8:43   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 07/13] lockable: remove QemuLockable " Paolo Bonzini
2024-05-03  8:41   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 08/13] migration: remove PostcopyDiscardState " Paolo Bonzini
2024-05-03  8:45   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 09/13] monitor: remove MonitorDef " Paolo Bonzini
2024-05-03  8:38   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 10/13] qapi/machine: remove types " Paolo Bonzini
2024-05-02 15:53 ` [PATCH 11/13] display: remove GraphicHwOps " Paolo Bonzini
2024-05-03  7:30   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 12/13] tcg: remove CPU* types " Paolo Bonzini
2024-05-02 15:53 ` [PATCH 13/13] pci: remove some " Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).