Ok!

Mike Kelly, le sam. 26 sept. 2026 23:28:43 +0100, a ecrit:
> ---
>  i386/i386at/model_dep.c | 44 +++++++++++++++++++++++++++++++++++++++--
>  1 file changed, 42 insertions(+), 2 deletions(-)
> 
> diff --git a/i386/i386at/model_dep.c b/i386/i386at/model_dep.c
> index 6c2d1883..b28a3b5f 100644
> --- a/i386/i386at/model_dep.c
> +++ b/i386/i386at/model_dep.c
> @@ -384,8 +384,48 @@ register_mb1_boot_data(const struct multiboot_raw_info 
> *mbi)
>  static void
>  register_mb2_boot_data(const struct multiboot2_raw_info *mb2_info)
>  {
> -  /* To be implemented. */
> -  (void)mb2_info;
> +  uint32_t tags_len = mb2_info->total_size;
> +  uint32_t offset = 0;
> +
> +  /* Temporarily preserve the multiboot2 information structure. */
> +  const phys_addr_t mb2_phys = _kvtophys(mb2_info);
> +  biosmem_register_boot_data(mb2_phys, mb2_phys + tags_len, TRUE);
> +
> +  tags_len -= offsetof(struct multiboot2_raw_info, content);
> +
> +  while (offset < tags_len)
> +    {
> +      const struct multiboot2_tag *tag =
> +     (const struct multiboot2_tag *)(&mb2_info->content[offset]);
> +
> +      switch (tag->type)
> +     {
> +     case MULTIBOOT2_TAG_TYPE_ELF_SECTIONS:
> +       {
> +         const struct multiboot2_tag_elf_sections *elf_tag =
> +           (const struct multiboot2_tag_elf_sections *)tag;
> +
> +         register_elf_shdrs_boot_data(&elf_tag->sections,
> +                                      elf_tag->num,
> +                                      elf_tag->entsize);
> +       }
> +       break;
> +
> +     case MULTIBOOT2_TAG_TYPE_MODULE:
> +       {
> +         const struct multiboot2_tag_module *mod_tag =
> +           (const struct multiboot2_tag_module *)tag;
> +
> +         biosmem_register_boot_data(mod_tag->mod_start, mod_tag->mod_end, 
> TRUE);
> +       }
> +       break;
> +
> +     default:
> +       break;
> +     }
> +
> +      offset += MULTIBOOT2_NEXT_TAG_OFFSET(tag->size);
> +    }
>  }
>  
>  /* Register the boot data for whichever of multiboot1 or multiboot2 is
> -- 
> 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... -+-

Reply via email to