Skip to content

Commit 04ea691

Browse files
committed
Function for setting BootOrder
1 parent 930e358 commit 04ea691

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/vars.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use uefi::guid::GLOBAL_VARIABLE_GUID;
33
use uefi::status::{Error, Result};
44

55
use crate::ffi::wstr;
6+
use crate::slice;
67
use crate::system_table;
78

89
fn get(name: &str, data: &mut [u8]) -> Result<usize> {
@@ -64,6 +65,15 @@ pub fn get_boot_order() -> Result<Vec<u16>> {
6465
Ok(order)
6566
}
6667

68+
pub fn set_boot_order(order: &[u16]) -> Result<usize> {
69+
set("BootOrder", unsafe {
70+
slice::from_raw_parts(
71+
order.as_ptr() as *const u8,
72+
order.len() * 2
73+
)
74+
})
75+
}
76+
6777
pub fn get_boot_item(num: u16) -> Result<Vec<u8>> {
6878
let mut data = [0; 4096];
6979
let count = get(&format!("Boot{:>04X}", num), &mut data)?;

0 commit comments

Comments
 (0)