From: Bernhard Beschow <shentey@gmail.com>
To: qemu-devel@nongnu.org
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
"Sunil Muthuswamy" <sunilmut@microsoft.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
qemu-trivial@nongnu.org,
"Richard Henderson" <richard.henderson@linaro.org>,
"Juan Quintela" <quintela@redhat.com>,
"Eduardo Habkost" <eduardo@habkost.net>,
"Thomas Huth" <thuth@redhat.com>,
"Igor Mammedov" <imammedo@redhat.com>,
"BALATON Zoltan" <balaton@eik.bme.hu>,
"Ani Sinha" <ani@anisinha.ca>,
"Laurent Vivier" <lvivier@redhat.com>,
"Bernhard Beschow" <shentey@gmail.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: [PATCH v4 7/9] hw/pci-host/pam: Make init_pam() usage more readable
Date: Mon, 13 Feb 2023 17:20:02 +0100 [thread overview]
Message-ID: <20230213162004.2797-8-shentey@gmail.com> (raw)
In-Reply-To: <20230213162004.2797-1-shentey@gmail.com>
Unlike pam_update() which takes the subject -- PAMMemoryRegion -- as
first argument, init_pam() takes it as fifth (!) argument. This makes it
quite hard to figure out what an init_pam() invocation actually
initializes. By moving the subject to the front this should become
clearer.
While at it, lower the DeviceState parameter to Object, also
communicating more clearly that this parameter is just the owner rather
than some (heavy?) dependency.
Signed-off-by: Bernhard Beschow <shentey@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
include/hw/pci-host/pam.h | 5 +++--
hw/pci-host/i440fx.c | 10 +++++-----
hw/pci-host/pam.c | 12 ++++++------
hw/pci-host/q35.c | 8 ++++----
4 files changed, 18 insertions(+), 17 deletions(-)
diff --git a/include/hw/pci-host/pam.h b/include/hw/pci-host/pam.h
index c1fd06ba2a..005916f826 100644
--- a/include/hw/pci-host/pam.h
+++ b/include/hw/pci-host/pam.h
@@ -87,8 +87,9 @@ typedef struct PAMMemoryRegion {
unsigned current;
} PAMMemoryRegion;
-void init_pam(DeviceState *dev, MemoryRegion *ram, MemoryRegion *system,
- MemoryRegion *pci, PAMMemoryRegion *mem, uint32_t start, uint32_t size);
+void init_pam(PAMMemoryRegion *mem, Object *owner, MemoryRegion *ram,
+ MemoryRegion *system, MemoryRegion *pci,
+ uint32_t start, uint32_t size);
void pam_update(PAMMemoryRegion *mem, int idx, uint8_t val);
#endif /* QEMU_PAM_H */
diff --git a/hw/pci-host/i440fx.c b/hw/pci-host/i440fx.c
index 9c6882d3fc..61e7b97ff4 100644
--- a/hw/pci-host/i440fx.c
+++ b/hw/pci-host/i440fx.c
@@ -292,12 +292,12 @@ PCIBus *i440fx_init(const char *pci_type,
object_property_add_const_link(qdev_get_machine(), "smram",
OBJECT(&f->smram));
- init_pam(dev, f->ram_memory, f->system_memory, f->pci_address_space,
- &f->pam_regions[0], PAM_BIOS_BASE, PAM_BIOS_SIZE);
+ init_pam(&f->pam_regions[0], OBJECT(d), f->ram_memory, f->system_memory,
+ f->pci_address_space, PAM_BIOS_BASE, PAM_BIOS_SIZE);
for (i = 0; i < ARRAY_SIZE(f->pam_regions) - 1; ++i) {
- init_pam(dev, f->ram_memory, f->system_memory, f->pci_address_space,
- &f->pam_regions[i+1], PAM_EXPAN_BASE + i * PAM_EXPAN_SIZE,
- PAM_EXPAN_SIZE);
+ init_pam(&f->pam_regions[i + 1], OBJECT(d), f->ram_memory,
+ f->system_memory, f->pci_address_space,
+ PAM_EXPAN_BASE + i * PAM_EXPAN_SIZE, PAM_EXPAN_SIZE);
}
ram_size = ram_size / 8 / 1024 / 1024;
diff --git a/hw/pci-host/pam.c b/hw/pci-host/pam.c
index 454dd120db..68e9884d27 100644
--- a/hw/pci-host/pam.c
+++ b/hw/pci-host/pam.c
@@ -30,24 +30,24 @@
#include "qemu/osdep.h"
#include "hw/pci-host/pam.h"
-void init_pam(DeviceState *dev, MemoryRegion *ram_memory,
+void init_pam(PAMMemoryRegion *mem, Object *owner, MemoryRegion *ram_memory,
MemoryRegion *system_memory, MemoryRegion *pci_address_space,
- PAMMemoryRegion *mem, uint32_t start, uint32_t size)
+ uint32_t start, uint32_t size)
{
int i;
/* RAM */
- memory_region_init_alias(&mem->alias[3], OBJECT(dev), "pam-ram", ram_memory,
+ memory_region_init_alias(&mem->alias[3], owner, "pam-ram", ram_memory,
start, size);
/* ROM (XXX: not quite correct) */
- memory_region_init_alias(&mem->alias[1], OBJECT(dev), "pam-rom", ram_memory,
+ memory_region_init_alias(&mem->alias[1], owner, "pam-rom", ram_memory,
start, size);
memory_region_set_readonly(&mem->alias[1], true);
/* XXX: should distinguish read/write cases */
- memory_region_init_alias(&mem->alias[0], OBJECT(dev), "pam-pci", pci_address_space,
+ memory_region_init_alias(&mem->alias[0], owner, "pam-pci", pci_address_space,
start, size);
- memory_region_init_alias(&mem->alias[2], OBJECT(dev), "pam-pci", ram_memory,
+ memory_region_init_alias(&mem->alias[2], owner, "pam-pci", ram_memory,
start, size);
memory_region_transaction_begin();
diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c
index fa05844319..fd18920e7f 100644
--- a/hw/pci-host/q35.c
+++ b/hw/pci-host/q35.c
@@ -645,12 +645,12 @@ static void mch_realize(PCIDevice *d, Error **errp)
object_property_add_const_link(qdev_get_machine(), "smram",
OBJECT(&mch->smram));
- init_pam(DEVICE(mch), mch->ram_memory, mch->system_memory,
- mch->pci_address_space, &mch->pam_regions[0],
+ init_pam(&mch->pam_regions[0], OBJECT(mch), mch->ram_memory,
+ mch->system_memory, mch->pci_address_space,
PAM_BIOS_BASE, PAM_BIOS_SIZE);
for (i = 0; i < ARRAY_SIZE(mch->pam_regions) - 1; ++i) {
- init_pam(DEVICE(mch), mch->ram_memory, mch->system_memory,
- mch->pci_address_space, &mch->pam_regions[i+1],
+ init_pam(&mch->pam_regions[i + 1], OBJECT(mch), mch->ram_memory,
+ mch->system_memory, mch->pci_address_space,
PAM_EXPAN_BASE + i * PAM_EXPAN_SIZE, PAM_EXPAN_SIZE);
}
}
--
2.39.1
next prev parent reply other threads:[~2023-02-13 16:21 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-13 16:19 [PATCH v4 0/9] PC cleanups Bernhard Beschow
2023-02-13 16:19 ` [PATCH v4 1/9] hw/pci-host/i440fx: Inline sysbus_add_io() Bernhard Beschow
2023-02-22 10:58 ` Philippe Mathieu-Daudé
2023-02-22 18:05 ` Bernhard Beschow
2023-03-06 6:57 ` Bernhard Beschow
2023-03-07 22:32 ` Philippe Mathieu-Daudé
2023-02-13 16:19 ` [PATCH v4 2/9] hw/pci-host/q35: " Bernhard Beschow
2023-02-13 16:19 ` [PATCH v4 3/9] hw/i386/pc_q35: Reuse machine parameter Bernhard Beschow
2023-02-22 11:03 ` Philippe Mathieu-Daudé
2023-02-22 17:52 ` Bernhard Beschow
2023-02-22 20:24 ` Michael S. Tsirkin
2023-02-13 16:19 ` [PATCH v4 4/9] hw/i386/pc_{q35, piix}: Reuse MachineClass::desc as SMB product name Bernhard Beschow
2023-02-13 16:20 ` [PATCH v4 5/9] hw/i386/pc_{q35, piix}: Minimize usage of get_system_memory() Bernhard Beschow
2023-02-22 11:05 ` Philippe Mathieu-Daudé
2023-02-13 16:20 ` [PATCH v4 6/9] hw/i386/pc: Initialize ram_memory variable directly Bernhard Beschow
2023-02-22 2:38 ` Xiaoyao Li
2023-02-22 8:21 ` Bernhard Beschow
2023-02-13 16:20 ` Bernhard Beschow [this message]
2023-02-13 16:20 ` [PATCH v4 8/9] hw/i386/x86: Make TYPE_X86_MACHINE the owner of smram Bernhard Beschow
2023-02-13 16:20 ` [PATCH v4 9/9] target/i386/tcg/sysemu/tcg-cpu: Avoid own opinion about smram size Bernhard Beschow
2023-02-13 16:45 ` [PATCH v4 0/9] PC cleanups Bernhard Beschow
2023-03-05 7:45 ` Bernhard Beschow
2023-03-05 10:09 ` Michael S. Tsirkin
2023-03-07 22:34 ` Philippe Mathieu-Daudé
2023-05-10 18:26 ` Bernhard Beschow
2023-05-10 19:20 ` Michael S. Tsirkin
2023-05-10 21:19 ` Bernhard Beschow
2023-02-21 15:40 ` Bernhard Beschow
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230213162004.2797-8-shentey@gmail.com \
--to=shentey@gmail.com \
--cc=ani@anisinha.ca \
--cc=balaton@eik.bme.hu \
--cc=dgilbert@redhat.com \
--cc=eduardo@habkost.net \
--cc=imammedo@redhat.com \
--cc=lvivier@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-trivial@nongnu.org \
--cc=quintela@redhat.com \
--cc=richard.henderson@linaro.org \
--cc=sunilmut@microsoft.com \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).