Skip to content

Releases: r-efi/r-efi

r-efi-5.3.0

17 Jun 09:12
v5.3.0
Compare
Choose a tag to compare
# 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

24 Dec 11:51
v5.2.0
Compare
Choose a tag to compare
# 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

01 Sep 08:06
v5.1.0
Compare
Choose a tag to compare
# 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

30 Jul 11:55
v5.0.0
Compare
Choose a tag to compare
# 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

23 May 09:17
v4.5.0
Compare
Choose a tag to compare
# 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

27 Mar 08:51
v4.4.0
Compare
Choose a tag to compare
# 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

19 Oct 07:27
v4.3.0
Compare
Choose a tag to compare
# 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

19 Oct 07:26
v4.2.0
Compare
Choose a tag to compare
# 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

19 Oct 07:26
v4.1.0
Compare
Choose a tag to compare
# 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

r-efi-4.0.0

19 Oct 07:25
v4.0.0
Compare
Choose a tag to compare
# r-efi - UEFI Reference Specification Protocol Constants and Definitions

## CHANGES WITH 4.0.0:

    * Convert all enums to constants with type-aliases. This is an API
      break, but it is needed for spec-compliance. With the old enums, one
      couldn't encode all the possible values defined by the spec.
      Especially, the vendor-reserved ranges were unable to be encoded in
      a safe manner. Also see commit 401a91901e860 for a detailed
      discussion.
      API users likely need to convert their CamelCase enum usage to the
      new UPPER_CASE constants.

    * Convert all incomplete types to empty arrays. This affects all
      structures that use trailing unbound arrays. These are actually ABI
      incompatible with UEFI, since rust represents raw-pointers to such
      types as fat-pointers. Such arrays have now been converted to empty
      arrays, which should still allow accessing the memory location and
      retaining structure properties, but avoids fat-pointers.
      This is an API break, so you might have to adjust your accessors of
      those trailing structure members.

    * Implement `Clone` and `Copy` for most basic structures. Since these
      are used as plain carriers, no higher clone/copy logic is needed. It
      should be clear from the project-description, that only basic UEFI
      compatibility is provided.

    * Add the console-control vendor protocol. This protocol allows
      controlling console properties. It is not part of the UEFI
      specification, but rather defined by the TianoCore project.

    * Add a new example showing how to use the GOP functions to query the
      active graphics device.

    Contributions from: David Rheinsberg, GGRei, Hiroki Tokunaga,
                        Richard Wiedenhöft

    - Tübingen, 2021-06-23