@@ -287,72 +287,110 @@ impl InformationBuilder {
287
287
Self :: build_add_bytes ( bytes, & EndTag :: default ( ) . struct_as_bytes ( ) , true ) ;
288
288
}
289
289
290
- pub fn basic_memory_info_tag ( & mut self , basic_memory_info_tag : BasicMemoryInfoTag ) {
291
- self . basic_memory_info_tag = Some ( basic_memory_info_tag)
290
+ /// Adds a 'basic memory information' tag (represented by [`BasicMemoryInfoTag`]) to the builder.
291
+ pub fn basic_memory_info_tag ( mut self , basic_memory_info_tag : BasicMemoryInfoTag ) -> Self {
292
+ self . basic_memory_info_tag = Some ( basic_memory_info_tag) ;
293
+ self
292
294
}
293
295
294
- pub fn bootloader_name_tag ( & mut self , boot_loader_name_tag : BoxedDst < BootLoaderNameTag > ) {
296
+ /// Adds a 'bootloader name' tag (represented by [`BootLoaderNameTag`]) to the builder.
297
+ pub fn bootloader_name_tag (
298
+ mut self ,
299
+ boot_loader_name_tag : BoxedDst < BootLoaderNameTag > ,
300
+ ) -> Self {
295
301
self . boot_loader_name_tag = Some ( boot_loader_name_tag) ;
302
+ self
296
303
}
297
304
298
- pub fn command_line_tag ( & mut self , command_line_tag : BoxedDst < CommandLineTag > ) {
305
+ /// Adds a 'command line' tag (represented by [`CommandLineTag`]) to the builder.
306
+ pub fn command_line_tag ( mut self , command_line_tag : BoxedDst < CommandLineTag > ) -> Self {
299
307
self . command_line_tag = Some ( command_line_tag) ;
308
+ self
300
309
}
301
310
302
- pub fn efisdt32_tag ( & mut self , efisdt32 : EFISdt32Tag ) {
311
+ /// Adds a 'EFI 32-bit system table pointer' tag (represented by [`EFISdt32Tag`]) to the builder.
312
+ pub fn efisdt32_tag ( mut self , efisdt32 : EFISdt32Tag ) -> Self {
303
313
self . efisdt32_tag = Some ( efisdt32) ;
314
+ self
304
315
}
305
316
306
- pub fn efisdt64_tag ( & mut self , efisdt64 : EFISdt64Tag ) {
317
+ /// Adds a 'EFI 64-bit system table pointer' tag (represented by [`EFISdt64Tag`]) to the builder.
318
+ pub fn efisdt64_tag ( mut self , efisdt64 : EFISdt64Tag ) -> Self {
307
319
self . efisdt64_tag = Some ( efisdt64) ;
320
+ self
308
321
}
309
322
310
- pub fn efi_boot_services_not_exited_tag ( & mut self ) {
323
+ /// Adds a 'EFI boot services not terminated' tag (represented by [`EFIBootServicesNotExitedTag`]) to the builder.
324
+ pub fn efi_boot_services_not_exited_tag ( mut self ) -> Self {
311
325
self . efi_boot_services_not_exited_tag = Some ( EFIBootServicesNotExitedTag :: new ( ) ) ;
326
+ self
312
327
}
313
328
314
- pub fn efi_image_handle32 ( & mut self , efi_image_handle32 : EFIImageHandle32Tag ) {
329
+ /// Adds a 'EFI 32-bit image handle pointer' tag (represented by [`EFIImageHandle32Tag`]) to the builder.
330
+ pub fn efi_image_handle32 ( mut self , efi_image_handle32 : EFIImageHandle32Tag ) -> Self {
315
331
self . efi_image_handle32 = Some ( efi_image_handle32) ;
332
+ self
316
333
}
317
334
318
- pub fn efi_image_handle64 ( & mut self , efi_image_handle64 : EFIImageHandle64Tag ) {
335
+ /// Adds a 'EFI 64-bit image handle pointer' tag (represented by [`EFIImageHandle64Tag`]) to the builder.
336
+ pub fn efi_image_handle64 ( mut self , efi_image_handle64 : EFIImageHandle64Tag ) -> Self {
319
337
self . efi_image_handle64 = Some ( efi_image_handle64) ;
338
+ self
320
339
}
321
340
322
- pub fn efi_memory_map_tag ( & mut self , efi_memory_map_tag : BoxedDst < EFIMemoryMapTag > ) {
341
+ /// Adds a 'EFI Memory map' tag (represented by [`EFIMemoryMapTag`]) to the builder.
342
+ pub fn efi_memory_map_tag ( mut self , efi_memory_map_tag : BoxedDst < EFIMemoryMapTag > ) -> Self {
323
343
self . efi_memory_map_tag = Some ( efi_memory_map_tag) ;
344
+ self
324
345
}
325
346
326
- pub fn elf_sections_tag ( & mut self , elf_sections_tag : BoxedDst < ElfSectionsTag > ) {
347
+ /// Adds a 'ELF-Symbols' tag (represented by [`ElfSectionsTag`]) to the builder.
348
+ pub fn elf_sections_tag ( mut self , elf_sections_tag : BoxedDst < ElfSectionsTag > ) -> Self {
327
349
self . elf_sections_tag = Some ( elf_sections_tag) ;
350
+ self
328
351
}
329
352
330
- pub fn framebuffer_tag ( & mut self , framebuffer_tag : BoxedDst < FramebufferTag > ) {
353
+ /// Adds a 'Framebuffer info' tag (represented by [`FramebufferTag`]) to the builder.
354
+ pub fn framebuffer_tag ( mut self , framebuffer_tag : BoxedDst < FramebufferTag > ) -> Self {
331
355
self . framebuffer_tag = Some ( framebuffer_tag) ;
356
+ self
332
357
}
333
358
334
- pub fn image_load_addr ( & mut self , image_load_addr : ImageLoadPhysAddrTag ) {
359
+ /// Adds a 'Image load base physical address' tag (represented by [`ImageLoadPhysAddrTag`]) to the builder.
360
+ pub fn image_load_addr ( mut self , image_load_addr : ImageLoadPhysAddrTag ) -> Self {
335
361
self . image_load_addr = Some ( image_load_addr) ;
362
+ self
336
363
}
337
364
338
- pub fn memory_map_tag ( & mut self , memory_map_tag : BoxedDst < MemoryMapTag > ) {
365
+ /// Adds a (*none EFI*) 'memory map' tag (represented by [`MemoryMapTag`]) to the builder.
366
+ pub fn memory_map_tag ( mut self , memory_map_tag : BoxedDst < MemoryMapTag > ) -> Self {
339
367
self . memory_map_tag = Some ( memory_map_tag) ;
368
+ self
340
369
}
341
370
342
- pub fn add_module_tag ( & mut self , module_tag : BoxedDst < ModuleTag > ) {
371
+ /// Adds a 'Modules' tag (represented by [`ModuleTag`]) to the builder.
372
+ /// This tag can occur multiple times in boot information.
373
+ pub fn add_module_tag ( mut self , module_tag : BoxedDst < ModuleTag > ) -> Self {
343
374
self . module_tags . push ( module_tag) ;
375
+ self
344
376
}
345
377
346
- pub fn rsdp_v1_tag ( & mut self , rsdp_v1_tag : RsdpV1Tag ) {
378
+ /// Adds a 'ACPI old RSDP' tag (represented by [`RsdpV1Tag`]) to the builder.
379
+ pub fn rsdp_v1_tag ( mut self , rsdp_v1_tag : RsdpV1Tag ) -> Self {
347
380
self . rsdp_v1_tag = Some ( rsdp_v1_tag) ;
381
+ self
348
382
}
349
383
350
- pub fn rsdp_v2_tag ( & mut self , rsdp_v2_tag : RsdpV2Tag ) {
384
+ /// Adds a 'ACPI new RSDP' tag (represented by [`RsdpV2Tag`]) to the builder.
385
+ pub fn rsdp_v2_tag ( mut self , rsdp_v2_tag : RsdpV2Tag ) -> Self {
351
386
self . rsdp_v2_tag = Some ( rsdp_v2_tag) ;
387
+ self
352
388
}
353
389
354
- pub fn add_smbios_tag ( & mut self , smbios_tag : BoxedDst < SmbiosTag > ) {
390
+ /// Adds a 'SMBIOS tables' tag (represented by [`SmbiosTag`]) to the builder.
391
+ pub fn add_smbios_tag ( mut self , smbios_tag : BoxedDst < SmbiosTag > ) -> Self {
355
392
self . smbios_tags . push ( smbios_tag) ;
393
+ self
356
394
}
357
395
}
358
396
@@ -369,18 +407,18 @@ mod tests {
369
407
assert_eq ! ( builder. expected_len( ) , expected_len) ;
370
408
371
409
// the most simple tag
372
- builder. basic_memory_info_tag ( BasicMemoryInfoTag :: new ( 640 , 7 * 1024 ) ) ;
410
+ builder = builder . basic_memory_info_tag ( BasicMemoryInfoTag :: new ( 640 , 7 * 1024 ) ) ;
373
411
expected_len += 16 ;
374
412
assert_eq ! ( builder. expected_len( ) , expected_len) ;
375
413
// a tag that has a dynamic size
376
- builder. command_line_tag ( CommandLineTag :: new ( "test" ) ) ;
414
+ builder = builder . command_line_tag ( CommandLineTag :: new ( "test" ) ) ;
377
415
expected_len += 8 + 5 + 3 ; // padding
378
416
assert_eq ! ( builder. expected_len( ) , expected_len) ;
379
417
// many modules
380
- builder. add_module_tag ( ModuleTag :: new ( 0 , 1234 , "module1" ) ) ;
418
+ builder = builder . add_module_tag ( ModuleTag :: new ( 0 , 1234 , "module1" ) ) ;
381
419
expected_len += 16 + 8 ;
382
420
assert_eq ! ( builder. expected_len( ) , expected_len) ;
383
- builder. add_module_tag ( ModuleTag :: new ( 5678 , 6789 , "module2" ) ) ;
421
+ builder = builder . add_module_tag ( ModuleTag :: new ( 5678 , 6789 , "module2" ) ) ;
384
422
expected_len += 16 + 8 ;
385
423
assert_eq ! ( builder. expected_len( ) , expected_len) ;
386
424
0 commit comments