1 // Copyright 2025, The Android Open Source Project
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15 //! This module provides platform-specific implementations required by GBL libc.
16 //! See `libc/src/lib.rs` for more details.
17 //!
18 //! This implementation relies on the EFI framework, so can be only used where
19 //! it's available.
20
21 use crate::efi_try_print;
22 use core::fmt::Write;
23 use liberror::Result;
24
25 /// EFI framework-based print implementation required by GBL `libc`.
26 #[no_mangle]
gbl_print(s: &dyn core::fmt::Display)27 pub extern "Rust" fn gbl_print(s: &dyn core::fmt::Display) {
28 efi_try_print!("{}", s);
29 }
30