@@ -14,7 +14,9 @@ use core::iter::from_fn;
14
14
use core:: mem:: MaybeUninit ;
15
15
use core:: ptr:: { self , null, null_mut} ;
16
16
use ptr_meta:: Pointee ;
17
- use uefi_raw:: protocol:: network:: pxe:: { PxeBaseCodePacket , PxeBaseCodeTftpOpcode } ;
17
+ use uefi_raw:: protocol:: network:: pxe:: {
18
+ PxeBaseCodeMtftpInfo , PxeBaseCodePacket , PxeBaseCodeTftpOpcode ,
19
+ } ;
18
20
use uefi_raw:: { Boolean , Char8 } ;
19
21
20
22
pub use uefi_raw:: protocol:: network:: pxe:: {
@@ -48,7 +50,7 @@ pub struct BaseCode {
48
50
block_size : Option < & usize > ,
49
51
server_ip : * const uefi_raw:: IpAddress ,
50
52
filename : * const Char8 ,
51
- info : Option < & MtftpInfo > ,
53
+ info : * const PxeBaseCodeMtftpInfo ,
52
54
dont_use_buffer : Boolean ,
53
55
) -> Status ,
54
56
udp_write : unsafe extern "efiapi" fn (
@@ -163,7 +165,7 @@ impl BaseCode {
163
165
None ,
164
166
server_ip. as_raw_ptr ( ) ,
165
167
cstr8_to_ptr ( filename) ,
166
- None ,
168
+ null ( ) ,
167
169
Boolean :: FALSE ,
168
170
)
169
171
} ;
@@ -194,7 +196,7 @@ impl BaseCode {
194
196
None ,
195
197
server_ip. as_raw_ptr ( ) ,
196
198
cstr8_to_ptr ( filename) ,
197
- None ,
199
+ null ( ) ,
198
200
dont_use_buffer,
199
201
)
200
202
} ;
@@ -222,7 +224,7 @@ impl BaseCode {
222
224
None ,
223
225
server_ip. as_raw_ptr ( ) ,
224
226
cstr8_to_ptr ( filename) ,
225
- None ,
227
+ null ( ) ,
226
228
Boolean :: FALSE ,
227
229
)
228
230
}
@@ -250,7 +252,7 @@ impl BaseCode {
250
252
None ,
251
253
server_ip. as_raw_ptr ( ) ,
252
254
cstr8_to_ptr ( directory_name) ,
253
- None ,
255
+ null ( ) ,
254
256
Boolean :: FALSE ,
255
257
)
256
258
} ;
@@ -323,7 +325,7 @@ impl BaseCode {
323
325
None ,
324
326
server_ip. as_raw_ptr ( ) ,
325
327
cstr8_to_ptr ( filename) ,
326
- Some ( info) ,
328
+ info. as_raw_ptr ( ) ,
327
329
Boolean :: FALSE ,
328
330
)
329
331
} ;
@@ -355,7 +357,7 @@ impl BaseCode {
355
357
None ,
356
358
server_ip. as_raw_ptr ( ) ,
357
359
cstr8_to_ptr ( filename) ,
358
- Some ( info) ,
360
+ info. as_raw_ptr ( ) ,
359
361
dont_use_buffer,
360
362
)
361
363
} ;
@@ -383,7 +385,7 @@ impl BaseCode {
383
385
None ,
384
386
server_ip. as_raw_ptr ( ) ,
385
387
null_mut ( ) ,
386
- Some ( info) ,
388
+ info. as_raw_ptr ( ) ,
387
389
Boolean :: FALSE ,
388
390
)
389
391
} ;
@@ -829,6 +831,12 @@ pub struct MtftpInfo {
829
831
pub transmit_timeout : u16 ,
830
832
}
831
833
834
+ impl MtftpInfo {
835
+ fn as_raw_ptr ( & self ) -> * const PxeBaseCodeMtftpInfo {
836
+ ptr:: from_ref ( self ) . cast ( )
837
+ }
838
+ }
839
+
832
840
/// IP receive filter settings
833
841
///
834
842
/// Corresponds to the `EFI_PXE_BASE_CODE_IP_FILTER` type in the C API.
0 commit comments