mirror of
https://github.com/ziglang/zig.git
synced 2025-12-24 15:13:08 +00:00
std/os/uefi: Fill out remaining function signatures and docs on boot_services
This commit is contained in:
parent
649b872450
commit
fe28cb8261
@ -59,23 +59,34 @@ pub const BootServices = extern struct {
|
||||
/// Checks whether an event is in the signaled state.
|
||||
checkEvent: fn (Event) callconv(.C) Status,
|
||||
|
||||
installProtocolInterface: Status, // TODO
|
||||
reinstallProtocolInterface: Status, // TODO
|
||||
uninstallProtocolInterface: Status, // TODO
|
||||
/// Installs a protocol interface on a device handle. If the handle does not exist, it is created
|
||||
/// and added to the list of handles in the system. installMultipleProtocolInterfaces()
|
||||
/// performs more error checking than installProtocolInterface(), so its use is recommended over this.
|
||||
installProtocolInterface: fn (Handle, *align(8) const Guid, EfiInterfaceType, *anyopaque) callconv(.C) Status,
|
||||
|
||||
/// Reinstalls a protocol interface on a device handle
|
||||
reinstallProtocolInterface: fn (Handle, *align(8) const Guid, *anyopaque, *anyopaque) callconv(.C) Status,
|
||||
|
||||
/// Removes a protocol interface from a device handle. Usage of
|
||||
/// uninstallMultipleProtocolInterfaces is recommended over this.
|
||||
uninstallProtocolInterface: fn (Handle, *align(8) const Guid, *anyopaque) callconv(.C) Status,
|
||||
|
||||
/// Queries a handle to determine if it supports a specified protocol.
|
||||
handleProtocol: fn (Handle, *align(8) const Guid, *?*anyopaque) callconv(.C) Status,
|
||||
|
||||
reserved: *anyopaque,
|
||||
|
||||
registerProtocolNotify: Status, // TODO
|
||||
/// Creates an event that is to be signaled whenever an interface is installed for a specified protocol.
|
||||
registerProtocolNotify: fn (*align(8) const Guid, Event, **anyopaque) callconv(.C) Status,
|
||||
|
||||
/// Returns an array of handles that support a specified protocol.
|
||||
locateHandle: fn (LocateSearchType, ?*align(8) const Guid, ?*const anyopaque, *usize, [*]Handle) callconv(.C) Status,
|
||||
|
||||
/// Locates the handle to a device on the device path that supports the specified protocol
|
||||
locateDevicePath: fn (*align(8) const Guid, **const DevicePathProtocol, *?Handle) callconv(.C) Status,
|
||||
installConfigurationTable: Status, // TODO
|
||||
|
||||
/// Adds, updates, or removes a configuration table entry from the EFI System Table.
|
||||
installConfigurationTable: fn (*align(8) const Guid, ?*anyopaque) callconv(.C) Status,
|
||||
|
||||
/// Loads an EFI image into memory.
|
||||
loadImage: fn (bool, Handle, ?*const DevicePathProtocol, ?[*]const u8, usize, *?Handle) callconv(.C) Status,
|
||||
@ -101,8 +112,11 @@ pub const BootServices = extern struct {
|
||||
/// Sets the system's watchdog timer.
|
||||
setWatchdogTimer: fn (usize, u64, usize, ?[*]const u16) callconv(.C) Status,
|
||||
|
||||
connectController: Status, // TODO
|
||||
disconnectController: Status, // TODO
|
||||
/// Connects one or more drives to a controller.
|
||||
connectController: fn (Handle, ?Handle, ?*DevicePathProtocol, bool) callconv(.C) Status,
|
||||
|
||||
// Disconnects one or more drivers from a controller
|
||||
disconnectController: fn (Handle, ?Handle, ?Handle) callconv(.C) Status,
|
||||
|
||||
/// Queries a handle to determine if it supports a specified protocol.
|
||||
openProtocol: fn (Handle, *align(8) const Guid, *?*anyopaque, ?Handle, ?Handle, OpenProtocolAttributes) callconv(.C) Status,
|
||||
@ -122,8 +136,11 @@ pub const BootServices = extern struct {
|
||||
/// Returns the first protocol instance that matches the given protocol.
|
||||
locateProtocol: fn (*align(8) const Guid, ?*const anyopaque, *?*anyopaque) callconv(.C) Status,
|
||||
|
||||
installMultipleProtocolInterfaces: Status, // TODO
|
||||
uninstallMultipleProtocolInterfaces: Status, // TODO
|
||||
/// Installs one or more protocol interfaces into the boot services environment
|
||||
installMultipleProtocolInterfaces: fn (*Handle, ...) callconv(.C) Status,
|
||||
|
||||
/// Removes one or more protocol interfaces into the boot services environment
|
||||
uninstallMultipleProtocolInterfaces: fn (*Handle, ...) callconv(.C) Status,
|
||||
|
||||
/// Computes and returns a 32-bit CRC for a data buffer.
|
||||
calculateCrc32: fn ([*]const u8, usize, *u32) callconv(.C) Status,
|
||||
@ -134,7 +151,8 @@ pub const BootServices = extern struct {
|
||||
/// Fills a buffer with a specified value
|
||||
setMem: fn ([*]u8, usize, u8) callconv(.C) void,
|
||||
|
||||
createEventEx: Status, // TODO
|
||||
/// Creates an event in a group.
|
||||
createEventEx: fn (u32, usize, EfiEventNotify, *const anyopaque, *align(8) const Guid, *Event) callconv(.C) Status,
|
||||
|
||||
pub const signature: u64 = 0x56524553544f4f42;
|
||||
|
||||
@ -151,6 +169,8 @@ pub const BootServices = extern struct {
|
||||
pub const tpl_high_level: usize = 31;
|
||||
};
|
||||
|
||||
pub const EfiEventNotify = fn (event: Event, ctx: *anyopaque) callconv(.C) void;
|
||||
|
||||
pub const TimerDelay = enum(u32) {
|
||||
TimerCancel,
|
||||
TimerPeriodic,
|
||||
@ -231,6 +251,10 @@ pub const ProtocolInformationEntry = extern struct {
|
||||
open_count: u32,
|
||||
};
|
||||
|
||||
pub const EfiInterfaceType = enum(u32) {
|
||||
EfiNativeInterface,
|
||||
};
|
||||
|
||||
pub const AllocateType = enum(u32) {
|
||||
AllocateAnyPages,
|
||||
AllocateMaxAddress,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user