[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: multiboot2 structs and packed attribute
From: |
Daniel Kiper |
Subject: |
Re: multiboot2 structs and packed attribute |
Date: |
Tue, 8 Mar 2016 21:07:03 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Mon, Mar 07, 2016 at 08:42:38PM +0000, Vladimir 'phcoder' Serbinenko wrote:
> Le lun. 7 mars 2016 14:35, Daniel Kiper <address@hidden> a écrit :
>
> > Hi,
> >
> > Does anybody know why only multiboot2 multiboot_mmap_entry struct
> > has packed attribute? Is it by design or by mistake? I think that
> > we should use packed attribute for every multiboot2 protocol related
> > struct. If not then we should probably remove this attribute from
> > multiboot_mmap_entry struct too. What do you think about that?
> >
> We put packed only when it changes relative offsets of members or size of
> the structure. Is it the case for structures you have in mind?
I do not have anything specific. However, it looks like stray stuff.
Hmmm... I took a look at multiboot_mmap_entry once again and it seems
that this struct really does not need packed attribute. All members are
in right order and even compiler should not add padding. Am I right?
Anyway, maybe we should add somewhere in the header comment saying that
all/most of multiboot2 structures are build in a way that fulfill alignment
requirements out of the box and compiler does not need to do any rearrangements.
However, we should warn that new extensions should be added carefully and
some structs may require GRUB_PACKED attribute in the future to properly
represent added interface.
Or we can add GRUB_PACKED to every struct. However, this seems redundant here.
There is no chance that somebody will rearrange, especially blindly, existing
structs.
Daniel