return EFI_SUCCESS;\r
}\r
\r
+/**\r
+ Return the HII package list identified by PackageList HII handle.\r
+\r
+ @param Database Pointer to HII database list header.\r
+ @param PackageList HII handle of the package list to locate.\r
+\r
+ @retval The HII package list instance.\r
+**/\r
+HII_DATABASE_PACKAGE_LIST_INSTANCE *\r
+LocatePackageList (\r
+ IN LIST_ENTRY *Database,\r
+ IN EFI_HII_HANDLE PackageList\r
+ )\r
+{\r
+ LIST_ENTRY *Link;\r
+ HII_DATABASE_RECORD *Record;\r
+\r
+ //\r
+ // Get the specified package list and image package.\r
+ //\r
+ for (Link = GetFirstNode (Database);\r
+ !IsNull (Database, Link);\r
+ Link = GetNextNode (Database, Link)\r
+ ) {\r
+ Record = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);\r
+ if (Record->Handle == PackageList) {\r
+ return Record->PackageList;\r
+ }\r
+ }\r
+ return NULL;\r
+}\r
\r
/**\r
This function adds the image Image to the group of images owned by PackageList, and returns\r
)\r
{\r
HII_DATABASE_PRIVATE_DATA *Private;\r
- LIST_ENTRY *Link;\r
- HII_DATABASE_RECORD *DatabaseRecord;\r
HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageListNode;\r
HII_IMAGE_PACKAGE_INSTANCE *ImagePackage;\r
UINT8 *ImageBlock;\r
}\r
\r
Private = HII_IMAGE_DATABASE_PRIVATE_DATA_FROM_THIS (This);\r
-\r
- //\r
- // Get the specified package list\r
- //\r
-\r
- PackageListNode = NULL;\r
-\r
- for (Link = Private->DatabaseList.ForwardLink;\r
- Link != &Private->DatabaseList;\r
- Link = Link->ForwardLink\r
- ) {\r
- DatabaseRecord = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);\r
- if (DatabaseRecord->Handle == PackageList) {\r
- PackageListNode = DatabaseRecord->PackageList;\r
- break;\r
- }\r
- }\r
-\r
+ PackageListNode = LocatePackageList (&Private->DatabaseList, PackageList);\r
if (PackageListNode == NULL) {\r
return EFI_NOT_FOUND;\r
}\r
)\r
{\r
HII_DATABASE_PRIVATE_DATA *Private;\r
- LIST_ENTRY *Link;\r
- HII_DATABASE_RECORD *DatabaseRecord;\r
HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageListNode;\r
HII_IMAGE_PACKAGE_INSTANCE *ImagePackage;\r
UINT8 *ImageBlock;\r
}\r
\r
Private = HII_IMAGE_DATABASE_PRIVATE_DATA_FROM_THIS (This);\r
-\r
- //\r
- // Get the specified package list and image package.\r
- //\r
- PackageListNode = NULL;\r
- for (Link = Private->DatabaseList.ForwardLink;\r
- Link != &Private->DatabaseList;\r
- Link = Link->ForwardLink\r
- ) {\r
- DatabaseRecord = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);\r
- if (DatabaseRecord->Handle == PackageList) {\r
- PackageListNode = DatabaseRecord->PackageList;\r
- break;\r
- }\r
- }\r
+ PackageListNode = LocatePackageList (&Private->DatabaseList, PackageList);\r
if (PackageListNode == NULL) {\r
return EFI_NOT_FOUND;\r
}\r
)\r
{\r
HII_DATABASE_PRIVATE_DATA *Private;\r
- LIST_ENTRY *Link;\r
- HII_DATABASE_RECORD *DatabaseRecord;\r
HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageListNode;\r
HII_IMAGE_PACKAGE_INSTANCE *ImagePackage;\r
UINT8 *ImageBlock;\r
}\r
\r
Private = HII_IMAGE_DATABASE_PRIVATE_DATA_FROM_THIS (This);\r
-\r
- //\r
- // Get the specified package list and image package.\r
- //\r
- PackageListNode = NULL;\r
- for (Link = Private->DatabaseList.ForwardLink;\r
- Link != &Private->DatabaseList;\r
- Link = Link->ForwardLink\r
- ) {\r
- DatabaseRecord = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);\r
- if (DatabaseRecord->Handle == PackageList) {\r
- PackageListNode = DatabaseRecord->PackageList;\r
- break;\r
- }\r
- }\r
+ PackageListNode = LocatePackageList (&Private->DatabaseList, PackageList);\r
if (PackageListNode == NULL) {\r
return EFI_NOT_FOUND;\r
}\r