Skip to content

Commit 17c6e6b

Browse files
uefi: Convert uses of Char8 to uefi_raw::Char8 in pxe::BaseCode
This is an intermediate step towards using the uefi-raw definition of the protocol.
1 parent 26acc20 commit 17c6e6b

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

uefi/src/proto/network/pxe.rs

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use super::{IpAddress, MacAddress};
66
use crate::polyfill::maybe_uninit_slice_as_mut_ptr;
77
use crate::proto::unsafe_protocol;
88
use crate::util::ptr_write_unaligned_and_add;
9-
use crate::{CStr8, Char8, Result, Status, StatusExt};
9+
use crate::{CStr8, Result, Status, StatusExt};
1010
use bitflags::bitflags;
1111
use core::ffi::c_void;
1212
use core::fmt::{self, Debug, Display, Formatter};
@@ -15,7 +15,7 @@ use core::mem::MaybeUninit;
1515
use core::ptr::{self, null, null_mut};
1616
use ptr_meta::Pointee;
1717
use uefi_raw::protocol::network::pxe::PxeBaseCodeTftpOpcode;
18-
use uefi_raw::Boolean;
18+
use uefi_raw::{Boolean, Char8};
1919

2020
pub use uefi_raw::protocol::network::pxe::{
2121
PxeBaseCodeBootType as BootstrapType, PxeBaseCodeIpFilterFlags as IpFilters,
@@ -162,7 +162,7 @@ impl BaseCode {
162162
&mut buffer_size,
163163
None,
164164
server_ip.as_raw_ptr(),
165-
filename.as_ptr(),
165+
cstr8_to_ptr(filename),
166166
None,
167167
Boolean::FALSE,
168168
)
@@ -193,7 +193,7 @@ impl BaseCode {
193193
&mut buffer_size,
194194
None,
195195
server_ip.as_raw_ptr(),
196-
filename.as_ptr(),
196+
cstr8_to_ptr(filename),
197197
None,
198198
dont_use_buffer,
199199
)
@@ -221,7 +221,7 @@ impl BaseCode {
221221
&mut buffer_size,
222222
None,
223223
server_ip.as_raw_ptr(),
224-
filename.as_ptr(),
224+
cstr8_to_ptr(filename),
225225
None,
226226
Boolean::FALSE,
227227
)
@@ -249,7 +249,7 @@ impl BaseCode {
249249
&mut buffer_size,
250250
None,
251251
server_ip.as_raw_ptr(),
252-
directory_name.as_ptr(),
252+
cstr8_to_ptr(directory_name),
253253
None,
254254
Boolean::FALSE,
255255
)
@@ -322,7 +322,7 @@ impl BaseCode {
322322
&mut buffer_size,
323323
None,
324324
server_ip.as_raw_ptr(),
325-
filename.as_ptr(),
325+
cstr8_to_ptr(filename),
326326
Some(info),
327327
Boolean::FALSE,
328328
)
@@ -354,7 +354,7 @@ impl BaseCode {
354354
&mut buffer_size,
355355
None,
356356
server_ip.as_raw_ptr(),
357-
filename.as_ptr(),
357+
cstr8_to_ptr(filename),
358358
Some(info),
359359
dont_use_buffer,
360360
)
@@ -627,6 +627,11 @@ impl BaseCode {
627627
}
628628
}
629629

630+
/// Convert a `&CStr8` to a `*const uefi_raw::Char8`.
631+
const fn cstr8_to_ptr(s: &CStr8) -> *const Char8 {
632+
s.as_ptr().cast()
633+
}
634+
630635
/// Convert an `&Option<bool>` to a `*const Boolean`.
631636
///
632637
/// This is always a valid conversion; `bool` is an 8-bit `0` or `1`.

0 commit comments

Comments
 (0)