[Qemu-devel] [PATCH v4 23/29] numa: Don't include hw/boards.h into sysemu/numa.h

Markus Armbruster posted 29 patches 6 years, 6 months ago
Maintainers: Gonglei <arei.gonglei@huawei.com>, "Cédric Le Goater" <clg@kaod.org>, Guan Xuetao <gxt@mprc.pku.edu.cn>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, Wen Congyang <wencongyang2@huawei.com>, Andrey Smirnov <andrew.smirnov@gmail.com>, Peter Lieven <pl@kamp.de>, Kevin Wolf <kwolf@redhat.com>, Michael Walle <michael@walle.cc>, Riku Voipio <riku.voipio@iki.fi>, Leif Lindholm <leif.lindholm@linaro.org>, Jiri Slaby <jslaby@suse.cz>, Jan Kiszka <jan.kiszka@web.de>, Hannes Reinecke <hare@suse.com>, Richard Henderson <rth@twiddle.net>, Markus Armbruster <armbru@redhat.com>, Chris Wulff <crwulff@gmail.com>, Christian Borntraeger <borntraeger@de.ibm.com>, Stefano Stabellini <sstabellini@kernel.org>, Stafford Horne <shorne@gmail.com>, Corey Minyard <cminyard@mvista.com>, Max Reitz <mreitz@redhat.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, Artyom Tarasenko <atar4qemu@gmail.com>, Dmitry Fleytman <dmitry.fleytman@gmail.com>, Palmer Dabbelt <palmer@sifive.com>, David Gibson <david@gibson.dropbear.id.au>, Radoslaw Biernacki <radoslaw.biernacki@linaro.org>, Michael Roth <mdroth@linux.vnet.ibm.com>, Jiri Pirko <jiri@resnulli.us>, Eduardo Habkost <ehabkost@redhat.com>, Anthony Perard <anthony.perard@citrix.com>, "Alex Bennée" <alex.bennee@linaro.org>, Jean-Christophe Dubois <jcd@tribudubois.net>, Paul Burton <pburton@wavecomp.com>, Andrew Jeffery <andrew@aj.id.au>, Aleksandar Markovic <amarkovic@wavecomp.com>, Fam Zheng <fam@euphon.net>, Amit Shah <amit@kernel.org>, Sagar Karandikar <sagark@eecs.berkeley.edu>, Aleksandar Rikalo <arikalo@wavecomp.com>, Laurent Vivier <lvivier@redhat.com>, Alistair Francis <alistair@alistair23.me>, Ben Warren <ben@skyportsystems.com>, Joel Stanley <joel@jms.id.au>, Paul Durrant <paul.durrant@citrix.com>, zhanghailiang <zhang.zhanghailiang@huawei.com>, Juan Quintela <quintela@redhat.com>, Corey Minyard <minyard@acm.org>, Marek Vasut <marex@denx.de>, Igor Mammedov <imammedo@redhat.com>, Jia Liu <proljc@gmail.com>, Eric Farman <farman@linux.ibm.com>, Marcelo Tosatti <mtosatti@redhat.com>, Fabien Chouteau <chouteau@adacore.com>, Greg Kurz <groug@kaod.org>, Laurent Vivier <laurent@vivier.eu>, Anthony Green <green@moxielogic.com>, Xie Changlong <xiechanglong.d@gmail.com>, Liu Yuan <namei.unix@gmail.com>, Pierre Morel <pmorel@linux.ibm.com>, John Snow <jsnow@redhat.com>, Bastian Koppelmann <kbastian@mail.uni-paderborn.de>, Halil Pasic <pasic@linux.ibm.com>, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, Shannon Zhao <shannon.zhaosl@gmail.com>, Andrzej Zaborowski <balrogg@gmail.com>, David Hildenbrand <david@redhat.com>, Yuval Shaia <yuval.shaia@oracle.com>, Tony Krowiak <akrowiak@linux.ibm.com>, Stefan Hajnoczi <stefanha@redhat.com>, Subbaraya Sundeep <sundeep.lkml@gmail.com>, Antony Pavlov <antonynpavlov@gmail.com>, Collin Walling <walling@linux.ibm.com>, Eric Auger <eric.auger@redhat.com>, Beniamino Galvani <b.galvani@gmail.com>, Helge Deller <deller@gmx.de>, KONRAD Frederic <frederic.konrad@adacore.com>, Stefan Berger <stefanb@linux.ibm.com>, Stefan Weil <sw@weilnetz.de>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Eric Blake <eblake@redhat.com>, Vincenzo Maffione <v.maffione@gmail.com>, "Philippe Mathieu-Daudé" <f4bug@amsat.org>, Cornelia Huck <cohuck@redhat.com>, Thomas Huth <thuth@redhat.com>, Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, Jason Wang <jasowang@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, Alberto Garcia <berto@igalia.com>, Gerd Hoffmann <kraxel@redhat.com>, Igor Mitsyanko <i.mitsyanko@gmail.com>, Andrew Baumann <Andrew.Baumann@microsoft.com>, Laszlo Ersek <lersek@redhat.com>, James Hogan <jhogan@kernel.org>, Rob Herring <robh@kernel.org>, Alistair Francis <Alistair.Francis@wdc.com>, Paolo Bonzini <pbonzini@redhat.com>, Keith Busch <keith.busch@intel.com>, Luigi Rizzo <rizzo@iet.unipi.it>, Magnus Damm <magnus.damm@gmail.com>, Giuseppe Lettieri <g.lettieri@iet.unipi.it>, "Michael S. Tsirkin" <mst@redhat.com>, Peter Chubb <peter.chubb@nicta.com.au>, Alex Williamson <alex.williamson@redhat.com>, Thomas Huth <huth@tuxfamily.org>, Aurelien Jarno <aurelien@aurel32.net>, "Hervé Poussineau" <hpoussin@reactos.org>, Xiao Guangrong <xiaoguangrong.eric@gmail.com>, "Philippe Mathieu-Daudé" <philmd@redhat.com>, Peter Maydell <peter.maydell@linaro.org>, Max Filippov <jcmvbkbc@gmail.com>, BALATON Zoltan <balaton@eik.bme.hu>, Samuel Thibault <samuel.thibault@ens-lyon.org>
[Qemu-devel] [PATCH v4 23/29] numa: Don't include hw/boards.h into sysemu/numa.h
Posted by Markus Armbruster 6 years, 6 months ago
sysemu/numa.h includes hw/boards.h just for the CPUArchId typedef, at
the cost of pulling in more than two dozen extra headers indirectly.

