11
11
- ` PcrEvent ` /` PcrEventInputs ` impl ` Align ` , ` Eq ` , and ` PartialEq ` .
12
12
- Added ` PcrEvent::new_in_box ` and ` PcrEventInputs::new_in_box ` .
13
13
- ` 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. We recommend to directly use the
17
+ implementations instead of the traits.
14
18
15
19
## Changed
16
20
- ** Breaking:** ` uefi::helpers::init ` no longer takes an argument.
17
21
- The lifetime of the ` SearchType ` returned from
18
22
` 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 ` .
21
23
The old ` MemoryMap ` was renamed to ` MemoryMapOwned ` .
22
24
- ` pub fn memory_map(&self, mt: MemoryType) -> Result<MemoryMap> ` now returns
23
25
a ` MemoryMapOwned ` .
24
26
- ** Breaking:** ` PcrEvent::new_in_buffer ` and ` PcrEventInputs::new_in_buffer `
25
27
now take an initialized buffer (` [u8 ` ] instead of ` [MaybeUninit<u8>] ` ), and if
26
28
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
29
+ - ** Breaking:** The type ` MemoryMap ` was renamed to ` MemoryMapOwned ` . ` MemoryMap `
30
+ is now a trait. Read the [ documentation] ( https://docs.rs/uefi/latest/uefi/ ) of the
31
+ ` uefi > mem > memory_map ` module to learn more.
32
+ - ** Breaking:** Exports of Memory Map-related types from ` uefi::table::boot ` are
28
33
now removed. Use ` uefi::mem::memory_map ` instead. The patch you have to apply
29
34
to the ` use ` statements of your code might look as follows:
30
35
``` diff
31
- 1c1,2
32
36
< use uefi::table::boot::{BootServices, MemoryMap, MemoryMapMut, MemoryType};
33
37
---
34
38
> use uefi::mem::memory_map::{MemoryMap, MemoryMapMut, MemoryType};
60
64
- ` Mode ` is now ` Copy ` and ` Clone ` .
61
65
- Added ` TryFrom<&[u8]> ` for ` Time ` .
62
66
63
- ## Changed
67
+ ## Changed ( ** BREAKING ** )
64
68
- ` SystemTable::exit_boot_services ` is now ` unsafe ` . See that method's
65
69
documentation for details of obligations for callers.
66
70
- ` BootServices::allocate_pool ` now returns ` NonZero<u8> ` instead of
104
108
- Added ` MemoryMap::from_raw ` .
105
109
- Implemented ` Hash ` for all char and string types.
106
110
107
- ## Changed
111
+ ## Changed ( ** BREAKING ** )
108
112
- ` DevicePath::to_string ` and ` DevicePathNode::to_string ` now return
109
113
out-of-memory errors as part of the error type rather than with an ` Option ` .
110
114
115
119
- Implemented ` Index ` , ` IndexMut ` , ` get ` , and ` get_mut ` on ` MemoryMap ` .
116
120
- Added ` SystemTable::as_ptr ` .
117
121
118
- ## Changed
122
+ ## Changed ( ** BREAKING ** )
119
123
- We fixed a memory leak in ` GraphicsOutput::query_mode ` . As a consequence, we
120
124
had to add ` &BootServices ` as additional parameter.
121
125
- ` BootServices::free_pages ` and ` BootServices::free_pool ` are now ` unsafe ` to
131
135
132
136
# uefi - 0.25.0 (2023-10-10)
133
137
134
- ## Changed
138
+ ## Changed ( ** BREAKING ** )
135
139
- MSRV bumped to 1.70.
136
140
- ` Input::wait_for_key_event ` now returns an ` Option<Event> ` , and is no longer ` const ` .
137
141
- ` Protocol::wait_for_input_event ` now returns an ` Option<Event> ` , and is no longer ` const ` .
166
170
potentially-null interfaces without panicking.
167
171
- ` DevicePath::to_string ` and ` DevicePathNode::to_string `
168
172
169
- ## Changed
173
+ ## Changed ( ** BREAKING ** )
170
174
- Renamed ` LoadImageSource::FromFilePath ` to ` LoadImageSource::FromDevicePath `
171
175
- The ` Deref ` and ` DerefMut ` impls for ` ScopedProtocol ` will now panic if the
172
176
interface pointer is null.
173
177
174
178
175
179
# uefi - 0.23.0 (2023-06-04)
176
180
177
- ## Changed
181
+ ## Changed ( ** BREAKING ** )
178
182
- Fixed function signature bug in ` BootServices::install_configuration_table ` .
179
183
180
184
183
187
## Added
184
188
- Added ` BootServices::install_configuration_table ` .
185
189
186
- ## Changed
190
+ ## Changed ( ** BREAKING ** )
187
191
- Renamed ` FileSystemIOErrorContext ` to ` IoErrorContext ` .
188
192
- ` ResetType ` is now a newtype-enum instead of a Rust enum. Its members now have
189
193
upper-case names.
227
231
- ` MemoryType::BOOT_SERVICES_DATA ` for UEFI boot drivers
228
232
- ` MemoryType::RUNTIME_SERVICES_DATA ` for UEFI runtime drivers
229
233
230
- ## Changed
234
+ ## Changed ( ** BREAKING ** )
231
235
- The ` global_allocator ` module has been renamed to ` allocator ` , and is now
232
236
available regardless of whether the ` global_allocator ` feature is enabled. The
233
237
` global_allocator ` feature now only controls whether ` allocator::Allocator ` is
@@ -273,7 +277,7 @@ Rust 1.68 or higher.
273
277
is no sensible way of presenting a useful Debug representation, such as for
274
278
Unions.
275
279
276
- ## Changed
280
+ ## Changed ( ** BREAKING ** )
277
281
- ` SystemTable::exit_boot_services ` now takes no parameters and handles
278
282
the memory map allocation itself. Errors are now treated as
279
283
unrecoverable and will cause the system to reset.
@@ -300,7 +304,7 @@ Rust 1.68 or higher.
300
304
## Added
301
305
- Added ` table::boot::PAGE_SIZE ` constant.
302
306
303
- ## Changed
307
+ ## Changed ( ** BREAKING ** )
304
308
- Fixed several protocol functions so that they work with unsized protocols
305
309
(like ` DevicePath ` ): ` BootServices::locate_device_path ` ,
306
310
` BootServices::get_handle_for_protocol ` , ` BootServices::test_protocol ` ,
@@ -324,7 +328,7 @@ Rust 1.68 or higher.
324
328
integration with error-handling crates. (requires the ** unstable** feature)
325
329
- Added partial support for the TCG protocols for TPM devices under ` uefi::proto::tcg ` .
326
330
327
- ## Changed
331
+ ## Changed ( ** BREAKING ** )
328
332
- ` UnalignedSlice ` now implements ` Clone ` , and the ` Debug ` impl now
329
333
prints the elements instead of the internal fields.
330
334
- The unstable ` negative_impls ` feature is no longer required to use this library.
@@ -363,7 +367,7 @@ Rust 1.68 or higher.
363
367
- Added ` BootServices::register_protocol_notify ` .
364
368
- Added ` SearchType::ByRegisterNotify ` and ` ProtocolSearchKey ` .
365
369
366
- ## Changed
370
+ ## Changed ( ** BREAKING ** )
367
371
- Renamed crate feature ` alloc ` to ` global_allocator ` .
368
372
- Renamed crate feature ` exts ` to ` alloc ` .
369
373
- Fixed the definition of ` AllocateType ` so that ` MaxAddress ` and
@@ -424,7 +428,7 @@ Rust 1.68 or higher.
424
428
- The ` File ` trait now knows the methods ` is_regular_file ` and ` is_directory ` .
425
429
Developers profit from this on the struct ` FileHandle ` , for example.
426
430
427
- ## Changed
431
+ ## Changed ( ** BREAKING ** )
428
432
- Marked ` BootServices::handle_protocol ` as ` unsafe ` . (This method is
429
433
also deprecated -- use ` open_protocol_exclusive ` or ` open_protocol ` instead.)
430
434
- Deprecated ` BootServices::locate_protocol ` and marked it ` unsafe ` . Use
@@ -461,7 +465,7 @@ Rust 1.68 or higher.
461
465
- Fixed an incorrect pointer cast in the ` Rng ` protocol that could cause
462
466
undefined behavior.
463
467
464
- ## Changed
468
+ ## Changed ( ** BREAKING ** )
465
469
- Relaxed the version requirements for the ` bitflags ` and ` log `
466
470
dependencies to allow earlier patch versions.
467
471
- Enabled ` doc_auto_cfg ` on docs.rs to show badges on items that are
@@ -484,7 +488,7 @@ Rust 1.68 or higher.
484
488
- Included ` cstr8 ` and ` cstr16 ` macros from ` uefi-macros ` in the prelude.
485
489
- Added ` DevicePathInstance ` , ` DevicePathNode ` , and ` FfiDevicePath ` .
486
490
487
- ## Changed
491
+ ## Changed ( ** BREAKING ** )
488
492
- ` Time::new ` now takes a single ` TimeParams ` argument so that date and
489
493
time fields can be explicitly named at the call site.
490
494
- The file info types now derive ` PartialEq ` and ` Eq ` .
@@ -523,7 +527,7 @@ Rust 1.68 or higher.
523
527
- Added ` Output::output_string_lossy ` .
524
528
- Added ` ResultExt::handle_warning ` .
525
529
526
- ## Changed
530
+ ## Changed ( ** BREAKING ** )
527
531
- Updated to the 2021 edition.
528
532
- ` File::open ` now takes the filename as ` &CStr16 ` instead of ` &str ` ,
529
533
avoiding an implicit string conversion.
0 commit comments