1111- ` PcrEvent ` /` PcrEventInputs ` impl ` Align ` , ` Eq ` , and ` PartialEq ` .
1212- Added ` PcrEvent::new_in_box ` and ` PcrEventInputs::new_in_box ` .
1313- ` VariableKey ` impls ` Clone ` , ` Eq ` , ` PartialEq ` , ` Ord ` , ` PartialOrd ` , and ` Hash ` .
14+ - The traits ` MemoryMap ` and ` MemoryMapMut ` have been introduced together with
15+ the implementations ` MemoryMapRef ` , ` MemoryMapRefMut ` , and ` MemoryMapOwned ` .
16+ This comes with some changes. Read below.
1417
15- ## Changed
16- - ** Breaking: ** ` uefi::helpers::init ` no longer takes an argument.
18+ ## Changed ( ** BREAKING ** )
19+ - ` uefi::helpers::init ` no longer takes an argument.
1720- The lifetime of the ` SearchType ` returned from
1821 ` BootServices::register_protocol_notify ` is now tied to the protocol GUID.
19- - The traits ` MemoryMap ` and ` MemoryMapMut ` have been introduced together with
20- the implementations ` MemoryMapRef ` , ` MemoryMapRefMut ` , and ` MemoryMapOwned ` .
2122 The old ` MemoryMap ` was renamed to ` MemoryMapOwned ` .
2223 - ` pub fn memory_map(&self, mt: MemoryType) -> Result<MemoryMap> ` now returns
2324 a ` MemoryMapOwned ` .
24- - ** Breaking: ** ` PcrEvent::new_in_buffer ` and ` PcrEventInputs::new_in_buffer `
25+ - ` PcrEvent::new_in_buffer ` and ` PcrEventInputs::new_in_buffer `
2526 now take an initialized buffer (` [u8 ` ] instead of ` [MaybeUninit<u8>] ` ), and if
2627 the buffer is too small the required size is returned in the error data.
27- - ** Breaking** Exports of Memory Map-related types from ` uefi::table::boot ` are
28+ - The type ` MemoryMap ` was renamed to ` MemoryMapOwned ` . ` MemoryMap ` is now a
29+ trait. Read the [ documentation] ( https://docs.rs/uefi/latest/uefi/ ) of the
30+ ` uefi > mem > memory_map ` module to learn more.
31+ - Exports of Memory Map-related types from ` uefi::table::boot ` are
2832 now removed. Use ` uefi::mem::memory_map ` instead. The patch you have to apply
2933 to the ` use ` statements of your code might look as follows:
3034 ``` diff
6064- ` Mode ` is now ` Copy ` and ` Clone ` .
6165- Added ` TryFrom<&[u8]> ` for ` Time ` .
6266
63- ## Changed
67+ ## Changed ( ** BREAKING ** )
6468- ` SystemTable::exit_boot_services ` is now ` unsafe ` . See that method's
6569 documentation for details of obligations for callers.
6670- ` BootServices::allocate_pool ` now returns ` NonZero<u8> ` instead of
104108- Added ` MemoryMap::from_raw ` .
105109- Implemented ` Hash ` for all char and string types.
106110
107- ## Changed
111+ ## Changed ( ** BREAKING ** )
108112- ` DevicePath::to_string ` and ` DevicePathNode::to_string ` now return
109113 out-of-memory errors as part of the error type rather than with an ` Option ` .
110114
115119- Implemented ` Index ` , ` IndexMut ` , ` get ` , and ` get_mut ` on ` MemoryMap ` .
116120- Added ` SystemTable::as_ptr ` .
117121
118- ## Changed
122+ ## Changed ( ** BREAKING ** )
119123- We fixed a memory leak in ` GraphicsOutput::query_mode ` . As a consequence, we
120124 had to add ` &BootServices ` as additional parameter.
121125- ` BootServices::free_pages ` and ` BootServices::free_pool ` are now ` unsafe ` to
131135
132136# uefi - 0.25.0 (2023-10-10)
133137
134- ## Changed
138+ ## Changed ( ** BREAKING ** )
135139- MSRV bumped to 1.70.
136140- ` Input::wait_for_key_event ` now returns an ` Option<Event> ` , and is no longer ` const ` .
137141- ` Protocol::wait_for_input_event ` now returns an ` Option<Event> ` , and is no longer ` const ` .
166170 potentially-null interfaces without panicking.
167171- ` DevicePath::to_string ` and ` DevicePathNode::to_string `
168172
169- ## Changed
173+ ## Changed ( ** BREAKING ** )
170174- Renamed ` LoadImageSource::FromFilePath ` to ` LoadImageSource::FromDevicePath `
171175- The ` Deref ` and ` DerefMut ` impls for ` ScopedProtocol ` will now panic if the
172176 interface pointer is null.
173177
174178
175179# uefi - 0.23.0 (2023-06-04)
176180
177- ## Changed
181+ ## Changed ( ** BREAKING ** )
178182- Fixed function signature bug in ` BootServices::install_configuration_table ` .
179183
180184
183187## Added
184188- Added ` BootServices::install_configuration_table ` .
185189
186- ## Changed
190+ ## Changed ( ** BREAKING ** )
187191- Renamed ` FileSystemIOErrorContext ` to ` IoErrorContext ` .
188192- ` ResetType ` is now a newtype-enum instead of a Rust enum. Its members now have
189193 upper-case names.
227231 - ` MemoryType::BOOT_SERVICES_DATA ` for UEFI boot drivers
228232 - ` MemoryType::RUNTIME_SERVICES_DATA ` for UEFI runtime drivers
229233
230- ## Changed
234+ ## Changed ( ** BREAKING ** )
231235- The ` global_allocator ` module has been renamed to ` allocator ` , and is now
232236 available regardless of whether the ` global_allocator ` feature is enabled. The
233237 ` global_allocator ` feature now only controls whether ` allocator::Allocator ` is
@@ -273,7 +277,7 @@ Rust 1.68 or higher.
273277 is no sensible way of presenting a useful Debug representation, such as for
274278 Unions.
275279
276- ## Changed
280+ ## Changed ( ** BREAKING ** )
277281- ` SystemTable::exit_boot_services ` now takes no parameters and handles
278282 the memory map allocation itself. Errors are now treated as
279283 unrecoverable and will cause the system to reset.
@@ -300,7 +304,7 @@ Rust 1.68 or higher.
300304## Added
301305- Added ` table::boot::PAGE_SIZE ` constant.
302306
303- ## Changed
307+ ## Changed ( ** BREAKING ** )
304308- Fixed several protocol functions so that they work with unsized protocols
305309 (like ` DevicePath ` ): ` BootServices::locate_device_path ` ,
306310 ` BootServices::get_handle_for_protocol ` , ` BootServices::test_protocol ` ,
@@ -324,7 +328,7 @@ Rust 1.68 or higher.
324328 integration with error-handling crates. (requires the ** unstable** feature)
325329- Added partial support for the TCG protocols for TPM devices under ` uefi::proto::tcg ` .
326330
327- ## Changed
331+ ## Changed ( ** BREAKING ** )
328332- ` UnalignedSlice ` now implements ` Clone ` , and the ` Debug ` impl now
329333 prints the elements instead of the internal fields.
330334- The unstable ` negative_impls ` feature is no longer required to use this library.
@@ -363,7 +367,7 @@ Rust 1.68 or higher.
363367- Added ` BootServices::register_protocol_notify ` .
364368- Added ` SearchType::ByRegisterNotify ` and ` ProtocolSearchKey ` .
365369
366- ## Changed
370+ ## Changed ( ** BREAKING ** )
367371- Renamed crate feature ` alloc ` to ` global_allocator ` .
368372- Renamed crate feature ` exts ` to ` alloc ` .
369373- Fixed the definition of ` AllocateType ` so that ` MaxAddress ` and
@@ -424,7 +428,7 @@ Rust 1.68 or higher.
424428- The ` File ` trait now knows the methods ` is_regular_file ` and ` is_directory ` .
425429 Developers profit from this on the struct ` FileHandle ` , for example.
426430
427- ## Changed
431+ ## Changed ( ** BREAKING ** )
428432- Marked ` BootServices::handle_protocol ` as ` unsafe ` . (This method is
429433 also deprecated -- use ` open_protocol_exclusive ` or ` open_protocol ` instead.)
430434- Deprecated ` BootServices::locate_protocol ` and marked it ` unsafe ` . Use
@@ -461,7 +465,7 @@ Rust 1.68 or higher.
461465- Fixed an incorrect pointer cast in the ` Rng ` protocol that could cause
462466 undefined behavior.
463467
464- ## Changed
468+ ## Changed ( ** BREAKING ** )
465469- Relaxed the version requirements for the ` bitflags ` and ` log `
466470 dependencies to allow earlier patch versions.
467471- Enabled ` doc_auto_cfg ` on docs.rs to show badges on items that are
@@ -484,7 +488,7 @@ Rust 1.68 or higher.
484488- Included ` cstr8 ` and ` cstr16 ` macros from ` uefi-macros ` in the prelude.
485489- Added ` DevicePathInstance ` , ` DevicePathNode ` , and ` FfiDevicePath ` .
486490
487- ## Changed
491+ ## Changed ( ** BREAKING ** )
488492- ` Time::new ` now takes a single ` TimeParams ` argument so that date and
489493 time fields can be explicitly named at the call site.
490494- The file info types now derive ` PartialEq ` and ` Eq ` .
@@ -523,7 +527,7 @@ Rust 1.68 or higher.
523527- Added ` Output::output_string_lossy ` .
524528- Added ` ResultExt::handle_warning ` .
525529
526- ## Changed
530+ ## Changed ( ** BREAKING ** )
527531- Updated to the 2021 edition.
528532- ` File::open ` now takes the filename as ` &CStr16 ` instead of ` &str ` ,
529533 avoiding an implicit string conversion.
0 commit comments