Releases: r-efi/r-efi
Releases · r-efi/r-efi
r-efi-6.0.0
# r-efi - UEFI Reference Specification Protocol Constants and Definitions
## CHANGES WITH 6.0.0:
* Change all function prototypes to use `unsafe fn`. This is a major
change, but reflects what all downstream users have already assumed.
* Drop the obsolete `efiapi` and `examples` feature flags. The former
was unused, and the latter is an alias for `native`.
* The `eficall!{}` macro is now fully inline in all of r-efi. It is
still provided for external users, but will no longer be used by
r-efi. All users are recommended to use `extern "efiapi"` directly.
Contributions from: Alan Egerton, David Rheinsberg
- Dußlingen, 2026-02-03
r-efi-5.3.0
# r-efi - UEFI Reference Specification Protocol Constants and Definitions
## CHANGES WITH 5.3.0:
* Remove the optional dependency on `compiler-builtins`, which was
needed to build r-efi as part of rustc. This is no longer necessary.
Contributions from: David Rheinsberg, Trevor Gross
- Dußlingen, 2025-06-17
r-efi-5.2.0
# r-efi - UEFI Reference Specification Protocol Constants and Definitions
## CHANGES WITH 5.2.0:
* Add the memory attribute protocol.
Contributions from: David Rheinsberg, Oliver Smith-Denny
- Dußlingen, 2024-12-22
r-efi-5.1.0
# r-efi - UEFI Reference Specification Protocol Constants and Definitions
## CHANGES WITH 5.1.0:
* Mark `Guid::as_bytes` and `Guid::from_bytes` as `const fn`, aligning
them with the other methods on `Guid`. This helps creating constant
GUIDs via macros or other external helpers.
Contributions from: Christopher Zurcher, David Rheinsberg
- Dußlingen, 2024-09-01
r-efi-5.0.0
# r-efi - UEFI Reference Specification Protocol Constants and Definitions
## CHANGES WITH 5.0.0:
* Change the type of the `unload` function-pointer of the Loaded Image
Protocol to `Option<Unload>`, given that it can be `NULL` to indicate
that the image cannot be unloaded.
This is a major API break, but any users very likely need to adjust
anyway to avoid NULL-derefs.
Contributions from: David Rheinsberg, John Schock
- Dußlingen, 2024-07-30
r-efi-4.5.0
# r-efi - UEFI Reference Specification Protocol Constants and Definitions
## CHANGES WITH 4.5.0:
* Implement or derive more standard traits for UEFI base types. In
particular, implement `[Partial]Eq`, `Hash`, `[Partial]Ord` for
`Boolean`, `Status`, `Guid`, and network address types.
* Fix the signature of `BootUninstallMultipleProtocolInterfaces` to
match the UEFI specification. Note that it uses var-args and is thus
not fully usable from stable Rust.
Contributions from: Ayush Singh, David Rheinsberg, John Schock
- Dußlingen, 2024-05-23
r-efi-4.4.0
# r-efi - UEFI Reference Specification Protocol Constants and Definitions
## CHANGES WITH 4.4.0:
* Add definitions for `UNACCEPTED_MEMORY_TYPE`, media device subtypes
for device paths, before-EBS and after-RTB event groups, missing
memory attributes.
* Add memory masks for common memory attribute classes. The symbol
names are takend from EDK2, yet their purpose is defined in the
specification.
* New protocols: platform_driver_override, bus_specific_driver_override,
driver_family_override, load_file, load_file2, pci-io
Contributions from: David Rheinsberg, Dmitry Mostovenko, John Schock,
Michael Kubacki
- Dußlingen, 2024-03-27
r-efi-4.3.0
# r-efi - UEFI Reference Specification Protocol Constants and Definitions
## CHANGES WITH 4.3.0:
* Change alignment of `Guid` to 4 (was 8 before). This deviates from
the specification, but aligns with EDK2. This should fix alignment
mismatches when combining r-efi with EDK2, or other UEFI
implementations.
* `Guid` gained a new constructor `from_bytes()` to allow creating
GUID-abstractions from foreign types based on the standardized
memory representation.
* Add all configuration-table GUIDs mentioned in the spec. These are
often rooted in external specifications, but are strongly related
to UEFI.
* Add configuration-table definitions for RT_PROPERTIES and
CONFORMANCE_PROFILES.
* New protocols: hii_package_list, absolute_pointer
Contributions from: David Rheinsberg, John Schock, Michael Kubacki,
Nicholas Bishop
- Dußlingen, 2023-10-18
r-efi-4.2.0
# r-efi - UEFI Reference Specification Protocol Constants and Definitions
## CHANGES WITH 4.2.0:
* Bump required compiler version to: rust-1.68
* New Protocols: debugport, debug-support, driver-diagnostics2,
mp-services, shell, shell-dynamic-command,
shell-parameters, udp-4, udp-6
* Use const-generics instead of ZSTs to represent dynamic trailing
members in C structs.
* The `examples` feature has been renamed to `native` (a backwards
compatible feature is left in place).
* Add support for riscv64.
* Use the official rust `efiapi` calling convention. This was
stabilized with rust-1.68.
Contributions from: Ayush Singh, David Rheinsberg, Rob Bradford
- Dußlingen, 2023-03-20
r-efi-4.1.0
# r-efi - UEFI Reference Specification Protocol Constants and Definitions
## CHANGES WITH 4.1.0:
* New Protocols: device-path-{from,to}-text, ip4, ip6, managed-network,
rng, service-binding, tcp4, tcp6, timestamp
* `ImageEntryPoint` is now correctly annotated as `eficall`.
* `Time` now derives `Default`.
* Fix nullable function pointers to use `Option<fn ...>`.
* Function prototypes now have an explicit type definition and can be
used independent of their protocol definition.
* The new `rust-dep-of-std` feature option allows pulling in r-efi
into the rust standard library. It prepares the crate workspace to
be suitable for the standard library. It has no use outside of this.
* Adopt the MIT license as 3rd licensing option to allow for
integration into the rust compiler and ecosystem.
Contributions from: Ayush Singh, David Rheinsberg, Joe Richey
- Tübingen, 2022-08-23