Enum multiboot2::TagType
source · pub enum TagType {
Show 23 variants
End,
Cmdline,
BootLoaderName,
Module,
BasicMeminfo,
Bootdev,
Mmap,
Vbe,
Framebuffer,
ElfSections,
Apm,
Efi32,
Efi64,
Smbios,
AcpiV1,
AcpiV2,
Network,
EfiMmap,
EfiBs,
Efi32Ih,
Efi64Ih,
LoadBaseAddr,
Custom(u32),
}
Expand description
Higher level abstraction for TagTypeId
that assigns each possible value
to a specific semantic according to the specification. Additionally, it
allows to use the TagType::Custom
variant. It is not binary compatible
with TagTypeId
.
Variants§
End
Tag 0
: Marks the end of the tags.
Cmdline
Tag 1
: Additional command line string.
For example ''
or '--my-custom-option foo --provided by_grub
, if
your GRUB config contains multiboot2 /boot/multiboot2-binary.elf --my-custom-option foo --provided by_grub
BootLoaderName
Tag 2
: Name of the bootloader, e.g. ‘GRUB 2.04-1ubuntu44.2’
Module
Tag 3
: Additional Multiboot modules, which are BLOBs provided in
memory. For example an initial ram disk with essential drivers.
BasicMeminfo
Tag 4
: ‘mem_lower’ and ‘mem_upper’ indicate the amount of lower and
upper memory, respectively, in kilobytes. Lower memory starts at
address 0, and upper memory starts at address 1 megabyte. The maximum
possible value for lower memory is 640 kilobytes. The value returned
for upper memory is maximally the address of the first upper memory
hole minus 1 megabyte. It is not guaranteed to be this value.
This tag may not be provided by some boot loaders on EFI platforms if EFI boot services are enabled and available for the loaded image (EFI boot services not terminated tag exists in Multiboot2 information structure).
Bootdev
Tag 5
: This tag indicates which BIOS disk device the boot loader
loaded the OS image from. If the OS image was not loaded from a BIOS
disk, then this tag must not be present. The operating system may use
this field as a hint for determining its own root device, but is not
required to.
Mmap
Tag 6
: Memory map. The map provided is guaranteed to list all
standard RAM that should be available for normal use. This type however
includes the regions occupied by kernel, mbi, segments and modules.
Kernel must take care not to overwrite these regions.
This tag may not be provided by some boot loaders on EFI platforms if EFI boot services are enabled and available for the loaded image (EFI boot services not terminated tag exists in Multiboot2 information structure).
Vbe
Tag 7
: Contains the VBE control information returned by the VBE
Function 0x00
and VBE mode information returned by the VBE Function
0x01
, respectively. Note that VBE 3.0 defines another protected mode
interface which is incompatible with the old one. If you want to use
the new protected mode interface, you will have to find the table
yourself.
Framebuffer
Tag 8
: Framebuffer.
ElfSections
Tag 9
: This tag contains section header table from an ELF kernel, the
size of each entry, number of entries, and the string table used as the
index of names. They correspond to the shdr_*
entries (shdr_num
,
etc.) in the Executable and Linkable Format (ELF) specification in the
program header.
Apm
Tag 10
: APM table. See Advanced Power Management (APM) BIOS Interface
Specification, for more information.
Efi32
Tag 11
: This tag contains pointer to i386 EFI system table.
Efi64
Tag 21
: This tag contains pointer to amd64 EFI system table.
Smbios
Tag 13
: This tag contains a copy of SMBIOS tables as well as their
version.
AcpiV1
Tag 14
: Also called “AcpiOld” in other multiboot2 implementations.
AcpiV2
Tag 15
: Refers to version 2 and later of Acpi.
Also called “AcpiNew” in other multiboot2 implementations.
Network
Tag 16
: This tag contains network information in the format specified
as DHCP. It may be either a real DHCP reply or just the configuration
info in the same format. This tag appears once
per card.
EfiMmap
Tag 17
: This tag contains EFI memory map as per EFI specification.
This tag may not be provided by some boot loaders on EFI platforms if
EFI boot services are enabled and available for the loaded image (EFI
boot services not terminated tag exists in Multiboot2 information
structure).
EfiBs
Tag 18
: This tag indicates ExitBootServices wasn’t called.
Efi32Ih
Tag 19
: This tag contains pointer to EFI i386 image handle. Usually
it is boot loader image handle.
Efi64Ih
Tag 20
: This tag contains pointer to EFI amd64 image handle. Usually
it is boot loader image handle.
LoadBaseAddr
Tag 21
: This tag contains image load base physical address. The spec
tells “It is provided only if image has relocatable header tag.” but
experience showed that this is not true for at least GRUB 2.
Custom(u32)
Custom tag types > 21
. The Multiboot2 spec doesn’t explicitly allow
or disallow them. Bootloader and OS developers are free to use custom
tags.
Implementations§
Trait Implementations§
source§impl Ord for TagType
impl Ord for TagType
source§impl PartialEq<TagType> for TagTypeId
impl PartialEq<TagType> for TagTypeId
source§impl PartialEq<TagType> for u32
impl PartialEq<TagType> for u32
source§impl PartialEq<TagTypeId> for TagType
impl PartialEq<TagTypeId> for TagType
source§impl PartialEq for TagType
impl PartialEq for TagType
source§impl PartialOrd for TagType
impl PartialOrd for TagType
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more