Ok!
Mike Kelly, le sam. 26 sept. 2026 23:28:42 +0100, a ecrit:
> ---
> i386/i386at/model_dep.c | 32 +++++++++++++++++++++-----------
> 1 file changed, 21 insertions(+), 11 deletions(-)
>
> diff --git a/i386/i386at/model_dep.c b/i386/i386at/model_dep.c
> index 8b5b8b0d..6c2d1883 100644
> --- a/i386/i386at/model_dep.c
> +++ b/i386/i386at/model_dep.c
> @@ -313,11 +313,30 @@ void db_reset_cpu(void)
>
> #ifndef MACH_HYP
>
> +static void
> +register_elf_shdrs_boot_data(const void *shdrs_addr,
> + uint32_t shdr_num,
> + uint32_t shdr_size)
> +{
> + for (unsigned int i = 0; i < shdr_num; i++)
> + {
> + struct elf_shdr *shdr;
> +
> + shdr = (struct elf_shdr *)(shdrs_addr + (i * shdr_size));
> +
> + if ((shdr->type != ELF_SHT_SYMTAB)
> + && (shdr->type != ELF_SHT_STRTAB))
> + continue;
> +
> + if (shdr->size != 0)
> + biosmem_register_boot_data(shdr->addr, shdr->addr + shdr->size,
> FALSE);
> + }
> +}
> +
> static void
> register_mb1_boot_data(const struct multiboot_raw_info *mbi)
> {
> struct multiboot_raw_module *mod;
> - struct elf_shdr *shdr;
> unsigned long tmp;
> unsigned int i;
>
> @@ -356,16 +375,7 @@ register_mb1_boot_data(const struct multiboot_raw_info
> *mbi)
>
> tmp = phystokv(mbi->shdr_addr);
>
> - for (i = 0; i < mbi->shdr_num; i++) {
> - shdr = (struct elf_shdr *)(tmp + (i * mbi->shdr_size));
> -
> - if ((shdr->type != ELF_SHT_SYMTAB)
> - && (shdr->type != ELF_SHT_STRTAB))
> - continue;
> -
> - if (shdr->size != 0)
> - biosmem_register_boot_data(shdr->addr,
> shdr->addr + shdr->size, FALSE);
> - }
> + register_elf_shdrs_boot_data((const void*)tmp, mbi->shdr_num,
> mbi->shdr_size);
> }
>
> mbinfo_register_boot_data(mbi);
> --
> 2.47.3
>
>
--
Samuel
j'etais en train de nettoyer ma souris et le coup est parti...
-+- s sur #ens-mim - et en plus c vrai... -+-