/** @file\r
+Implementation for EFI_HII_DATABASE_PROTOCOL.\r
+\r
\r
Copyright (c) 2007 - 2008, Intel Corporation\r
All rights reserved. This program and the accompanying materials\r
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
-Module Name:\r
-\r
- Database.c\r
-\r
-Abstract:\r
-\r
- Implementation for EFI_HII_DATABASE_PROTOCOL.\r
-\r
-Revision History\r
-\r
-\r
**/\r
\r
\r
//\r
// Global variables\r
//\r
-STATIC EFI_GUID mHiiDatabaseNotifyGuid = HII_DATABASE_NOTIFY_GUID;\r
+EFI_GUID mHiiDatabaseNotifyGuid = HII_DATABASE_NOTIFY_GUID;\r
\r
\r
/**\r
This function generates a HII_DATABASE_RECORD node and adds into hii database.\r
+ This is a internal function.\r
\r
@param Private hii database private structure\r
- @param DatabaseRecord HII_DATABASE_RECORD node which is used to store a\r
+ @param DatabaseNode HII_DATABASE_RECORD node which is used to store a\r
package list\r
\r
@retval EFI_SUCCESS A database record is generated successfully.\r
@retval EFI_INVALID_PARAMETER Private is NULL or DatabaseRecord is NULL.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
GenerateHiiDatabaseRecord (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function checks whether a handle is a valid EFI_HII_HANDLE\r
+ This is a internal function.\r
\r
@param Handle Pointer to a EFI_HII_HANDLE\r
\r
\r
/**\r
This function invokes the matching registered function.\r
+ This is a internal function.\r
\r
@param Private HII Database driver private structure.\r
@param NotifyType The type of change concerning the database.\r
@retval EFI_INVALID_PARAMETER Any input parameter is not valid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
InvokeRegisteredFunction (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function insert a GUID package to a package list node.\r
+ This is a internal function.\r
\r
@param PackageHdr Pointer to a buffer stored with GUID package\r
information.\r
@retval EFI_INVALID_PARAMETER PackageHdr is NULL or PackageList is NULL.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
InsertGuidPackage (\r
IN VOID *PackageHdr,\r
\r
/**\r
This function exports GUID packages to a buffer.\r
+ This is a internal function.\r
\r
@param Private Hii database private structure.\r
@param Handle Identification of a package list.\r
@retval EFI_INVALID_PARAMETER Any input parameter is invalid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
ExportGuidPackages (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function deletes all GUID packages from a package list node.\r
+ This is a internal function.\r
\r
@param Private Hii database private data.\r
@param Handle Handle of the package list which contains the to\r
@retval EFI_INVALID_PARAMETER Any input parameter is not valid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
RemoveGuidPackages (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function insert a Form package to a package list node.\r
+ This is a internal function.\r
\r
@param PackageHdr Pointer to a buffer stored with Form package\r
information.\r
@retval EFI_INVALID_PARAMETER PackageHdr is NULL or PackageList is NULL.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
InsertFormPackage (\r
IN VOID *PackageHdr,\r
\r
/**\r
This function exports Form packages to a buffer.\r
+ This is a internal function.\r
\r
@param Private Hii database private structure.\r
@param Handle Identification of a package list.\r
@retval EFI_INVALID_PARAMETER Any input parameter is invalid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
ExportFormPackages (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function deletes all Form packages from a package list node.\r
+ This is a internal function.\r
\r
@param Private Hii database private data.\r
@param Handle Handle of the package list which contains the to\r
@retval EFI_INVALID_PARAMETER Any input parameter is not valid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
RemoveFormPackages (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function insert a String package to a package list node.\r
+ This is a internal function.\r
\r
@param Private Hii database private structure.\r
@param PackageHdr Pointer to a buffer stored with String package\r
exists in current package list.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
InsertStringPackage (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function exports String packages to a buffer.\r
+ This is a internal function.\r
\r
@param Private Hii database private structure.\r
@param Handle Identification of a package list.\r
@retval EFI_INVALID_PARAMETER Any input parameter is invalid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
ExportStringPackages (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function deletes all String packages from a package list node.\r
+ This is a internal function.\r
\r
@param Private Hii database private data.\r
@param Handle Handle of the package list which contains the to\r
@retval EFI_INVALID_PARAMETER Any input parameter is not valid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
RemoveStringPackages (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function insert a Font package to a package list node.\r
+ This is a internal function.\r
\r
@param Private Hii database private structure.\r
@param PackageHdr Pointer to a buffer stored with Font package\r
exists in current hii database.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
InsertFontPackage (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function exports Font packages to a buffer.\r
+ This is a internal function.\r
\r
@param Private Hii database private structure.\r
@param Handle Identification of a package list.\r
@retval EFI_INVALID_PARAMETER Any input parameter is invalid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
ExportFontPackages (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function deletes all Font packages from a package list node.\r
+ This is a internal function.\r
\r
@param Private Hii database private data.\r
@param Handle Handle of the package list which contains the to\r
@retval EFI_INVALID_PARAMETER Any input parameter is not valid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
RemoveFontPackages (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function insert a Image package to a package list node.\r
+ This is a internal function.\r
\r
@param PackageHdr Pointer to a buffer stored with Image package\r
information.\r
@retval EFI_INVALID_PARAMETER PackageHdr is NULL or PackageList is NULL.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
InsertImagePackage (\r
IN VOID *PackageHdr,\r
\r
/**\r
This function exports Image packages to a buffer.\r
+ This is a internal function.\r
\r
@param Private Hii database private structure.\r
@param Handle Identification of a package list.\r
@retval EFI_INVALID_PARAMETER Any input parameter is invalid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
ExportImagePackages (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function deletes Image package from a package list node.\r
+ This is a internal function.\r
\r
@param Private Hii database private data.\r
@param Handle Handle of the package list which contains the to\r
@retval EFI_INVALID_PARAMETER Any input parameter is not valid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
RemoveImagePackages (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function insert a Simple Font package to a package list node.\r
+ This is a internal function.\r
\r
@param PackageHdr Pointer to a buffer stored with Simple Font\r
package information.\r
@retval EFI_INVALID_PARAMETER PackageHdr is NULL or PackageList is NULL.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
InsertSimpleFontPackage (\r
IN VOID *PackageHdr,\r
\r
/**\r
This function exports SimpleFont packages to a buffer.\r
+ This is a internal function.\r
\r
@param Private Hii database private structure.\r
@param Handle Identification of a package list.\r
@retval EFI_INVALID_PARAMETER Any input parameter is invalid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
ExportSimpleFontPackages (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function deletes all Simple Font packages from a package list node.\r
+ This is a internal function.\r
\r
@param Private Hii database private data.\r
@param Handle Handle of the package list which contains the to\r
@retval EFI_INVALID_PARAMETER Any input parameter is not valid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
RemoveSimpleFontPackages (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function insert a Device path package to a package list node.\r
+ This is a internal function.\r
\r
@param DevicePath Pointer to a EFI_DEVICE_PATH_PROTOCOL protocol\r
instance\r
@retval EFI_INVALID_PARAMETER DevicePath is NULL or PackageList is NULL.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
InsertDevicePathPackage (\r
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,\r
\r
/**\r
This function exports device path package to a buffer.\r
+ This is a internal function.\r
\r
@param Private Hii database private structure.\r
@param Handle Identification of a package list.\r
@retval EFI_INVALID_PARAMETER Any input parameter is invalid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
ExportDevicePathPackage (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function deletes Device Path package from a package list node.\r
+ This is a internal function.\r
\r
@param Private Hii database private data.\r
@param Handle Handle of the package list.\r
@retval EFI_INVALID_PARAMETER Any input parameter is not valid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
RemoveDevicePathPackage (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
/**\r
This function will insert a device path package to package list firstly then\r
invoke notification functions if any.\r
+ This is a internal function.\r
\r
@param Private Hii database private structure.\r
@param NotifyType The type of change concerning the database.\r
@retval EFI_INVALID_PARAMETER DevicePath is NULL or PackageList is NULL.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
AddDevicePathPackage (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function insert a Keyboard Layout package to a package list node.\r
+ This is a internal function.\r
\r
@param PackageHdr Pointer to a buffer stored with Keyboard Layout\r
package information.\r
@retval EFI_INVALID_PARAMETER PackageHdr is NULL or PackageList is NULL.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
InsertKeyboardLayoutPackage (\r
IN VOID *PackageHdr,\r
\r
/**\r
This function exports Keyboard Layout packages to a buffer.\r
+ This is a internal function.\r
\r
@param Private Hii database private structure.\r
@param Handle Identification of a package list.\r
@retval EFI_INVALID_PARAMETER Any input parameter is invalid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
ExportKeyboardLayoutPackages (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
/**\r
This function deletes all Keyboard Layout packages from a package list node.\r
+ This is a internal function.\r
\r
@param Private Hii database private data.\r
@param Handle Handle of the package list which contains the to\r
@retval EFI_INVALID_PARAMETER Any input parameter is not valid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
RemoveKeyboardLayoutPackages (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
invoke notification functions if any. It is the worker function of\r
HiiNewPackageList and HiiUpdatePackageList.\r
\r
+ This is a internal function.\r
+\r
@param Private Hii database private structure.\r
@param NotifyType The type of change concerning the database.\r
@param PackageList Pointer to a package list.\r
@retval EFI_INVALID_PARAMETER Any input parameter is invalid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
AddPackages (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
This function exports a package list to a buffer. It is the worker function\r
of HiiExportPackageList.\r
\r
+ This is a internal function.\r
+\r
@param Private Hii database private structure.\r
@param Handle Identification of a package list.\r
@param PackageList Pointer to a package list which will be exported.\r
@retval EFI_INVALID_PARAMETER Any input parameter is invalid.\r
\r
**/\r
-STATIC\r
EFI_STATUS\r
ExportPackageList (\r
IN HII_DATABASE_PRIVATE_DATA *Private,\r
\r
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL\r
instance.\r
- @param NotifyHandle The handle of the notification function being\r
+ @param NotificationHandle The handle of the notification function being\r
unregistered.\r
\r
@retval EFI_SUCCESS Notification is unregistered successfully.\r