replace protocol presence ASSERTs with error returns.

signed-off-by: jcarsey
reviewed-by: lgrosenb

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11899 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
jcarsey 2011-06-27 20:33:13 +00:00
parent ad7782a47e
commit 92a5447eda
1 changed files with 86 additions and 76 deletions

View File

@ -483,12 +483,10 @@ ShellOpenFileByDevicePath(
EFI_FILE_PROTOCOL *Handle1; EFI_FILE_PROTOCOL *Handle1;
EFI_FILE_PROTOCOL *Handle2; EFI_FILE_PROTOCOL *Handle2;
// if (FilePath == NULL || FileHandle == NULL || DeviceHandle == NULL) {
// ASERT for FileHandle, FilePath, and DeviceHandle being NULL return (EFI_INVALID_PARAMETER);
// }
ASSERT(FilePath != NULL);
ASSERT(FileHandle != NULL);
ASSERT(DeviceHandle != NULL);
// //
// which shell interface should we use // which shell interface should we use
// //
@ -601,7 +599,7 @@ ShellOpenFileByDevicePath(
otherwise, the Filehandle is NULL. The Attributes is valid only for otherwise, the Filehandle is NULL. The Attributes is valid only for
EFI_FILE_MODE_CREATE. EFI_FILE_MODE_CREATE.
if FileNAme is NULL then ASSERT() if FileName is NULL then ASSERT()
@param FileName pointer to file name @param FileName pointer to file name
@param FileHandle pointer to the file handle. @param FileHandle pointer to the file handle.
@ -1047,8 +1045,11 @@ ShellGetExecutionBreakFlag(
// //
// using EFI Shell; call the function to check // using EFI Shell; call the function to check
// //
ASSERT(mEfiShellEnvironment2 != NULL); if (mEfiShellEnvironment2 != NULL) {
return (mEfiShellEnvironment2->GetExecutionBreak()); return (mEfiShellEnvironment2->GetExecutionBreak());
}
return (FALSE);
} }
/** /**
return the value of an environment variable return the value of an environment variable
@ -1075,14 +1076,13 @@ ShellGetEnvironmentVariable (
} }
// //
// ASSERT that we must have EFI shell // Check for EFI shell
// //
ASSERT(mEfiShellEnvironment2 != NULL); if (mEfiShellEnvironment2 != NULL) {
return (mEfiShellEnvironment2->GetEnv((CHAR16*)EnvKey));
}
// return NULL;
// using EFI Shell
//
return (mEfiShellEnvironment2->GetEnv((CHAR16*)EnvKey));
} }
/** /**
set the value of an environment variable set the value of an environment variable
@ -1177,17 +1177,21 @@ ShellExecute (
EnvironmentVariables, EnvironmentVariables,
Status)); Status));
} }
// //
// ASSERT that we must have EFI shell // Check for EFI shell
// //
ASSERT(mEfiShellEnvironment2 != NULL); if (mEfiShellEnvironment2 != NULL) {
// //
// Call EFI Shell version (not using EnvironmentVariables or Status parameters) // Call EFI Shell version (not using EnvironmentVariables or Status parameters)
// Due to oddity in the EFI shell we want to dereference the ParentHandle here // Due to oddity in the EFI shell we want to dereference the ParentHandle here
// //
return (mEfiShellEnvironment2->Execute(*ParentHandle, return (mEfiShellEnvironment2->Execute(*ParentHandle,
CommandLine, CommandLine,
Output)); Output));
}
return (EFI_UNSUPPORTED);
} }
/** /**
Retreives the current directory path Retreives the current directory path
@ -1213,6 +1217,7 @@ ShellGetCurrentDir (
if (mEfiShellProtocol != NULL) { if (mEfiShellProtocol != NULL) {
return (mEfiShellProtocol->GetCurDir(DeviceName)); return (mEfiShellProtocol->GetCurDir(DeviceName));
} }
// //
// Check for EFI shell // Check for EFI shell
// //
@ -1251,14 +1256,15 @@ ShellSetPageBreakMode (
return; return;
} else { } else {
// //
// ASSERT that must have EFI Shell // Check for EFI shell
// //
ASSERT(mEfiShellEnvironment2 != NULL); if (mEfiShellEnvironment2 != NULL) {
// //
// Enable with EFI Shell // Enable with EFI Shell
// //
mEfiShellEnvironment2->EnablePageBreak (DEFAULT_INIT_ROW, DEFAULT_AUTO_LF); mEfiShellEnvironment2->EnablePageBreak (DEFAULT_INIT_ROW, DEFAULT_AUTO_LF);
return; return;
}
} }
} else { } else {
// //
@ -1272,14 +1278,15 @@ ShellSetPageBreakMode (
return; return;
} else { } else {
// //
// ASSERT that must have EFI Shell // Check for EFI shell
// //
ASSERT(mEfiShellEnvironment2 != NULL); if (mEfiShellEnvironment2 != NULL) {
// //
// Disable with EFI Shell // Disable with EFI Shell
// //
mEfiShellEnvironment2->DisablePageBreak (); mEfiShellEnvironment2->DisablePageBreak ();
return; return;
}
} }
} }
} }
@ -1463,49 +1470,50 @@ ShellOpenFileMetaArg (
} }
// //
// ASSERT that we must have EFI shell // Check for EFI shell
// //
ASSERT(mEfiShellEnvironment2 != NULL); if (mEfiShellEnvironment2 != NULL) {
//
// make sure the list head is initialized
//
InitializeListHead(&mOldStyleFileList);
// //
// make sure the list head is initialized // Get the EFI Shell list of files
// //
InitializeListHead(&mOldStyleFileList); Status = mEfiShellEnvironment2->FileMetaArg(Arg, &mOldStyleFileList);
if (EFI_ERROR(Status)) {
*ListHead = NULL;
return (Status);
}
// if (*ListHead == NULL) {
// Get the EFI Shell list of files *ListHead = (EFI_SHELL_FILE_INFO *)AllocateZeroPool(sizeof(EFI_SHELL_FILE_INFO));
// if (*ListHead == NULL) {
Status = mEfiShellEnvironment2->FileMetaArg(Arg, &mOldStyleFileList); return (EFI_OUT_OF_RESOURCES);
if (EFI_ERROR(Status)) { }
*ListHead = NULL; InitializeListHead(&((*ListHead)->Link));
}
//
// Convert that to equivalent of UEFI Shell 2.0 structure
//
InternalShellConvertFileListType(&mOldStyleFileList, &(*ListHead)->Link);
//
// Free the EFI Shell version that was converted.
//
mEfiShellEnvironment2->FreeFileList(&mOldStyleFileList);
if ((*ListHead)->Link.ForwardLink == (*ListHead)->Link.BackLink && (*ListHead)->Link.BackLink == &((*ListHead)->Link)) {
FreePool(*ListHead);
*ListHead = NULL;
Status = EFI_NOT_FOUND;
}
return (Status); return (Status);
} }
if (*ListHead == NULL) { return (EFI_UNSUPPORTED);
*ListHead = (EFI_SHELL_FILE_INFO *)AllocateZeroPool(sizeof(EFI_SHELL_FILE_INFO));
if (*ListHead == NULL) {
return (EFI_OUT_OF_RESOURCES);
}
InitializeListHead(&((*ListHead)->Link));
}
//
// Convert that to equivalent of UEFI Shell 2.0 structure
//
InternalShellConvertFileListType(&mOldStyleFileList, &(*ListHead)->Link);
//
// Free the EFI Shell version that was converted.
//
mEfiShellEnvironment2->FreeFileList(&mOldStyleFileList);
if ((*ListHead)->Link.ForwardLink == (*ListHead)->Link.BackLink && (*ListHead)->Link.BackLink == &((*ListHead)->Link)) {
FreePool(*ListHead);
*ListHead = NULL;
Status = EFI_NOT_FOUND;
}
return (Status);
} }
/** /**
Free the linked list returned from ShellOpenFileMetaArg. Free the linked list returned from ShellOpenFileMetaArg.
@ -1534,7 +1542,7 @@ ShellCloseFileMetaArg (
// //
if (mEfiShellProtocol != NULL) { if (mEfiShellProtocol != NULL) {
return (mEfiShellProtocol->FreeFileList(ListHead)); return (mEfiShellProtocol->FreeFileList(ListHead));
} else { } else if (mEfiShellEnvironment2 != NULL) {
// //
// Since this is EFI Shell version we need to free our internally made copy // Since this is EFI Shell version we need to free our internally made copy
// of the list // of the list
@ -1551,6 +1559,8 @@ ShellCloseFileMetaArg (
} }
return EFI_SUCCESS; return EFI_SUCCESS;
} }
return (EFI_UNSUPPORTED);
} }
/** /**