#ifndef __UEFI_LIB_H__\r
#define __UEFI_LIB_H__\r
\r
+#include <Protocol/DriverBinding.h>\r
+#include <Protocol/DriverConfiguration.h>\r
+#include <Protocol/ComponentName.h>\r
+#include <Protocol/ComponentName2.h>\r
+#include <Protocol/DriverDiagnostics.h>\r
+#include <Protocol/DriverDiagnostics2.h>\r
+\r
//\r
// Unicode String Table\r
//\r
\r
**/\r
#define EFI_INITIALIZE_LOCK_VARIABLE(Priority) \\r
- {Priority, EFI_TPL_APPLICATION, EfiLockReleased }\r
+ {Priority, TPL_APPLICATION, EfiLockReleased }\r
\r
\r
/**\r
);\r
\r
/**
- Tests whether a controller is managed by a specific driver.
+ Tests whether a controller handle is being managed by a specific driver.
- This function tests whether a specific driver manages ControllerHandle by\r
- opening on DriverBindingHandle a protocol specified by ProtocolGuid with\r
- attribute EFI_OPEN_PROTOCOL_BY_DRIVER. This library function is used to\r
- implement the Component Name Protocol for EFI Drivers.\r
+ This function tests whether the driver specified by DriverBindingHandle is\r
+ currently managing the controller specified by ControllerHandle. This test\r
+ is performed by evaluating if the the protocol specified by ProtocolGuid is\r
+ present on ControllerHandle and is was opened by DriverBindingHandle with an\r
+ attribute of EFI_OPEN_PROTOCOL_BY_DRIVER. \r
If ProtocolGuid is NULL, then ASSERT().\r
@param ControllerHandle A handle for a controller to test.
@param DriverBindingHandle Specifies the driver binding handle for the
driver.
- @param ProtocolGuid Supplies GUID for the protocol opened by the
- driver on the controller.
+ @param ProtocolGuid Specifies the protocol that the driver specified
+ by DriverBindingHandle opens in its Start()
+ function.
- @retval EFI_SUCCESS ControllerHandle is managed by the specific
- driver.
- @retval EFI_UNSUPPORTED ControllerHandle is not managed by the specific
- driver.
+ @retval EFI_SUCCESS ControllerHandle is managed by the driver
+ specifed by DriverBindingHandle.
+ @retval EFI_UNSUPPORTED ControllerHandle is not managed by the driver
+ specifed by DriverBindingHandle.
**/\r
EFI_STATUS\r
);\r
\r
/**
- Tests whether a child handle is a children device of the controller.
+ Tests whether a child handle is a child device of the controller.
- This function tests whether ChildHandle is one of the children of
- ControllerHandle which are consuming a protocol specified by ProtocolGuid
- with the attribute bit EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER set. This
- library function is used to implement the Component Name Protocol for EFI
- Drivers.
- If ProtocolGuid is NULL, then ASSERT().
+ This function tests whether ChildHandle is one of the children of\r
+ ControllerHandle. This test is performed by checking to see if the protocol\r
+ specified by ProtocolGuid is present on ControllerHandle and opened by\r
+ ChildHandle with an attribute of EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER.\r
+ If ProtocolGuid is NULL, then ASSERT().\r
@param ControllerHandle A handle for a (parent) controller to test.
@param ChildHandle A child handle to test.
- @param ConsumsedGuid Supplies GUID for the protocol consumed by
- children from controller.
+ @param ConsumsedGuid Supplies the protocol that the child 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
IN CONST MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *FvDevicePathNode\r
);\r
\r
+/** \r
+ Prints a formatted Unicode string to the console output device specified by \r
+ ConOut defined in the EFI_SYSTEM_TABLE.\r
+\r
+ This function prints a formatted Unicode string to the console output device \r
+ specified by ConOut in EFI_SYSTEM_TABLE and returns the number of Unicode \r
+ characters that printed to ConOut. If the length of the formatted Unicode \r
+ string is greater than PcdUefiLibMaxPrintBufferSize, then only the first \r
+ PcdUefiLibMaxPrintBufferSize characters are sent to ConOut.\r
+\r
+ @param Format Null-terminated Unicode format string.\r
+ @param ... VARARG list consumed to process Format.\r
+ If Format is NULL, then ASSERT().\r
+ If Format is not aligned on a 16-bit boundary, then ASSERT().\r
+\r
+**/\r
+UINTN\r
+EFIAPI\r
+Print (\r
+ IN CONST CHAR16 *Format,\r
+ ...\r
+ );\r
+\r
+/** \r
+ Prints a formatted Unicode string to the console output device specified by \r
+ StdErr defined in the EFI_SYSTEM_TABLE.\r
+\r
+ This function prints a formatted Unicode string to the console output device \r
+ specified by StdErr in EFI_SYSTEM_TABLE and returns the number of Unicode \r
+ characters that printed to StdErr. If the length of the formatted Unicode \r
+ string is greater than PcdUefiLibMaxPrintBufferSize, then only the first \r
+ PcdUefiLibMaxPrintBufferSize characters are sent to StdErr.\r
+\r
+ @param Format Null-terminated Unicode format string.\r
+ @param ... VARARG list consumed to process Format.\r
+ If Format is NULL, then ASSERT().\r
+ If Format is not aligned on a 16-bit boundary, then ASSERT().\r
+\r
+**/\r
+UINTN\r
+EFIAPI\r
+ErrorPrint (\r
+ IN CONST CHAR16 *Format,\r
+ ...\r
+ );\r
+\r
+/** \r
+ Prints a formatted ASCII string to the console output device specified by \r
+ ConOut defined in the EFI_SYSTEM_TABLE.\r
+\r
+ This function prints a formatted ASCII string to the console output device \r
+ specified by ConOut in EFI_SYSTEM_TABLE and returns the number of ASCII \r
+ characters that printed to ConOut. If the length of the formatted ASCII \r
+ string is greater than PcdUefiLibMaxPrintBufferSize, then only the first \r
+ PcdUefiLibMaxPrintBufferSize characters are sent to ConOut.\r
+\r
+ @param Format Null-terminated ASCII format string.\r
+ @param ... VARARG list consumed to process Format.\r
+ If Format is NULL, then ASSERT().\r
+ If Format is not aligned on a 16-bit boundary, then ASSERT().\r
+\r
+**/\r
+UINTN\r
+EFIAPI\r
+AsciiPrint (\r
+ IN CONST CHAR8 *Format,\r
+ ...\r
+ );\r
+\r
+/** \r
+ Prints a formatted ASCII string to the console output device specified by \r
+ StdErr defined in the EFI_SYSTEM_TABLE.\r
+\r
+ This function prints a formatted ASCII string to the console output device \r
+ specified by StdErr in EFI_SYSTEM_TABLE and returns the number of ASCII \r
+ characters that printed to StdErr. If the length of the formatted ASCII \r
+ string is greater than PcdUefiLibMaxPrintBufferSize, then only the first \r
+ PcdUefiLibMaxPrintBufferSize characters are sent to StdErr.\r
+\r
+ @param Format Null-terminated ASCII format string.\r
+ @param ... VARARG list consumed to process Format.\r
+ If Format is NULL, then ASSERT().\r
+ If Format is not aligned on a 16-bit boundary, then ASSERT().\r
+\r
+**/\r
+UINTN\r
+EFIAPI\r
+AsciiErrorPrint (\r
+ IN CONST CHAR8 *Format,\r
+ ...\r
+ );\r
+\r
+/**\r
+ Intialize a driver by installing the Driver Binding Protocol onto the\r
+ driver's DriverBindingHandle. This is typically the same as the driver's\r
+ ImageHandle, but it can be different if the driver produces multiple\r
+ DriverBinding Protocols. This function also initializes the EFI Driver\r
+ Library that initializes the global variables gST, gBS, gRT.\r
+\r
+ @param ImageHandle The image handle of the driver\r
+ @param SystemTable The EFI System Table that was passed to the driver's entry point\r
+ @param DriverBinding A Driver Binding Protocol instance that this driver is producing\r
+ @param DriverBindingHandle The handle that DriverBinding is to be installe onto. If this\r
+ parameter is NULL, then a new handle is created.\r
+\r
+ @retval EFI_SUCCESS DriverBinding is installed onto DriverBindingHandle\r
+ @retval Other Status from gBS->InstallProtocolInterface()\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+EfiLibInstallDriverBinding (\r
+ IN CONST EFI_HANDLE ImageHandle,\r
+ IN CONST EFI_SYSTEM_TABLE *SystemTable,\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,\r
+ IN EFI_HANDLE DriverBindingHandle\r
+ );\r
+\r
+/**\r
+ Intialize a driver by installing the Driver Binding Protocol onto the\r
+ driver's DriverBindingHandle. This is typically the same as the driver's\r
+ ImageHandle, but it can be different if the driver produces multiple\r
+ DriverBinding Protocols. This function also initializes the EFI Driver\r
+ Library that initializes the global variables gST, gBS, gRT.\r
+\r
+ @ImageHandle The image handle of the driver\r
+ @SystemTable The EFI System Table that was passed to the driver's entry point\r
+ @DriverBinding A Driver Binding Protocol instance that this driver is producing\r
+ @DriverBindingHandle The handle that DriverBinding is to be installe onto. If this\r
+ parameter is NULL, then a new handle is created.\r
+ @ComponentName A Component Name Protocol instance that this driver is producing\r
+ @DriverConfiguration A Driver Configuration Protocol instance that this driver is producing\r
+ @DriverDiagnostics A Driver Diagnostics Protocol instance that this driver is producing\r
+\r
+ @retval EFI_SUCCESS DriverBinding is installed onto DriverBindingHandle\r
+ @retval Other Status from gBS->InstallProtocolInterface()\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+EfiLibInstallAllDriverProtocols (\r
+ IN CONST EFI_HANDLE ImageHandle,\r
+ IN CONST EFI_SYSTEM_TABLE *SystemTable,\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,\r
+ IN EFI_HANDLE DriverBindingHandle,\r
+ IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName, OPTIONAL\r
+ IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration, OPTIONAL\r
+ IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL\r
+ );\r
+\r
+\r
+/**\r
+ Intialize a driver by installing the Driver Binding Protocol\r
+ onto the driver's DriverBindingHandle. This is typically the\r
+ same as the driver's ImageHandle, but it can be different if\r
+ the driver produces multiple DriverBinding Protocols. This\r
+ function also initializes the EFI Driver Library that\r
+ initializes the global variables gST, gBS, gRT.\r
+\r
+ @ImageHandle The image handle of the driver\r
+ \r
+ @SystemTable The EFI System Table that was\r
+ passed to the driver's entry\r
+ point\r
+ \r
+ @DriverBinding A Driver Binding Protocol\r
+ instance that this driver is\r
+ producing\r
+ \r
+ @DriverBindingHandle The handle that DriverBinding is\r
+ to be installe onto. If this\r
+ parameter is NULL, then a new\r
+ handle is created.\r
+ \r
+ @ComponentName A Component Name Protocol\r
+ instance that this driver is\r
+ producing\r
+ \r
+ @ComponentName2 A Component Name 2 Protocol\r
+ instance that this driver is\r
+ producing\r
+ \r
+ @DriverConfiguration A Driver Configuration Protocol\r
+ instance that this driver is\r
+ producing\r
+ \r
+ @DriverDiagnostics A Driver Diagnostics Protocol\r
+ instance that this driver is\r
+ producing\r
+ \r
+ @DriverDiagnostics2 A Driver Diagnostics 2 Protocol\r
+ instance that this driver is\r
+ producing\r
+\r
+ @retval EFI_SUCCESS DriverBinding is installed onto DriverBindingHandle\r
+ @retval Other Status from gBS->InstallProtocolInterface()\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+EfiLibInstallAllDriverProtocols2 (\r
+ IN CONST EFI_HANDLE ImageHandle,\r
+ IN CONST EFI_SYSTEM_TABLE *SystemTable,\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,\r
+ IN EFI_HANDLE DriverBindingHandle,\r
+ IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName, OPTIONAL\r
+ IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2, OPTIONAL\r
+ IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration, OPTIONAL\r
+ IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics, OPTIONAL\r
+ IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 OPTIONAL\r
+ );\r
+\r
+\r
#endif\r