\r
Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
+ (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>\r
\r
\r
This program and the accompanying materials\r
\r
/**\r
Perform a dir on a device. The device must support Simple File System Protocol\r
- or the FV protocol. \r
+ or the FV protocol.\r
\r
Argv[0] - "dir"\r
- Argv[1] - Device Name:path. Path is optional \r
+ Argv[1] - Device Name:path. Path is optional\r
Argv[2] - Optional filename to match on. A leading * means match substring\r
Argv[3] - Optional FV file type\r
\r
dir fs1:\efi ; perform a dir on fs1: device in the efi directory\r
- dir fs1:\efi *.efi; perform a dir on fs1: device in the efi directory but \r
+ dir fs1:\efi *.efi; perform a dir on fs1: device in the efi directory but\r
only print out files that contain the string *.efi\r
- dir fv1:\ ; perform a dir on fv1: device in the efi directory \r
+ dir fv1:\ ; perform a dir on fv1: device in the efi directory\r
NOTE: fv devices do not contain subdirs\r
dir fv1:\ * PEIM ; will match all files of type PEIM\r
\r
@param Argc Number of command arguments in Argv\r
- @param Argv Array of strings that represent the parsed command line. \r
+ @param Argv Array of strings that represent the parsed command line.\r
Argv[0] is the command name\r
\r
@return EFI_SUCCESS\r
\r
**/\r
EFI_STATUS\r
+EFIAPI\r
EblDirCmd (\r
IN UINTN Argc,\r
IN CHAR8 **Argv\r
EFI_OPEN_FILE *File;\r
EFI_FILE_INFO *DirInfo;\r
UINTN ReadSize;\r
- UINTN CurrentRow; \r
+ UINTN CurrentRow;\r
CHAR16 *MatchSubString;\r
EFI_STATUS GetNextFileStatus;\r
UINTN Key;\r
UnicodeFileName[0] = '\0';\r
MatchSubString = &UnicodeFileName[0];\r
if (Argc > 2) {\r
- AsciiStrToUnicodeStr (Argv[2], UnicodeFileName);\r
+ AsciiStrToUnicodeStrS (Argv[2], UnicodeFileName,\r
+ ARRAY_SIZE (UnicodeFileName));\r
if (UnicodeFileName[0] == '*') {\r
// Handle *Name substring matching\r
MatchSubString = &UnicodeFileName[1];\r
do {\r
Type = SearchType;\r
GetNextFileStatus = Fv->GetNextFile (\r
- Fv, \r
+ Fv,\r
&Key,\r
- &Type, \r
- &NameGuid, \r
- &Attributes, \r
+ &Type,\r
+ &NameGuid,\r
+ &Attributes,\r
&Size\r
);\r
if (!EFI_ERROR (GetNextFileStatus)) {\r
Size = 0;\r
Status = Fv->ReadFile (\r
Fv,\r
- &NameGuid, \r
+ &NameGuid,\r
Section,\r
&Size,\r
&Type,\r
&AuthenticationStatus\r
);\r
if (!((Status == EFI_BUFFER_TOO_SMALL) || !EFI_ERROR (Status))) {\r
- // EFI_SUCCESS or EFI_BUFFER_TOO_SMALL mean size is valid \r
+ // EFI_SUCCESS or EFI_BUFFER_TOO_SMALL mean size is valid\r
Size = 0;\r
}\r
- \r
+\r
TypeStr = (Type <= EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE) ? gFvFileType[Type] : "UNKNOWN";\r
\r
// read the UI seciton to do a name match.\r
}\r
}\r
} while (!EFI_ERROR (GetNextFileStatus));\r
- \r
+\r
if (SearchType == EFI_FV_FILETYPE_ALL) {\r
AsciiPrint ("%,20d bytes in files %,d bytes free\n", TotalSize, File->FvSize - File->FvHeaderSize - TotalSize);\r
}\r
- \r
- \r
+\r
+\r
} else if ((File->Type == EfiOpenFileSystem) || (File->Type == EfiOpenBlockIo)) {\r
// Simple File System DIR\r
\r
MatchSubString = NULL;\r
UnicodeFileName[0] = '\0';\r
if (Argc > 2) {\r
- AsciiStrToUnicodeStr (Argv[2], UnicodeFileName);\r
+ AsciiStrToUnicodeStrS (Argv[2], UnicodeFileName, MAX_CMD_LINE);\r
if (UnicodeFileName[0] == '*') {\r
MatchSubString = &UnicodeFileName[1];\r
}\r
- } \r
+ }\r
\r
File->FsFileHandle->SetPosition (File->FsFileHandle, 0);\r
for (CurrentRow = 0;;) {\r
if (DirInfo == NULL) {\r
goto Done;\r
}\r
- \r
+\r
// Read the data\r
Status = File->FsFileHandle->Read (File->FsFileHandle, &ReadSize, DirInfo);\r
if ((EFI_ERROR (Status)) || (ReadSize == 0)) {\r
} else {\r
break;\r
}\r
- \r
+\r
if (MatchSubString != NULL) {\r
if (StrStr (&DirInfo->FileName[0], MatchSubString) == NULL) {\r
// does not match *name argument, so skip\r
if (EblAnyKeyToContinueQtoQuit (&CurrentRow, FALSE)) {\r
break;\r
}\r
- \r
+\r
FreePool (DirInfo);\r
}\r
\r
Change the Current Working Directory\r
\r
Argv[0] - "cd"\r
- Argv[1] - Device Name:path. Path is optional \r
+ Argv[1] - Device Name:path. Path is optional\r
\r
@param Argc Number of command arguments in Argv\r
- @param Argv Array of strings that represent the parsed command line. \r
+ @param Argv Array of strings that represent the parsed command line.\r
Argv[0] is the command name\r
\r
@return EFI_SUCCESS\r
\r
**/\r
EFI_STATUS\r
+EFIAPI\r
EblCdCmd (\r
IN UINTN Argc,\r
IN CHAR8 **Argv\r
{\r
if (Argc <= 1) {\r
return EFI_SUCCESS;\r
- } \r
- \r
+ }\r
+\r
return EfiSetCwd (Argv[1]);\r
}\r
\r
EblInitializeDirCmd (\r
VOID\r
)\r
-{ \r
+{\r
if (FeaturePcdGet (PcdEmbeddedDirCmd)) {\r
EblAddCommands (mCmdDirTemplate, sizeof (mCmdDirTemplate)/sizeof (EBL_COMMAND_TABLE));\r
}\r