3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 Light weight lib to support Tiano drivers.
22 #include <RuntimeLibInternal.h>
26 IN EFI_RESET_TYPE ResetType
,
27 IN EFI_STATUS ResetStatus
,
35 Resets the entire platform.
39 ResetType - The type of reset to perform.
40 ResetStatus - The status code for the reset.
41 DataSize - The size, in bytes, of ResetData.
42 ResetData - A data buffer that includes a Null-terminated Unicode string, optionally
43 followed by additional binary data.
51 mRT
->ResetSystem (ResetType
, ResetStatus
, DataSize
, ResetData
);
55 // The following functions hide the mRT local global from the call to
56 // runtime service in the EFI system table.
61 OUT EFI_TIME_CAPABILITIES
*Capabilities
67 Returns the current time and date information, and the time-keeping
68 capabilities of the hardware platform.
72 Time - A pointer to storage to receive a snapshot of the current time.
73 Capabilities - An optional pointer to a buffer to receive the real time clock device¡¯s
82 return mRT
->GetTime (Time
, Capabilities
);
93 Sets the current local time and date information.
97 Time - A pointer to the current time.
105 return mRT
->SetTime (Time
);
110 OUT BOOLEAN
*Enabled
,
111 OUT BOOLEAN
*Pending
,
118 Returns the current wakeup alarm clock setting.
122 Enabled - Indicates if the alarm is currently enabled or disabled.
123 Pending - Indicates if the alarm signal is pending and requires acknowledgement.
124 Time - The current alarm setting.
132 return mRT
->GetWakeupTime (Enabled
, Pending
, Time
);
144 Sets the system wakeup alarm clock time.
148 Enable - Enable or disable the wakeup alarm.
149 Time - If Enable is TRUE, the time to set the wakeup alarm for.
150 If Enable is FALSE, then this parameter is optional, and may be NULL.
158 return mRT
->SetWakeupTime (Enable
, Time
);
166 IN CHAR16
*VariableName
,
167 IN EFI_GUID
* VendorGuid
,
168 OUT UINT32
*Attributes OPTIONAL
,
169 IN OUT UINTN
*DataSize
,
176 Returns the value of a variable.
180 VariableName - A Null-terminated Unicode string that is the name of the
182 VendorGuid - A unique identifier for the vendor.
183 Attributes - If not NULL, a pointer to the memory location to return the
184 attributes bitmask for the variable.
185 DataSize - On input, the size in bytes of the return Data buffer.
186 On output the size of data returned in Data.
187 Data - The buffer to return the contents of the variable.
195 return mRT
->GetVariable (VariableName
, VendorGuid
, Attributes
, DataSize
, Data
);
199 EfiGetNextVariableName (
200 IN OUT UINTN
*VariableNameSize
,
201 IN OUT CHAR16
*VariableName
,
202 IN OUT EFI_GUID
*VendorGuid
208 Enumerates the current variable names.
212 VariableNameSize - The size of the VariableName buffer.
213 VariableName - On input, supplies the last VariableName that was returned
214 by GetNextVariableName().
215 On output, returns the Nullterminated Unicode string of the
217 VendorGuid - On input, supplies the last VendorGuid that was returned by
218 GetNextVariableName().
219 On output, returns the VendorGuid of the current variable.
227 return mRT
->GetNextVariableName (VariableNameSize
, VariableName
, VendorGuid
);
232 IN CHAR16
*VariableName
,
233 IN EFI_GUID
*VendorGuid
,
234 IN UINT32 Attributes
,
242 Sets the value of a variable.
246 VariableName - A Null-terminated Unicode string that is the name of the
248 VendorGuid - A unique identifier for the vendor.
249 Attributes - Attributes bitmask to set for the variable.
250 DataSize - The size in bytes of the Data buffer.
251 Data - The contents for the variable.
259 return mRT
->SetVariable (VariableName
, VendorGuid
, Attributes
, DataSize
, Data
);
263 EfiGetNextHighMonotonicCount (
264 OUT UINT32
*HighCount
270 Returns the next high 32 bits of the platform¡¯s monotonic counter.
274 HighCount - Pointer to returned value.
282 return mRT
->GetNextHighMonotonicCount (HighCount
);
287 IN UINTN DebugDisposition
,
294 Determines the new virtual address that is to be used on subsequent memory accesses.
298 DebugDisposition - Supplies type information for the pointer being converted.
299 Address - A pointer to a pointer that is to be fixed to be the value needed
300 for the new virtual address mappings being applied.
308 return mRT
->ConvertPointer (DebugDisposition
, Address
);
312 EfiConvertInternalPointer (
319 Call EfiConvertPointer() to convert internal pointer.
323 Address - A pointer to a pointer that is to be fixed to be the value needed
324 for the new virtual address mappings being applied.
332 return EfiConvertPointer (0x0, Address
);
337 IN UINTN DebugDisposition
,
338 IN OUT LIST_ENTRY
*ListHead
344 Conver the standard Lib double linked list to a virtual mapping.
348 DebugDisposition - Argument to EfiConvertPointer (EFI 1.0 API)
350 ListHead - Head of linked list to convert
359 LIST_ENTRY
*NextLink
;
362 // Convert all the ForwardLink & BackLink pointers in the list
366 NextLink
= Link
->ForwardLink
;
369 Link
->ForwardLink
== ListHead
? DebugDisposition
: 0,
370 (VOID
**) &Link
->ForwardLink
374 Link
->BackLink
== ListHead
? DebugDisposition
: 0,
375 (VOID
**) &Link
->BackLink
379 } while (Link
!= ListHead
);
385 Change the runtime addressing mode of EFI firmware from physical to virtual.
387 @param MemoryMapSize The size in bytes of VirtualMap.
388 @param DescriptorSize The size in bytes of an entry in the VirtualMap.
389 @param DescriptorVersion The version of the structure entries in VirtualMap.
390 @param VirtualMap An array of memory descriptors which contain new virtual
391 address mapping information for all runtime ranges. Type
392 EFI_MEMORY_DESCRIPTOR is defined in the
393 GetMemoryMap() function description.
395 @retval EFI_SUCCESS The virtual address map has been applied.
396 @retval EFI_UNSUPPORTED EFI firmware is not at runtime, or the EFI firmware is already in
397 virtual address mapped mode.
398 @retval EFI_INVALID_PARAMETER DescriptorSize or DescriptorVersion is
400 @retval EFI_NO_MAPPING A virtual address was not supplied for a range in the memory
401 map that requires a mapping.
402 @retval EFI_NOT_FOUND A virtual address was supplied for an address that is not found
407 EfiSetVirtualAddressMap (
408 IN UINTN MemoryMapSize
,
409 IN UINTN DescriptorSize
,
410 IN UINT32 DescriptorVersion
,
411 IN CONST EFI_MEMORY_DESCRIPTOR
*VirtualMap
414 return mRT
->SetVirtualAddressMap (
418 (EFI_MEMORY_DESCRIPTOR
*) VirtualMap
425 IN UEFI_CAPSULE_HEADER
**CapsuleHeaderArray
,
426 IN UINTN CapsuleCount
,
427 IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL
430 #if (EFI_SPECIFICATION_VERSION >= 0x00020000)
431 return mRT
->UpdateCapsule (
437 return EFI_UNSUPPORTED
;
442 EfiQueryCapsuleCapabilities (
443 IN UEFI_CAPSULE_HEADER
**CapsuleHeaderArray
,
444 IN UINTN CapsuleCount
,
445 OUT UINT64
*MaximumCapsuleSize
,
446 OUT EFI_RESET_TYPE
*ResetType
449 #if (EFI_SPECIFICATION_VERSION >= 0x00020000)
450 return mRT
->QueryCapsuleCapabilities (
457 return EFI_UNSUPPORTED
;
463 EfiQueryVariableInfo (
464 IN UINT32 Attributes
,
465 OUT UINT64
*MaximumVariableStorageSize
,
466 OUT UINT64
*RemainingVariableStorageSize
,
467 OUT UINT64
*MaximumVariableSize
470 #if (EFI_SPECIFICATION_VERSION >= 0x00020000)
471 return mRT
->QueryVariableInfo (
473 MaximumVariableStorageSize
,
474 RemainingVariableStorageSize
,
478 return EFI_UNSUPPORTED
;