We can avoid the 'long' casts by using PRIx64 and HWADDR_PRIx on the fmt
strings for uint64_t and hwaddr types.
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/riscv/virt.c | 32 +++++++++++++++++---------------
1 file changed, 17 insertions(+), 15 deletions(-)
diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
index f38b64d836..0020d8f404 100644
--- a/hw/riscv/virt.c
+++ b/hw/riscv/virt.c
@@ -303,12 +303,13 @@ static void create_fdt_socket_cpus(RISCVVirtState *s, int socket,
static void create_fdt_socket_memory(RISCVVirtState *s, int socket)
{
g_autofree char *mem_name = NULL;
- uint64_t addr, size;
+ hwaddr addr;
+ uint64_t size;
MachineState *ms = MACHINE(s);
addr = s->memmap[VIRT_DRAM].base + riscv_socket_mem_offset(ms, socket);
size = riscv_socket_mem_size(ms, socket);
- mem_name = g_strdup_printf("/memory@%lx", (long)addr);
+ mem_name = g_strdup_printf("/memory@%"HWADDR_PRIx, addr);
qemu_fdt_add_subnode(ms->fdt, mem_name);
qemu_fdt_setprop_cells(ms->fdt, mem_name, "reg",
addr >> 32, addr, size >> 32, size);
@@ -879,8 +880,8 @@ static void create_fdt_pcie(RISCVVirtState *s,
g_autofree char *name = NULL;
MachineState *ms = MACHINE(s);
- name = g_strdup_printf("/soc/pci@%lx",
- (long) s->memmap[VIRT_PCIE_ECAM].base);
+ name = g_strdup_printf("/soc/pci@%"HWADDR_PRIx,
+ s->memmap[VIRT_PCIE_ECAM].base);
qemu_fdt_setprop_cell(ms->fdt, name, "#address-cells",
FDT_PCI_ADDR_CELLS);
qemu_fdt_setprop_cell(ms->fdt, name, "#interrupt-cells",
@@ -924,8 +925,8 @@ static void create_fdt_reset(RISCVVirtState *s, uint32_t *phandle)
MachineState *ms = MACHINE(s);
test_phandle = (*phandle)++;
- name = g_strdup_printf("/soc/test@%lx",
- (long)s->memmap[VIRT_TEST].base);
+ name = g_strdup_printf("/soc/test@%"HWADDR_PRIx,
+ s->memmap[VIRT_TEST].base);
qemu_fdt_add_subnode(ms->fdt, name);
{
static const char * const compat[3] = {
@@ -963,8 +964,8 @@ static void create_fdt_uart(RISCVVirtState *s,
g_autofree char *name = NULL;
MachineState *ms = MACHINE(s);
- name = g_strdup_printf("/soc/serial@%lx",
- (long)s->memmap[VIRT_UART0].base);
+ name = g_strdup_printf("/soc/serial@%"HWADDR_PRIx,
+ s->memmap[VIRT_UART0].base);
qemu_fdt_add_subnode(ms->fdt, name);
qemu_fdt_setprop_string(ms->fdt, name, "compatible", "ns16550a");
qemu_fdt_setprop_cells(ms->fdt, name, "reg",
@@ -988,7 +989,8 @@ static void create_fdt_rtc(RISCVVirtState *s,
g_autofree char *name = NULL;
MachineState *ms = MACHINE(s);
- name = g_strdup_printf("/soc/rtc@%lx", (long)s->memmap[VIRT_RTC].base);
+ name = g_strdup_printf("/soc/rtc@%"HWADDR_PRIx,
+ s->memmap[VIRT_RTC].base);
qemu_fdt_add_subnode(ms->fdt, name);
qemu_fdt_setprop_string(ms->fdt, name, "compatible",
"google,goldfish-rtc");
@@ -1041,8 +1043,8 @@ static void create_fdt_virtio_iommu(RISCVVirtState *s, uint16_t bdf)
g_autofree char *iommu_node = NULL;
g_autofree char *pci_node = NULL;
- pci_node = g_strdup_printf("/soc/pci@%lx",
- (long) s->memmap[VIRT_PCIE_ECAM].base);
+ pci_node = g_strdup_printf("/soc/pci@%"HWADDR_PRIx,
+ s->memmap[VIRT_PCIE_ECAM].base);
iommu_node = g_strdup_printf("%s/virtio_iommu@%x,%x", pci_node,
PCI_SLOT(bdf), PCI_FUNC(bdf));
iommu_phandle = qemu_fdt_alloc_phandle(fdt);
@@ -1110,8 +1112,8 @@ static void create_fdt_iommu(RISCVVirtState *s, uint16_t bdf)
g_autofree char *iommu_node = NULL;
g_autofree char *pci_node = NULL;
- pci_node = g_strdup_printf("/soc/pci@%lx",
- (long) s->memmap[VIRT_PCIE_ECAM].base);
+ pci_node = g_strdup_printf("/soc/pci@%"HWADDR_PRIx,
+ s->memmap[VIRT_PCIE_ECAM].base);
iommu_node = g_strdup_printf("%s/iommu@%x", pci_node, bdf);
iommu_phandle = qemu_fdt_alloc_phandle(fdt);
qemu_fdt_add_subnode(fdt, iommu_node);
@@ -1180,8 +1182,8 @@ static void create_fdt(RISCVVirtState *s)
* The "/soc/pci@..." node is needed for PCIE hotplugs
* that might happen before finalize_fdt().
*/
- name = g_strdup_printf("/soc/pci@%lx",
- (long) s->memmap[VIRT_PCIE_ECAM].base);
+ name = g_strdup_printf("/soc/pci@%"HWADDR_PRIx,
+ s->memmap[VIRT_PCIE_ECAM].base);
qemu_fdt_add_subnode(ms->fdt, name);
qemu_fdt_add_subnode(ms->fdt, "/chosen");
--
2.49.0
On Tue, Apr 29, 2025 at 11:01 PM Daniel Henrique Barboza
<dbarboza@ventanamicro.com> wrote:
>
> We can avoid the 'long' casts by using PRIx64 and HWADDR_PRIx on the fmt
> strings for uint64_t and hwaddr types.
>
> Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Alistair
> ---
> hw/riscv/virt.c | 32 +++++++++++++++++---------------
> 1 file changed, 17 insertions(+), 15 deletions(-)
>
> diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
> index f38b64d836..0020d8f404 100644
> --- a/hw/riscv/virt.c
> +++ b/hw/riscv/virt.c
> @@ -303,12 +303,13 @@ static void create_fdt_socket_cpus(RISCVVirtState *s, int socket,
> static void create_fdt_socket_memory(RISCVVirtState *s, int socket)
> {
> g_autofree char *mem_name = NULL;
> - uint64_t addr, size;
> + hwaddr addr;
> + uint64_t size;
> MachineState *ms = MACHINE(s);
>
> addr = s->memmap[VIRT_DRAM].base + riscv_socket_mem_offset(ms, socket);
> size = riscv_socket_mem_size(ms, socket);
> - mem_name = g_strdup_printf("/memory@%lx", (long)addr);
> + mem_name = g_strdup_printf("/memory@%"HWADDR_PRIx, addr);
> qemu_fdt_add_subnode(ms->fdt, mem_name);
> qemu_fdt_setprop_cells(ms->fdt, mem_name, "reg",
> addr >> 32, addr, size >> 32, size);
> @@ -879,8 +880,8 @@ static void create_fdt_pcie(RISCVVirtState *s,
> g_autofree char *name = NULL;
> MachineState *ms = MACHINE(s);
>
> - name = g_strdup_printf("/soc/pci@%lx",
> - (long) s->memmap[VIRT_PCIE_ECAM].base);
> + name = g_strdup_printf("/soc/pci@%"HWADDR_PRIx,
> + s->memmap[VIRT_PCIE_ECAM].base);
> qemu_fdt_setprop_cell(ms->fdt, name, "#address-cells",
> FDT_PCI_ADDR_CELLS);
> qemu_fdt_setprop_cell(ms->fdt, name, "#interrupt-cells",
> @@ -924,8 +925,8 @@ static void create_fdt_reset(RISCVVirtState *s, uint32_t *phandle)
> MachineState *ms = MACHINE(s);
>
> test_phandle = (*phandle)++;
> - name = g_strdup_printf("/soc/test@%lx",
> - (long)s->memmap[VIRT_TEST].base);
> + name = g_strdup_printf("/soc/test@%"HWADDR_PRIx,
> + s->memmap[VIRT_TEST].base);
> qemu_fdt_add_subnode(ms->fdt, name);
> {
> static const char * const compat[3] = {
> @@ -963,8 +964,8 @@ static void create_fdt_uart(RISCVVirtState *s,
> g_autofree char *name = NULL;
> MachineState *ms = MACHINE(s);
>
> - name = g_strdup_printf("/soc/serial@%lx",
> - (long)s->memmap[VIRT_UART0].base);
> + name = g_strdup_printf("/soc/serial@%"HWADDR_PRIx,
> + s->memmap[VIRT_UART0].base);
> qemu_fdt_add_subnode(ms->fdt, name);
> qemu_fdt_setprop_string(ms->fdt, name, "compatible", "ns16550a");
> qemu_fdt_setprop_cells(ms->fdt, name, "reg",
> @@ -988,7 +989,8 @@ static void create_fdt_rtc(RISCVVirtState *s,
> g_autofree char *name = NULL;
> MachineState *ms = MACHINE(s);
>
> - name = g_strdup_printf("/soc/rtc@%lx", (long)s->memmap[VIRT_RTC].base);
> + name = g_strdup_printf("/soc/rtc@%"HWADDR_PRIx,
> + s->memmap[VIRT_RTC].base);
> qemu_fdt_add_subnode(ms->fdt, name);
> qemu_fdt_setprop_string(ms->fdt, name, "compatible",
> "google,goldfish-rtc");
> @@ -1041,8 +1043,8 @@ static void create_fdt_virtio_iommu(RISCVVirtState *s, uint16_t bdf)
> g_autofree char *iommu_node = NULL;
> g_autofree char *pci_node = NULL;
>
> - pci_node = g_strdup_printf("/soc/pci@%lx",
> - (long) s->memmap[VIRT_PCIE_ECAM].base);
> + pci_node = g_strdup_printf("/soc/pci@%"HWADDR_PRIx,
> + s->memmap[VIRT_PCIE_ECAM].base);
> iommu_node = g_strdup_printf("%s/virtio_iommu@%x,%x", pci_node,
> PCI_SLOT(bdf), PCI_FUNC(bdf));
> iommu_phandle = qemu_fdt_alloc_phandle(fdt);
> @@ -1110,8 +1112,8 @@ static void create_fdt_iommu(RISCVVirtState *s, uint16_t bdf)
> g_autofree char *iommu_node = NULL;
> g_autofree char *pci_node = NULL;
>
> - pci_node = g_strdup_printf("/soc/pci@%lx",
> - (long) s->memmap[VIRT_PCIE_ECAM].base);
> + pci_node = g_strdup_printf("/soc/pci@%"HWADDR_PRIx,
> + s->memmap[VIRT_PCIE_ECAM].base);
> iommu_node = g_strdup_printf("%s/iommu@%x", pci_node, bdf);
> iommu_phandle = qemu_fdt_alloc_phandle(fdt);
> qemu_fdt_add_subnode(fdt, iommu_node);
> @@ -1180,8 +1182,8 @@ static void create_fdt(RISCVVirtState *s)
> * The "/soc/pci@..." node is needed for PCIE hotplugs
> * that might happen before finalize_fdt().
> */
> - name = g_strdup_printf("/soc/pci@%lx",
> - (long) s->memmap[VIRT_PCIE_ECAM].base);
> + name = g_strdup_printf("/soc/pci@%"HWADDR_PRIx,
> + s->memmap[VIRT_PCIE_ECAM].base);
> qemu_fdt_add_subnode(ms->fdt, name);
>
> qemu_fdt_add_subnode(ms->fdt, "/chosen");
> --
> 2.49.0
>
>
© 2016 - 2025 Red Hat, Inc.