19STATIC BOOLEAN mExitRequested;
22STATIC CHAR16 *mProfileList;
52CONST CHAR16 *SupportLevel[] = {
77 if (gUnicodeCollation ==
NULL) {
80 Status =
gBS->LocateHandleBuffer (
82 &gEfiUnicodeCollation2ProtocolGuid,
87 if (EFI_ERROR (Status)) {
92 for (Index = 0; Index < NumHandles; Index++) {
96 Status =
gBS->OpenProtocol (
98 &gEfiUnicodeCollation2ProtocolGuid,
102 EFI_OPEN_PROTOCOL_GET_PROTOCOL
104 if (EFI_ERROR (Status)) {
113 if (gUnicodeCollation ==
NULL) {
114 gUnicodeCollation = Uc;
117 if (PlatformLang ==
NULL) {
126 Uc->SupportedLanguages,
131 if (BestLanguage !=
NULL) {
133 gUnicodeCollation = Uc;
138 if (Handles !=
NULL) {
142 if (PlatformLang !=
NULL) {
176 mExitRequested =
FALSE;
178 mProfileListSize = 0;
182 if (EFI_ERROR (Status)) {
183 return EFI_DEVICE_ERROR;
214 ASSERT (BufferListEntry->Buffer !=
NULL);
216 SHELL_FREE_NON_NULL (BufferListEntry->Buffer);
217 SHELL_FREE_NON_NULL (BufferListEntry);
247 SHELL_FREE_NON_NULL (Node->CommandString);
260 SHELL_FREE_NON_NULL (Node2->CommandString);
261 SHELL_FREE_NON_NULL (Node2->Alias);
262 SHELL_FREE_NON_NULL (Node2);
287 ASSERT (MapNode !=
NULL);
289 SHELL_FREE_NON_NULL (MapNode->DevicePath);
290 SHELL_FREE_NON_NULL (MapNode->MapName);
291 SHELL_FREE_NON_NULL (MapNode->CurrentDirectoryPath);
300 if (mProfileList !=
NULL) {
304 gUnicodeCollation =
NULL;
329 if (CommandHandleList ==
NULL) {
336 for (NextCommand = CommandHandleList; *NextCommand !=
NULL; NextCommand++) {
337 Status =
gBS->HandleProtocol (
339 &gEfiShellDynamicCommandProtocolGuid,
340 (VOID **)&DynamicCommand
343 if (EFI_ERROR (Status)) {
347 if (gUnicodeCollation->StriColl (
349 (CHAR16 *)CommandString,
350 (CHAR16 *)DynamicCommand->CommandName
355 return (DynamicCommand);
391 ASSERT (CommandString !=
NULL);
397 ; !
IsNull (&mCommandList.Link, &Node->Link)
401 ASSERT (Node->CommandString !=
NULL);
402 if (gUnicodeCollation->StriColl (
404 (CHAR16 *)CommandString,
450 if (DynamicCommand ==
NULL) {
457 return DynamicCommand->GetHelp (DynamicCommand,
"en");
478 ASSERT (CommandString !=
NULL);
484 ; !
IsNull (&mCommandList.Link, &Node->Link)
488 ASSERT (Node->CommandString !=
NULL);
489 if (gUnicodeCollation->StriColl (
491 (CHAR16 *)CommandString,
521 if (HelpStr ==
NULL) {
578 IN CONST CHAR16 *CommandString,
581 IN UINT32 ShellMinSupportLevel,
585 IN CONST EFI_STRING_ID ManFormatHelp
591 INTN LexicalMatchValue;
598 LexicalMatchValue = 0;
603 ASSERT (CommandString !=
NULL);
605 ASSERT (CommandHandler !=
NULL);
606 ASSERT (ProfileName !=
NULL);
611 if (
PcdGet8 (PcdShellSupportLevel) < ShellMinSupportLevel) {
631 if (Node->CommandString ==
NULL) {
637 Node->CommandHandler = CommandHandler;
638 Node->LastError = CanAffectLE;
639 Node->HiiHandle = HiiHandle;
640 Node->ManFormatHelp = ManFormatHelp;
642 if ( (
StrLen (ProfileName) > 0)
643 && (( (mProfileList !=
NULL)
644 && (
StrStr (mProfileList, ProfileName) ==
NULL)) || (mProfileList ==
NULL))
647 ASSERT ((mProfileList ==
NULL && mProfileListSize == 0) || (mProfileList !=
NULL));
648 if (mProfileList ==
NULL) {
652 StrnCatGrow (&mProfileList, &mProfileListSize, L
";", 0);
655 StrnCatGrow (&mProfileList, &mProfileListSize, ProfileName, 0);
656 StrnCatGrow (&mProfileList, &mProfileListSize, L
";", 0);
669 ; !
IsNull (&mCommandList.Link, &Command->Link)
675 LexicalMatchValue = gUnicodeCollation->StriColl (
677 PrevCommand->CommandString,
678 Command->CommandString
685 if (LexicalMatchValue > 0) {
687 }
else if (LexicalMatchValue < 0) {
710 return (mProfileList);
740 IN CONST CHAR16 *CommandString,
742 IN OUT BOOLEAN *CanAffectLE OPTIONAL
751 ASSERT (CommandString !=
NULL);
757 ; !
IsNull (&mCommandList.Link, &Node->Link)
761 ASSERT (Node->CommandString !=
NULL);
762 if (gUnicodeCollation->StriColl (
764 (CHAR16 *)CommandString,
769 if (CanAffectLE !=
NULL) {
770 *CanAffectLE = Node->LastError;
773 if (RetVal !=
NULL) {
774 *RetVal = Node->CommandHandler (
NULL,
gST);
776 Node->CommandHandler (
NULL,
gST);
787 if (DynamicCommand !=
NULL) {
788 if (RetVal !=
NULL) {
789 *RetVal = DynamicCommand->Handler (DynamicCommand,
gST, gEfiShellParametersProtocol, gEfiShellProtocol);
791 DynamicCommand->Handler (DynamicCommand,
gST, gEfiShellParametersProtocol, gEfiShellProtocol);
824 ASSERT (CommandString !=
NULL);
830 ; !
IsNull (&mCommandList.Link, &Node->Link)
834 ASSERT (Node->CommandString !=
NULL);
835 if (gUnicodeCollation->StriColl (
837 (CHAR16 *)CommandString,
842 return (Node->GetManFileName ());
893 INTN LexicalMatchValue;
898 ASSERT (Command !=
NULL);
899 ASSERT (Alias !=
NULL);
910 if (Node->CommandString ==
NULL) {
916 if (Node->Alias ==
NULL) {
929 ; !
IsNull (&mAliasList.Link, &CommandAlias->Link)
935 LexicalMatchValue = gUnicodeCollation->StriColl (
937 PrevCommandAlias->Alias,
945 if (LexicalMatchValue > 0) {
947 }
else if (LexicalMatchValue < 0) {
971 return (&mAliasList);
993 ASSERT (Alias !=
NULL);
999 ; !
IsNull (&mAliasList.Link, &Node->Link)
1003 ASSERT (Node->CommandString !=
NULL);
1004 ASSERT (Node->Alias !=
NULL);
1005 if (gUnicodeCollation->StriColl (
1015 if (gUnicodeCollation->StriColl (
1042 return (mEchoState);
1072 IN BOOLEAN ScriptOnly,
1076 mExitRequested = (BOOLEAN)(!mExitRequested);
1077 if (mExitRequested) {
1078 mExitScript = ScriptOnly;
1080 mExitScript =
FALSE;
1083 mExitCode = ErrorCode;
1098 return (mExitRequested);
1131 return (mExitScript);
1147 if (Script ==
NULL) {
1151 for (LoopVar = 0; LoopVar < Script->Argc; LoopVar++) {
1152 SHELL_FREE_NON_NULL (Script->Argv[LoopVar]);
1155 if (Script->Argv !=
NULL) {
1156 SHELL_FREE_NON_NULL (Script->Argv);
1159 Script->CurrentCommand =
NULL;
1162 if (Script->CurrentCommand !=
NULL) {
1164 if (Script->CurrentCommand->Cl !=
NULL) {
1165 SHELL_FREE_NON_NULL (Script->CurrentCommand->Cl);
1168 if (Script->CurrentCommand->Data !=
NULL) {
1169 SHELL_FREE_NON_NULL (Script->CurrentCommand->Data);
1172 SHELL_FREE_NON_NULL (Script->CurrentCommand);
1176 SHELL_FREE_NON_NULL (Script->ScriptName);
1177 SHELL_FREE_NON_NULL (Script);
1199 return (List->Data);
1221 if (Script ==
NULL) {
1236 Node->Data = Script;
1256 IN CONST SHELL_MAPPING_TYPE Type
1261 ASSERT (Type < MappingTypeMax);
1266 if (String ==
NULL) {
1272 PcdGet8 (PcdShellMapNameLength) *
sizeof (String[0]),
1273 Type == MappingTypeFileSystem ? L
"FS%d:" : L
"BLK%d:",
1274 Type == MappingTypeFileSystem ? mFsMaxCount++ : mBlkMaxCount++
1308 CONST CHAR16 *OriginalPath;
1314 OriginalPath =
NULL;
1318 if (MapListNode ==
NULL) {
1319 Status = EFI_OUT_OF_RESOURCES;
1321 MapListNode->Flags = Flags;
1324 if ((MapListNode->MapName ==
NULL) || (MapListNode->DevicePath ==
NULL)) {
1325 Status = EFI_OUT_OF_RESOURCES;
1331 if (EFI_ERROR (Status)) {
1332 if (MapListNode !=
NULL) {
1333 if (MapListNode->DevicePath !=
NULL) {
1334 FreePool (MapListNode->DevicePath);
1337 if (MapListNode->MapName !=
NULL) {
1348 OriginalPath = gEfiShellProtocol->GetEnv (L
"path");
1349 ASSERT ((NewPath ==
NULL && NewPathSize == 0) || (NewPath !=
NULL));
1350 if (OriginalPath !=
NULL) {
1351 StrnCatGrow (&NewPath, &NewPathSize, OriginalPath, 0);
1356 StrnCatGrow (&NewPath, &NewPathSize, L
"\\efi\\tools\\;", 0);
1358 StrnCatGrow (&NewPath, &NewPathSize, L
"\\efi\\boot\\;", 0);
1362 Status = gEfiShellProtocol->SetEnv (L
"path", NewPath,
TRUE);
1397 CHAR16 *NewDefaultName;
1398 CHAR16 *NewConsistName;
1401 CONST CHAR16 *CurDir;
1402 CHAR16 *SplitCurDir;
1406 ConsistMappingTable =
NULL;
1418 gEfiShellProtocol->SetEnv (L
"path", L
"",
TRUE);
1430 SHELL_FREE_NON_NULL (MapListNode->DevicePath);
1431 SHELL_FREE_NON_NULL (MapListNode->MapName);
1432 SHELL_FREE_NON_NULL (MapListNode->CurrentDirectoryPath);
1441 if (HandleList !=
NULL) {
1445 for (Count = 0; HandleList[Count] !=
NULL; Count++) {
1452 if (DevicePathList ==
NULL) {
1453 SHELL_FREE_NON_NULL (HandleList);
1454 return EFI_OUT_OF_RESOURCES;
1457 for (Count = 0; HandleList[Count] !=
NULL; Count++) {
1467 if (EFI_ERROR (Status)) {
1468 SHELL_FREE_NON_NULL (HandleList);
1469 SHELL_FREE_NON_NULL (DevicePathList);
1476 for (Count = 0; HandleList[Count] !=
NULL; Count++) {
1481 if (NewDefaultName ==
NULL) {
1482 ASSERT (NewDefaultName !=
NULL);
1483 Status = EFI_OUT_OF_RESOURCES;
1495 if (NewConsistName !=
NULL) {
1502 if (ConsistMappingTable !=
NULL) {
1506 SHELL_FREE_NON_NULL (HandleList);
1507 SHELL_FREE_NON_NULL (DevicePathList);
1518 CurDir = gEfiShellProtocol->GetEnv (L
"cwd");
1519 if (CurDir !=
NULL) {
1521 if (MapName ==
NULL) {
1522 return EFI_OUT_OF_RESOURCES;
1525 SplitCurDir =
StrStr (MapName, L
":");
1526 if (SplitCurDir ==
NULL) {
1527 SHELL_FREE_NON_NULL (MapName);
1528 return EFI_UNSUPPORTED;
1531 *(SplitCurDir + 1) = CHAR_NULL;
1533 if (MapListItem !=
NULL) {
1537 SHELL_FREE_NON_NULL (MapName);
1548 if (HandleList !=
NULL) {
1549 for (Count = 0; HandleList[Count] !=
NULL; Count++) {
1556 if (DevicePathList ==
NULL) {
1557 SHELL_FREE_NON_NULL (HandleList);
1558 return EFI_OUT_OF_RESOURCES;
1561 for (Count = 0; HandleList[Count] !=
NULL; Count++) {
1573 for (Count = 0; HandleList[Count] !=
NULL; Count++) {
1578 if (NewDefaultName ==
NULL) {
1579 ASSERT (NewDefaultName !=
NULL);
1580 SHELL_FREE_NON_NULL (HandleList);
1581 SHELL_FREE_NON_NULL (DevicePathList);
1582 return EFI_OUT_OF_RESOURCES;
1590 SHELL_FREE_NON_NULL (HandleList);
1591 SHELL_FREE_NON_NULL (DevicePathList);
1592 }
else if (Count == (
UINTN)-1) {
1593 return (EFI_NOT_FOUND);
1614 CHAR16 *NewDefaultName;
1615 CHAR16 *NewConsistName;
1629 if (HandleList !=
NULL) {
1633 for (Count = 0; HandleList[Count] !=
NULL; Count++) {
1640 if (DevicePathList ==
NULL) {
1641 return (EFI_OUT_OF_RESOURCES);
1644 for (Count = 0; HandleList[Count] !=
NULL; Count++) {
1654 if (EFI_ERROR (Status)) {
1655 SHELL_FREE_NON_NULL (HandleList);
1656 SHELL_FREE_NON_NULL (DevicePathList);
1663 for (Count = 0; !EFI_ERROR (Status) && HandleList[Count] !=
NULL; Count++) {
1667 if (gEfiShellProtocol->GetMapFromDevicePath (&DevicePathList[Count]) !=
NULL) {
1675 if (NewDefaultName ==
NULL) {
1676 Status = EFI_OUT_OF_RESOURCES;
1683 Status = gEfiShellProtocol->SetMap (DevicePathList[Count], NewDefaultName);
1685 if (!EFI_ERROR (Status)) {
1690 if (NewConsistName !=
NULL) {
1691 Status = gEfiShellProtocol->SetMap (DevicePathList[Count], NewConsistName);
1700 SHELL_FREE_NON_NULL (HandleList);
1701 SHELL_FREE_NON_NULL (DevicePathList);
1725 IN CONST SHELL_FILE_HANDLE Handle
1752 if (Buffer ==
NULL) {
1757 if (NewNode ==
NULL) {
1758 SHELL_FREE_NON_NULL (Buffer);
1764 if (Buffer->Path ==
NULL) {
1765 SHELL_FREE_NON_NULL (NewNode);
1766 SHELL_FREE_NON_NULL (Buffer);
1770 NewNode->Buffer = Buffer;
1775 return ((SHELL_FILE_HANDLE)(Handle));
1788 IN CONST SHELL_FILE_HANDLE Handle
1794 ; !
IsNull (&mFileHandleList.Link, &Node->Link)
1817 IN CONST SHELL_FILE_HANDLE Handle
1823 ; !
IsNull (&mFileHandleList.Link, &Node->Link)
1830 SHELL_FREE_NON_NULL (Node->Buffer);
1831 SHELL_FREE_NON_NULL (Node);
1854 IN SHELL_FILE_HANDLE Handle
1864 ASSERT (Handle !=
NULL);
1866 gEfiShellProtocol->GetFilePosition (Handle, &Pos);
1867 Info = gEfiShellProtocol->GetFileInfo (Handle);
1868 gEfiShellProtocol->SetFilePosition (Handle, Pos);
1911 if (BufferListEntry->Buffer !=
NULL) {
1912 FreePool (BufferListEntry->Buffer);
1947 while (DataSize != 0) {
1949 if (Size > DataSize) {
1953 for (Index = 0; Index < Size; Index += 1) {
1954 TempByte = Data[Index];
1955 Val[Index * 3 + 0] = Hex[TempByte >> 4];
1956 Val[Index * 3 + 1] = Hex[TempByte & 0xF];
1957 Val[Index * 3 + 2] = (CHAR8)((Index == 7) ?
'-' :
' ');
1958 Str[Index] = (CHAR8)((TempByte <
' ' || TempByte >
'~') ?
'.' : TempByte);
1963 ShellPrintEx (-1, -1, L
"%*a%08X: %-48a *%a*\r\n", Indent,
"", Offset, Val, Str);
2001 while (DataSize != 0) {
2003 if (Size > DataSize) {
2007 for (Index = 0; Index < Size; Index += 1) {
2008 TempByte = Data[Index];
2009 Val[Index * 3 + 0] = Hex[TempByte >> 4];
2010 Val[Index * 3 + 1] = Hex[TempByte & 0xF];
2011 Val[Index * 3 + 2] = (CHAR8)((Index == 7) ?
'-' :
' ');
2012 Str[Index] = (CHAR8)((TempByte <
' ' || TempByte >
'z') ?
'.' : TempByte);
2017 TempRetVal =
CatSPrint (RetVal, L
"%*a%08X: %-48a *%a*\r\n", Indent,
"", Offset, Val, Str);
2018 SHELL_FREE_NON_NULL (RetVal);
2019 RetVal = TempRetVal;
2055 Unique1 = Unique1AsVoid;
2056 Unique2 = Unique2AsVoid;
2061 return gUnicodeCollation->StriColl (
2063 (CHAR16 *)Unique1->Alias,
2064 (CHAR16 *)Unique2->Alias
2087 IN CONST VOID *UniqueAliasAsVoid,
2091 CONST CHAR16 *UniqueAlias;
2094 UniqueAlias = UniqueAliasAsVoid;
2095 Unique = UniqueAsVoid;
2100 return gUnicodeCollation->StriColl (
2102 (CHAR16 *)UniqueAlias,
2103 (CHAR16 *)Unique->Alias
2168 IN SHELL_SORT_FILE_LIST Order
2179 CONST CHAR16 *Alias;
2185 if ((
UINTN)Order >= (
UINTN)ShellSortFileListMax) {
2186 return EFI_INVALID_PARAMETER;
2189 if (FileList ==
NULL) {
2193 if (Duplicates !=
NULL) {
2200 if (*FileList ==
NULL) {
2201 return EFI_INVALID_PARAMETER;
2204 FilesHead = &(*FileList)->Link;
2211 return EFI_OUT_OF_RESOURCES;
2221 if (Unique ==
NULL) {
2222 Status = EFI_OUT_OF_RESOURCES;
2226 Unique->Alias = ((Order == ShellSortFileListByFileName) ?
2232 if (EFI_ERROR (Status)) {
2243 if (Status == EFI_OUT_OF_RESOURCES) {
2247 ASSERT (Status == EFI_ALREADY_STARTED);
2260 if (Duplicates !=
NULL) {
2262 if (Dupes ==
NULL) {
2263 Status = EFI_OUT_OF_RESOURCES;
2279 Alias = ((Order == ShellSortFileListByFileName) ?
2283 ASSERT (SortEntry !=
NULL);
2309 TargetFileList = FilesHead;
2313 if (Duplicates !=
NULL) {
2314 TargetFileList = &Dupes->
Link;
2324 if (Duplicates !=
NULL) {
2329 *Duplicates = Dupes;
2341 SortEntry = NextSortEntry)
2345 Unique = UniqueAsVoid;
BOOLEAN EFIAPI IsNull(IN CONST LIST_ENTRY *List, IN CONST LIST_ENTRY *Node)
UINTN EFIAPI StrSize(IN CONST CHAR16 *String)
BOOLEAN EFIAPI IsListEmpty(IN CONST LIST_ENTRY *ListHead)
LIST_ENTRY *EFIAPI GetNextNode(IN CONST LIST_ENTRY *List, IN CONST LIST_ENTRY *Node)
LIST_ENTRY *EFIAPI InsertHeadList(IN OUT LIST_ENTRY *ListHead, IN OUT LIST_ENTRY *Entry)
#define BASE_LIST_FOR_EACH_SAFE(Entry, NextEntry, ListHead)
LIST_ENTRY *EFIAPI GetFirstNode(IN CONST LIST_ENTRY *List)
LIST_ENTRY *EFIAPI SwapListEntries(IN OUT LIST_ENTRY *FirstEntry, IN OUT LIST_ENTRY *SecondEntry)
#define BASE_LIST_FOR_EACH(Entry, ListHead)
LIST_ENTRY *EFIAPI RemoveEntryList(IN CONST LIST_ENTRY *Entry)
LIST_ENTRY *EFIAPI InitializeListHead(IN OUT LIST_ENTRY *ListHead)
UINTN EFIAPI StrLen(IN CONST CHAR16 *String)
CHAR16 *EFIAPI StrStr(IN CONST CHAR16 *String, IN CONST CHAR16 *SearchString)
LIST_ENTRY *EFIAPI InsertTailList(IN OUT LIST_ENTRY *ListHead, IN OUT LIST_ENTRY *Entry)
EFI_DEVICE_PATH_PROTOCOL *EFIAPI DevicePathFromHandle(IN EFI_HANDLE Handle)
EFI_DEVICE_PATH_PROTOCOL *EFIAPI DuplicateDevicePath(IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath)
VOID *EFIAPI AllocateZeroPool(IN UINTN AllocationSize)
VOID EFIAPI FreePool(IN VOID *Buffer)
VOID *EFIAPI AllocateCopyPool(IN UINTN AllocationSize, IN CONST VOID *Buffer)
#define EFI_PLATFORM_LANG_VARIABLE_NAME
EFI_HANDLE *EFIAPI GetHandleListByProtocol(IN CONST EFI_GUID *ProtocolGuid OPTIONAL)
EFI_STRING EFIAPI HiiGetString(IN EFI_HII_HANDLE HiiHandle, IN EFI_STRING_ID StringId, IN CONST CHAR8 *Language OPTIONAL)
UINTN EFIAPI UnicodeSPrint(OUT CHAR16 *StartOfBuffer, IN UINTN BufferSize, IN CONST CHAR16 *FormatString,...)
#define RETURN_UNSUPPORTED
#define RETURN_OUT_OF_RESOURCES
#define RETURN_ALREADY_STARTED
#define ASSERT_EFI_ERROR(StatusParameter)
#define DEBUG_CODE(Expression)
ORDERED_COLLECTION_ENTRY *EFIAPI OrderedCollectionFind(IN CONST ORDERED_COLLECTION *Collection, IN CONST VOID *StandaloneKey)
ORDERED_COLLECTION_ENTRY *EFIAPI OrderedCollectionMin(IN CONST ORDERED_COLLECTION *Collection)
VOID *EFIAPI OrderedCollectionUserStruct(IN CONST ORDERED_COLLECTION_ENTRY *Entry)
RETURN_STATUS EFIAPI OrderedCollectionInsert(IN OUT ORDERED_COLLECTION *Collection, OUT ORDERED_COLLECTION_ENTRY **Entry OPTIONAL, IN VOID *UserStruct)
VOID EFIAPI OrderedCollectionUninit(IN ORDERED_COLLECTION *Collection)
ORDERED_COLLECTION *EFIAPI OrderedCollectionInit(IN ORDERED_COLLECTION_USER_COMPARE UserStructCompare, IN ORDERED_COLLECTION_KEY_COMPARE KeyCompare)
ORDERED_COLLECTION_ENTRY *EFIAPI OrderedCollectionNext(IN CONST ORDERED_COLLECTION_ENTRY *Entry)
VOID EFIAPI OrderedCollectionDelete(IN OUT ORDERED_COLLECTION *Collection, IN ORDERED_COLLECTION_ENTRY *Entry, OUT VOID **UserStruct OPTIONAL)
#define PcdGet8(TokenName)
VOID *EFIAPI AllocatePool(IN UINTN AllocationSize)
EFI_FILE_INFO * FileInfo(IN EFI_FILE_HANDLE FHand)
SHELL_STATUS(EFIAPI * SHELL_RUN_COMMAND)(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
SHELL_MAP_LIST *EFIAPI ShellCommandFindMapItem(IN CONST CHAR16 *MapKey)
CONST CHAR16 *(EFIAPI * SHELL_GET_MAN_FILENAME)(VOID)
EFI_STATUS EFIAPI ShellCommandConsistMappingUnInitialize(EFI_DEVICE_PATH_PROTOCOL **Table)
CHAR16 *EFIAPI ShellCommandConsistMappingGenMappingName(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN EFI_DEVICE_PATH_PROTOCOL **Table)
EFI_STATUS EFIAPI ShellCommandConsistMappingInitialize(EFI_DEVICE_PATH_PROTOCOL ***Table)
CHAR16 *EFIAPI StrnCatGrow(IN OUT CHAR16 **Destination, IN OUT UINTN *CurrentSize, IN CONST CHAR16 *Source, IN UINTN Count)
EFI_STATUS EFIAPI ShellPrintEx(IN INT32 Col OPTIONAL, IN INT32 Row OPTIONAL, IN CONST CHAR16 *Format,...)
CHAR16 * GetManFileName(IN CONST CHAR16 *ManFileName)
VOID EFIAPI PerformQuickSort(IN OUT VOID *BufferToSort, IN CONST UINTN Count, IN CONST UINTN ElementSize, IN SORT_COMPARE CompareFunction)
INTN EFIAPI DevicePathCompare(IN CONST VOID *Buffer1, IN CONST VOID *Buffer2)
EFI_STATUS EFIAPI GetEfiGlobalVariable2(IN CONST CHAR16 *Name, OUT VOID **Value, OUT UINTN *Size OPTIONAL)
CHAR16 *EFIAPI CatSPrint(IN CHAR16 *String OPTIONAL, IN CONST CHAR16 *FormatString,...)
CHAR8 *EFIAPI GetBestLanguage(IN CONST CHAR8 *SupportedLanguages, IN UINTN Iso639Language,...)
CHAR16 *EFIAPI ShellCommandCreateNewMappingName(IN CONST SHELL_MAPPING_TYPE Type)
BOOLEAN EFIAPI ShellCommandGetScriptExit(VOID)
CONST ALIAS_LIST *EFIAPI ShellCommandGetInitAliasList(VOID)
BOOLEAN EFIAPI ShellFileHandleRemove(IN CONST SHELL_FILE_HANDLE Handle)
STATIC INTN EFIAPI UniqueNameAliasCompare(IN CONST VOID *UniqueAliasAsVoid, IN CONST VOID *UniqueAsVoid)
BOOLEAN ShellCommandDynamicCommandExists(IN CONST CHAR16 *CommandString)
BOOLEAN ShellCommandIsCommandOnInternalList(IN CONST CHAR16 *CommandString)
EFI_STATUS EFIAPI CommandInit(VOID)
SHELL_FILE_HANDLE EFIAPI ConvertEfiFileProtocolToShellHandle(IN CONST EFI_FILE_PROTOCOL *Handle, IN CONST CHAR16 *Path)
VOID EFIAPI FreeBufferList(IN BUFFER_LIST *List)
BOOLEAN EFIAPI ShellFileHandleEof(IN SHELL_FILE_HANDLE Handle)
CONST EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL * ShellCommandFindDynamicCommand(IN CONST CHAR16 *CommandString)
EFI_STATUS EFIAPI ShellCommandAddMapItemAndUpdatePath(IN CONST CHAR16 *Name, IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN CONST UINT64 Flags, IN CONST BOOLEAN Path)
CONST CHAR16 *EFIAPI ShellCommandGetManFileNameHandler(IN CONST CHAR16 *CommandString)
SHELL_MAP_LIST gShellMapList
List of Mappings - DeviceName and Drive Letter(ism).
BOOLEAN EFIAPI ShellCommandIsCommandOnList(IN CONST CHAR16 *CommandString)
CHAR16 * ShellCommandGetDynamicCommandHelp(IN CONST CHAR16 *CommandString)
CONST CHAR16 *EFIAPI ShellFileHandleGetPath(IN CONST SHELL_FILE_HANDLE Handle)
SHELL_MAP_LIST * gShellCurMapping
Pointer to node of current directory in the mMapList.
CHAR16 *EFIAPI ShellCommandGetCommandHelp(IN CONST CHAR16 *CommandString)
VOID EFIAPI ShellCommandRegisterExit(IN BOOLEAN ScriptOnly, IN CONST UINT64 ErrorCode)
RETURN_STATUS EFIAPI ShellCommandRunCommandHandler(IN CONST CHAR16 *CommandString, IN OUT SHELL_STATUS *RetVal, IN OUT BOOLEAN *CanAffectLE OPTIONAL)
EFI_FILE_PROTOCOL *EFIAPI ConvertShellHandleToEfiFileProtocol(IN CONST SHELL_FILE_HANDLE Handle)
RETURN_STATUS EFIAPI ShellCommandRegisterCommandName(IN CONST CHAR16 *CommandString, IN SHELL_RUN_COMMAND CommandHandler, IN SHELL_GET_MAN_FILENAME GetManFileName, IN UINT32 ShellMinSupportLevel, IN CONST CHAR16 *ProfileName, IN CONST BOOLEAN CanAffectLE, IN CONST EFI_HII_HANDLE HiiHandle, IN CONST EFI_STRING_ID ManFormatHelp)
UINT64 EFIAPI ShellCommandGetExitCode(VOID)
VOID EFIAPI DeleteScriptFileStruct(IN SCRIPT_FILE *Script)
STATIC INTN EFIAPI UniqueNameCompare(IN CONST VOID *Unique1AsVoid, IN CONST VOID *Unique2AsVoid)
SCRIPT_FILE *EFIAPI ShellCommandSetNewScript(IN SCRIPT_FILE *Script OPTIONAL)
BOOLEAN EFIAPI ShellCommandGetEchoState(VOID)
RETURN_STATUS EFIAPI ShellCommandLibConstructor(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
CONST COMMAND_LIST *EFIAPI ShellCommandGetCommandList(IN CONST BOOLEAN Sort)
RETURN_STATUS EFIAPI ShellCommandRegisterAlias(IN CONST CHAR16 *Command, IN CONST CHAR16 *Alias)
RETURN_STATUS EFIAPI ShellCommandLibDestructor(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
EFI_STATUS EFIAPI ShellCommandUpdateMapping(VOID)
EFI_STATUS EFIAPI ShellCommandCreateInitialMappingsAndPaths(VOID)
VOID FreeFileHandleList(IN BUFFER_LIST *List)
VOID EFIAPI ShellCommandSetEchoState(IN BOOLEAN State)
CHAR16 *EFIAPI CatSDumpHex(IN CHAR16 *Buffer, IN UINTN Indent, IN UINTN Offset, IN UINTN DataSize, IN VOID *UserData)
EFI_STATUS EFIAPI ShellSortFileList(IN OUT EFI_SHELL_FILE_INFO **FileList, OUT EFI_SHELL_FILE_INFO **Duplicates OPTIONAL, IN SHELL_SORT_FILE_LIST Order)
BOOLEAN EFIAPI ShellCommandGetExit(VOID)
CONST CHAR16 *EFIAPI ShellCommandGetProfileList(VOID)
VOID EFIAPI DumpHex(IN UINTN Indent, IN UINTN Offset, IN UINTN DataSize, IN VOID *UserData)
SCRIPT_FILE *EFIAPI ShellCommandGetCurrentScriptFile(VOID)
CHAR16 * ShellCommandGetInternalCommandHelp(IN CONST CHAR16 *CommandString)
BOOLEAN EFIAPI ShellCommandIsOnAliasList(IN CONST CHAR16 *Alias)
EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL protocol structure.
LIST_ENTRY Link
Linked list members.