Damien Zammit, le sam. 12 févr. 2022 22:01:01 +0000, a ecrit:
> @@ -263,8 +263,8 @@ biosmem_map_build(const struct multiboot_raw_info *mbi)
>      end = entry + BIOSMEM_MAX_MAP_SIZE;
> 
>      while ((mb_entry < mb_end) && (entry < end)) {
> -        entry->base_addr = mb_entry->base_addr;
> +        entry->base_addr = vm_page_trunc (mb_entry->base_addr);

> -        entry->length = mb_entry->length;
> +        entry->length = vm_page_trunc (entry->base_addr + mb_entry->length) 
> - entry->base_addr;


This looks bogus, when base_addr is truncated,
entry->base_addr+mb_entry->length becomes rather meaningless.


Also, we want to use different roundings depending on the type of
biosmem entries: shrinking "available" entries, expanding "reserved"
entries. You can get inspiration from mini-os:

http://xenbits.xen.org/gitweb/?p=mini-os.git;a=blobdiff;f=e820.c;h=70286cb8094704bbee34aed7165f6d3336937422;hp=216528033ba2216be26ea084055faff24b4b0243;hb=8886c987d36960df8918517efcb014b453e168b1;hpb=bcdc9f77805812d0fcf594a90a2306a850deb705

Samuel

Reply via email to