1
- # Changelog
1
+ # uefi - [ Unreleased ]
2
2
3
- ## uefi - [ Unreleased]
4
-
5
- ### Added
3
+ ## Added
6
4
- Implemented ` Index ` , ` IndexMut ` , ` get ` , and ` get_mut ` on ` MemoryMap ` .
7
5
- Added ` SystemTable::as_ptr ` .
8
6
9
- ### Changed
7
+ ## Changed
10
8
- We fixed a memory leak in ` GraphicsOutput::query_mode ` . As a consequence, we
11
9
had to add ` &BootServices ` as additional parameter.
12
10
- ` BootServices::free_pages ` and ` BootServices::free_pool ` are now ` unsafe ` to
19
17
- ` BootServices::{install,reinstall,uninstall}_protocol_interface ` now take
20
18
` const ` interface pointers.
21
19
22
- ## uefi - 0.25.0 (2023-10-10)
20
+ # uefi - 0.25.0 (2023-10-10)
23
21
24
- ### Changed
22
+ ## Changed
25
23
- MSRV bumped to 1.70.
26
24
- ` Input::wait_for_key_event ` now returns an ` Option<Event> ` , and is no longer ` const ` .
27
25
- ` Protocol::wait_for_input_event ` now returns an ` Option<Event> ` , and is no longer ` const ` .
40
38
the memory type of memory map.
41
39
- Added the ` ShellParams ` protocol
42
40
43
- ### Removed
41
+ ## Removed
44
42
- ` BootServices::memmove ` and ` BootServices::set_mem ` have been removed, use
45
43
standard functions like ` core::ptr::copy ` and ` core::ptr::write_bytes ` instead.
46
44
47
- ## uefi - 0.24.0 (2023-06-20)
45
+ # uefi - 0.24.0 (2023-06-20)
48
46
49
- ### Added
47
+ ## Added
50
48
- ` DevicePath::to_boxed ` , ` DevicePath::to_owned ` , and ` DevicePath::as_bytes `
51
49
- ` DevicePathInstance::to_boxed ` , ` DevicePathInstance::to_owned ` , and ` DevicePathInstance::as_bytes `
52
50
- ` DevicePathNode::data `
55
53
potentially-null interfaces without panicking.
56
54
- ` DevicePath::to_string ` and ` DevicePathNode::to_string `
57
55
58
- ### Changed
56
+ ## Changed
59
57
- Renamed ` LoadImageSource::FromFilePath ` to ` LoadImageSource::FromDevicePath `
60
58
- The ` Deref ` and ` DerefMut ` impls for ` ScopedProtocol ` will now panic if the
61
59
interface pointer is null.
62
60
63
- ## uefi - 0.23.0 (2023-06-04)
64
-
65
- ### Changed
61
+ # uefi - 0.23.0 (2023-06-04)
66
62
63
+ ## Changed
67
64
- Fixed function signature bug in ` BootServices::install_configuration_table ` .
68
65
69
- ## uefi - 0.22.0 (2023-06-01)
70
-
71
- ### Added
66
+ # uefi - 0.22.0 (2023-06-01)
72
67
68
+ ## Added
73
69
- Added ` BootServices::install_configuration_table ` .
74
70
75
- ### Changed
76
-
71
+ ## Changed
77
72
- Renamed ` FileSystemIOErrorContext ` to ` IoErrorContext ` .
78
73
- ` ResetType ` is now a newtype-enum instead of a Rust enum. Its members now have
79
74
upper-case names.
84
79
- ` RegularFile::read ` now reads in 1 MiB chunks to avoid a bug in some
85
80
firmware. This fix also applies to ` fs::FileSystem::read ` .
86
81
87
- ## uefi - 0.21.0 (2023-05-15)
88
-
89
- ### Added
82
+ # uefi - 0.21.0 (2023-05-15)
90
83
84
+ ## Added
91
85
- There is a new ` fs ` module that provides a high-level API for file-system
92
86
access. The API is close to the ` std::fs ` module. The module also provides a
93
87
` Path ` and a ` PathBuf ` abstraction that is similar to the ones from
117
111
- ` MemoryType::BOOT_SERVICES_DATA ` for UEFI boot drivers
118
112
- ` MemoryType::RUNTIME_SERVICES_DATA ` for UEFI runtime drivers
119
113
120
- ### Changed
121
-
114
+ ## Changed
122
115
- The ` global_allocator ` module has been renamed to ` allocator ` , and is now
123
116
available regardless of whether the ` global_allocator ` feature is enabled. The
124
117
` global_allocator ` feature now only controls whether ` allocator::Allocator ` is
147
140
- ` GptPartitionAttributes ` now has 16 additional ` TYPE_SPECIFIC_BIT_<N> `
148
141
constants.
149
142
150
- ## uefi - 0.20.0 (2023-03-19)
143
+ # uefi - 0.20.0 (2023-03-19)
151
144
152
145
As of this release, the UEFI crates work on the stable channel. This requires
153
146
Rust 1.68 or higher.
154
147
155
- ### Added
156
-
148
+ ## Added
157
149
- Added the ` ComponentName1 ` and ` ComponentName2 ` protocols. The ` ComponentName `
158
150
wrapper will automatically select ` ComponentName2 ` if available, and fall back
159
151
to ` ComponentName1 ` otherwise.
@@ -164,8 +156,7 @@ Rust 1.68 or higher.
164
156
is no sensible way of presenting a useful Debug representation, such as for
165
157
Unions.
166
158
167
- ### Changed
168
-
159
+ ## Changed
169
160
- ` SystemTable::exit_boot_services ` now takes no parameters and handles
170
161
the memory map allocation itself. Errors are now treated as
171
162
unrecoverable and will cause the system to reset.
@@ -186,25 +177,22 @@ Rust 1.68 or higher.
186
177
available since EFI 1.10 (2002).
187
178
- ` ScopedProtocol::interface ` is not public anymore. Use the ` Deref ` trait.
188
179
189
- ## uefi - 0.19.1 (2023-02-04)
190
-
191
- ### Added
180
+ # uefi - 0.19.1 (2023-02-04)
192
181
182
+ ## Added
193
183
- Added ` table::boot::PAGE_SIZE ` constant.
194
184
195
- ### Changed
196
-
185
+ ## Changed
197
186
- Fixed several protocol functions so that they work with unsized protocols
198
187
(like ` DevicePath ` ): ` BootServices::locate_device_path ` ,
199
188
` BootServices::get_handle_for_protocol ` , ` BootServices::test_protocol ` ,
200
189
` BootServices::find_handles ` , and ` SearchType::from_proto ` .
201
190
- Fixed a warning printed when using ` uefi ` as a dependency: "the following
202
191
packages contain code that will be rejected by a future version".
203
192
204
- ## uefi - 0.19.0 (2023-01-16)
205
-
206
- ### Added
193
+ # uefi - 0.19.0 (2023-01-16)
207
194
195
+ ## Added
208
196
- Implementations for the trait ` EqStrUntilNul ` now allow ` ?Sized ` inputs. This means that
209
197
you can write ` some_cstr16.eq_str_until_nul("test") ` instead of
210
198
` some_cstr16.eq_str_until_nul(&"test") ` now.
@@ -217,8 +205,7 @@ Rust 1.68 or higher.
217
205
integration with error-handling crates. (requires the ** unstable** feature)
218
206
- Added partial support for the TCG protocols for TPM devices under ` uefi::proto::tcg ` .
219
207
220
- ### Changed
221
-
208
+ ## Changed
222
209
- ` UnalignedSlice ` now implements ` Clone ` , and the ` Debug ` impl now
223
210
prints the elements instead of the internal fields.
224
211
- The unstable ` negative_impls ` feature is no longer required to use this library.
@@ -235,10 +222,9 @@ Rust 1.68 or higher.
235
222
- Redundant private field used for padding in ` MemoryDescriptor ` structure was removed. Now all
236
223
fields of this struct are public.
237
224
238
- ## uefi - 0.18.0 (2022-11-15)
239
-
240
- ### Added
225
+ # uefi - 0.18.0 (2022-11-15)
241
226
227
+ ## Added
242
228
- Added ` PhysicalAddress ` and ` VirtualAddress ` type aliases.
243
229
- Added ` Guid::from_bytes ` and ` Guid::to_bytes ` .
244
230
- Added ` UnalignedSlice ` for representing a reference to an unaligned
@@ -257,8 +243,7 @@ Rust 1.68 or higher.
257
243
- Added ` BootServices::register_protocol_notify ` .
258
244
- Added ` SearchType::ByRegisterNotify ` and ` ProtocolSearchKey ` .
259
245
260
- ### Changed
261
-
246
+ ## Changed
262
247
- Renamed crate feature ` alloc ` to ` global_allocator ` .
263
248
- Renamed crate feature ` exts ` to ` alloc ` .
264
249
- Fixed the definition of ` AllocateType ` so that ` MaxAddress ` and
@@ -277,8 +262,7 @@ Rust 1.68 or higher.
277
262
- ` CStr16::from_u16_with_nul_unchecked ` and ` cstr16! ` are now allowed in
278
263
` const ` contexts.
279
264
280
- ### Removed
281
-
265
+ ## Removed
282
266
- Removed ` UnalignedCStr16 ` ; use ` UnalignedSlice ` instead. An
283
267
` UnalignedSlice<u16> ` can be converted to a string with ` to_cstr16 ` or
284
268
` to_cstring16 ` .
@@ -290,11 +274,9 @@ Rust 1.68 or higher.
290
274
` proto::device_path::acpi::Acpi ` and
291
275
` proto::device_path::media::HardDrive ` instead. `
292
276
293
- ## uefi - 0.17.0 (2022-09-09)
294
-
295
-
296
- ### Added
277
+ # uefi - 0.17.0 (2022-09-09)
297
278
279
+ ## Added
298
280
- Added ` Deref ` and ` DerefMut ` trait implementations to ` ScopedProtocol ` .
299
281
This eliminates the need to explicitly access the ` interface ` field,
300
282
which is now marked as deprecated.
@@ -321,8 +303,7 @@ Rust 1.68 or higher.
321
303
- The ` File ` trait now knows the methods ` is_regular_file ` and ` is_directory ` .
322
304
Developers profit from this on the struct ` FileHandle ` , for example.
323
305
324
- ### Changed
325
-
306
+ ## Changed
326
307
- Marked ` BootServices::handle_protocol ` as ` unsafe ` . (This method is
327
308
also deprecated -- use ` open_protocol_exclusive ` or ` open_protocol ` instead.)
328
309
- Deprecated ` BootServices::locate_protocol ` and marked it ` unsafe ` . Use
@@ -333,8 +314,7 @@ Rust 1.68 or higher.
333
314
additive. It is now a default feature.
334
315
- Corrected the name of ` BlockIOMedia::is_media_preset ` to ` is_media_present ` .
335
316
336
- ### Removed
337
-
317
+ ## Removed
338
318
- Removed the ` exts::allocate_buffer ` function. This function could
339
319
cause undefined behavior when called with a ` Layout ` with an alignment
340
320
other than 1. A safe alternative is to use
@@ -345,14 +325,12 @@ Rust 1.68 or higher.
345
325
can be replaced by calling ` status.into() ` , or ` Result::from(status) `
346
326
in cases where the compiler needs a type hint.
347
327
348
- ## uefi - 0.16.1
349
-
350
- ### Added
328
+ # uefi - 0.16.1
351
329
330
+ ## Added
352
331
- Added EFI revision constants to ` Revision ` .
353
332
354
- ### Fixed
355
-
333
+ ## Fixed
356
334
- The table ` Header ` struct's ` Debug ` impl now prints the correct signature.
357
335
- The ` BootServices::create_event_ex ` and
358
336
` RuntimeServices::query_variable_info ` methods now check the table
@@ -361,17 +339,15 @@ Rust 1.68 or higher.
361
339
- Fixed an incorrect pointer cast in the ` Rng ` protocol that could cause
362
340
undefined behavior.
363
341
364
- ### Changed
365
-
342
+ ## Changed
366
343
- Relaxed the version requirements for the ` bitflags ` and ` log `
367
344
dependencies to allow earlier patch versions.
368
345
- Enabled ` doc_auto_cfg ` on docs.rs to show badges on items that are
369
346
gated behind a feature.
370
347
371
- ## uefi - 0.16.0 (2022-05-16)
372
-
373
- ### Added
348
+ # uefi - 0.16.0 (2022-05-16)
374
349
350
+ ## Added
375
351
- Added ` FileHandle::into_directory ` and ` FileHandle::into_regular_file ` .
376
352
- Added ` TimeParams ` , ` Time::invalid ` , and ` Time::is_invalid ` .
377
353
- Added ` RuntimeServices::query_variable_info ` and ` VariableStorageInfo ` .
@@ -385,8 +361,7 @@ Rust 1.68 or higher.
385
361
- Included ` cstr8 ` and ` cstr16 ` macros from ` uefi-macros ` in the prelude.
386
362
- Added ` DevicePathInstance ` , ` DevicePathNode ` , and ` FfiDevicePath ` .
387
363
388
- ### Changed
389
-
364
+ ## Changed
390
365
- ` Time::new ` now takes a single ` TimeParams ` argument so that date and
391
366
time fields can be explicitly named at the call site.
392
367
- The file info types now derive ` PartialEq ` and ` Eq ` .
@@ -396,14 +371,13 @@ Rust 1.68 or higher.
396
371
instances and nodes, respectively.
397
372
- The methods of ` Revision ` are now ` const ` .
398
373
399
- ### Fixed
374
+ ## Fixed
400
375
401
376
- Fixed undefined behavior in ` proto::media::file::File::get_boxed_info ` .
402
377
403
- ## uefi - 0.15.2 (2022-03-15)
404
-
405
- ### Added
378
+ # uefi - 0.15.2 (2022-03-15)
406
379
380
+ ## Added
407
381
- Added ` PartialEq ` impls for ` CStr16 == CStr16 ` , ` &CStr16 == CString ` ,
408
382
and ` CString == &CStr16 ` .
409
383
- Added ` Display ` impl for ` CString16 ` .
@@ -425,8 +399,7 @@ Rust 1.68 or higher.
425
399
- Added ` Output::output_string_lossy ` .
426
400
- Added ` ResultExt::handle_warning ` .
427
401
428
- ### Changed
429
-
402
+ ## Changed
430
403
- Updated to the 2021 edition.
431
404
- ` File::open ` now takes the filename as ` &CStr16 ` instead of ` &str ` ,
432
405
avoiding an implicit string conversion.
@@ -445,8 +418,7 @@ Rust 1.68 or higher.
445
418
` Completion ` , so the type behaves more like a regular Rust ` Result `
446
419
type.
447
420
448
- ### Removed
449
-
421
+ ## Removed
450
422
- Removed ` CStr16::as_string ` method. Use
451
423
[ ` ToString ` ] ( https://doc.rust-lang.org/alloc/string/trait.ToString.html )
452
424
instead.
@@ -469,8 +441,7 @@ Rust 1.68 or higher.
469
441
` log_warning ` method has also been removed, use the new
470
442
` ResultExt::handle_warning ` method instead.
471
443
472
- ### Fixed
473
-
444
+ ## Fixed
474
445
- Fixed compilation with Rust 1.60 by no longer enabling the
475
446
` vec_spare_capacity ` feature, which has been stabilized.
476
447
- Fixed the header size calculated by ` FileInfo::new ` and
0 commit comments