I could move the typedef from hw/boards.h to qemu/typedefs.h.  But
it's used in just two headers: boards.h and numa.h.

I could move it to another header both its users include.
exec/cpu-common.h seems to be the least bad fit.

But I'm keeping this simple & stupid: declare the struct tag in
numa.h.

Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
---
 include/hw/boards.h   | 2 +-
 include/sysemu/numa.h | 9 +++++++--
 hw/mem/pc-dimm.c      | 1 +
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/include/hw/boards.h b/include/hw/boards.h
index 67e551636a..739d109fe1 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -86,7 +86,7 @@ void machine_class_allow_dynamic_sysbus_dev(MachineClass *mc, const char *type);
  * @props - CPU object properties, initialized by board
  * #vcpus_count - number of threads provided by @cpu object
  */
-typedef struct {
+typedef struct CPUArchId {
     uint64_t arch_id;
     int64_t vcpus_count;
     CpuInstanceProperties props;
diff --git a/include/sysemu/numa.h b/include/sysemu/numa.h
index 01a263eba2..4c4c1dee9b 100644
--- a/include/sysemu/numa.h
+++ b/include/sysemu/numa.h
@@ -4,7 +4,10 @@
 #include "qemu/bitmap.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/hostmem.h"
-#include "hw/boards.h"
+#include "qapi/qapi-types-machine.h"
+#include "exec/cpu-common.h"
+
+struct CPUArchId;
 
 extern int nb_numa_nodes;   /* Number of NUMA nodes */
 extern bool have_numa_distance;
@@ -32,5 +35,7 @@ void numa_legacy_auto_assign_ram(MachineClass *mc, NodeInfo *nodes,
                                  int nb_nodes, ram_addr_t size);
 void numa_default_auto_assign_ram(MachineClass *mc, NodeInfo *nodes,
                                   int nb_nodes, ram_addr_t size);
-void numa_cpu_pre_plug(const CPUArchId *slot, DeviceState *dev, Error **errp);
+void numa_cpu_pre_plug(const struct CPUArchId *slot, DeviceState *dev,
+                       Error **errp);
+
 #endif
diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c
index 1f3e676066..dea48f9163 100644
--- a/hw/mem/pc-dimm.c
+++ b/hw/mem/pc-dimm.c
@@ -19,6 +19,7 @@
  */
 
 #include "qemu/osdep.h"
+#include "hw/boards.h"
 #include "hw/mem/pc-dimm.h"
 #include "hw/qdev-properties.h"
 #include "migration/vmstate.h"
-- 
2.21.0