fixed to build under IPF.

Refactored some commands into FileHandleLib since they are used in many binaries.
Added .h for GUID that was missing.
Added PCD for initialization of shell apps and shell itself in shell library interaction.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8295 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
jcarsey
2009-05-11 18:02:16 +00:00
parent 446b94b0a1
commit d2b4564ba5
14 changed files with 1407 additions and 460 deletions

View File

@ -23,13 +23,10 @@
0x6302d008, 0x7f9b, 0x4f30, { 0x87, 0xac, 0x60, 0xc9, 0xfe, 0xf5, 0xda, 0x4e } \
}
typedef struct _EFI_LIST_ENTRY {
struct _EFI_LIST_ENTRY *Flink;
struct _EFI_LIST_ENTRY *Blink;
} EFI_LIST_ENTRY;
// replaced EFI_LIST_ENTRY with LIST_ENTRY for simplicity.
// they are identical outside of the name.
typedef struct {
EFI_LIST_ENTRY Link;
LIST_ENTRY Link;
EFI_STATUS Status;
CONST CHAR16 *FullName;
CONST CHAR16 *FileName;
@ -317,6 +314,16 @@ typedef UINT32 EFI_SHELL_DEVICE_NAME_FLAGS;
handle. If no user-readable name could be generated, then *BestDeviceName will be
NULL and EFI_NOT_FOUND will be returned.
If EFI_DEVICE_NAME_USE_COMPONENT_NAME is set, then the function will return the
device<63>s name using the EFI_COMPONENT_NAME2_PROTOCOL, if present on
DeviceHandle.
If EFI_DEVICE_NAME_USE_DEVICE_PATH is set, then the function will return the
device<63>s name using the EFI_DEVICE_PATH_PROTOCOL, if present on DeviceHandle.
If both EFI_DEVICE_NAME_USE_COMPONENT_NAME and
EFI_DEVICE_NAME_USE_DEVICE_PATH are set, then
EFI_DEVICE_NAME_USE_COMPONENT_NAME will have higher priority.
@param DeviceHandle The handle of the device.
@param Flags Determines the possible sources of component names.
@param Language A pointer to the language specified for the device
@ -946,4 +953,9 @@ typedef struct _EFI_SHELL_PROTOCOL {
extern EFI_GUID gEfiShellProtocolGuid;
enum ShellVersion {
SHELL_MAJOR_VERSION = 2,
SHELL_MINOR_VERSION = 0
};
#endif

View File

@ -82,7 +82,7 @@ EFI_STATUS
**/
typedef struct {
UINT32 Signature; ///< SHELL_FILE_ARG_SIGNATURE
EFI_LIST_ENTRY Link; ///< linked list helper
LIST_ENTRY Link; ///< linked list helper
EFI_STATUS Status; ///< File's status
EFI_FILE_HANDLE Parent; ///< what is the Parent file of this file
@ -270,7 +270,7 @@ CHAR16*
support for wildcard characters ('?' and '*') in the Arg path. if there are
any wildcard characters in the path this function will find any and all files
that match the wildcards. the return is a double linked list based on the
EFI_LIST_ENTRY linked list structure. use this in conjunction with the
LIST_ENTRY linked list structure. use this in conjunction with the
SHELL_FILE_ARG_SIGNATURE to get the SHELL_FILE_ARG structures that are returned.
The memory allocated by the callee for this list is freed by making a call to
SHELLENV_FREE_FILE_LIST.
@ -288,7 +288,7 @@ CHAR16*
EFI_STATUS
(EFIAPI *SHELLENV_FILE_META_ARG) (
IN CHAR16 *Arg,
IN OUT EFI_LIST_ENTRY *ListHead
IN OUT LIST_ENTRY *ListHead
);
/**
@ -301,7 +301,7 @@ EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *SHELLENV_FREE_FILE_LIST) (
IN OUT EFI_LIST_ENTRY *ListHead
IN OUT LIST_ENTRY *ListHead
);
/**
@ -618,7 +618,7 @@ typedef struct {
**/
typedef struct {
UINTN Signature; ///< PROTOCOL_INFO_SIGNATURE
EFI_LIST_ENTRY Link; ///< standard lined list helper member
LIST_ENTRY Link; ///< standard lined list helper member
//
// parsing info for the protocol
//
@ -845,7 +845,7 @@ EFI_STATUS
support the wildcard characters ('?' and '*') in the Arg path. if there are
any wildcard characters in the path this function will return
EFI_INVALID_PARAMETER. the return is a double linked list based on the
EFI_LIST_ENTRY linked list structure. use this in conjunction with the
LIST_ENTRY linked list structure. use this in conjunction with the
SHELL_FILE_ARG_SIGNATURE to get the SHELL_FILE_ARG structures that are returned.
The memory allocated by the callee for this list is freed by making a call to
SHELLENV_FREE_FILE_LIST.
@ -864,7 +864,7 @@ typedef
EFI_STATUS
(EFIAPI *SHELLENV_FILE_META_ARG_NO_WILDCARD) (
IN CHAR16 *Arg,
IN OUT EFI_LIST_ENTRY *ListHead
IN OUT LIST_ENTRY *ListHead
);
/**
@ -885,7 +885,7 @@ EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *SHELLENV_DEL_DUP_FILE) (
IN EFI_LIST_ENTRY * ListHead
IN LIST_ENTRY * ListHead
);
/**