-
Notifications
You must be signed in to change notification settings - Fork 161
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Request for EFI_SHELL_INTERFACE #448
Comments
Hi! If you (or anyone else) is interested in adding this protocol to |
I'm interested in taking this on if nobody else is. |
Thanks, please feel free :) For our future reference, here's the current latest UEFI Shell Spec: https://uefi.org/sites/default/files/resources/UEFI_Shell_2_2.pdf |
This protocol relies on linked lists for the functions dealing with, surprisingly, lists of files. The structure defined by UEFI looks like this: #[repr(C)]
pub struct ShellFileInfo {
link: ListEntry,
status: Status,
full_name: *const CStr16,
file_name: *const CStr16,
shell_file_handle: Handle,
info: *mut FileInfo
}
#[repr(C)]
pub struct ListEntry {
flink: *mut ListEntry,
blink: *mut ListEntry,
} Do you have any advice or know of any good resources for abstracting over this in a safe and at least somewhat Rust-y way, without |
I think you can represent this with a struct that implements |
I was looking into implementing So, would opening a PR for this even make sense? |
A PR for that would be welcome, yes :) Note though that in general you don't need any shell protocol to access the parameters passed to an image -- you can use the |
Name: EFI_SHELL_INTERFACE
GUID: 47C7B223-C42A-11D2-8E57-00A0C969723B
Docs: https://bsdio.com/edk2/docs/master/struct_e_f_i___s_h_e_l_l___i_n_t_e_r_f_a_c_e.html
Reason: Using it to parse boot arguments
The text was updated successfully, but these errors were encountered: