diff --git a/uefi-macros/tests/ui/fail/entry_bad_abi.rs b/uefi-macros/tests/ui/fail/entry_bad_abi.rs index 5c43cd273..9baa4bf49 100644 --- a/uefi-macros/tests/ui/fail/entry_bad_abi.rs +++ b/uefi-macros/tests/ui/fail/entry_bad_abi.rs @@ -1,5 +1,6 @@ #![allow(unused_imports)] #![no_main] +#![allow(deprecated)] use uefi::prelude::*; use uefi_macros::entry; diff --git a/uefi-macros/tests/ui/fail/entry_bad_abi.stderr b/uefi-macros/tests/ui/fail/entry_bad_abi.stderr index 424d8c52f..6bbc0742b 100644 --- a/uefi-macros/tests/ui/fail/entry_bad_abi.stderr +++ b/uefi-macros/tests/ui/fail/entry_bad_abi.stderr @@ -1,5 +1,5 @@ error: Entry method must have no ABI modifier - --> tests/ui/fail/entry_bad_abi.rs:8:1 + --> tests/ui/fail/entry_bad_abi.rs:9:1 | -8 | extern "C" fn main(_handle: Handle, _st: SystemTable) -> Status { +9 | extern "C" fn main(_handle: Handle, _st: SystemTable) -> Status { | ^^^^^^ diff --git a/uefi-macros/tests/ui/fail/entry_bad_arg.rs b/uefi-macros/tests/ui/fail/entry_bad_arg.rs index 8bd8f2453..941d1177d 100644 --- a/uefi-macros/tests/ui/fail/entry_bad_arg.rs +++ b/uefi-macros/tests/ui/fail/entry_bad_arg.rs @@ -1,5 +1,6 @@ #![allow(unused_imports)] #![no_main] +#![allow(deprecated)] use uefi::prelude::*; use uefi_macros::entry; diff --git a/uefi-macros/tests/ui/fail/entry_bad_arg.stderr b/uefi-macros/tests/ui/fail/entry_bad_arg.stderr index 9d292cf66..db4f2c15b 100644 --- a/uefi-macros/tests/ui/fail/entry_bad_arg.stderr +++ b/uefi-macros/tests/ui/fail/entry_bad_arg.stderr @@ -1,7 +1,7 @@ error[E0308]: mismatched types - --> tests/ui/fail/entry_bad_arg.rs:8:1 + --> tests/ui/fail/entry_bad_arg.rs:9:1 | -8 | fn main(_handle: Handle, _st: SystemTable, _x: usize) -> Status { +9 | fn main(_handle: Handle, _st: SystemTable, _x: usize) -> Status { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incorrect number of function parameters | = note: expected fn pointer `extern "efiapi" fn(uefi::Handle, uefi::prelude::SystemTable) -> uefi::Status` diff --git a/uefi-macros/tests/ui/fail/entry_bad_return_type.rs b/uefi-macros/tests/ui/fail/entry_bad_return_type.rs index e2ac39960..6988431df 100644 --- a/uefi-macros/tests/ui/fail/entry_bad_return_type.rs +++ b/uefi-macros/tests/ui/fail/entry_bad_return_type.rs @@ -1,5 +1,6 @@ #![allow(unused_imports)] #![no_main] +#![allow(deprecated)] use uefi::prelude::*; use uefi_macros::entry; diff --git a/uefi-macros/tests/ui/fail/entry_bad_return_type.stderr b/uefi-macros/tests/ui/fail/entry_bad_return_type.stderr index 6e718c631..4c719972d 100644 --- a/uefi-macros/tests/ui/fail/entry_bad_return_type.stderr +++ b/uefi-macros/tests/ui/fail/entry_bad_return_type.stderr @@ -1,7 +1,7 @@ error[E0308]: mismatched types - --> tests/ui/fail/entry_bad_return_type.rs:8:1 + --> tests/ui/fail/entry_bad_return_type.rs:9:1 | -8 | fn main(_handle: Handle, _st: SystemTable) -> bool { +9 | fn main(_handle: Handle, _st: SystemTable) -> bool { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Status`, found `bool` | = note: expected fn pointer `extern "efiapi" fn(uefi::Handle, uefi::prelude::SystemTable) -> Status` diff --git a/uefi-macros/tests/ui/pass/entry.rs b/uefi-macros/tests/ui/pass/entry.rs index f8d7aba72..928c46066 100644 --- a/uefi-macros/tests/ui/pass/entry.rs +++ b/uefi-macros/tests/ui/pass/entry.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] + use uefi::table::{Boot, SystemTable}; use uefi::{entry, Handle, Status}; diff --git a/uefi-macros/tests/ui/pass/entry_docstring.rs b/uefi-macros/tests/ui/pass/entry_docstring.rs index dd44ad20e..82f0e2185 100644 --- a/uefi-macros/tests/ui/pass/entry_docstring.rs +++ b/uefi-macros/tests/ui/pass/entry_docstring.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] + use uefi::table::{Boot, SystemTable}; use uefi::{entry, Handle, Status}; diff --git a/uefi-macros/tests/ui/pass/entry_unsafe.rs b/uefi-macros/tests/ui/pass/entry_unsafe.rs index e792aea4c..b0ea0c015 100644 --- a/uefi-macros/tests/ui/pass/entry_unsafe.rs +++ b/uefi-macros/tests/ui/pass/entry_unsafe.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] + use uefi::table::{Boot, SystemTable}; use uefi::{entry, Handle, Status}; diff --git a/uefi/CHANGELOG.md b/uefi/CHANGELOG.md index 1d670be84..c723046fe 100644 --- a/uefi/CHANGELOG.md +++ b/uefi/CHANGELOG.md @@ -11,8 +11,9 @@ how to integrate the `uefi` crate into them. - Added `Handle::new` ## Changed -- The `BootServices` and `RuntimeServices` structs have been deprecated. Use - the `uefi::runtime` and `uefi::boot` modules instead. +- The `BootServices`, `RuntimeServices`, and `SystemTable` structs have been + deprecated. Use the `uefi::boot` and `uefi::runtime`, and `uefi::system` + modules instead. - In `uefi::table::boot`, `ScopedProtocol`, `TplGuard`, `ProtocolsPerHandle`, and `HandleBuffer` have been deprecated. Use the structs of the same name in `uefi::boot` instead. diff --git a/uefi/src/allocator.rs b/uefi/src/allocator.rs index bd00d468a..3401262ee 100644 --- a/uefi/src/allocator.rs +++ b/uefi/src/allocator.rs @@ -14,11 +14,12 @@ use core::sync::atomic::{AtomicU32, Ordering}; use crate::boot; use crate::mem::memory_map::MemoryType; use crate::proto::loaded_image::LoadedImage; +#[allow(deprecated)] use crate::table::{Boot, SystemTable}; /// Deprecated; this function is now a no-op. #[deprecated = "this function is now a no-op"] -#[allow(unused_unsafe, clippy::missing_safety_doc)] +#[allow(deprecated, unused_unsafe, clippy::missing_safety_doc)] pub unsafe fn init(_: &mut SystemTable) {} /// Deprecated; this function is now a no-op. diff --git a/uefi/src/helpers/mod.rs b/uefi/src/helpers/mod.rs index 36fc5760e..8779092ce 100644 --- a/uefi/src/helpers/mod.rs +++ b/uefi/src/helpers/mod.rs @@ -18,6 +18,7 @@ //! [print_macro]: uefi::print! //! [println_macro]: uefi::println! +#[allow(deprecated)] use crate::prelude::{Boot, SystemTable}; use crate::{table, Result}; #[doc(hidden)] @@ -41,8 +42,8 @@ mod println; /// The returned pointer is only valid until boot services are exited. #[must_use] #[deprecated(note = "use uefi::table::system_table_boot instead")] +#[allow(deprecated)] pub fn system_table() -> SystemTable { - #[allow(deprecated)] table::system_table_boot().expect("boot services are not active") } diff --git a/uefi/src/prelude.rs b/uefi/src/prelude.rs index 5c9e108b5..6b973c471 100644 --- a/uefi/src/prelude.rs +++ b/uefi/src/prelude.rs @@ -9,4 +9,5 @@ pub use crate::{cstr16, cstr8, entry, Handle, ResultExt, Status, StatusExt}; pub use crate::table::boot::BootServices; #[allow(deprecated)] pub use crate::table::runtime::RuntimeServices; +#[allow(deprecated)] pub use crate::table::{Boot, SystemTable}; diff --git a/uefi/src/table/mod.rs b/uefi/src/table/mod.rs index 34ece6da3..6cb848a62 100644 --- a/uefi/src/table/mod.rs +++ b/uefi/src/table/mod.rs @@ -8,6 +8,7 @@ mod header; mod system; pub use header::Header; +#[allow(deprecated)] pub use system::{Boot, Runtime, SystemTable}; pub use uefi_raw::table::Revision; @@ -61,6 +62,7 @@ pub unsafe fn set_system_table(ptr: *const uefi_raw::table::system::SystemTable) /// Get the system table while boot services are active. #[deprecated = "Use the uefi::boot module instead. See https://github.com/rust-osdev/uefi-rs/blob/HEAD/docs/funcs_migration.md"] +#[allow(deprecated)] pub fn system_table_boot() -> Option> { let st = SYSTEM_TABLE.load(Ordering::Acquire); if st.is_null() { @@ -79,6 +81,7 @@ pub fn system_table_boot() -> Option> { /// Get the system table while runtime services are active. #[deprecated = "Use the uefi::runtime module instead. See https://github.com/rust-osdev/uefi-rs/blob/HEAD/docs/funcs_migration.md"] +#[allow(deprecated)] pub fn system_table_runtime() -> Option> { let st = SYSTEM_TABLE.load(Ordering::Acquire); if st.is_null() { diff --git a/uefi/src/table/system.rs b/uefi/src/table/system.rs index 53eb4cd58..6896bae39 100644 --- a/uefi/src/table/system.rs +++ b/uefi/src/table/system.rs @@ -46,7 +46,8 @@ impl SystemTableView for Runtime {} /// documented in the UEFI spec. At that point, the boot view of the system /// table will be destroyed (which conveniently invalidates all references to /// UEFI boot services in the eye of the Rust borrow checker) and a runtime view -/// will be provided to replace it. +/// will be provided to replace it +#[deprecated = "Use the uefi::system, uefi::boot, and uefi::runtime modules instead. See https://github.com/rust-osdev/uefi-rs/blob/HEAD/docs/funcs_migration.md"] #[derive(Debug)] #[repr(transparent)] pub struct SystemTable {