-
-
Couldn't load subscription status.
- Fork 3.1k
std.os.uefi.protocol.File: fix some typed definitions #23443
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
Conversation
|
Gonna wait a bit before merging so @truemedian can review this too. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks reasonable to me other than a few nitpicks that are unrelated to fixing the original issue.
|
Oops, I meant to do a squash merge - apologies. |
#23214 has a few glitches, this is a PR fixing one of them :)
there were 3 issues with
Fileas pointed out by #23436:File.openin the spec, the
OpenModeargument can only beread,read|write, orread|write|execute. However, currently the interface only allowsread,write, andexecute. This PR addresses this problem:OpenMode.Bitswhich provides a bitfield representing those values from the specOpenMode's enum tags are renamed toread,read_write, andread_write_createfor better clarityOpenMode's enum values are implemented by bitcastingOpenMode.BitsvaluesFile.getInfoThe file info buffer should be larger than
@sizeOf(Info.*), becauseInfo.*types have an attached null-terminated string at the end.This method now requires the user to pass in a buffer which will contain the resulting info type.
To better align with the pattern being established in #23441, this function's return type is now
struct { usize, ?*Payload }.File.setInfoThe
lenaccounting as-is is wrong. It should account for the length of the attached null-terminated string.closes #23436