if (AsciiStrnCmp(Name, StringPackage->StringPkgHdr->Language, AsciiStrLen (Name)) == 0) {\r
Status = GetStringIdFromString (StringPackage, KeywordValue, StringId); \r
if (EFI_ERROR (Status)) {\r
- RetVal = KEYWORD_HANDLER_KEYWORD_NOT_FOUND;\r
- continue;\r
+ return KEYWORD_HANDLER_KEYWORD_NOT_FOUND;\r
} else {\r
if (*NameSpace == NULL) {\r
*NameSpace = AllocateCopyPool (AsciiStrSize (StringPackage->StringPkgHdr->Language), StringPackage->StringPkgHdr->Language);\r
\r
@param NameSpace The namespace used to search the string.\r
@param MultiResp Return the MultiKeywordResp string for the system.\r
+ @param ProgressErr Return the error status.\r
\r
@retval EFI_OUT_OF_RESOURCES The memory can't be allocated.\r
@retval EFI_SUCCESS Generate the MultiKeywordResp string.\r
EFI_STATUS\r
EnumerateAllKeywords (\r
IN CHAR8 *NameSpace,\r
- OUT EFI_STRING *MultiResp\r
+ OUT EFI_STRING *MultiResp,\r
+ OUT UINT32 *ProgressErr\r
)\r
{\r
LIST_ENTRY *Link;\r
CHAR16 *MultiKeywordResp;\r
CHAR16 *KeywordData;\r
BOOLEAN ReadOnly;\r
+ BOOLEAN FindKeywordPackages;\r
\r
DataBaseRecord = NULL;\r
Status = EFI_SUCCESS;\r
ConfigRequest = NULL;\r
ValueElement = NULL;\r
KeywordResp = NULL;\r
+ FindKeywordPackages = FALSE;\r
\r
if (NameSpace == NULL) {\r
NameSpace = UEFI_CONFIG_LANG;\r
// Check whether has keyword string package.\r
//\r
if (AsciiStrnCmp(NameSpace, StringPackage->StringPkgHdr->Language, AsciiStrLen (NameSpace)) == 0) {\r
+ FindKeywordPackages = TRUE;\r
//\r
// Keep the NameSpace string.\r
//\r
//\r
if (MultiKeywordResp == NULL) {\r
Status = EFI_NOT_FOUND;\r
+ if (!FindKeywordPackages) {\r
+ *ProgressErr = KEYWORD_HANDLER_NAMESPACE_ID_NOT_FOUND;\r
+ } else {\r
+ *ProgressErr = KEYWORD_HANDLER_KEYWORD_NOT_FOUND;\r
+ }\r
} else {\r
Status = EFI_SUCCESS;\r
}\r
// 1.1 Check whether the input namespace is valid.\r
//\r
if (AsciiStrnCmp(NameSpace, UEFI_CONFIG_LANG, AsciiStrLen (UEFI_CONFIG_LANG)) != 0) {\r
- *ProgressErr = KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;\r
+ *ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
Status = EFI_INVALID_PARAMETER;\r
goto Done;\r
}\r
TempString = NULL;\r
}\r
if (EFI_ERROR (Status)) {\r
- *ProgressErr = KEYWORD_HANDLER_NAMESPACE_ID_NOT_FOUND;\r
+ *ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
return Status;\r
}\r
//\r
//\r
if (NameSpace != NULL){\r
if (AsciiStrnCmp(NameSpace, UEFI_CONFIG_LANG, AsciiStrLen (UEFI_CONFIG_LANG)) != 0) {\r
- *ProgressErr = KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;\r
+ *ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
return EFI_INVALID_PARAMETER;\r
}\r
}\r
//\r
// Enumerate all keyword in the system.\r
//\r
- Status = EnumerateAllKeywords(NameSpace, &MultiKeywordResp);\r
+ Status = EnumerateAllKeywords(NameSpace, &MultiKeywordResp, ProgressErr);\r
if (EFI_ERROR (Status)) {\r
goto Done;\r
}\r