grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: multiboot_mmap_entry.zero isn't zero


From: Wink Saville
Subject: Re: multiboot_mmap_entry.zero isn't zero
Date: Sun, 14 Feb 2016 03:24:39 -0800

I'm using multiboot2 and I see a zero field in grub/include/multiboot2.h:

struct multiboot_mmap_entry
{
  multiboot_uint64_t addr;
  multiboot_uint64_t len;
#define MULTIBOOT_MEMORY_AVAILABLE 1
#define MULTIBOOT_MEMORY_RESERVED 2
#define MULTIBOOT_MEMORY_ACPI_RECLAIMABLE       3
#define MULTIBOOT_MEMORY_NVS                    4
#define MULTIBOOT_MEMORY_BADRAM                 5
  multiboot_uint32_t type;
  multiboot_uint32_t zero;
} GRUB_PACKED;
typedef struct multiboot_mmap_entry multiboot_memory_map_t;


Although in grub/include/multiboot.h it does not exist:

struct multiboot_mmap_entry
{
  multiboot_uint32_t size;
  multiboot_uint64_t addr;
  multiboot_uint64_t len;
#define MULTIBOOT_MEMORY_AVAILABLE 1
#define MULTIBOOT_MEMORY_RESERVED 2
#define MULTIBOOT_MEMORY_ACPI_RECLAIMABLE       3
#define MULTIBOOT_MEMORY_NVS                    4
#define MULTIBOOT_MEMORY_BADRAM                 5
  multiboot_uint32_t type;
} GRUB_PACKED;
typedef struct multiboot_mmap_entry multiboot_memory_map_t;


On Sat, Feb 13, 2016 at 11:12 PM, Andrei Borzenkov <address@hidden> wrote:
> 14.02.2016 00:20, Wink Saville пишет:
>> I'm processing multiboot_tag_mmap and the multiboot_mmap_entry.zero
>> isn't zero. As best as I can tell grub isn't initializing it. Here is
>> the code from grub-core/loader/i386/multiboot_mbi.c:
>>
>> /* Helper for grub_fill_multiboot_mmap.  */
>> static int
>> grub_fill_multiboot_mmap_iter (grub_uint64_t addr, grub_uint64_t size,
>>        grub_memory_type_t type, void *data)
>> {
>>   struct multiboot_mmap_entry **mmap_entry = data;
>>
>>   (*mmap_entry)->addr = addr;
>>   (*mmap_entry)->len = size;
>>   (*mmap_entry)->type = type;
>>   (*mmap_entry)->size = sizeof (struct multiboot_mmap_entry) - sizeof
>> ((*mmap_entry)->size);
>>   (*mmap_entry)++;
>>
>>   return 0;
>> }
>>
>> And similar code in grub-core/loader/multiboot_mbi2.c:
>>
>> /* Helper for grub_fill_multiboot_mmap.  */
>> static int
>> grub_fill_multiboot_mmap_iter (grub_uint64_t addr, grub_uint64_t size,
>>        grub_memory_type_t type, void *data)
>> {
>>   struct multiboot_mmap_entry **mmap_entry = data;
>>
>>   (*mmap_entry)->addr = addr;
>>   (*mmap_entry)->len = size;
>>   (*mmap_entry)->type = type;
>>   (*mmap_entry)++;
>>
>>   return 0;
>> }
>>
>> And I'd expect to see:
>>
>> (*mmap_entry)->zero = 0;
>>
>> Is there a reason its not being zeroed?
>>
>
> Because it does not exist?
>
>
> _______________________________________________
> Grub-devel mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/grub-devel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]