diff --git a/MdePkg/Include/Library/UefiLib.h b/MdePkg/Include/Library/UefiLib.h
index 84c1375f63..3fca8d1f68 100644
--- a/MdePkg/Include/Library/UefiLib.h
+++ b/MdePkg/Include/Library/UefiLib.h
@@ -8,7 +8,7 @@
EFI Driver Model related protocols, manage Unicode string tables for UEFI Drivers,
and print messages on the console output and standard error devices.
-Copyright (c) 2006 - 2008, Intel Corporation
+Copyright (c) 2006 - 2008, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -249,6 +249,8 @@ EfiInitializeLock (
);
/**
+ Initializes a basic mutual exclusion lock.
+
This macro initializes the contents of a basic mutual exclusion lock to the
released state. Each lock provides mutual exclusion access at its task
priority level. Since there is no preemption or multiprocessor support in EFI,
@@ -264,7 +266,6 @@ EfiInitializeLock (
/**
-
Macro that calls DebugAssert() if an EFI_LOCK structure is not in the locked state.
If the DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of PcdDebugProperyMask is set,
@@ -307,11 +308,12 @@ EfiAcquireLock (
);
/**
- Acquires ownership of a lock. If the lock is already owned , then an error is returned.
+ Acquires ownership of a lock.
- This function raises the system's current task priority level to the task
- priority level of the mutual exclusion lock. Then, it attempts to place the
- lock in the acquired state.
+ This function raises the system's current task priority level to the task priority
+ level of the mutual exclusion lock. Then, it attempts to place the lock in the acquired state.
+ If the lock is already in the acquired state, then EFI_ACCESS_DENIED is returned.
+ Otherwise, EFI_SUCCESS is returned.
If Lock is NULL, then ASSERT().
If Lock is not initialized, then ASSERT().
@@ -407,7 +409,7 @@ EfiTestChildHandle (
/**
This function looks up a Unicode string in UnicodeStringTable.
- If Language is a member of SupportedLanguages and a Unicode string is found in
+ If Language is a member of SupportedLanguages and a Unicode string is found in
UnicodeStringTable that matches the language code specified by Language, then it
is returned in UnicodeString.
@@ -445,48 +447,42 @@ LookupUnicodeString (
/**
This function looks up a Unicode string in UnicodeStringTable.
- If Language is a member of SupportedLanguages and a Unicode
- string is found in UnicodeStringTable that matches the
- language code specified by Language, then it is returned in
- UnicodeString.
- @param Language A pointer to the ISO 639-2 or
- RFC 3066 language code for the
- Unicode string to look up and
- return.
- @param SupportedLanguages A pointer to the set of ISO
- 639-2 or RFC 3066 language
- codes that the Unicode string
- table supports. Language must
- be a member of this set.
- @param UnicodeStringTable A pointer to the table of
- Unicode strings.
- @param UnicodeString A pointer to the Unicode
- string from UnicodeStringTable
- that matches the language
- specified by Language.
- @param Iso639Language Specify the language code
- format supported. If true,
- then the format follow ISO
- 639-2. If false, then it
- follows RFC3066.
- @retval EFI_SUCCESS The Unicode string that
- matches the language specified
- by Language was found in the
- table of Unicoide strings
- UnicodeStringTable, and it was
- returned in UnicodeString.
+ If Language is a member of SupportedLanguages and a Unicode string is found in
+ UnicodeStringTable that matches the language code specified by Language, then
+ it is returned in UnicodeString.
+ @param Language A pointer to an ASCII string containing the ISO 639-2 or the
+ RFC 4646 language code for the Unicode string to look up and
+ return. If Iso639Language is TRUE, then this ASCII string is
+ not assumed to be Null-terminated, and only the first three
+ chacters are used. If Iso639Language is FALSE, then this ASCII
+ string must be Null-terminated.
+ @param SupportedLanguages A pointer to a Null-terminated ASCII string that contains a
+ set of ISO 639-2 or RFC 4646 language codes that the Unicode
+ string table supports. Language must be a member of this set.
+ If Iso639Language is TRUE, then this string contains one or more
+ ISO 639-2 language codes with no separator characters. If Iso639Language
+ is FALSE, then is string contains one or more RFC 4646 language
+ codes separated by ';'.
+ @param UnicodeStringTable A pointer to the table of Unicode strings. Type EFI_UNICODE_STRING_TABLE
+ is defined in "Related Definitions".
+ @param UnicodeString A pointer to the Null-terminated Unicode string from UnicodeStringTable
+ that matches the language specified by Language.
+ @param Iso639Language Specifies the supported language code format. If it is TRUE, then
+ Language and SupportedLanguages follow ISO 639-2 language code format.
+ Otherwise, they follow RFC 4646 language code format.
+
+
+ @retval EFI_SUCCESS The Unicode string that matches the language specified by Language
+ was found in the table of Unicode strings UnicodeStringTable, and
+ it was returned in UnicodeString.
@retval EFI_INVALID_PARAMETER Language is NULL.
@retval EFI_INVALID_PARAMETER UnicodeString is NULL.
@retval EFI_UNSUPPORTED SupportedLanguages is NULL.
@retval EFI_UNSUPPORTED UnicodeStringTable is NULL.
- @retval EFI_UNSUPPORTED The language specified by
- Language is not a member
- ofSupportedLanguages.
- @retval EFI_UNSUPPORTED The language specified by
- Language is not supported by
- UnicodeStringTable.
+ @retval EFI_UNSUPPORTED The language specified by Language is not a member of SupportedLanguages.
+ @retval EFI_UNSUPPORTED The language specified by Language is not supported by UnicodeStringTable.
**/
EFI_STATUS
@@ -542,52 +538,45 @@ AddUnicodeString (
);
/**
- This function adds a Unicode string to UnicodeStringTable.
+ This function adds the Null-terminated Unicode string specified by UnicodeString
+ to UnicodeStringTable.
- If Language is a member of SupportedLanguages then
- UnicodeString is added to UnicodeStringTable. New buffers are
- allocated for both Language and UnicodeString. The contents
- of Language and UnicodeString are copied into these new
- buffers. These buffers are automatically freed when
- FreeUnicodeStringTable() is called.
+ If Language is a member of SupportedLanguages then UnicodeString is added to
+ UnicodeStringTable. New buffers are allocated for both Language and UnicodeString.
+ The contents of Language and UnicodeString are copied into these new buffers.
+ These buffers are automatically freed when EfiLibFreeUnicodeStringTable() is called.
- @param Language A pointer to the ISO 639-2 or
- RFC 3066 language code for the
- Unicode string to add.
- @param SupportedLanguages A pointer to the set of ISO
- 639-2 or RFC 3066 language
- codes that the Unicode string
- table supports. Language must
- be a member of this set.
- @param UnicodeStringTable A pointer to the table of
- Unicode strings.
- @param UnicodeString A pointer to the Unicode
- string to add.
- @param Iso639Language Specify the language code
- format supported. If true,
- then the format follow ISO
- 639-2. If false, then it
- follows RFC3066.
- @retval EFI_SUCCESS The Unicode string that
- matches the language specified
- by Language was found in the
- table of Unicode strings
- UnicodeStringTable, and it was
- returned in UnicodeString.
-
- @retval EFI_INVALID_PARAMETER Language is NULL.
- @retval EFI_INVALID_PARAMETER UnicodeString is NULL.
- @retval EFI_INVALID_PARAMETER UnicodeString is an empty string.
- @retval EFI_UNSUPPORTED SupportedLanguages is NULL.
- @retval EFI_ALREADY_STARTED A Unicode string with language
- Language is already present in
- UnicodeStringTable.
- @retval EFI_OUT_OF_RESOURCES There is not enough memory to
- add another Unicode string to
- UnicodeStringTable.
- @retval EFI_UNSUPPORTED The language specified by
- Language is not a member of
- SupportedLanguages.
+ @param Language A pointer to an ASCII string containing the ISO 639-2 or
+ the RFC 4646 language code for the Unicode string to add.
+ If Iso639Language is TRUE, then this ASCII string is not
+ assumed to be Null-terminated, and only the first three
+ chacters are used. If Iso639Language is FALSE, then this
+ ASCII string must be Null-terminated.
+ @param SupportedLanguages A pointer to a Null-terminated ASCII string that contains
+ a set of ISO 639-2 or RFC 4646 language codes that the Unicode
+ string table supports. Language must be a member of this set.
+ If Iso639Language is TRUE, then this string contains one or more
+ ISO 639-2 language codes with no separator characters.
+ If Iso639Language is FALSE, then is string contains one or more
+ RFC 4646 language codes separated by ';'.
+ @param UnicodeStringTable A pointer to the table of Unicode strings. Type EFI_UNICODE_STRING_TABLE
+ is defined in "Related Definitions".
+ @param UnicodeString A pointer to the Unicode string to add.
+ @param Iso639Language Specifies the supported language code format. If it is TRUE,
+ then Language and SupportedLanguages follow ISO 639-2 language code format.
+ Otherwise, they follow RFC 4646 language code format.
+
+ @retval EFI_SUCCESS The Unicode string that matches the language specified by
+ Language was found in the table of Unicode strings UnicodeStringTable,
+ and it was returned in UnicodeString.
+ @retval EFI_INVALID_PARAMETER Language is NULL.
+ @retval EFI_INVALID_PARAMETER UnicodeString is NULL.
+ @retval EFI_INVALID_PARAMETER UnicodeString is an empty string.
+ @retval EFI_UNSUPPORTED SupportedLanguages is NULL.
+ @retval EFI_ALREADY_STARTED A Unicode string with language Language is already present in
+ UnicodeStringTable.
+ @retval EFI_OUT_OF_RESOURCES There is not enough memory to add another Unicode string UnicodeStringTable.
+ @retval EFI_UNSUPPORTED The language specified by Language is not a member of SupportedLanguages.
**/
EFI_STATUS
@@ -619,8 +608,10 @@ FreeUnicodeStringTable (
);
/**
- This function computes and returns the width of the Unicode character
- specified by UnicodeChar.
+ Retrieves the width of a Unicode character.
+
+ This function computes and returns the width of the Unicode character specified
+ by UnicodeChar.
@param UnicodeChar A Unicode character.
@@ -638,11 +629,13 @@ GetGlyphWidth (
/**
Computes the display length of a Null-terminated Unicode String.
- This function computes and returns the display length of
- the Null-terminated Unicode string specified by String.
- If String is NULL, then 0 is returned.
- If any of the widths of the Unicode characters in String
- can not be determined, then 0 is returned.
+ This function computes and returns the display length of the Null-terminated Unicode
+ string specified by String. If String is NULL then 0 is returned. If any of the widths
+ of the Unicode characters in String can not be determined, then 0 is returned. The display
+ width of String can be computed by summing the display widths of each Unicode character
+ in String. Unicode characters that are narrow glyphs have a width of 1, and Unicode
+ characters that are width glyphs have a width of 2.
+ If String is not aligned on a 16-bit boundary, then ASSERT().
@param String A pointer to a Null-terminated Unicode string.
@@ -662,9 +655,9 @@ UnicodeStringDisplayLength (
Create, Signal, and Close the Ready to Boot event using EfiSignalEventReadyToBoot().
This function abstracts the signaling of the Ready to Boot Event. The Framework moved
- from a proprietary to UEFI 2.0 based mechanism. This library abstracts the caller from
- how this event is created to prevent to code form having to change with the version of
- the specification supported.
+ from a proprietary to UEFI 2.0 based mechanism. This library abstracts the caller
+ from how this event is created to prevent to code form having to change with the
+ version of the specification supported.
**/
VOID
@@ -689,14 +682,14 @@ EfiSignalEventLegacyBoot (
);
/**
- Creates an EFI event in the Legacy Boot Event Group. Prior to UEFI 2.0 this
- was done via a non blessed UEFI extensions and this library abstracts the
- implementation mechanism of this event from the caller.
-
- This function abstracts the creation of the Legacy Boot Event. The Framework
- moved from a proprietary to UEFI 2.0 based mechanism. This library abstracts
- the caller from how this event is created to prevent to code form having to
- change with the version of the specification supported.
+ Creates an EFI event in the Legacy Boot Event Group.
+
+ Prior to UEFI 2.0 this was done via a non blessed UEFI extensions and this library
+ abstracts the implementation mechanism of this event from the caller. This function
+ abstracts the creation of the Legacy Boot Event. The Framework moved from a proprietary
+ to UEFI 2.0 based mechanism. This library abstracts the caller from how this event
+ is created to prevent to code form having to change with the version of the
+ specification supported.
If LegacyBootEvent is NULL, then ASSERT().
@param LegacyBootEvent Returns the EFI event returned from gBS->CreateEvent(Ex).
@@ -740,10 +733,10 @@ EfiCreateEventLegacyBootEx (
);
/**
- Create an EFI event in the Ready To Boot Event Group. Prior to UEFI 2.0 this
- was done via a non-standard UEFI extension, and this library abstracts the
- implementation mechanism of this event from the caller.
-
+ Create an EFI event in the Ready To Boot Event Group.
+
+ Prior to UEFI 2.0 this was done via a non-standard UEFI extension, and this library
+ abstracts the implementation mechanism of this event from the caller.
This function abstracts the creation of the Ready to Boot Event. The Framework
moved from a proprietary to UEFI 2.0-based mechanism. This library abstracts
the caller from how this event is created to prevent the code form having to
@@ -899,7 +892,6 @@ ErrorPrint (
string is greater than PcdUefiLibMaxPrintBufferSize, then only the first
PcdUefiLibMaxPrintBufferSize characters are sent to ConOut.
If Format is NULL, then ASSERT().
- If Format is not aligned on a 16-bit boundary, then ASSERT().
@param Format Null-terminated ASCII format string.
@param ... Variable argument list whose contents are accessed based
@@ -925,7 +917,6 @@ AsciiPrint (
string is greater than PcdUefiLibMaxPrintBufferSize, then only the first
PcdUefiLibMaxPrintBufferSize characters are sent to StdErr.
If Format is NULL, then ASSERT().
- If Format is not aligned on a 16-bit boundary, then ASSERT().
@param Format Null-terminated ASCII format string.
@param ... Variable argument list whose contents are accessed based
@@ -1008,7 +999,6 @@ PrintXY (
If the EFI_HII_FONT_PROTOCOL is not present in the handle database, then no
string is printed, and 0 is returned.
If Format is NULL, then ASSERT().
- If Format is not aligned on a 16-bit boundary, then ASSERT().
@param X X coordinate to print the string.
@param Y Y coordinate to print the string.
@@ -1040,23 +1030,25 @@ AsciiPrintXY (
);
/**
- Initializes a driver by installing the Driver Binding Protocol onto the driver's
- DriverBindingHandle.
+ Installs and completes the initialization of a Driver Binding Protocol instance.
+
+ Installs the Driver Binding Protocol specified by DriverBinding onto the handle
+ specified by DriverBindingHandle. If DriverBindingHandle is NULL, then DriverBinding
+ is installed onto a newly created handle. DriverBindingHandle is typically the same
+ as the driver's ImageHandle, but it can be different if the driver produces multiple
+ Driver Binding Protocols.
+ If DriverBinding is NULL, then ASSERT().
+ If DriverBinding can not be installed onto a handle, then ASSERT().
- This is typically the same as the driver's ImageHandle, but
- it can be different if the driver produces multiple DriverBinding Protocols.
- If the Driver Binding Protocol interface is NULL, then ASSERT ().
- If the installation fails, then ASSERT ().
+ @param ImageHandle The image handle of the driver.
+ @param SystemTable The EFI System Table that was passed to the driver's entry point.
+ @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
+ @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
+ parameter is NULL, then a new handle is created.
- @param ImageHandle The image handle of the driver.
- @param SystemTable The EFI System Table that was passed to the driver's entry point.
- @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
- @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
- parameter is NULL, then a new handle is created.
-
- @retval EFI_SUCCESS The protocol installation is completed successfully.
- @retval EFI_OUT_OF_RESOURCES There was not enough system resources to install the protocol.
- @retval Others Status from gBS->InstallMultipleProtocolInterfaces().
+ @retval EFI_SUCCESS The protocol installation is completed successfully.
+ @retval EFI_OUT_OF_RESOURCES There was not enough system resources to install the protocol.
+ @retval Others Status from gBS->InstallMultipleProtocolInterfaces().
**/
EFI_STATUS
@@ -1070,25 +1062,29 @@ EfiLibInstallDriverBinding (
/**
- Initializes a driver by installing the Driver Binding Protocol together with the optional Component Name,
- Driver Configure and Driver Diagnostic Protocols onto the driver's DriverBindingHandle.
+ Installs and completes the initialization of a Driver Binding Protocol instance and
+ optionally installs the Component Name, Driver Configuration and Driver Diagnostics Protocols.
- This is typically the same as the driver's ImageHandle, but it can be different if the driver produces multiple
- DriverBinding Protocols.
- If the Driver Binding Protocol interface is NULL, then ASSERT ().
- If the installation fails, then ASSERT ().
+ Initializes a driver by installing the Driver Binding Protocol together with the
+ optional Component Name, optional Driver Configure and optional Driver Diagnostic
+ Protocols onto the driver's DriverBindingHandle. If DriverBindingHandle is NULL,
+ then the protocols are installed onto a newly created handle. DriverBindingHandle
+ is typically the same as the driver's ImageHandle, but it can be different if the
+ driver produces multiple Driver Binding Protocols.
+ If DriverBinding is NULL, then ASSERT().
+ If the installation fails, then ASSERT().
+
+ @param ImageHandle The image handle of the driver.
+ @param SystemTable The EFI System Table that was passed to the driver's entry point.
+ @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
+ @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
+ parameter is NULL, then a new handle is created.
+ @param ComponentName A Component Name Protocol instance that this driver is producing.
+ @param DriverConfiguration A Driver Configuration Protocol instance that this driver is producing.
+ @param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver is producing.
- @param ImageHandle The image handle of the driver.
- @param SystemTable The EFI System Table that was passed to the driver's entry point.
- @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
- @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
- parameter is NULL, then a new handle is created.
- @param ComponentName A Component Name Protocol instance that this driver is producing.
- @param DriverConfiguration A Driver Configuration Protocol instance that this driver is producing.
- @param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver is producing.
-
- @retval EFI_SUCCESS The protocol installation is completed successfully.
- @retval Others Status from gBS->InstallMultipleProtocolInterfaces().
+ @retval EFI_SUCCESS The protocol installation is completed successfully.
+ @retval EFI_OUT_OF_RESOURCES There was not enough memory in pool to install all the protocols.
**/
EFI_STATUS
@@ -1106,22 +1102,26 @@ EfiLibInstallAllDriverProtocols (
/**
- Initializes a driver by installing the Driver Binding Protocol together with the optional Component Name,
- Component Name 2 onto the driver's DriverBindingHandle. This is typically the same as the driver's
- ImageHandle, but it can be different if the driver produces multiple DriverBinding Protocols.
- If the Driver Binding Protocol interface is NULL, then ASSERT ().
- If the installation fails, then ASSERT ().
+ Installs Driver Binding Protocol with optional Component Name and Component Name 2 Protocols.
- @param ImageHandle The image handle of the driver.
- @param SystemTable The EFI System Table that was passed to the driver's entry point.
- @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
- @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
- parameter is NULL, then a new handle is created.
- @param ComponentName A Component Name Protocol instance that this driver is producing.
- @param ComponentName2 A Component Name 2 Protocol instance that this driver is producing.
+ Initializes a driver by installing the Driver Binding Protocol together with the
+ optional Component Name and optional Component Name 2 protocols onto the driver's
+ DriverBindingHandle. If DriverBindingHandle is NULL, then the protocols are installed
+ onto a newly created handle. DriverBindingHandle is typically the same as the driver's
+ ImageHandle, but it can be different if the driver produces multiple Driver Binding Protocols.
+ If DriverBinding is NULL, then ASSERT().
+ If the installation fails, then ASSERT().
- @retval EFI_SUCCESS The protocol installation is completed successfully.
- @retval Others Status from gBS->InstallMultipleProtocolInterfaces().
+ @param ImageHandle The image handle of the driver.
+ @param SystemTable The EFI System Table that was passed to the driver's entry point.
+ @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
+ @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
+ parameter is NULL, then a new handle is created.
+ @param ComponentName A Component Name Protocol instance that this driver is producing.
+ @param ComponentName2 A Component Name 2 Protocol instance that this driver is producing.
+
+ @retval EFI_SUCCESS The protocol installation is completed successfully.
+ @retval EFI_OUT_OF_RESOURCES There was not enough memory in pool to install all the protocols.
**/
EFI_STATUS
@@ -1137,29 +1137,31 @@ EfiLibInstallDriverBindingComponentName2 (
/**
- Intialize a driver by installing the Driver Binding Protocol together with the optional Component Name,
- Component Name 2, Driver Configure, Driver Diagnostic and Driver Diagnostic 2 Protocols onto the driver's
- DriverBindingHandle.
+ Installs Driver Binding Protocol with optional Component Name, Component Name 2, Driver
+ Configuration, Driver Configuration 2, Driver Diagnostics, and Driver Diagnostics 2 Protocols.
- This is typically the same as the driver's ImageHandle, but it can be different if
- the driver produces multiple DriverBinding Protocols.
- If the Drvier Binding Protocol interface is NULL, then ASSERT ().
- If the installation fails, then ASSERT ().
+ Initializes a driver by installing the Driver Binding Protocol together with the optional
+ Component Name, optional Component Name 2, optional Driver Configuration, optional Driver
+ Configuration 2, optional Driver Diagnostic, and optional Driver Diagnostic 2 Protocols
+ onto the driver's DriverBindingHandle. DriverBindingHandle is typically the same as the
+ driver's ImageHandle, but it can be different if the driver produces multiple Driver Binding Protocols.
+ If DriverBinding is NULL, then ASSERT().
+ If the installation fails, then ASSERT().
- @param ImageHandle The image handle of the driver.
- @param SystemTable The EFI System Table that was passed to the driver's entry point.
- @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
- @param DriverBindingHandle The handle that DriverBinding is to be installe onto. If this
- parameter is NULL, then a new handle is created.
- @param ComponentName A Component Name Protocol instance that this driver is producing.
- @param ComponentName2 A Component Name 2 Protocol instance that this driver is producing.
- @param DriverConfiguration A Driver Configuration Protocol instance that this driver is producing.
- @param DriverConfiguration2 A Driver Configuration Protocol 2 instance that this driver is producing.
- @param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver is producing.
- @param DriverDiagnostics2 A Driver Diagnostics Protocol 2 instance that this driver is producing.
+ @param ImageHandle The image handle of the driver.
+ @param SystemTable The EFI System Table that was passed to the driver's entry point.
+ @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
+ @param DriverBindingHandle The handle that DriverBinding is to be installe onto. If this
+ parameter is NULL, then a new handle is created.
+ @param ComponentName A Component Name Protocol instance that this driver is producing.
+ @param ComponentName2 A Component Name 2 Protocol instance that this driver is producing.
+ @param DriverConfiguration A Driver Configuration Protocol instance that this driver is producing.
+ @param DriverConfiguration2 A Driver Configuration Protocol 2 instance that this driver is producing.
+ @param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver is producing.
+ @param DriverDiagnostics2 A Driver Diagnostics Protocol 2 instance that this driver is producing.
- @retval EFI_SUCCESS The protocol installation is completed successfully.
- @retval Others Status from gBS->InstallMultipleProtocolInterfaces().
+ @retval EFI_SUCCESS The protocol installation is completed successfully.
+ @retval EFI_OUT_OF_RESOURCES There was not enough memory in pool to install all the protocols.
**/
EFI_STATUS
diff --git a/MdePkg/Include/Library/UefiRuntimeLib.h b/MdePkg/Include/Library/UefiRuntimeLib.h
index d6a709f353..54be1017df 100644
--- a/MdePkg/Include/Library/UefiRuntimeLib.h
+++ b/MdePkg/Include/Library/UefiRuntimeLib.h
@@ -113,7 +113,7 @@ EfiSetTime (
);
/**
- Returns the current wakeup alarm clock setting.
+ This service is a wrapper for the UEFI Runtime Service GetWakeupTime().
The alarm clock time may be rounded from the set alarm clock time to be within the resolution
of the alarm clock device. The resolution of the alarm clock device is defined to be one second.
@@ -142,7 +142,14 @@ EfiGetWakeupTime (
);
/**
- Sets the system wakeup alarm clock time.
+ This service is a wrapper for the UEFI Runtime Service SetWakeupTime()
+
+ Setting a system wakeup alarm causes the system to wake up or power on at the set time.
+ When the alarm fires, the alarm signal is latched until it is acknowledged by calling SetWakeupTime()
+ to disable the alarm. If the alarm fires before the system is put into a sleeping or off state,
+ since the alarm signal is latched the system will immediately wake up. If the alarm fires while
+ the system is off and there is insufficient power to power on the system, the system is powered
+ on when power is restored.
@param Enable Enable or disable the wakeup alarm.
@param Time If Enable is TRUE, the time to set the wakeup alarm for. Type EFI_TIME
@@ -164,10 +171,17 @@ EfiSetWakeupTime (
);
/**
- Return value of variable.
+ This service is a wrapper for the UEFI Runtime Service GetVariable().
- @param VariableName the name of the vendor's variable, it's a
- Null-Terminated Unicode String
+ Each vendor may create and manage its own variables without the risk of name conflicts by
+ using a unique VendorGuid. When a variable is set its Attributes are supplied to indicate
+ how the data variable should be stored and maintained by the system. The attributes affect
+ when the variable may be accessed and volatility of the data. Any attempts to access a variable
+ that does not have the attribute set for runtime access will yield the EFI_NOT_FOUND error.
+ If the Data buffer is too small to hold the contents of the variable, the error EFI_BUFFER_TOO_SMALL
+ is returned and DataSize is set to the required buffer size to obtain the data.
+
+ @param VariableName the name of the vendor's variable, it's a Null-Terminated Unicode String
@param VendorGuid Unify identifier for vendor.
@param Attributes Point to memory location to return the attributes of variable. If the point
is NULL, the parameter would be ignored.
@@ -197,7 +211,13 @@ EfiGetVariable (
);
/**
- Enumerates variable's name.
+ This service is a wrapper for the UEFI Runtime Service GetNextVariableName().
+
+ GetNextVariableName() is called multiple times to retrieve the VariableName and VendorGuid of
+ all variables currently available in the system. On each call to GetNextVariableName() the
+ previous results are passed into the interface, and on output the interface returns the next
+ variable name data. When the entire variable list has been returned, the error EFI_NOT_FOUND
+ is returned.
@param VariableNameSize As input, point to maxinum size of variable name.
As output, point to actual size of varaible name.
@@ -229,7 +249,10 @@ EfiGetNextVariableName (
);
/**
- Sets value of variable.
+ This service is a wrapper for the UEFI Runtime Service GetNextVariableName()
+
+ Variables are stored by the firmware and may maintain their values across power cycles. Each vendor
+ may create and manage its own variables without the risk of name conflicts by using a unique VendorGuid.
@param VariableName the name of the vendor's variable, it's a
Null-Terminated Unicode String
@@ -265,7 +288,13 @@ EfiSetVariable (
);
/**
- Returns the next high 32 bits of platform's monotonic counter.
+ This service is a wrapper for the UEFI Runtime Service GetNextHighMonotonicCount().
+
+ The platform¡¯s monotonic counter is comprised of two 32-bit quantities: the high 32 bits and
+ the low 32 bits. During boot service time the low 32-bit value is volatile: it is reset to zero
+ on every system reset and is increased by 1 on every call to GetNextMonotonicCount(). The high
+ 32-bit value is nonvolatile and is increased by 1 whenever the system resets or whenever the low
+ 32-bit count (returned by GetNextMonoticCount()) overflows.
@param HighCount Pointer to returned value.
@@ -281,22 +310,32 @@ EfiGetNextHighMonotonicCount (
);
/**
- Resets the entire platform.
+ This service is a wrapper for the UEFI Runtime Service ResetSystem().
+
+ The ResetSystem()function resets the entire platform, including all processors and devices,and reboots the system.
+ Calling this interface with ResetType of EfiResetCold causes a system-wide reset. This sets all circuitry within
+ the system to its initial state. This type of reset is asynchronous to system operation and operates without regard
+ to cycle boundaries. EfiResetCold is tantamount to a system power cycle.
+ Calling this interface with ResetType of EfiResetWarm causes a system-wide initialization. The processors are set to
+ their initial state, and pending cycles are not corrupted. If the system does not support this reset type, then an
+ EfiResetCold must be performed.
+ Calling this interface with ResetType of EfiResetShutdown causes the system to enter a power state equivalent to the
+ ACPI G2/S5 or G3 states. If the system does not support this reset type, then when the system is rebooted, it should
+ exhibit the EfiResetCold attributes.
+ The platform may optionally log the parmeters from any non-normal reset that occurs.
+ The ResetSystem() function does not return.
@param ResetType The type of reset to perform.
- @param ResetStatus The status code for the reset. If the system reset is part of a
- normal operation, the status code would be EFI_SUCCESS. If the system
- reset is due to some type of failure the most appropriate EFI Status
- code would be used.
+ @param ResetStatus The status code for the reset. If the system reset is part of a normal operation, the status code
+ would be EFI_SUCCESS. If the system reset is due to some type of failure the most appropriate EFI
+ Status code would be used.
@param DataSizeThe size, in bytes, of ResetData.
- @param ResetData For a ResetType of EfiResetCold, EfiResetWarm, or EfiResetShutdown
- the data buffer starts with a Null-terminated Unicode string, optionally
- followed by additional binary data. The string is a description that the
- caller may use to further indicate the reason for the system reset. ResetData
- is only valid if ResetStatus is something other then EFI_SUCCESS. This
- pointer must be a physical address. For a ResetType of EfiRestUpdate the
- data buffer also starts with a Null-terminated string that is followed by
- a physical VOID * to an EFI_CAPSULE_HEADER.
+ @param ResetData For a ResetType of EfiResetCold, EfiResetWarm, or EfiResetShutdown the data buffer starts with a
+ Null-terminated Unicode string, optionally followed by additional binary data. The string is a
+ description that the caller may use to further indicate the reason for the system reset. ResetData
+ is only valid if ResetStatus is something other then EFI_SUCCESS. This pointer must be a physical
+ address. For a ResetType of EfiRestUpdate the data buffer also starts with a Null-terminated string
+ that is followed by a physical VOID * to an EFI_CAPSULE_HEADER.
**/
VOID
@@ -309,7 +348,10 @@ EfiResetSystem (
);
/**
- This service converts a function pointer from physical to virtual addressing.
+ This service is a wrapper for the UEFI Runtime Service ConvertPointer().
+
+ The ConvertPointer() function is used by an EFI component during the SetVirtualAddressMap() operation.
+ ConvertPointer()must be called using physical address pointers during the execution of SetVirtualAddressMap().
@param DebugDisposition Supplies type information for the pointer being converted.
@param Address The pointer to a pointer that is to be fixed to be the
@@ -360,7 +402,12 @@ EfiConvertFunctionPointer (
);
/**
- Change the runtime addressing mode of EFI firmware from physical to virtual.
+ This service is a wrapper for the UEFI Runtime Service SetVirtualAddressMap().
+
+ The SetVirtualAddressMap() function is used by the OS loader. The function can only be called
+ at runtime, and is called by the owner of the system¡¯s memory map. I.e., the component which
+ called ExitBootServices(). All events of type EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE must be signaled
+ before SetVirtualAddressMap() returns.
@param MemoryMapSize The size in bytes of VirtualMap.
@param DescriptorSize The size in bytes of an entry in the VirtualMap.
@@ -412,12 +459,12 @@ EfiConvertList (
);
/**
- 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 EFI_QueryCapsuleCapabilities must
- be passed into ResetSystem() and will cause the capsule to be processed by
- the firmware as part of the reset process.
+ This service is a wrapper for the UEFI Runtime Service UpdateCapsule().
+
+ 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 EFI_QueryCapsuleCapabilities must be passed into ResetSystem()
+ and will cause the capsule to be processed by the firmware as part of the reset process.
@param CapsuleHeaderArray Virtual pointer to an array of virtual pointers to the capsules
being passed into update capsule. Each capsules is assumed to
@@ -455,6 +502,8 @@ EfiUpdateCapsule (
/**
+ This service is a wrapper for the UEFI Runtime Service QueryCapsuleCapabilities().
+
The QueryCapsuleCapabilities() function allows a caller to test to see if a capsule or
capsules can be updated via UpdateCapsule(). The Flags values in the capsule header and
size of the entire capsule is checked.
@@ -497,7 +546,7 @@ EfiQueryCapsuleCapabilities (
/**
- Returns information about the EFI variables.
+ This service is a wrapper for the UEFI Runtime Service QueryVariableInfo().
The QueryVariableInfo() function allows a caller to obtain the information about the
maximum size of the storage space available for the EFI variables, the remaining size of the storage
@@ -528,6 +577,7 @@ EfiQueryCapsuleCapabilities (
MaximumVariableStorageSize,
RemainingVariableStorageSize, MaximumVariableSize
are undefined.
+
**/
EFI_STATUS
EFIAPI
diff --git a/MdePkg/Include/Library/UefiRuntimeServicesTableLib.h b/MdePkg/Include/Library/UefiRuntimeServicesTableLib.h
index f890cd82b2..04284c7330 100644
--- a/MdePkg/Include/Library/UefiRuntimeServicesTableLib.h
+++ b/MdePkg/Include/Library/UefiRuntimeServicesTableLib.h
@@ -1,8 +1,16 @@
/** @file
Provides a service to retrieve a pointer to the EFI Runtime Services Table.
+
+ This library does not contain any functions or macros. It simply exports the
+ global variable gRT that is a pointer to the EFI Runtime Services Table as defined
+ in the UEFI Specification. The global variable gRT must be preinitialized to NULL.
+ The library constructor must set gRT to point at the EFI Runtime Services Table so
+ it is available at the module's entry point. Since there is overhead in initializing
+ this global variable, only those modules that actually require access to the EFI
+ Runtime Services Table should use this library.
Only available to DXE and UEFI module types.
-Copyright (c) 2006 - 2008, Intel Corporation
+Copyright (c) 2006 - 2008, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
diff --git a/MdePkg/Include/Library/UefiScsiLib.h b/MdePkg/Include/Library/UefiScsiLib.h
index b990cfded5..97f97c793b 100644
--- a/MdePkg/Include/Library/UefiScsiLib.h
+++ b/MdePkg/Include/Library/UefiScsiLib.h
@@ -1,7 +1,10 @@
/** @file
-
Provides the functions to submit Scsi commands defined in SCSI-2 specification for scsi device.
+ This library class provides the functions to submit SCSI commands defined in SCSI-2 specification
+ for hard drive, CD and DVD devices that are the most common SCSI boot targets used by UEFI platforms.
+ This library class depends on SCSI I/O Protocol defined in UEFI Specification and SCSI-2 industry standard.
+
Copyright (c) 2006 - 2008, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
diff --git a/MdePkg/Library/UefiLib/Console.c b/MdePkg/Library/UefiLib/Console.c
index 110b19029f..fd223f42f3 100644
--- a/MdePkg/Library/UefiLib/Console.c
+++ b/MdePkg/Library/UefiLib/Console.c
@@ -189,8 +189,10 @@ GLOBAL_REMOVE_IF_UNREFERENCED CONST UNICODE_WIDTH_ENTRY mUnicodeWidthTable[] = {
};
/**
- This function computes and returns the width of the Unicode character
- specified by UnicodeChar.
+ Retrieves the width of a Unicode character.
+
+ This function computes and returns the width of the Unicode character specified
+ by UnicodeChar.
@param UnicodeChar A Unicode character.
@@ -246,11 +248,13 @@ GetGlyphWidth (
/**
Computes the display length of a Null-terminated Unicode String.
- This function computes and returns the display length of
- the Null-terminated Unicode string specified by String.
- If String is NULL, then 0 is returned.
- If any of the widths of the Unicode characters in String
- can not be determined, then 0 is returned.
+ This function computes and returns the display length of the Null-terminated Unicode
+ string specified by String. If String is NULL then 0 is returned. If any of the widths
+ of the Unicode characters in String can not be determined, then 0 is returned. The display
+ width of String can be computed by summing the display widths of each Unicode character
+ in String. Unicode characters that are narrow glyphs have a width of 1, and Unicode
+ characters that are width glyphs have a width of 2.
+ If String is not aligned on a 16-bit boundary, then ASSERT().
@param String A pointer to a Null-terminated Unicode string.
diff --git a/MdePkg/Library/UefiLib/UefiDriverModel.c b/MdePkg/Library/UefiLib/UefiDriverModel.c
index 2fe7a10796..28037b6058 100644
--- a/MdePkg/Library/UefiLib/UefiDriverModel.c
+++ b/MdePkg/Library/UefiLib/UefiDriverModel.c
@@ -17,23 +17,25 @@
#include "UefiLibInternal.h"
/**
- Initializes a driver by installing the Driver Binding Protocol onto the driver's
- DriverBindingHandle.
+ Installs and completes the initialization of a Driver Binding Protocol instance.
+
+ Installs the Driver Binding Protocol specified by DriverBinding onto the handle
+ specified by DriverBindingHandle. If DriverBindingHandle is NULL, then DriverBinding
+ is installed onto a newly created handle. DriverBindingHandle is typically the same
+ as the driver's ImageHandle, but it can be different if the driver produces multiple
+ Driver Binding Protocols.
+ If DriverBinding is NULL, then ASSERT().
+ If DriverBinding can not be installed onto a handle, then ASSERT().
- This is typically the same as the driver's ImageHandle, but
- it can be different if the driver produces multiple DriverBinding Protocols.
- If the Driver Binding Protocol interface is NULL, then ASSERT ().
- If the installation fails, then ASSERT ().
+ @param ImageHandle The image handle of the driver.
+ @param SystemTable The EFI System Table that was passed to the driver's entry point.
+ @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
+ @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
+ parameter is NULL, then a new handle is created.
- @param ImageHandle The image handle of the driver.
- @param SystemTable The EFI System Table that was passed to the driver's entry point.
- @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
- @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
- parameter is NULL, then a new handle is created.
-
- @retval EFI_SUCCESS The protocol installation is completed successfully.
- @retval EFI_OUT_OF_RESOURCES There was not enough system resources to install the protocol.
- @retval Others Status from gBS->InstallMultipleProtocolInterfaces().
+ @retval EFI_SUCCESS The protocol installation is completed successfully.
+ @retval EFI_OUT_OF_RESOURCES There was not enough system resources to install the protocol.
+ @retval Others Status from gBS->InstallMultipleProtocolInterfaces().
**/
EFI_STATUS
@@ -70,25 +72,29 @@ EfiLibInstallDriverBinding (
/**
- Initializes a driver by installing the Driver Binding Protocol together with the optional Component Name,
- Driver Configure and Driver Diagnostic Protocols onto the driver's DriverBindingHandle.
+ Installs and completes the initialization of a Driver Binding Protocol instance and
+ optionally installs the Component Name, Driver Configuration and Driver Diagnostics Protocols.
- This is typically the same as the driver's ImageHandle, but it can be different if the driver produces multiple
- DriverBinding Protocols.
- If the Driver Binding Protocol interface is NULL, then ASSERT ().
- If the installation fails, then ASSERT ().
+ Initializes a driver by installing the Driver Binding Protocol together with the
+ optional Component Name, optional Driver Configure and optional Driver Diagnostic
+ Protocols onto the driver's DriverBindingHandle. If DriverBindingHandle is NULL,
+ then the protocols are installed onto a newly created handle. DriverBindingHandle
+ is typically the same as the driver's ImageHandle, but it can be different if the
+ driver produces multiple Driver Binding Protocols.
+ If DriverBinding is NULL, then ASSERT().
+ If the installation fails, then ASSERT().
+
+ @param ImageHandle The image handle of the driver.
+ @param SystemTable The EFI System Table that was passed to the driver's entry point.
+ @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
+ @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
+ parameter is NULL, then a new handle is created.
+ @param ComponentName A Component Name Protocol instance that this driver is producing.
+ @param DriverConfiguration A Driver Configuration Protocol instance that this driver is producing.
+ @param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver is producing.
- @param ImageHandle The image handle of the driver.
- @param SystemTable The EFI System Table that was passed to the driver's entry point.
- @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
- @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
- parameter is NULL, then a new handle is created.
- @param ComponentName A Component Name Protocol instance that this driver is producing.
- @param DriverConfiguration A Driver Configuration Protocol instance that this driver is producing.
- @param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver is producing.
-
- @retval EFI_SUCCESS The protocol installation is completed successfully.
- @retval Others Status from gBS->InstallMultipleProtocolInterfaces().
+ @retval EFI_SUCCESS The protocol installation is completed successfully.
+ @retval EFI_OUT_OF_RESOURCES There was not enough memory in pool to install all the protocols.
**/
EFI_STATUS
@@ -198,22 +204,26 @@ EfiLibInstallAllDriverProtocols (
/**
- Intialize a driver by installing the Driver Binding Protocol together with the optional Component Name,
- Component Name 2 onto the driver's DriverBindingHandle. This is typically the same as the driver's
- ImageHandle, but it can be different if the driver produces multiple DriverBinding Protocols.
- If the Drvier Binding Protocol interface is NULL, then ASSERT ().
- If the installation fails, then ASSERT ().
+ Installs Driver Binding Protocol with optional Component Name and Component Name 2 Protocols.
- @param ImageHandle The image handle of the driver.
- @param SystemTable The EFI System Table that was passed to the driver's entry point.
- @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
- @param DriverBindingHandle The handle that DriverBinding is to be installe onto. If this
- parameter is NULL, then a new handle is created.
- @param ComponentName A Component Name Protocol instance that this driver is producing.
- @param ComponentName2 A Component Name 2 Protocol instance that this driver is producing.
+ Initializes a driver by installing the Driver Binding Protocol together with the
+ optional Component Name and optional Component Name 2 protocols onto the driver's
+ DriverBindingHandle. If DriverBindingHandle is NULL, then the protocols are installed
+ onto a newly created handle. DriverBindingHandle is typically the same as the driver's
+ ImageHandle, but it can be different if the driver produces multiple Driver Binding Protocols.
+ If DriverBinding is NULL, then ASSERT().
+ If the installation fails, then ASSERT().
- @retval EFI_SUCCESS The protocol installation is completed successfully.
- @retval Others Status from gBS->InstallMultipleProtocolInterfaces().
+ @param ImageHandle The image handle of the driver.
+ @param SystemTable The EFI System Table that was passed to the driver's entry point.
+ @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
+ @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
+ parameter is NULL, then a new handle is created.
+ @param ComponentName A Component Name Protocol instance that this driver is producing.
+ @param ComponentName2 A Component Name 2 Protocol instance that this driver is producing.
+
+ @retval EFI_SUCCESS The protocol installation is completed successfully.
+ @retval EFI_OUT_OF_RESOURCES There was not enough memory in pool to install all the protocols.
**/
EFI_STATUS
@@ -281,29 +291,31 @@ EfiLibInstallDriverBindingComponentName2 (
/**
- Intialize a driver by installing the Driver Binding Protocol together with the optional Component Name,
- Component Name 2, Driver Configure, Driver Diagnostic and Driver Diagnostic 2 Protocols onto the driver's
- DriverBindingHandle.
+ Installs Driver Binding Protocol with optional Component Name, Component Name 2, Driver
+ Configuration, Driver Configuration 2, Driver Diagnostics, and Driver Diagnostics 2 Protocols.
- This is typically the same as the driver's ImageHandle, but it can be different if
- the driver produces multiple DriverBinding Protocols.
- If the Drvier Binding Protocol interface is NULL, then ASSERT ().
- If the installation fails, then ASSERT ().
+ Initializes a driver by installing the Driver Binding Protocol together with the optional
+ Component Name, optional Component Name 2, optional Driver Configuration, optional Driver
+ Configuration 2, optional Driver Diagnostic, and optional Driver Diagnostic 2 Protocols
+ onto the driver's DriverBindingHandle. DriverBindingHandle is typically the same as the
+ driver's ImageHandle, but it can be different if the driver produces multiple Driver Binding Protocols.
+ If DriverBinding is NULL, then ASSERT().
+ If the installation fails, then ASSERT().
- @param ImageHandle The image handle of the driver.
- @param SystemTable The EFI System Table that was passed to the driver's entry point.
- @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
- @param DriverBindingHandle The handle that DriverBinding is to be installe onto. If this
- parameter is NULL, then a new handle is created.
- @param ComponentName A Component Name Protocol instance that this driver is producing.
- @param ComponentName2 A Component Name 2 Protocol instance that this driver is producing.
- @param DriverConfiguration A Driver Configuration Protocol instance that this driver is producing.
- @param DriverConfiguration2 A Driver Configuration Protocol 2 instance that this driver is producing.
- @param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver is producing.
- @param DriverDiagnostics2 A Driver Diagnostics Protocol 2 instance that this driver is producing.
+ @param ImageHandle The image handle of the driver.
+ @param SystemTable The EFI System Table that was passed to the driver's entry point.
+ @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
+ @param DriverBindingHandle The handle that DriverBinding is to be installe onto. If this
+ parameter is NULL, then a new handle is created.
+ @param ComponentName A Component Name Protocol instance that this driver is producing.
+ @param ComponentName2 A Component Name 2 Protocol instance that this driver is producing.
+ @param DriverConfiguration A Driver Configuration Protocol instance that this driver is producing.
+ @param DriverConfiguration2 A Driver Configuration Protocol 2 instance that this driver is producing.
+ @param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver is producing.
+ @param DriverDiagnostics2 A Driver Diagnostics Protocol 2 instance that this driver is producing.
- @retval EFI_SUCCESS The protocol installation is completed successfully.
- @retval Others Status from gBS->InstallMultipleProtocolInterfaces().
+ @retval EFI_SUCCESS The protocol installation is completed successfully.
+ @retval EFI_OUT_OF_RESOURCES There was not enough memory in pool to install all the protocols.
**/
EFI_STATUS
diff --git a/MdePkg/Library/UefiLib/UefiLib.c b/MdePkg/Library/UefiLib/UefiLib.c
index 53a46106e1..c463295bd1 100644
--- a/MdePkg/Library/UefiLib/UefiLib.c
+++ b/MdePkg/Library/UefiLib/UefiLib.c
@@ -280,18 +280,16 @@ EfiNamedEventSignal (
return Status;
}
-/**
+/**
Returns the current TPL.
- This function returns the current TPL. There is no EFI service to directly
- retrieve the current TPL. Instead, the RaiseTPL() function is used to raise
- the TPL to TPL_HIGH_LEVEL. This will return the current TPL. The TPL level
- can then immediately be restored back to the current TPL level with a call
+ This function returns the current TPL. There is no EFI service to directly
+ retrieve the current TPL. Instead, the RaiseTPL() function is used to raise
+ the TPL to TPL_HIGH_LEVEL. This will return the current TPL. The TPL level
+ can then immediately be restored back to the current TPL level with a call
to RestoreTPL().
- @param VOID
-
- @retval EFI_TPL The current TPL.
+ @return The current TPL.
**/
EFI_TPL
@@ -368,11 +366,12 @@ EfiAcquireLock (
}
/**
- Acquires ownership of a lock. If the lock is already owned , then an error is returned.
+ Acquires ownership of a lock.
- This function raises the system's current task priority level to the task
- priority level of the mutual exclusion lock. Then, it attempts to place the
- lock in the acquired state.
+ This function raises the system's current task priority level to the task priority
+ level of the mutual exclusion lock. Then, it attempts to place the lock in the acquired state.
+ If the lock is already in the acquired state, then EFI_ACCESS_DENIED is returned.
+ Otherwise, EFI_SUCCESS is returned.
If Lock is NULL, then ASSERT().
If Lock is not initialized, then ASSERT().
@@ -444,7 +443,7 @@ EfiReleaseLock (
currently managing the controller specified by ControllerHandle. This test
is performed by evaluating if the the protocol specified by ProtocolGuid is
present on ControllerHandle and is was opened by DriverBindingHandle with an
- attribute of EFI_OPEN_PROTOCOL_BY_DRIVER.
+ attribute of EFI_OPEN_PROTOCOL_BY_DRIVER.
If ProtocolGuid is NULL, then ASSERT().
@param ControllerHandle A handle for a controller to test.
@@ -507,10 +506,10 @@ EfiTestManagedDevice (
ChildHandle with an attribute of EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER.
If ProtocolGuid is NULL, then ASSERT().
- @param ControllerHandle A handle for a (parent) controller to test.
+ @param ControllerHandle A handle for a (parent) controller to test.
@param ChildHandle A child handle to test.
@param ProtocolGuid Supplies the protocol that the child controller
- opens on its parent controller.
+ opens on its parent controller.
@retval EFI_SUCCESS ChildHandle is a child of the ControllerHandle.
@retval EFI_UNSUPPORTED ChildHandle is not a child of the
@@ -565,7 +564,7 @@ EfiTestChildHandle (
/**
This function looks up a Unicode string in UnicodeStringTable.
- If Language is a member of SupportedLanguages and a Unicode string is found in
+ If Language is a member of SupportedLanguages and a Unicode string is found in
UnicodeStringTable that matches the language code specified by Language, then it
is returned in UnicodeString.
@@ -651,48 +650,42 @@ LookupUnicodeString (
/**
This function looks up a Unicode string in UnicodeStringTable.
- If Language is a member of SupportedLanguages and a Unicode
- string is found in UnicodeStringTable that matches the
- language code specified by Language, then it is returned in
- UnicodeString.
- @param Language A pointer to the ISO 639-2 or
- RFC 3066 language code for the
- Unicode string to look up and
- return.
- @param SupportedLanguages A pointer to the set of ISO
- 639-2 or RFC 3066 language
- codes that the Unicode string
- table supports. Language must
- be a member of this set.
- @param UnicodeStringTable A pointer to the table of
- Unicode strings.
- @param UnicodeString A pointer to the Unicode
- string from UnicodeStringTable
- that matches the language
- specified by Language.
- @param Iso639Language Specify the language code
- format supported. If true,
- then the format follow ISO
- 639-2. If false, then it
- follows RFC3066.
- @retval EFI_SUCCESS The Unicode string that
- matches the language specified
- by Language was found in the
- table of Unicoide strings
- UnicodeStringTable, and it was
- returned in UnicodeString.
-
+ If Language is a member of SupportedLanguages and a Unicode string is found in
+ UnicodeStringTable that matches the language code specified by Language, then
+ it is returned in UnicodeString.
+
+ @param Language A pointer to an ASCII string containing the ISO 639-2 or the
+ RFC 4646 language code for the Unicode string to look up and
+ return. If Iso639Language is TRUE, then this ASCII string is
+ not assumed to be Null-terminated, and only the first three
+ chacters are used. If Iso639Language is FALSE, then this ASCII
+ string must be Null-terminated.
+ @param SupportedLanguages A pointer to a Null-terminated ASCII string that contains a
+ set of ISO 639-2 or RFC 4646 language codes that the Unicode
+ string table supports. Language must be a member of this set.
+ If Iso639Language is TRUE, then this string contains one or more
+ ISO 639-2 language codes with no separator characters. If Iso639Language
+ is FALSE, then is string contains one or more RFC 4646 language
+ codes separated by ';'.
+ @param UnicodeStringTable A pointer to the table of Unicode strings. Type EFI_UNICODE_STRING_TABLE
+ is defined in "Related Definitions".
+ @param UnicodeString A pointer to the Null-terminated Unicode string from UnicodeStringTable
+ that matches the language specified by Language.
+ @param Iso639Language Specifies the supported language code format. If it is TRUE, then
+ Language and SupportedLanguages follow ISO 639-2 language code format.
+ Otherwise, they follow RFC 4646 language code format.
+
+
+ @retval EFI_SUCCESS The Unicode string that matches the language specified by Language
+ was found in the table of Unicode strings UnicodeStringTable, and
+ it was returned in UnicodeString.
@retval EFI_INVALID_PARAMETER Language is NULL.
@retval EFI_INVALID_PARAMETER UnicodeString is NULL.
@retval EFI_UNSUPPORTED SupportedLanguages is NULL.
- @retval EFI_UNSUPPORTED UnicodeStringTable is NULL.
- @retval EFI_UNSUPPORTED The language specified by
- Language is not a member
- ofSupportedLanguages.
- @retval EFI_UNSUPPORTED The language specified by
- Language is not supported by
- UnicodeStringTable.
+ @retval EFI_UNSUPPORTED UnicodeStringTable is NULL.
+ @retval EFI_UNSUPPORTED The language specified by Language is not a member of SupportedLanguages.
+ @retval EFI_UNSUPPORTED The language specified by Language is not supported by UnicodeStringTable.
**/
EFI_STATUS
@@ -944,52 +937,45 @@ AddUnicodeString (
/**
- This function adds a Unicode string to UnicodeStringTable.
+ This function adds the Null-terminated Unicode string specified by UnicodeString
+ to UnicodeStringTable.
- If Language is a member of SupportedLanguages then
- UnicodeString is added to UnicodeStringTable. New buffers are
- allocated for both Language and UnicodeString. The contents
- of Language and UnicodeString are copied into these new
- buffers. These buffers are automatically freed when
- FreeUnicodeStringTable() is called.
+ If Language is a member of SupportedLanguages then UnicodeString is added to
+ UnicodeStringTable. New buffers are allocated for both Language and UnicodeString.
+ The contents of Language and UnicodeString are copied into these new buffers.
+ These buffers are automatically freed when EfiLibFreeUnicodeStringTable() is called.
- @param Language A pointer to the ISO 639-2 or
- RFC 3066 language code for the
- Unicode string to add.
- @param SupportedLanguages A pointer to the set of ISO
- 639-2 or RFC 3066 language
- codes that the Unicode string
- table supports. Language must
- be a member of this set.
- @param UnicodeStringTable A pointer to the table of
- Unicode strings.
- @param UnicodeString A pointer to the Unicode
- string to add.
- @param Iso639Language Specify the language code
- format supported. If true,
- then the format follow ISO
- 639-2. If false, then it
- follows RFC3066.
- @retval EFI_SUCCESS The Unicode string that
- matches the language specified
- by Language was found in the
- table of Unicode strings
- UnicodeStringTable, and it was
- returned in UnicodeString.
-
- @retval EFI_INVALID_PARAMETER Language is NULL.
- @retval EFI_INVALID_PARAMETER UnicodeString is NULL.
- @retval EFI_INVALID_PARAMETER UnicodeString is an empty string.
- @retval EFI_UNSUPPORTED SupportedLanguages is NULL.
- @retval EFI_ALREADY_STARTED A Unicode string with language
- Language is already present in
- UnicodeStringTable.
- @retval EFI_OUT_OF_RESOURCES There is not enough memory to
- add another Unicode string to
- UnicodeStringTable.
- @retval EFI_UNSUPPORTED The language specified by
- Language is not a member of
- SupportedLanguages.
+ @param Language A pointer to an ASCII string containing the ISO 639-2 or
+ the RFC 4646 language code for the Unicode string to add.
+ If Iso639Language is TRUE, then this ASCII string is not
+ assumed to be Null-terminated, and only the first three
+ chacters are used. If Iso639Language is FALSE, then this
+ ASCII string must be Null-terminated.
+ @param SupportedLanguages A pointer to a Null-terminated ASCII string that contains
+ a set of ISO 639-2 or RFC 4646 language codes that the Unicode
+ string table supports. Language must be a member of this set.
+ If Iso639Language is TRUE, then this string contains one or more
+ ISO 639-2 language codes with no separator characters.
+ If Iso639Language is FALSE, then is string contains one or more
+ RFC 4646 language codes separated by ';'.
+ @param UnicodeStringTable A pointer to the table of Unicode strings. Type EFI_UNICODE_STRING_TABLE
+ is defined in "Related Definitions".
+ @param UnicodeString A pointer to the Unicode string to add.
+ @param Iso639Language Specifies the supported language code format. If it is TRUE,
+ then Language and SupportedLanguages follow ISO 639-2 language code format.
+ Otherwise, they follow RFC 4646 language code format.
+
+ @retval EFI_SUCCESS The Unicode string that matches the language specified by
+ Language was found in the table of Unicode strings UnicodeStringTable,
+ and it was returned in UnicodeString.
+ @retval EFI_INVALID_PARAMETER Language is NULL.
+ @retval EFI_INVALID_PARAMETER UnicodeString is NULL.
+ @retval EFI_INVALID_PARAMETER UnicodeString is an empty string.
+ @retval EFI_UNSUPPORTED SupportedLanguages is NULL.
+ @retval EFI_ALREADY_STARTED A Unicode string with language Language is already present in
+ UnicodeStringTable.
+ @retval EFI_OUT_OF_RESOURCES There is not enough memory to add another Unicode string UnicodeStringTable.
+ @retval EFI_UNSUPPORTED The language specified by Language is not a member of SupportedLanguages.
**/
EFI_STATUS
diff --git a/MdePkg/Library/UefiLib/UefiLibPrint.c b/MdePkg/Library/UefiLib/UefiLibPrint.c
index 4a21a6d9d8..923f6be718 100644
--- a/MdePkg/Library/UefiLib/UefiLibPrint.c
+++ b/MdePkg/Library/UefiLib/UefiLibPrint.c
@@ -85,14 +85,14 @@ InternalPrint (
return Return;
}
-/**
- Prints a formatted Unicode string to the console output device specified by
+/**
+ Prints a formatted Unicode string to the console output device specified by
ConOut defined in the EFI_SYSTEM_TABLE.
- This function prints a formatted Unicode string to the console output device
- specified by ConOut in EFI_SYSTEM_TABLE and returns the number of Unicode
- characters that printed to ConOut. If the length of the formatted Unicode
- string is greater than PcdUefiLibMaxPrintBufferSize, then only the first
+ This function prints a formatted Unicode string to the console output device
+ specified by ConOut in EFI_SYSTEM_TABLE and returns the number of Unicode
+ characters that printed to ConOut. If the length of the formatted Unicode
+ string is greater than PcdUefiLibMaxPrintBufferSize, then only the first
PcdUefiLibMaxPrintBufferSize characters are sent to ConOut.
If Format is NULL, then ASSERT().
If Format is not aligned on a 16-bit boundary, then ASSERT().
@@ -101,8 +101,7 @@ InternalPrint (
@param ... Variable argument list whose contents are accessed based
on the format string specified by Format.
- @return The number of Unicode characters in the produced
- output buffer not including the Null-terminator.
+ @return Number of Unicode characters printed to ConOut.
**/
UINTN
@@ -124,14 +123,14 @@ Print (
return Return;
}
-/**
- Prints a formatted Unicode string to the console output device specified by
+/**
+ Prints a formatted Unicode string to the console output device specified by
StdErr defined in the EFI_SYSTEM_TABLE.
- This function prints a formatted Unicode string to the console output device
- specified by StdErr in EFI_SYSTEM_TABLE and returns the number of Unicode
- characters that printed to StdErr. If the length of the formatted Unicode
- string is greater than PcdUefiLibMaxPrintBufferSize, then only the first
+ This function prints a formatted Unicode string to the console output device
+ specified by StdErr in EFI_SYSTEM_TABLE and returns the number of Unicode
+ characters that printed to StdErr. If the length of the formatted Unicode
+ string is greater than PcdUefiLibMaxPrintBufferSize, then only the first
PcdUefiLibMaxPrintBufferSize characters are sent to StdErr.
If Format is NULL, then ASSERT().
If Format is not aligned on a 16-bit boundary, then ASSERT().
@@ -139,9 +138,9 @@ Print (
@param Format Null-terminated Unicode format string.
@param ... Variable argument list whose contents are accessed based
on the format string specified by Format.
+
+ @return Number of Unicode characters printed to StdErr.
- @return The number of Unicode characters in the produced
- output buffer not including the Null-terminator.
**/
UINTN
EFIAPI
@@ -214,14 +213,14 @@ AsciiInternalPrint (
return Return;
}
-/**
- Prints a formatted ASCII string to the console output device specified by
+/**
+ Prints a formatted ASCII string to the console output device specified by
ConOut defined in the EFI_SYSTEM_TABLE.
- This function prints a formatted ASCII string to the console output device
- specified by ConOut in EFI_SYSTEM_TABLE and returns the number of ASCII
- characters that printed to ConOut. If the length of the formatted ASCII
- string is greater than PcdUefiLibMaxPrintBufferSize, then only the first
+ This function prints a formatted ASCII string to the console output device
+ specified by ConOut in EFI_SYSTEM_TABLE and returns the number of ASCII
+ characters that printed to ConOut. If the length of the formatted ASCII
+ string is greater than PcdUefiLibMaxPrintBufferSize, then only the first
PcdUefiLibMaxPrintBufferSize characters are sent to ConOut.
If Format is NULL, then ASSERT().
@@ -229,8 +228,7 @@ AsciiInternalPrint (
@param ... Variable argument list whose contents are accessed based
on the format string specified by Format.
- @return The number of Ascii characters in the produced
- output buffer not including the Null-terminator.
+ @return Number of ASCII characters printed to ConOut.
**/
UINTN
@@ -253,14 +251,14 @@ AsciiPrint (
return Return;
}
-/**
- Prints a formatted ASCII string to the console output device specified by
+/**
+ Prints a formatted ASCII string to the console output device specified by
StdErr defined in the EFI_SYSTEM_TABLE.
- This function prints a formatted ASCII string to the console output device
- specified by StdErr in EFI_SYSTEM_TABLE and returns the number of ASCII
- characters that printed to StdErr. If the length of the formatted ASCII
- string is greater than PcdUefiLibMaxPrintBufferSize, then only the first
+ This function prints a formatted ASCII string to the console output device
+ specified by StdErr in EFI_SYSTEM_TABLE and returns the number of ASCII
+ characters that printed to StdErr. If the length of the formatted ASCII
+ string is greater than PcdUefiLibMaxPrintBufferSize, then only the first
PcdUefiLibMaxPrintBufferSize characters are sent to StdErr.
If Format is NULL, then ASSERT().
@@ -268,8 +266,7 @@ AsciiPrint (
@param ... Variable argument list whose contents are accessed based
on the format string specified by Format.
- @return The number of Ascii characters in the produced output
- buffer not including the Null-terminator.
+ @return Number of ASCII characters printed to ConErr.
**/
UINTN
@@ -567,7 +564,7 @@ Error:
@param ... Variable argument list whose contents are accessed based on
the format string specified by Format.
- @return The number of characters printed.
+ @return The number of Unicode characters printed.
**/
UINTN
@@ -612,7 +609,7 @@ PrintXY (
This function prints a formatted ASCII string to the graphics console device
specified by ConsoleOutputHandle in EFI_SYSTEM_TABLE and returns the number of
- Unicode characters printed. If the length of the formatted ASCII string is
+ ASCII characters printed. If the length of the formatted ASCII string is
greater than PcdUefiLibMaxPrintBufferSize, then only the first
PcdUefiLibMaxPrintBufferSize characters are printed. The EFI_HII_FONT_PROTOCOL
is used to convert the string to a bitmap using the glyphs registered with the
@@ -640,7 +637,7 @@ PrintXY (
@param ... Variable argument list whose contents are accessed based on
the format string specified by Format.
- @return The number of characters printed.
+ @return The number of ASCII characters printed.
**/
UINTN
diff --git a/MdePkg/Library/UefiLib/UefiNotTiano.c b/MdePkg/Library/UefiLib/UefiNotTiano.c
index e40cd0dce4..c40914ae5b 100644
--- a/MdePkg/Library/UefiLib/UefiNotTiano.c
+++ b/MdePkg/Library/UefiLib/UefiNotTiano.c
@@ -43,16 +43,16 @@ InternalEmptyFuntion (
}
/**
- Creates an EFI event in the Legacy Boot Event Group. Prior to UEFI 2.0 this
- was done via a non blessed UEFI extensions and this library abstracts the
- implementation mechanism of this event from the caller.
-
- This function abstracts the creation of the Legacy Boot Event. The Framework
- moved from a proprietary to UEFI 2.0 based mechanism. This library abstracts
- the caller from how this event is created to prevent to code form having to
- change with the version of the specification supported.
+ Creates an EFI event in the Legacy Boot Event Group.
+
+ Prior to UEFI 2.0 this was done via a non blessed UEFI extensions and this library
+ abstracts the implementation mechanism of this event from the caller. This function
+ abstracts the creation of the Legacy Boot Event. The Framework moved from a proprietary
+ to UEFI 2.0 based mechanism. This library abstracts the caller from how this event
+ is created to prevent to code form having to change with the version of the
+ specification supported.
If LegacyBootEvent is NULL, then ASSERT().
-
+
@param LegacyBootEvent Returns the EFI event returned from gBS->CreateEvent(Ex).
@retval EFI_SUCCESS Event was created.
@@ -75,8 +75,8 @@ EfiCreateEventLegacyBoot (
/**
Create an EFI event in the Legacy Boot Event Group and allows
- the caller to specify a notification function.
-
+ the caller to specify a notification function.
+
This function abstracts the creation of the Legacy Boot Event.
The Framework moved from a proprietary to UEFI 2.0 based mechanism.
This library abstracts the caller from how this event is created to prevent
@@ -128,17 +128,17 @@ EfiCreateEventLegacyBootEx (
}
/**
- Create an EFI event in the Ready To Boot Event Group. Prior to UEFI 2.0 this
- was done via a non-standard UEFI extension, and this library abstracts the
- implementation mechanism of this event from the caller.
-
+ Create an EFI event in the Ready To Boot Event Group.
+
+ Prior to UEFI 2.0 this was done via a non-standard UEFI extension, and this library
+ abstracts the implementation mechanism of this event from the caller.
This function abstracts the creation of the Ready to Boot Event. The Framework
moved from a proprietary to UEFI 2.0-based mechanism. This library abstracts
the caller from how this event is created to prevent the code form having to
change with the version of the specification supported.
If ReadyToBootEvent is NULL, then ASSERT().
- @param ReadyToBootEvent Returns the EFI event returned from gBS->CreateEvent(Ex).
+ @param ReadyToBootEvent Returns the EFI event returned from gBS->CreateEvent(Ex).
@retval EFI_SUCCESS Event was created.
@retval Other Event was not created.
@@ -160,8 +160,8 @@ EfiCreateEventReadyToBoot (
/**
Create an EFI event in the Ready To Boot Event Group and allows
- the caller to specify a notification function.
-
+ the caller to specify a notification function.
+
This function abstracts the creation of the Ready to Boot Event.
The Framework moved from a proprietary to UEFI 2.0 based mechanism.
This library abstracts the caller from how this event is created to prevent
@@ -217,9 +217,9 @@ EfiCreateEventReadyToBootEx (
Create, Signal, and Close the Ready to Boot event using EfiSignalEventReadyToBoot().
This function abstracts the signaling of the Ready to Boot Event. The Framework moved
- from a proprietary to UEFI 2.0 based mechanism. This library abstracts the caller from
- how this event is created to prevent to code form having to change with the version of
- the specification supported.
+ from a proprietary to UEFI 2.0 based mechanism. This library abstracts the caller
+ from how this event is created to prevent to code form having to change with the
+ version of the specification supported.
**/
VOID
diff --git a/MdePkg/Library/UefiRuntimeLib/RuntimeService.c b/MdePkg/Library/UefiRuntimeLib/RuntimeService.c
index 9c7b3b80e5..1d2c5d413c 100644
--- a/MdePkg/Library/UefiRuntimeLib/RuntimeService.c
+++ b/MdePkg/Library/UefiRuntimeLib/RuntimeService.c
@@ -21,22 +21,32 @@
/**
- Resets the entire platform.
+ This service is a wrapper for the UEFI Runtime Service ResetSystem().
+
+ The ResetSystem()function resets the entire platform, including all processors and devices,and reboots the system.
+ Calling this interface with ResetType of EfiResetCold causes a system-wide reset. This sets all circuitry within
+ the system to its initial state. This type of reset is asynchronous to system operation and operates without regard
+ to cycle boundaries. EfiResetCold is tantamount to a system power cycle.
+ Calling this interface with ResetType of EfiResetWarm causes a system-wide initialization. The processors are set to
+ their initial state, and pending cycles are not corrupted. If the system does not support this reset type, then an
+ EfiResetCold must be performed.
+ Calling this interface with ResetType of EfiResetShutdown causes the system to enter a power state equivalent to the
+ ACPI G2/S5 or G3 states. If the system does not support this reset type, then when the system is rebooted, it should
+ exhibit the EfiResetCold attributes.
+ The platform may optionally log the parmeters from any non-normal reset that occurs.
+ The ResetSystem() function does not return.
@param ResetType The type of reset to perform.
- @param ResetStatus The status code for the reset. If the system reset is part of a
- normal operation, the status code would be EFI_SUCCESS. If the system
- reset is due to some type of failure the most appropriate EFI Status
- code would be used.
+ @param ResetStatus The status code for the reset. If the system reset is part of a normal operation, the status code
+ would be EFI_SUCCESS. If the system reset is due to some type of failure the most appropriate EFI
+ Status code would be used.
@param DataSizeThe size, in bytes, of ResetData.
- @param ResetData For a ResetType of EfiResetCold, EfiResetWarm, or EfiResetShutdown
- the data buffer starts with a Null-terminated Unicode string, optionally
- followed by additional binary data. The string is a description that the
- caller may use to further indicate the reason for the system reset. ResetData
- is only valid if ResetStatus is something other then EFI_SUCCESS. This
- pointer must be a physical address. For a ResetType of EfiRestUpdate the
- data buffer also starts with a Null-terminated string that is followed by
- a physical VOID * to an EFI_CAPSULE_HEADER.
+ @param ResetData For a ResetType of EfiResetCold, EfiResetWarm, or EfiResetShutdown the data buffer starts with a
+ Null-terminated Unicode string, optionally followed by additional binary data. The string is a
+ description that the caller may use to further indicate the reason for the system reset. ResetData
+ is only valid if ResetStatus is something other then EFI_SUCCESS. This pointer must be a physical
+ address. For a ResetType of EfiRestUpdate the data buffer also starts with a Null-terminated string
+ that is followed by a physical VOID * to an EFI_CAPSULE_HEADER.
**/
VOID
@@ -117,7 +127,7 @@ EfiSetTime (
/**
- Returns the current wakeup alarm clock setting.
+ This service is a wrapper for the UEFI Runtime Service GetWakeupTime().
The alarm clock time may be rounded from the set alarm clock time to be within the resolution
of the alarm clock device. The resolution of the alarm clock device is defined to be one second.
@@ -151,7 +161,14 @@ EfiGetWakeupTime (
/**
- Sets the system wakeup alarm clock time.
+ This service is a wrapper for the UEFI Runtime Service SetWakeupTime()
+
+ Setting a system wakeup alarm causes the system to wake up or power on at the set time.
+ When the alarm fires, the alarm signal is latched until it is acknowledged by calling SetWakeupTime()
+ to disable the alarm. If the alarm fires before the system is put into a sleeping or off state,
+ since the alarm signal is latched the system will immediately wake up. If the alarm fires while
+ the system is off and there is insufficient power to power on the system, the system is powered
+ on when power is restored.
@param Enable Enable or disable the wakeup alarm.
@param Time If Enable is TRUE, the time to set the wakeup alarm for. Type EFI_TIME
@@ -177,10 +194,17 @@ EfiSetWakeupTime (
/**
- Return value of variable.
+ This service is a wrapper for the UEFI Runtime Service GetVariable().
- @param VariableName the name of the vendor's variable, it's a
- Null-Terminated Unicode String
+ Each vendor may create and manage its own variables without the risk of name conflicts by
+ using a unique VendorGuid. When a variable is set its Attributes are supplied to indicate
+ how the data variable should be stored and maintained by the system. The attributes affect
+ when the variable may be accessed and volatility of the data. Any attempts to access a variable
+ that does not have the attribute set for runtime access will yield the EFI_NOT_FOUND error.
+ If the Data buffer is too small to hold the contents of the variable, the error EFI_BUFFER_TOO_SMALL
+ is returned and DataSize is set to the required buffer size to obtain the data.
+
+ @param VariableName the name of the vendor's variable, it's a Null-Terminated Unicode String
@param VendorGuid Unify identifier for vendor.
@param Attributes Point to memory location to return the attributes of variable. If the point
is NULL, the parameter would be ignored.
@@ -214,7 +238,13 @@ EfiGetVariable (
/**
- Enumerates variable's name.
+ This service is a wrapper for the UEFI Runtime Service GetNextVariableName().
+
+ GetNextVariableName() is called multiple times to retrieve the VariableName and VendorGuid of
+ all variables currently available in the system. On each call to GetNextVariableName() the
+ previous results are passed into the interface, and on output the interface returns the next
+ variable name data. When the entire variable list has been returned, the error EFI_NOT_FOUND
+ is returned.
@param VariableNameSize As input, point to maxinum size of variable name.
As output, point to actual size of varaible name.
@@ -250,7 +280,10 @@ EfiGetNextVariableName (
/**
- Sets value of variable.
+ This service is a wrapper for the UEFI Runtime Service GetNextVariableName()
+
+ Variables are stored by the firmware and may maintain their values across power cycles. Each vendor
+ may create and manage its own variables without the risk of name conflicts by using a unique VendorGuid.
@param VariableName the name of the vendor's variable, it's a
Null-Terminated Unicode String
@@ -290,7 +323,13 @@ EfiSetVariable (
/**
- Returns the next high 32 bits of platform's monotonic counter.
+ This service is a wrapper for the UEFI Runtime Service GetNextHighMonotonicCount().
+
+ The platform¡¯s monotonic counter is comprised of two 32-bit quantities: the high 32 bits and
+ the low 32 bits. During boot service time the low 32-bit value is volatile: it is reset to zero
+ on every system reset and is increased by 1 on every call to GetNextMonotonicCount(). The high
+ 32-bit value is nonvolatile and is increased by 1 whenever the system resets or whenever the low
+ 32-bit count (returned by GetNextMonoticCount()) overflows.
@param HighCount Pointer to returned value.
@@ -310,7 +349,10 @@ EfiGetNextHighMonotonicCount (
/**
- This service converts a function pointer from physical to virtual addressing.
+ This service is a wrapper for the UEFI Runtime Service ConvertPointer().
+
+ The ConvertPointer() function is used by an EFI component during the SetVirtualAddressMap() operation.
+ ConvertPointer()must be called using physical address pointers during the execution of SetVirtualAddressMap().
@param DebugDisposition Supplies type information for the pointer being converted.
@param Address The pointer to a pointer that is to be fixed to be the
@@ -423,7 +465,12 @@ EfiConvertList (
/**
- Change the runtime addressing mode of EFI firmware from physical to virtual.
+ This service is a wrapper for the UEFI Runtime Service SetVirtualAddressMap().
+
+ The SetVirtualAddressMap() function is used by the OS loader. The function can only be called
+ at runtime, and is called by the owner of the system¡¯s memory map. I.e., the component which
+ called ExitBootServices(). All events of type EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE must be signaled
+ before SetVirtualAddressMap() returns.
@param MemoryMapSize The size in bytes of VirtualMap.
@param DescriptorSize The size in bytes of an entry in the VirtualMap.
@@ -462,12 +509,12 @@ EfiSetVirtualAddressMap (
/**
- 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 EFI_QueryCapsuleCapabilities must
- be passed into ResetSystem() and will cause the capsule to be processed by
- the firmware as part of the reset process.
+ This service is a wrapper for the UEFI Runtime Service UpdateCapsule().
+
+ 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 EFI_QueryCapsuleCapabilities must be passed into ResetSystem()
+ and will cause the capsule to be processed by the firmware as part of the reset process.
@param CapsuleHeaderArray Virtual pointer to an array of virtual pointers to the capsules
being passed into update capsule. Each capsules is assumed to
@@ -512,6 +559,8 @@ EfiUpdateCapsule (
/**
+ This service is a wrapper for the UEFI Runtime Service QueryCapsuleCapabilities().
+
The QueryCapsuleCapabilities() function allows a caller to test to see if a capsule or
capsules can be updated via UpdateCapsule(). The Flags values in the capsule header and
size of the entire capsule is checked.
@@ -530,16 +579,17 @@ EfiUpdateCapsule (
stored in contiguous virtual memory.
@param CapsuleCount Number of pointers to EFI_CAPSULE_HEADER in
CaspuleHeaderArray.
- @param MaximumCapsuleSize On output the maximum size that UpdateCapsule() can
+ @param MaximumCapsuleSize On output the maximum size that UpdateCapsule() can
support as an argument to UpdateCapsule() via
CapsuleHeaderArray and ScatterGatherList.
Undefined on input.
@param ResetType Returns the type of reset required for the capsule update.
- @retval EFI_SUCCESS Valid answer returned..
+ @retval EFI_SUCCESS Valid answer returned.
@retval EFI_INVALID_PARAMETER MaximumCapsuleSize is NULL.
@retval EFI_UNSUPPORTED The capsule type is not supported on this platform, and
MaximumCapsuleSize and ResetType are undefined.
+ @retval EFI_OUT_OF_RESOURCES There were insufficient resources to process the query request.
**/
EFI_STATUS
@@ -561,7 +611,7 @@ EfiQueryCapsuleCapabilities (
/**
- Returns information about the EFI variables.
+ This service is a wrapper for the UEFI Runtime Service QueryVariableInfo().
The QueryVariableInfo() function allows a caller to obtain the information about the
maximum size of the storage space available for the EFI variables, the remaining size of the storage
@@ -592,6 +642,7 @@ EfiQueryCapsuleCapabilities (
MaximumVariableStorageSize,
RemainingVariableStorageSize, MaximumVariableSize
are undefined.
+
**/
EFI_STATUS
EFIAPI