multiboot2
InformationBuilder::default()
Tag::get_dst_str_slice
renamed to
Tag::parse_slice_as_string
and now returns Result<&str, StringError>
BootLoaderNameTag::name
now returns Result<&str, StringError>
CommandLineTag::cmdline
now returns Result<&str, StringError>
ModuleTag::cmdline
now returns Result<&str, StringError>
StringError
parse_slice_as_string
which now parses
multiboot2 strings as expected: as null-terminated UTF-8 strings.InformationBuilder
now also allows to add custom tags. The new public method
add_tag
was introduced for that.TagTrait
was enhanced and now has an associated ID
constant. This is only breaking to users that used BootInformation::get_tag
or that implement custom tags. BootInformation::get_tag
doesn't need the
typ
parameter anymore, as it can be deduced from the provided type.BoxedDst::new
doesn't have the typ
parameter anymore. This
only effects you when you wrote a custom DST tag.load
and load_with_offset
. Use
BootInformation::load
instead.BootInformation::efi_32_ih_tag
to
BootInformation::efi_ih32_tag
for consistency.BootInformation::efi_64_ih_tag
to
BootInformation::efi_ih64_tag
for consistency.BootInformation::efi_std_32_tag
to
BootInformation::efi_std32_tag
for consistency.BootInformation::efi_std_64_tag
to
BootInformation::efi_std64_tag
for consistency.BootInformation
and MemoryArea
InformationBuilder
chainable. They now
consume the builder.MemoryAreaTypeId
and MemoryAreaType
.MULTIBOOT2_BOOTLOADER_MAGIC
to MAGIC
EFIMemoryDesc
was removed and is now an alias of
uefi_raw::table::boot::MemoryDescriptor
EFIMemoryAreaType
was removed and is now an alias of
uefi_raw::table::boot::MemoryType
MemoryAreaIter
and MemoryMapTag::available_memory_areas
BootInformation::load_base_addr
to BootInformation::load_base_addr_tag
BootInformation::efi_32_ih
to BootInformation::efi_32_ih_tag
BootInformation::efi_32_ih
to BootInformation::efi_32_ih_tag
ImageLoadPhysAddr
to ImageLoadPhysAddrTag
EFIImageHandle32
to EFIImageHandle32Tag
EFIImageHandle64
to EFIImageHandle64Tag
EFISdt32
to EFISdt32Tag
EFISdt64
to EFISdt64Tag
EFIBootServicesNotExited
to EFIBootServicesNotExitedTag
CommandLineTag::command_line
renamed
to CommandLineTag::cmdline
TagTrait
trait which enables to use DSTs as
multiboot2 tags. This is
mostly relevant for the command line tag, the modules tag, and the bootloader
name tag. However, this might also be relevant for users of custom multiboot2
tags that use DSTs as types. See the example provided in the doc of the
get_tag
method.builder
feature and a builder
module with a
builder::InformationBuilder
structBootInformation::efi_bs_not_exited_tag
load
and load_with_offset
BootInformation::load
as new default constructorMemoryMapTag::entry_size
and MemoryMapTag::entry_version
MemoryMapTag::all_memory_areas()
was renamed to memory_areas
and now returns MemoryAreaIter
instead of
impl Iterator<Item = &MemoryArea>
. Experience showed that its better to
return the specific iterator whenever possible.MemoryMapTag::memory_areas()
was renamed to
available_memory_areas
(Sorry for the breaking changes in a minor release, but I just stumbled upon
this und since the last breaking release was just yesterday, users have to
deal with changes anyway.)ElfSection::name()
now returns a Result instead of just the
value. This prevents possible panics.ElfSection::section_type()
VBEInfoTag
is no longer &static
TagType
is now split into TagTypeId
and TagType
TagTypeId
is a binary-compatible form of a Multiboot2 tag idTagType
is a higher-level abstraction for either specified or custom
tags
but not ABI compatible.u32
, TagType
, and
TagTypeId
via From
and PartialEq
-implementations.BootInformation::framebuffer_tag()
now returns
Option<Result<FramebufferTag, UnknownFramebufferType>>
instead of
Option<FramebufferTag>
which prevents a possible panic. If the --unstable
feature is used, UnknownFramebufferType
implements core::error::Error
.BootInformation::efi_memory_map_tag
BootInformation
now publicly exports the get_tag
function allowing you to
work with custom tags. An example is given in the function documentation.
(check docs.rs). There is also a small unit test that you can use to learn
from.MbiLoadError
now implements Display
unstable
feature, which enables nightly-only functionality.
With this feature, MbiLoadError
now implements core::error::Error
and can
be used with anyhow::Result
for example.BootLoaderNameTag::name
now returns a Result instead of just the valueCommandLineTag::command_line
now returns a Result instead of just the
valueModuleTag::cmdline
now returns a Result instead of just the valueRsdpV1Tag::signature
now returns a Result instead of an OptionRsdpV1Tag::oem_id
now returns a Result instead of an OptionRsdpV2Tag::signature
now returns a Result instead of an OptionRsdpV2Tag::oem_id
now returns a Result instead of an OptionSend
for BootInformation
TagType
now implements Ord
so that it can be used in BTreeSet
ImageLoadPhysAddr
EFIImageHandle32
and EFIImageHandle64
TagType
now implements Eq
and Hash
std
can be used in tests; the crate is still no_std
cargo test
doesn't work on "non-standard" targets.editorconfig
filemultiboot2
and multiboot2-header
in a Cargo workspace inside the same repositoryTagType
-enum introduced in v0.11
is now actually publicload()
and load_with_offset
now returns a resultMULTIBOOT2_BOOTLOADER_MAGIC
ElfSectionsTag::sections()
)
return impl Iterator
instead of a concrete typeTagType
-enum that contains
all possible mbi tags that are specified (taken from spec)BootInformation
checksum_is_valid
method to the RSDP
tags (#64)