* [PATCH 0/2] Remove some global variables @ 2025-04-30 9:47 Bibo Mao 2025-04-30 9:47 ` [PATCH 1/2] hw/loongarch/virt: Remove global variables about initrd Bibo Mao 2025-04-30 9:47 ` [PATCH 2/2] hw/loongarch/virt: Remove global variables about memmap tables Bibo Mao 0 siblings, 2 replies; 5+ messages in thread From: Bibo Mao @ 2025-04-30 9:47 UTC (permalink / raw) To: Song Gao; +Cc: Jiaxun Yang, qemu-devel Global variables about initrd and UEFI memmap tables are removed here, and put into structure loongarch_boot_info and LoongArchVirtMachineState separately. Bibo Mao (2): hw/loongarch/virt: Remove global variables about initrd hw/loongarch/virt: Remove global variables about memmap tables hw/loongarch/boot.c | 52 +++++++++++++++++++++---------------- hw/loongarch/virt.c | 23 +++++++++++----- include/hw/loongarch/boot.h | 5 ++-- include/hw/loongarch/virt.h | 2 ++ 4 files changed, 49 insertions(+), 33 deletions(-) base-commit: 73d29ea2417b58ca55fba1aa468ba38e3607b583 -- 2.39.3 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] hw/loongarch/virt: Remove global variables about initrd 2025-04-30 9:47 [PATCH 0/2] Remove some global variables Bibo Mao @ 2025-04-30 9:47 ` Bibo Mao 2025-04-30 12:32 ` Philippe Mathieu-Daudé 2025-04-30 9:47 ` [PATCH 2/2] hw/loongarch/virt: Remove global variables about memmap tables Bibo Mao 1 sibling, 1 reply; 5+ messages in thread From: Bibo Mao @ 2025-04-30 9:47 UTC (permalink / raw) To: Song Gao; +Cc: Jiaxun Yang, qemu-devel Global variables initrd_offset and initrd_size records loading information about initrd, it can be moved to structure loongarch_boot_info. Signed-off-by: Bibo Mao <maobibo@loongson.cn> --- hw/loongarch/boot.c | 21 ++++++++++----------- include/hw/loongarch/boot.h | 2 ++ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/hw/loongarch/boot.c b/hw/loongarch/boot.c index 354cf458c8..44d537d987 100644 --- a/hw/loongarch/boot.c +++ b/hw/loongarch/boot.c @@ -38,9 +38,6 @@ struct loongarch_linux_hdr { struct memmap_entry *memmap_table; unsigned memmap_entries; -ram_addr_t initrd_offset; -uint64_t initrd_size; - static const unsigned int slave_boot_code[] = { /* Configure reset ebase. */ 0x0400302c, /* csrwr $t0, LOONGARCH_CSR_EENTRY */ @@ -121,7 +118,8 @@ static void init_efi_boot_memmap(struct efi_system_table *systab, } } -static void init_efi_initrd_table(struct efi_system_table *systab, +static void init_efi_initrd_table(struct loongarch_boot_info *info, + struct efi_system_table *systab, void *p, void *start) { efi_guid_t tbl_guid = LINUX_EFI_INITRD_MEDIA_GUID; @@ -132,8 +130,8 @@ static void init_efi_initrd_table(struct efi_system_table *systab, systab->tables[1].table = (struct efi_configuration_table *)(p - start); systab->nr_tables = 2; - initrd_table->base = initrd_offset; - initrd_table->size = initrd_size; + initrd_table->base = info->initrd_addr; + initrd_table->size = info->initrd_size; } static void init_efi_fdt_table(struct efi_system_table *systab) @@ -169,7 +167,7 @@ static void init_systab(struct loongarch_boot_info *info, void *p, void *start) init_efi_boot_memmap(systab, p, start); p += ROUND_UP(sizeof(struct efi_boot_memmap) + sizeof(efi_memory_desc_t) * memmap_entries, 64 * KiB); - init_efi_initrd_table(systab, p, start); + init_efi_initrd_table(info, systab, p, start); p += ROUND_UP(sizeof(struct efi_initrd), 64 * KiB); init_efi_fdt_table(systab); @@ -237,8 +235,8 @@ static int64_t load_loongarch_linux_image(const char *filename, static int64_t load_kernel_info(struct loongarch_boot_info *info) { - uint64_t kernel_entry, kernel_low, kernel_high; - ssize_t kernel_size; + uint64_t kernel_entry, kernel_low, kernel_high, initrd_offset = 0; + ssize_t kernel_size, initrd_size; kernel_size = load_elf(info->kernel_filename, NULL, cpu_loongarch_virt_to_phys, NULL, @@ -278,8 +276,9 @@ static int64_t load_kernel_info(struct loongarch_boot_info *info) info->initrd_filename); exit(1); } - } else { - initrd_size = 0; + + info->initrd_addr = initrd_offset; + info->initrd_size = initrd_size; } return kernel_entry; diff --git a/include/hw/loongarch/boot.h b/include/hw/loongarch/boot.h index b3b870df1f..27399de99c 100644 --- a/include/hw/loongarch/boot.h +++ b/include/hw/loongarch/boot.h @@ -102,6 +102,8 @@ struct loongarch_boot_info { const char *kernel_cmdline; const char *initrd_filename; uint64_t a0, a1, a2; + uint64_t initrd_addr; + uint64_t initrd_size; }; extern struct memmap_entry *memmap_table; -- 2.39.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] hw/loongarch/virt: Remove global variables about initrd 2025-04-30 9:47 ` [PATCH 1/2] hw/loongarch/virt: Remove global variables about initrd Bibo Mao @ 2025-04-30 12:32 ` Philippe Mathieu-Daudé 0 siblings, 0 replies; 5+ messages in thread From: Philippe Mathieu-Daudé @ 2025-04-30 12:32 UTC (permalink / raw) To: Bibo Mao, Song Gao; +Cc: Jiaxun Yang, qemu-devel On 30/4/25 11:47, Bibo Mao wrote: > Global variables initrd_offset and initrd_size records loading information > about initrd, it can be moved to structure loongarch_boot_info. > > Signed-off-by: Bibo Mao <maobibo@loongson.cn> > --- > hw/loongarch/boot.c | 21 ++++++++++----------- > include/hw/loongarch/boot.h | 2 ++ > 2 files changed, 12 insertions(+), 11 deletions(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] hw/loongarch/virt: Remove global variables about memmap tables 2025-04-30 9:47 [PATCH 0/2] Remove some global variables Bibo Mao 2025-04-30 9:47 ` [PATCH 1/2] hw/loongarch/virt: Remove global variables about initrd Bibo Mao @ 2025-04-30 9:47 ` Bibo Mao 2025-05-23 8:53 ` gaosong 1 sibling, 1 reply; 5+ messages in thread From: Bibo Mao @ 2025-04-30 9:47 UTC (permalink / raw) To: Song Gao; +Cc: Jiaxun Yang, qemu-devel Global variables memmap_table and memmap_entries stores UEFI memory map table informations. It can be moved into structure LoongArchVirtMachineState. Signed-off-by: Bibo Mao <maobibo@loongson.cn> --- hw/loongarch/boot.c | 31 +++++++++++++++++++------------ hw/loongarch/virt.c | 23 ++++++++++++++++------- include/hw/loongarch/boot.h | 3 --- include/hw/loongarch/virt.h | 2 ++ 4 files changed, 37 insertions(+), 22 deletions(-) diff --git a/hw/loongarch/boot.c b/hw/loongarch/boot.c index 44d537d987..86435caa5e 100644 --- a/hw/loongarch/boot.c +++ b/hw/loongarch/boot.c @@ -35,9 +35,6 @@ struct loongarch_linux_hdr { uint32_t pe_header_offset; } QEMU_PACKED; -struct memmap_entry *memmap_table; -unsigned memmap_entries; - static const unsigned int slave_boot_code[] = { /* Configure reset ebase. */ 0x0400302c, /* csrwr $t0, LOONGARCH_CSR_EENTRY */ @@ -91,12 +88,16 @@ static inline void *guidcpy(void *dst, const void *src) return memcpy(dst, src, sizeof(efi_guid_t)); } -static void init_efi_boot_memmap(struct efi_system_table *systab, +static void init_efi_boot_memmap(MachineState *ms, + struct efi_system_table *systab, void *p, void *start) { unsigned i; struct efi_boot_memmap *boot_memmap = p; efi_guid_t tbl_guid = LINUX_EFI_BOOT_MEMMAP_GUID; + LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(ms); + struct memmap_entry *memmap_table; + unsigned int memmap_entries; /* efi_configuration_table 1 */ guidcpy(&systab->tables[0].guid, &tbl_guid); @@ -108,6 +109,8 @@ static void init_efi_boot_memmap(struct efi_system_table *systab, boot_memmap->map_size = 0; efi_memory_desc_t *map = p + sizeof(struct efi_boot_memmap); + memmap_table = lvms->memmap_table; + memmap_entries = lvms->memmap_entries; for (i = 0; i < memmap_entries; i++) { map = (void *)boot_memmap + sizeof(*map); map[i].type = memmap_table[i].type; @@ -144,10 +147,12 @@ static void init_efi_fdt_table(struct efi_system_table *systab) systab->nr_tables = 3; } -static void init_systab(struct loongarch_boot_info *info, void *p, void *start) +static void init_systab(MachineState *ms, + struct loongarch_boot_info *info, void *p, void *start) { void *bp_tables_start; struct efi_system_table *systab = p; + LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(ms); info->a2 = p - start; @@ -164,9 +169,9 @@ static void init_systab(struct loongarch_boot_info *info, void *p, void *start) systab->tables = p; bp_tables_start = p; - init_efi_boot_memmap(systab, p, start); + init_efi_boot_memmap(ms, systab, p, start); p += ROUND_UP(sizeof(struct efi_boot_memmap) + - sizeof(efi_memory_desc_t) * memmap_entries, 64 * KiB); + sizeof(efi_memory_desc_t) * lvms->memmap_entries, 64 * KiB); init_efi_initrd_table(info, systab, p, start); p += ROUND_UP(sizeof(struct efi_initrd), 64 * KiB); init_efi_fdt_table(systab); @@ -333,17 +338,19 @@ static void loongarch_firmware_boot(LoongArchVirtMachineState *lvms, fw_cfg_add_kernel_info(info, lvms->fw_cfg); } -static void init_boot_rom(struct loongarch_boot_info *info, void *p) +static void init_boot_rom(MachineState *ms, + struct loongarch_boot_info *info, void *p) { void *start = p; init_cmdline(info, p, start); p += COMMAND_LINE_SIZE; - init_systab(info, p, start); + init_systab(ms, info, p, start); } -static void loongarch_direct_kernel_boot(struct loongarch_boot_info *info) +static void loongarch_direct_kernel_boot(MachineState *ms, + struct loongarch_boot_info *info) { void *p, *bp; int64_t kernel_addr = VIRT_FLASH0_BASE; @@ -361,7 +368,7 @@ static void loongarch_direct_kernel_boot(struct loongarch_boot_info *info) /* Load cmdline and system tables at [0 - 1 MiB] */ p = g_malloc0(1 * MiB); bp = p; - init_boot_rom(info, p); + init_boot_rom(ms, info, p); rom_add_blob_fixed_as("boot_info", bp, 1 * MiB, 0, &address_space_memory); /* Load slave boot code at pflash0 . */ @@ -401,6 +408,6 @@ void loongarch_load_kernel(MachineState *ms, struct loongarch_boot_info *info) if (lvms->bios_loaded) { loongarch_firmware_boot(lvms, info); } else { - loongarch_direct_kernel_boot(info); + loongarch_direct_kernel_boot(ms, info); } } diff --git a/hw/loongarch/virt.c b/hw/loongarch/virt.c index 779544fada..601e7c6bd3 100644 --- a/hw/loongarch/virt.c +++ b/hw/loongarch/virt.c @@ -168,8 +168,15 @@ static void virt_powerdown_req(Notifier *notifier, void *opaque) acpi_send_event(s->acpi_ged, ACPI_POWER_DOWN_STATUS); } -static void memmap_add_entry(uint64_t address, uint64_t length, uint32_t type) +static void memmap_add_entry(MachineState *ms, uint64_t address, + uint64_t length, uint32_t type) { + LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(ms); + struct memmap_entry *memmap_table; + unsigned int memmap_entries; + + memmap_table = lvms->memmap_table; + memmap_entries = lvms->memmap_entries; /* Ensure there are no duplicate entries. */ for (unsigned i = 0; i < memmap_entries; i++) { assert(memmap_table[i].address != address); @@ -182,6 +189,8 @@ static void memmap_add_entry(uint64_t address, uint64_t length, uint32_t type) memmap_table[memmap_entries].type = cpu_to_le32(type); memmap_table[memmap_entries].reserved = 0; memmap_entries++; + lvms->memmap_table = memmap_table; + lvms->memmap_entries = memmap_entries; } static DeviceState *create_acpi_ged(DeviceState *pch_pic, @@ -625,13 +634,13 @@ static void fw_cfg_add_memory(MachineState *ms) } if (size >= gap) { - memmap_add_entry(base, gap, 1); + memmap_add_entry(ms, base, gap, 1); size -= gap; base = VIRT_HIGHMEM_BASE; } if (size) { - memmap_add_entry(base, size, 1); + memmap_add_entry(ms, base, size, 1); base += size; } @@ -646,7 +655,7 @@ static void fw_cfg_add_memory(MachineState *ms) * lowram: [base, +(gap - numa_info[0].node_mem)) * highram: [VIRT_HIGHMEM_BASE, +(ram_size - gap)) */ - memmap_add_entry(base, gap - numa_info[0].node_mem, 1); + memmap_add_entry(ms, base, gap - numa_info[0].node_mem, 1); size = ram_size - gap; base = VIRT_HIGHMEM_BASE; } else { @@ -654,7 +663,7 @@ static void fw_cfg_add_memory(MachineState *ms) } if (size) { - memmap_add_entry(base, size, 1); + memmap_add_entry(ms, base, size, 1); } } @@ -740,8 +749,8 @@ static void virt_init(MachineState *machine) rom_set_fw(lvms->fw_cfg); if (lvms->fw_cfg != NULL) { fw_cfg_add_file(lvms->fw_cfg, "etc/memmap", - memmap_table, - sizeof(struct memmap_entry) * (memmap_entries)); + lvms->memmap_table, + sizeof(struct memmap_entry) * lvms->memmap_entries); } /* Initialize the IO interrupt subsystem */ diff --git a/include/hw/loongarch/boot.h b/include/hw/loongarch/boot.h index 27399de99c..9819f7fbe3 100644 --- a/include/hw/loongarch/boot.h +++ b/include/hw/loongarch/boot.h @@ -106,9 +106,6 @@ struct loongarch_boot_info { uint64_t initrd_size; }; -extern struct memmap_entry *memmap_table; -extern unsigned memmap_entries; - struct memmap_entry { uint64_t address; uint64_t length; diff --git a/include/hw/loongarch/virt.h b/include/hw/loongarch/virt.h index 2b7d19953f..602feab0f0 100644 --- a/include/hw/loongarch/virt.h +++ b/include/hw/loongarch/virt.h @@ -63,6 +63,8 @@ struct LoongArchVirtMachineState { struct loongarch_boot_info bootinfo; DeviceState *ipi; DeviceState *extioi; + struct memmap_entry *memmap_table; + unsigned int memmap_entries; }; #define TYPE_LOONGARCH_VIRT_MACHINE MACHINE_TYPE_NAME("virt") -- 2.39.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] hw/loongarch/virt: Remove global variables about memmap tables 2025-04-30 9:47 ` [PATCH 2/2] hw/loongarch/virt: Remove global variables about memmap tables Bibo Mao @ 2025-05-23 8:53 ` gaosong 0 siblings, 0 replies; 5+ messages in thread From: gaosong @ 2025-05-23 8:53 UTC (permalink / raw) To: Bibo Mao; +Cc: Jiaxun Yang, qemu-devel 在 2025/4/30 下午5:47, Bibo Mao 写道: > Global variables memmap_table and memmap_entries stores UEFI memory > map table informations. It can be moved into structure > LoongArchVirtMachineState. > > Signed-off-by: Bibo Mao <maobibo@loongson.cn> > --- > hw/loongarch/boot.c | 31 +++++++++++++++++++------------ > hw/loongarch/virt.c | 23 ++++++++++++++++------- > include/hw/loongarch/boot.h | 3 --- > include/hw/loongarch/virt.h | 2 ++ > 4 files changed, 37 insertions(+), 22 deletions(-) Reviewed-by: Song Gao <gaosong@loongson.cn> Thanks. Song Gao > diff --git a/hw/loongarch/boot.c b/hw/loongarch/boot.c > index 44d537d987..86435caa5e 100644 > --- a/hw/loongarch/boot.c > +++ b/hw/loongarch/boot.c > @@ -35,9 +35,6 @@ struct loongarch_linux_hdr { > uint32_t pe_header_offset; > } QEMU_PACKED; > > -struct memmap_entry *memmap_table; > -unsigned memmap_entries; > - > static const unsigned int slave_boot_code[] = { > /* Configure reset ebase. */ > 0x0400302c, /* csrwr $t0, LOONGARCH_CSR_EENTRY */ > @@ -91,12 +88,16 @@ static inline void *guidcpy(void *dst, const void *src) > return memcpy(dst, src, sizeof(efi_guid_t)); > } > > -static void init_efi_boot_memmap(struct efi_system_table *systab, > +static void init_efi_boot_memmap(MachineState *ms, > + struct efi_system_table *systab, > void *p, void *start) > { > unsigned i; > struct efi_boot_memmap *boot_memmap = p; > efi_guid_t tbl_guid = LINUX_EFI_BOOT_MEMMAP_GUID; > + LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(ms); > + struct memmap_entry *memmap_table; > + unsigned int memmap_entries; > > /* efi_configuration_table 1 */ > guidcpy(&systab->tables[0].guid, &tbl_guid); > @@ -108,6 +109,8 @@ static void init_efi_boot_memmap(struct efi_system_table *systab, > boot_memmap->map_size = 0; > > efi_memory_desc_t *map = p + sizeof(struct efi_boot_memmap); > + memmap_table = lvms->memmap_table; > + memmap_entries = lvms->memmap_entries; > for (i = 0; i < memmap_entries; i++) { > map = (void *)boot_memmap + sizeof(*map); > map[i].type = memmap_table[i].type; > @@ -144,10 +147,12 @@ static void init_efi_fdt_table(struct efi_system_table *systab) > systab->nr_tables = 3; > } > > -static void init_systab(struct loongarch_boot_info *info, void *p, void *start) > +static void init_systab(MachineState *ms, > + struct loongarch_boot_info *info, void *p, void *start) > { > void *bp_tables_start; > struct efi_system_table *systab = p; > + LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(ms); > > info->a2 = p - start; > > @@ -164,9 +169,9 @@ static void init_systab(struct loongarch_boot_info *info, void *p, void *start) > systab->tables = p; > bp_tables_start = p; > > - init_efi_boot_memmap(systab, p, start); > + init_efi_boot_memmap(ms, systab, p, start); > p += ROUND_UP(sizeof(struct efi_boot_memmap) + > - sizeof(efi_memory_desc_t) * memmap_entries, 64 * KiB); > + sizeof(efi_memory_desc_t) * lvms->memmap_entries, 64 * KiB); > init_efi_initrd_table(info, systab, p, start); > p += ROUND_UP(sizeof(struct efi_initrd), 64 * KiB); > init_efi_fdt_table(systab); > @@ -333,17 +338,19 @@ static void loongarch_firmware_boot(LoongArchVirtMachineState *lvms, > fw_cfg_add_kernel_info(info, lvms->fw_cfg); > } > > -static void init_boot_rom(struct loongarch_boot_info *info, void *p) > +static void init_boot_rom(MachineState *ms, > + struct loongarch_boot_info *info, void *p) > { > void *start = p; > > init_cmdline(info, p, start); > p += COMMAND_LINE_SIZE; > > - init_systab(info, p, start); > + init_systab(ms, info, p, start); > } > > -static void loongarch_direct_kernel_boot(struct loongarch_boot_info *info) > +static void loongarch_direct_kernel_boot(MachineState *ms, > + struct loongarch_boot_info *info) > { > void *p, *bp; > int64_t kernel_addr = VIRT_FLASH0_BASE; > @@ -361,7 +368,7 @@ static void loongarch_direct_kernel_boot(struct loongarch_boot_info *info) > /* Load cmdline and system tables at [0 - 1 MiB] */ > p = g_malloc0(1 * MiB); > bp = p; > - init_boot_rom(info, p); > + init_boot_rom(ms, info, p); > rom_add_blob_fixed_as("boot_info", bp, 1 * MiB, 0, &address_space_memory); > > /* Load slave boot code at pflash0 . */ > @@ -401,6 +408,6 @@ void loongarch_load_kernel(MachineState *ms, struct loongarch_boot_info *info) > if (lvms->bios_loaded) { > loongarch_firmware_boot(lvms, info); > } else { > - loongarch_direct_kernel_boot(info); > + loongarch_direct_kernel_boot(ms, info); > } > } > diff --git a/hw/loongarch/virt.c b/hw/loongarch/virt.c > index 779544fada..601e7c6bd3 100644 > --- a/hw/loongarch/virt.c > +++ b/hw/loongarch/virt.c > @@ -168,8 +168,15 @@ static void virt_powerdown_req(Notifier *notifier, void *opaque) > acpi_send_event(s->acpi_ged, ACPI_POWER_DOWN_STATUS); > } > > -static void memmap_add_entry(uint64_t address, uint64_t length, uint32_t type) > +static void memmap_add_entry(MachineState *ms, uint64_t address, > + uint64_t length, uint32_t type) > { > + LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(ms); > + struct memmap_entry *memmap_table; > + unsigned int memmap_entries; > + > + memmap_table = lvms->memmap_table; > + memmap_entries = lvms->memmap_entries; > /* Ensure there are no duplicate entries. */ > for (unsigned i = 0; i < memmap_entries; i++) { > assert(memmap_table[i].address != address); > @@ -182,6 +189,8 @@ static void memmap_add_entry(uint64_t address, uint64_t length, uint32_t type) > memmap_table[memmap_entries].type = cpu_to_le32(type); > memmap_table[memmap_entries].reserved = 0; > memmap_entries++; > + lvms->memmap_table = memmap_table; > + lvms->memmap_entries = memmap_entries; > } > > static DeviceState *create_acpi_ged(DeviceState *pch_pic, > @@ -625,13 +634,13 @@ static void fw_cfg_add_memory(MachineState *ms) > } > > if (size >= gap) { > - memmap_add_entry(base, gap, 1); > + memmap_add_entry(ms, base, gap, 1); > size -= gap; > base = VIRT_HIGHMEM_BASE; > } > > if (size) { > - memmap_add_entry(base, size, 1); > + memmap_add_entry(ms, base, size, 1); > base += size; > } > > @@ -646,7 +655,7 @@ static void fw_cfg_add_memory(MachineState *ms) > * lowram: [base, +(gap - numa_info[0].node_mem)) > * highram: [VIRT_HIGHMEM_BASE, +(ram_size - gap)) > */ > - memmap_add_entry(base, gap - numa_info[0].node_mem, 1); > + memmap_add_entry(ms, base, gap - numa_info[0].node_mem, 1); > size = ram_size - gap; > base = VIRT_HIGHMEM_BASE; > } else { > @@ -654,7 +663,7 @@ static void fw_cfg_add_memory(MachineState *ms) > } > > if (size) { > - memmap_add_entry(base, size, 1); > + memmap_add_entry(ms, base, size, 1); > } > } > > @@ -740,8 +749,8 @@ static void virt_init(MachineState *machine) > rom_set_fw(lvms->fw_cfg); > if (lvms->fw_cfg != NULL) { > fw_cfg_add_file(lvms->fw_cfg, "etc/memmap", > - memmap_table, > - sizeof(struct memmap_entry) * (memmap_entries)); > + lvms->memmap_table, > + sizeof(struct memmap_entry) * lvms->memmap_entries); > } > > /* Initialize the IO interrupt subsystem */ > diff --git a/include/hw/loongarch/boot.h b/include/hw/loongarch/boot.h > index 27399de99c..9819f7fbe3 100644 > --- a/include/hw/loongarch/boot.h > +++ b/include/hw/loongarch/boot.h > @@ -106,9 +106,6 @@ struct loongarch_boot_info { > uint64_t initrd_size; > }; > > -extern struct memmap_entry *memmap_table; > -extern unsigned memmap_entries; > - > struct memmap_entry { > uint64_t address; > uint64_t length; > diff --git a/include/hw/loongarch/virt.h b/include/hw/loongarch/virt.h > index 2b7d19953f..602feab0f0 100644 > --- a/include/hw/loongarch/virt.h > +++ b/include/hw/loongarch/virt.h > @@ -63,6 +63,8 @@ struct LoongArchVirtMachineState { > struct loongarch_boot_info bootinfo; > DeviceState *ipi; > DeviceState *extioi; > + struct memmap_entry *memmap_table; > + unsigned int memmap_entries; > }; > > #define TYPE_LOONGARCH_VIRT_MACHINE MACHINE_TYPE_NAME("virt") ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-05-23 8:52 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-04-30 9:47 [PATCH 0/2] Remove some global variables Bibo Mao 2025-04-30 9:47 ` [PATCH 1/2] hw/loongarch/virt: Remove global variables about initrd Bibo Mao 2025-04-30 12:32 ` Philippe Mathieu-Daudé 2025-04-30 9:47 ` [PATCH 2/2] hw/loongarch/virt: Remove global variables about memmap tables Bibo Mao 2025-05-23 8:53 ` gaosong
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).