Runtime services are provided by the firmware before and after exitBootServices has been called.

As the runtime_services table may grow with new UEFI versions, it is important to check hdr.header_size.

Some functions may not be supported. Check the RuntimeServicesSupported variable using getVariable. getVariable is one of the functions that may not be supported.

Some functions may not be called while other functions are running.

Fields

getTime: *const fn (*uefi.Time, ?*TimeCapabilities) callconv(cc) Status,

Returns the current time and date information, and the time-keeping capabilities of the hardware platform.

setTime: *const fn (*uefi.Time) callconv(cc) Status,

Sets the current local time and date information

getWakeupTime: *const fn (*bool, *bool, *uefi.Time) callconv(cc) Status,

Returns the current wakeup alarm clock setting

setWakeupTime: *const fn (*bool, ?*uefi.Time) callconv(cc) Status,

Sets the system wakeup alarm clock time

setVirtualAddressMap: *const fn (usize, usize, u32, [*]MemoryDescriptor) callconv(cc) Status,

Changes the runtime addressing mode of EFI firmware from physical to virtual.

convertPointer: *const fn (usize, **anyopaque) callconv(cc) Status,

Determines the new virtual address that is to be used on subsequent memory accesses.

getVariable: *const fn ([*:0]const u16, *const align(8) Guid, ?*u32, *usize, ?*anyopaque) callconv(cc) Status,

Returns the value of a variable.

getNextVariableName: *const fn (*usize, [*:0]u16, *align(8) Guid) callconv(cc) Status,

Enumerates the current variable names.

setVariable: *const fn ([*:0]const u16, *const align(8) Guid, u32, usize, *anyopaque) callconv(cc) Status,

Sets the value of a variable.

getNextHighMonotonicCount: *const fn (*u32) callconv(cc) Status,

Return the next high 32 bits of the platform’s monotonic counter

resetSystem: *const fn (ResetType, Status, usize, ?*const anyopaque) callconv(cc) noreturn,

Resets the entire platform.

updateCapsule: *const fn (**CapsuleHeader, usize, EfiPhysicalAddress) callconv(cc) Status,

Passes capsules to the firmware with both virtual and physical mapping. Depending on the intended consumption, the firmware may process the capsule immediately. If the payload should persist across a system reset, the reset value returned from queryCapsuleCapabilities must be passed into resetSystem and will cause the capsule to be processed by the firmware as part of the reset process.

queryCapsuleCapabilities: *const fn (**CapsuleHeader, usize, *usize, ResetType) callconv(cc) Status,

Returns if the capsule can be supported via updateCapsule

queryVariableInfo: *const fn (*u32, *u64, *u64, *u64) callconv(cc) Status,

Returns information about the EFI variables

Values