Quoting the Multiboot2 specification:

> 3.1.3 General tag structure
> ---------------------------
> 
> Tags constitutes a buffer of structures following each other padded
> when necessary in order for each tag to start at 8-bytes aligned
> address. Tags are terminated by a tag of type '0' and size '8'.
> Every structure has following format:
>
>             +-------------------+
>     u16     | type              |
>     u16     | flags             |
>     u32     | size              |
>             +-------------------+
>
>   'type' is divided into 2 parts.  Lower contains an identifier of
> contents of the rest of the tag.  'size' contains the size of tag
> including header fields.  If bit '0' of 'flags' (also known as
> 'optional') is set, the bootloader may ignore this tag if it lacks
> relevant support.  Tags are terminated by a tag of type '0' and size
> '8'.

How is 'type' divided into two parts? The rest of the MB2 specification
only defines some constants in the range of 0 to about 0x10 as values
for 'type', but there is no mention of upper or lower parts at all.

(And if there were, I would expect u8 fields for type and whatever the
upper is supposed to be.)

I suspect the phrasing with parts and lower is a remnant of a previous
iteration, and 'type' is just meant to be a 16 bit integer constant.

Does anyone have any insights into this?

Uli

_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to