From: "Kinney, Michael D" <michael.d.kinney@intel.com>
To: "Ni, Ruiyu" <ruiyu.ni@intel.com>,
"Carsey, Jaben" <jaben.carsey@intel.com>,
"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>,
"Kinney, Michael D" <michael.d.kinney@intel.com>
Cc: "Yao, Jiewen" <jiewen.yao@intel.com>
Subject: Re: [PATCH 2/5] MdePkg: Include Shell/ShellDynamicCommand/ShellParameters definitions
Date: Tue, 18 Oct 2016 05:59:41 +0000 [thread overview]
Message-ID: <E92EE9817A31E24EB0585FDF735412F564825F40@ORSMSX113.amr.corp.intel.com> (raw)
In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D58E3716C@SHSMSX104.ccr.corp.intel.com>
Use 'git mv' command.
Mike
> -----Original Message-----
> From: Ni, Ruiyu
> Sent: Tuesday, October 18, 2016 1:57 PM
> To: Carsey, Jaben <jaben.carsey@intel.com>; edk2-devel@lists.01.org
> Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Yao, Jiewen
> <jiewen.yao@intel.com>
> Subject: RE: [edk2] [PATCH 2/5] MdePkg: Include
> Shell/ShellDynamicCommand/ShellParameters definitions
>
> I don't want to lose the file history either.
> I thought git can auto-detect the copy/move of files. I will investigate further.
>
> Thanks/Ray
>
> > -----Original Message-----
> > From: Carsey, Jaben
> > Sent: Tuesday, October 18, 2016 2:02 AM
> > To: Ni, Ruiyu <ruiyu.ni@intel.com>; edk2-devel@lists.01.org
> > Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Yao, Jiewen
> > <jiewen.yao@intel.com>; Carsey, Jaben <jaben.carsey@intel.com>
> > Subject: RE: [edk2] [PATCH 2/5] MdePkg: Include
> > Shell/ShellDynamicCommand/ShellParameters definitions
> >
> > Can we do a GIT move operation and then merge the content from
> > ShellBase.h please? I do not want to lose the file history information.
> >
> > When we move by "delete" then "add" we lose everything for no reason.
> >
> > -Jaben
> >
> > > -----Original Message-----
> > > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
> > > Ruiyu Ni
> > > Sent: Friday, October 14, 2016 2:44 AM
> > > To: edk2-devel@lists.01.org
> > > Cc: Carsey, Jaben <jaben.carsey@intel.com>; Kinney, Michael D
> > > <michael.d.kinney@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>
> > > Subject: [edk2] [PATCH 2/5] MdePkg: Include
> > > Shell/ShellDynamicCommand/ShellParameters definitions
> > > Importance: High
> > >
> > > Copy Shell/ShellDynamicCommand/ShellParameters definitions from
> > > ShellPkg to MdePkg.
> > > Content of ShellBase.h is moved to Protocol/Shell.h.
> > >
> > > The following patches will update ShellPkg to reference all protocol
> > > definition to MdePkg.
> > >
> > > Contributed-under: TianoCore Contribution Agreement 1.0
> > > Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
> > > Cc: Jaben Carsey <jaben.carsey@intel.com>
> > > Cc: Jiewen Yao <jiewen.yao@intel.com>
> > > Cc: Michael D Kinney <michael.d.kinney@intel.com>
> > > ---
> > > MdePkg/Include/Protocol/Shell.h | 1268
> > > +++++++++++++++++++++++++
> > > MdePkg/Include/Protocol/ShellDynamicCommand.h | 85 ++
> > > MdePkg/Include/Protocol/ShellParameters.h | 60 ++
> > > MdePkg/MdePkg.dec | 15 +
> > > 4 files changed, 1428 insertions(+)
> > > create mode 100644 MdePkg/Include/Protocol/Shell.h
> > > create mode 100644 MdePkg/Include/Protocol/ShellDynamicCommand.h
> > > create mode 100644 MdePkg/Include/Protocol/ShellParameters.h
> > >
> > > diff --git a/MdePkg/Include/Protocol/Shell.h
> > > b/MdePkg/Include/Protocol/Shell.h
> > > new file mode 100644
> > > index 0000000..cc1fbdc
> > > --- /dev/null
> > > +++ b/MdePkg/Include/Protocol/Shell.h
> > > @@ -0,0 +1,1268 @@
> > > +/** @file
> > > + EFI Shell protocol as defined in the UEFI Shell 2.0 specification including
> > > errata.
> > > +
> > > + (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
> > > + Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
> > > + This program and the accompanying materials
> > > + are licensed and made available under the terms and conditions of the
> > BSD
> > > License
> > > + which accompanies this distribution. The full text of the license may be
> > > found at
> > > + http://opensource.org/licenses/bsd-license.php
> > > +
> > > + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> > > BASIS,
> > > + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> > > EXPRESS OR IMPLIED.
> > > +
> > > +**/
> > > +
> > > +#ifndef __EFI_SHELL_PROTOCOL__
> > > +#define __EFI_SHELL_PROTOCOL__
> > > +
> > > +#include <Guid/FileInfo.h>
> > > +
> > > +#define EFI_SHELL_PROTOCOL_GUID \
> > > + { \
> > > + 0x6302d008, 0x7f9b, 0x4f30, { 0x87, 0xac, 0x60, 0xc9, 0xfe, 0xf5, 0xda,
> > 0x4e
> > > } \
> > > + }
> > > +typedef VOID *SHELL_FILE_HANDLE;
> > > +
> > > +typedef enum {
> > > + ///
> > > + /// The operation completed successfully.
> > > + ///
> > > + SHELL_SUCCESS = 0,
> > > +
> > > + ///
> > > + /// The image failed to load.
> > > + ///
> > > + SHELL_LOAD_ERROR = 1,
> > > +
> > > + ///
> > > + /// The parameter was incorrect.
> > > + ///
> > > + SHELL_INVALID_PARAMETER = 2,
> > > +
> > > + ///
> > > + /// The operation is not supported.
> > > + ///
> > > + SHELL_UNSUPPORTED = 3,
> > > +
> > > + ///
> > > + /// The buffer was not the proper size for the request.
> > > + ///
> > > + SHELL_BAD_BUFFER_SIZE = 4,
> > > +
> > > + ///
> > > + /// The buffer was not large enough to hold the requested data.
> > > + /// The required buffer size is returned in the appropriate
> > > + /// parameter when this error occurs.
> > > + ///
> > > + SHELL_BUFFER_TOO_SMALL = 5,
> > > +
> > > + ///
> > > + /// There is no data pending upon return.
> > > + ///
> > > + SHELL_NOT_READY = 6,
> > > +
> > > + ///
> > > + /// The physical device reported an error while attempting the
> > > + /// operation.
> > > + ///
> > > + SHELL_DEVICE_ERROR = 7,
> > > +
> > > + ///
> > > + /// The device cannot be written to.
> > > + ///
> > > + SHELL_WRITE_PROTECTED = 8,
> > > +
> > > + ///
> > > + /// The resource has run out.
> > > + ///
> > > + SHELL_OUT_OF_RESOURCES = 9,
> > > +
> > > + ///
> > > + /// An inconsistency was detected on the file system causing the
> > > + /// operation to fail.
> > > + ///
> > > + SHELL_VOLUME_CORRUPTED = 10,
> > > +
> > > + ///
> > > + /// There is no more space on the file system.
> > > + ///
> > > + SHELL_VOLUME_FULL = 11,
> > > +
> > > + ///
> > > + /// The device does not contain any medium to perform the
> > > + /// operation.
> > > + ///
> > > + SHELL_NO_MEDIA = 12,
> > > +
> > > + ///
> > > + /// The medium in the device has changed since the last
> > > + /// access.
> > > + ///
> > > + SHELL_MEDIA_CHANGED = 13,
> > > +
> > > + ///
> > > + /// The item was not found.
> > > + ///
> > > + SHELL_NOT_FOUND = 14,
> > > +
> > > + ///
> > > + /// Access was denied.
> > > + ///
> > > + SHELL_ACCESS_DENIED = 15,
> > > +
> > > + // note the skipping of 16 and 17
> > > +
> > > + ///
> > > + /// A timeout time expired.
> > > + ///
> > > + SHELL_TIMEOUT = 18,
> > > +
> > > + ///
> > > + /// The protocol has not been started.
> > > + ///
> > > + SHELL_NOT_STARTED = 19,
> > > +
> > > + ///
> > > + /// The protocol has already been started.
> > > + ///
> > > + SHELL_ALREADY_STARTED = 20,
> > > +
> > > + ///
> > > + /// The operation was aborted.
> > > + ///
> > > + SHELL_ABORTED = 21,
> > > +
> > > + // note the skipping of 22, 23, and 24
> > > +
> > > + ///
> > > + /// A function encountered an internal version that was
> > > + /// incompatible with a version requested by the caller.
> > > + ///
> > > + SHELL_INCOMPATIBLE_VERSION = 25,
> > > +
> > > + ///
> > > + /// The function was not performed due to a security violation.
> > > + ///
> > > + SHELL_SECURITY_VIOLATION = 26,
> > > +
> > > + ///
> > > + /// The function was performed and resulted in an unequal
> > > + /// comparison..
> > > + ///
> > > + SHELL_NOT_EQUAL = 27
> > > +} SHELL_STATUS;
> > > +
> > > +
> > > +// replaced EFI_LIST_ENTRY with LIST_ENTRY for simplicity.
> > > +// they are identical outside of the name.
> > > +typedef struct {
> > > + LIST_ENTRY Link; ///< Linked list members.
> > > + EFI_STATUS Status; ///< Status of opening the file. Valid only if
> > > Handle != NULL.
> > > + CONST CHAR16 *FullName; ///< Fully qualified filename.
> > > + CONST CHAR16 *FileName; ///< name of this file.
> > > + SHELL_FILE_HANDLE Handle; ///< Handle for interacting with the
> > opened
> > > file or NULL if closed.
> > > + EFI_FILE_INFO *Info; ///< Pointer to the FileInfo struct for this
> file or
> > > NULL.
> > > +} EFI_SHELL_FILE_INFO;
> > > +
> > > +/**
> > > + Returns whether any script files are currently being processed.
> > > +
> > > + @retval TRUE There is at least one script file active.
> > > + @retval FALSE No script files are active now.
> > > +
> > > +**/
> > > +typedef
> > > +BOOLEAN
> > > +(EFIAPI *EFI_SHELL_BATCH_IS_ACTIVE) (
> > > + VOID
> > > + );
> > > +
> > > +/**
> > > + Closes the file handle.
> > > +
> > > + This function closes a specified file handle. All 'dirty' cached file data is
> > > + flushed to the device, and the file is closed. In all cases, the handle is
> > > + closed.
> > > +
> > > + @param[in] FileHandle The file handle to be closed.
> > > +
> > > + @retval EFI_SUCCESS The file closed sucessfully.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_CLOSE_FILE)(
> > > + IN SHELL_FILE_HANDLE FileHandle
> > > + );
> > > +
> > > +/**
> > > + Creates a file or directory by name.
> > > +
> > > + This function creates an empty new file or directory with the specified
> > > attributes and
> > > + returns the new file's handle. If the file already exists and is read-only,
> > > then
> > > + EFI_INVALID_PARAMETER will be returned.
> > > +
> > > + If the file already existed, it is truncated and its attributes updated. If
> the
> > > file is
> > > + created successfully, the FileHandle is the file's handle, else, the
> > FileHandle
> > > is NULL.
> > > +
> > > + If the file name begins with >v, then the file handle which is returned
> > > refers to the
> > > + shell environment variable with the specified name. If the shell
> > > environment variable
> > > + already exists and is non-volatile then EFI_INVALID_PARAMETER is
> > > returned.
> > > +
> > > + @param[in] FileName Pointer to NULL-terminated file path.
> > > + @param[in] FileAttribs The new file's attrbiutes. The different
> > > attributes are
> > > + described in EFI_FILE_PROTOCOL.Open().
> > > + @param[out] FileHandle On return, points to the created file handle
> > or
> > > directory's handle.
> > > +
> > > + @retval EFI_SUCCESS The file was opened. FileHandle points to the
> > > new file's handle.
> > > + @retval EFI_INVALID_PARAMETER One of the parameters has an invalid
> > > value.
> > > + @retval EFI_UNSUPPORTED The file path could not be opened.
> > > + @retval EFI_NOT_FOUND The specified file could not be found on
> > the
> > > device, or could not
> > > + file the file system on the device.
> > > + @retval EFI_NO_MEDIA The device has no medium.
> > > + @retval EFI_MEDIA_CHANGED The device has a different medium in it
> > > or the medium is no
> > > + longer supported.
> > > + @retval EFI_DEVICE_ERROR The device reported an error or can't get
> > > the file path according
> > > + the DirName.
> > > + @retval EFI_VOLUME_CORRUPTED The file system structures are
> > > corrupted.
> > > + @retval EFI_WRITE_PROTECTED An attempt was made to create a file,
> > or
> > > open a file for write
> > > + when the media is write-protected.
> > > + @retval EFI_ACCESS_DENIED The service denied access to the file.
> > > + @retval EFI_OUT_OF_RESOURCES Not enough resources were available
> > > to open the file.
> > > + @retval EFI_VOLUME_FULL The volume is full.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_CREATE_FILE)(
> > > + IN CONST CHAR16 *FileName,
> > > + IN UINT64 FileAttribs,
> > > + OUT SHELL_FILE_HANDLE *FileHandle
> > > + );
> > > +
> > > +/**
> > > + Deletes the file specified by the file handle.
> > > +
> > > + This function closes and deletes a file. In all cases, the file handle is
> closed.
> > > If the file
> > > + cannot be deleted, the warning code EFI_WARN_DELETE_FAILURE is
> > > returned, but the
> > > + handle is still closed.
> > > +
> > > + @param[in] FileHandle The file handle to delete.
> > > +
> > > + @retval EFI_SUCCESS The file was closed and deleted and the
> > handle
> > > was closed.
> > > + @retval EFI_WARN_DELETE_FAILURE The handle was closed but the file
> > > was not deleted.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_DELETE_FILE)(
> > > + IN SHELL_FILE_HANDLE FileHandle
> > > + );
> > > +
> > > +/**
> > > + Deletes the file specified by the file name.
> > > +
> > > + This function deletes a file.
> > > +
> > > + @param[in] FileName Points to the NULL-terminated file name.
> > > +
> > > + @retval EFI_SUCCESS The file was deleted.
> > > + @retval EFI_WARN_DELETE_FAILURE The handle was closed but the file
> > > was not deleted.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_DELETE_FILE_BY_NAME)(
> > > + IN CONST CHAR16 *FileName
> > > + );
> > > +
> > > +/**
> > > + Disables the page break output mode.
> > > +**/
> > > +typedef
> > > +VOID
> > > +(EFIAPI *EFI_SHELL_DISABLE_PAGE_BREAK) (
> > > + VOID
> > > + );
> > > +
> > > +/**
> > > + Enables the page break output mode.
> > > +**/
> > > +typedef
> > > +VOID
> > > +(EFIAPI *EFI_SHELL_ENABLE_PAGE_BREAK) (
> > > + VOID
> > > + );
> > > +
> > > +/**
> > > + Execute the command line.
> > > +
> > > + This function creates a nested instance of the shell and executes the
> > > specified
> > > + command (CommandLine) with the specified environment
> > (Environment).
> > > Upon return,
> > > + the status code returned by the specified command is placed in
> > > StatusCode.
> > > +
> > > + If Environment is NULL, then the current environment is used and all
> > > changes made
> > > + by the commands executed will be reflected in the current environment.
> > If
> > > the
> > > + Environment is non-NULL, then the changes made will be discarded.
> > > +
> > > + The CommandLine is executed from the current working directory on the
> > > current
> > > + device.
> > > +
> > > + @param[in] ParentImageHandle A handle of the image that is executing
> > > the specified
> > > + command line.
> > > + @param[in] CommandLine Points to the NULL-terminated UCS-2
> > > encoded string
> > > + containing the command line. If NULL then the
> command-
> > > + line will be empty.
> > > + @param[in] Environment Points to a NULL-terminated array of
> > > environment
> > > + variables with the format 'x=y', where x is the
> > > + environment variable name and y is the value. If
> this
> > > + is NULL, then the current shell environment is
> used.
> > > + @param[out] ErrorCode Points to the status code returned by the
> > > command.
> > > +
> > > + @retval EFI_SUCCESS The command executed successfully. The
> > > status code
> > > + returned by the command is pointed to by
> StatusCode.
> > > + @retval EFI_INVALID_PARAMETER The parameters are invalid.
> > > + @retval EFI_OUT_OF_RESOURCES Out of resources.
> > > + @retval EFI_UNSUPPORTED Nested shell invocations are not allowed.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_EXECUTE) (
> > > + IN EFI_HANDLE *ParentImageHandle,
> > > + IN CHAR16 *CommandLine OPTIONAL,
> > > + IN CHAR16 **Environment OPTIONAL,
> > > + OUT EFI_STATUS *StatusCode OPTIONAL
> > > + );
> > > +
> > > +/**
> > > + Find files that match a specified pattern.
> > > +
> > > + This function searches for all files and directories that match the specified
> > > + FilePattern. The FilePattern can contain wild-card characters. The
> > resulting
> > > file
> > > + information is placed in the file list FileList.
> > > +
> > > + The files in the file list are not opened. The OpenMode field is set to 0
> > and
> > > the FileInfo
> > > + field is set to NULL.
> > > +
> > > + @param[in] FilePattern Points to a NULL-terminated shell file path,
> > > including wildcards.
> > > + @param[out] FileList On return, points to the start of a file list
> > > containing the names
> > > + of all matching files or else points to NULL if
> no matching
> > > files
> > > + were found.
> > > +
> > > + @retval EFI_SUCCESS Files found.
> > > + @retval EFI_NOT_FOUND No files found.
> > > + @retval EFI_NO_MEDIA The device has no media.
> > > + @retval EFI_DEVICE_ERROR The device reported an error.
> > > + @retval EFI_VOLUME_CORRUPTED The file system structures are
> > > corrupted.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_FIND_FILES)(
> > > + IN CONST CHAR16 *FilePattern,
> > > + OUT EFI_SHELL_FILE_INFO **FileList
> > > + );
> > > +
> > > +/**
> > > + Find all files in a specified directory.
> > > +
> > > + @param[in] FileDirHandle Handle of the directory to search.
> > > + @param[out] FileList On return, points to the list of files in the
> > > directory
> > > + or NULL if there are no files in the directory.
> > > +
> > > + @retval EFI_SUCCESS File information was returned successfully.
> > > + @retval EFI_VOLUME_CORRUPTED The file system structures have
> > been
> > > corrupted.
> > > + @retval EFI_DEVICE_ERROR The device reported an error.
> > > + @retval EFI_NO_MEDIA The device media is not present.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_FIND_FILES_IN_DIR)(
> > > +IN SHELL_FILE_HANDLE FileDirHandle,
> > > +OUT EFI_SHELL_FILE_INFO **FileList
> > > +);
> > > +
> > > +/**
> > > + Flushes data back to a device.
> > > +
> > > + This function flushes all modified data associated with a file to a device.
> > > +
> > > + @param[in] FileHandle The handle of the file to flush.
> > > +
> > > + @retval EFI_SUCCESS The data was flushed.
> > > + @retval EFI_NO_MEDIA The device has no medium.
> > > + @retval EFI_DEVICE_ERROR The device reported an error.
> > > + @retval EFI_VOLUME_CORRUPTED The file system structures are
> > > corrupted.
> > > + @retval EFI_WRITE_PROTECTED The file or medium is write-protected.
> > > + @retval EFI_ACCESS_DENIED The file was opened read-only.
> > > + @retval EFI_VOLUME_FULL The volume is full.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_FLUSH_FILE)(
> > > + IN SHELL_FILE_HANDLE FileHandle
> > > + );
> > > +
> > > +/**
> > > + Frees the file list.
> > > +
> > > + This function cleans up the file list and any related data structures. It has
> > no
> > > + impact on the files themselves.
> > > +
> > > + @param[in] FileList The file list to free. Type EFI_SHELL_FILE_INFO
> is
> > > + defined in OpenFileList().
> > > +
> > > + @retval EFI_SUCCESS Free the file list successfully.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_FREE_FILE_LIST) (
> > > + IN EFI_SHELL_FILE_INFO **FileList
> > > + );
> > > +
> > > +/**
> > > + Returns the current directory on the specified device.
> > > +
> > > + If FileSystemMapping is NULL, it returns the current working directory. If
> > > the
> > > + FileSystemMapping is not NULL, it returns the current directory
> > associated
> > > with the
> > > + FileSystemMapping. In both cases, the returned name includes the file
> > > system
> > > + mapping (i.e. fs0:\current-dir).
> > > +
> > > + Note that the current directory string should exclude the tailing backslash
> > > character.
> > > +
> > > + @param[in] FileSystemMapping A pointer to the file system mapping. If
> > > NULL,
> > > + then the current working directory is returned.
> > > +
> > > + @retval !=NULL The current directory.
> > > + @retval NULL Current directory does not exist.
> > > +**/
> > > +typedef
> > > +CONST CHAR16 *
> > > +(EFIAPI *EFI_SHELL_GET_CUR_DIR) (
> > > + IN CONST CHAR16 *FileSystemMapping OPTIONAL
> > > + );
> > > +
> > > +typedef UINT32 EFI_SHELL_DEVICE_NAME_FLAGS;
> > > +#define EFI_DEVICE_NAME_USE_COMPONENT_NAME 0x00000001
> > > +#define EFI_DEVICE_NAME_USE_DEVICE_PATH 0x00000002
> > > +
> > > +/**
> > > + Gets the name of the device specified by the device handle.
> > > +
> > > + This function gets the user-readable name of the device specified by the
> > > device
> > > + 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'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'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[in] DeviceHandle The handle of the device.
> > > + @param[in] Flags Determines the possible sources of component
> > > names.
> > > + @param[in] Language A pointer to the language specified for the
> > > device
> > > + name, in the same format as described in the
> UEFI
> > > + specification, Appendix M.
> > > + @param[out] BestDeviceName On return, points to the callee-
> > allocated
> > > NULL-
> > > + terminated name of the device. If no device name
> > > + could be found, points to NULL. The name must be
> > > + freed by the caller...
> > > +
> > > + @retval EFI_SUCCESS Get the name successfully.
> > > + @retval EFI_NOT_FOUND Fail to get the device name.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_GET_DEVICE_NAME) (
> > > + IN EFI_HANDLE DeviceHandle,
> > > + IN EFI_SHELL_DEVICE_NAME_FLAGS Flags,
> > > + IN CHAR8 *Language,
> > > + OUT CHAR16 **BestDeviceName
> > > + );
> > > +
> > > +/**
> > > + Gets the device path from the mapping.
> > > +
> > > + This function gets the device path associated with a mapping.
> > > +
> > > + @param[in] Mapping A pointer to the mapping
> > > +
> > > + @retval !=NULL Pointer to the device path that corresponds to
> > the
> > > + device mapping. The returned pointer does not
> need
> > > + to be freed.
> > > + @retval NULL There is no device path associated with the
> > > + specified mapping.
> > > +**/
> > > +typedef
> > > +CONST EFI_DEVICE_PATH_PROTOCOL *
> > > +(EFIAPI *EFI_SHELL_GET_DEVICE_PATH_FROM_MAP) (
> > > + IN CONST CHAR16 *Mapping
> > > + );
> > > +
> > > +/**
> > > + Converts a file system style name to a device path.
> > > +
> > > + This function converts a file system style name to a device path, by
> > > replacing any
> > > + mapping references to the associated device path.
> > > +
> > > + @param[in] Path The pointer to the path.
> > > +
> > > + @return The pointer of the file path. The file path is
> callee
> > > + allocated and should be freed by the caller.
> > > +**/
> > > +typedef
> > > +EFI_DEVICE_PATH_PROTOCOL *
> > > +(EFIAPI *EFI_SHELL_GET_DEVICE_PATH_FROM_FILE_PATH) (
> > > + IN CONST CHAR16 *Path
> > > + );
> > > +
> > > +/**
> > > + Gets either a single or list of environment variables.
> > > +
> > > + If name is not NULL then this function returns the current value of the
> > > specified
> > > + environment variable.
> > > +
> > > + If Name is NULL than a list of all environment variable names is returned.
> > > Each a
> > > + NULL terminated string with a double NULL terminating the list.
> > > +
> > > + @param[in] Name A pointer to the environment variable name.
> > If
> > > + Name is NULL, then the function will return all
> > > + of the defined shell environment variables. In
> > > + the case where multiple environment variables
> are
> > > + being returned, each variable will be terminated
> by
> > > + a NULL, and the list will be terminated by a
> double
> > > + NULL.
> > > +
> > > + @return A pointer to the returned string.
> > > + The returned pointer does not need to be freed
> by the
> > > caller.
> > > +
> > > + @retval NULL The environment variable doesn't exist or there
> > are
> > > + no environment variables.
> > > +**/
> > > +typedef
> > > +CONST CHAR16 *
> > > +(EFIAPI *EFI_SHELL_GET_ENV) (
> > > + IN CONST CHAR16 *Name OPTIONAL
> > > + );
> > > +
> > > +/**
> > > + Gets the environment variable and Attributes, or list of environment
> > > variables. Can be
> > > + used instead of GetEnv().
> > > +
> > > + This function returns the current value of the specified environment
> > > variable and
> > > + the Attributes. If no variable name was specified, then all of the known
> > > + variables will be returned.
> > > +
> > > + @param[in] Name A pointer to the environment variable name. If
> > > Name is NULL,
> > > + then the function will return all of the defined
> shell
> > > + environment variables. In the case where
> multiple
> > > environment
> > > + variables are being returned, each variable will
> be
> > > terminated
> > > + by a NULL, and the list will be terminated by a
> double
> > NULL.
> > > + @param[out] Attributes If not NULL, a pointer to the returned
> > > attributes bitmask for
> > > + the environment variable. In the case where Name
> is
> > NULL,
> > > and
> > > + multiple environment variables are being
> returned,
> > > Attributes
> > > + is undefined.
> > > +
> > > + @retval NULL The environment variable doesn't exist.
> > > + @return The environment variable's value. The returned
> > > pointer does not
> > > + need to be freed by the caller.
> > > +**/
> > > +typedef
> > > +CONST CHAR16 *
> > > +(EFIAPI *EFI_SHELL_GET_ENV_EX) (
> > > + IN CONST CHAR16 *Name,
> > > + OUT UINT32 *Attributes OPTIONAL
> > > + );
> > > +
> > > +/**
> > > + Gets the file information from an open file handle.
> > > +
> > > + This function allocates a buffer to store the file's information. It's the
> > > caller's
> > > + responsibility to free the buffer.
> > > +
> > > + @param[in] FileHandle A File Handle.
> > > +
> > > + @retval NULL Cannot get the file info.
> > > + @return A pointer to a buffer with file information.
> > > +**/
> > > +typedef
> > > +EFI_FILE_INFO *
> > > +(EFIAPI *EFI_SHELL_GET_FILE_INFO)(
> > > + IN SHELL_FILE_HANDLE FileHandle
> > > + );
> > > +
> > > +/**
> > > + Converts a device path to a file system-style path.
> > > +
> > > + This function converts a device path to a file system path by replacing
> > part,
> > > or all, of
> > > + the device path with the file-system mapping. If there are more than
> > one
> > > application
> > > + file system mappings, the one that most closely matches Path will be
> > used.
> > > +
> > > + @param[in] Path The pointer to the device path.
> > > +
> > > + @return The pointer of the NULL-terminated file path.
> The
> > path
> > > + is callee-allocated and should be freed by the
> caller.
> > > +**/
> > > +typedef
> > > +CHAR16 *
> > > +(EFIAPI *EFI_SHELL_GET_FILE_PATH_FROM_DEVICE_PATH) (
> > > + IN CONST EFI_DEVICE_PATH_PROTOCOL *Path
> > > + );
> > > +
> > > +/**
> > > + Gets a file's current position.
> > > +
> > > + This function returns the current file position for the file handle. For
> > > directories, the
> > > + current file position has no meaning outside of the file system driver and
> > > as such, the
> > > + operation is not supported.
> > > +
> > > + @param[in] FileHandle The file handle on which to get the current
> > > position.
> > > + @param[out] Position Byte position from the start of the file.
> > > +
> > > + @retval EFI_SUCCESS Data was accessed.
> > > + @retval EFI_UNSUPPORTED The request is not valid on open
> > > directories.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_GET_FILE_POSITION)(
> > > + IN SHELL_FILE_HANDLE FileHandle,
> > > + OUT UINT64 *Position
> > > + );
> > > +
> > > +/**
> > > + Gets the size of a file.
> > > +
> > > + This function returns the size of the file specified by FileHandle.
> > > +
> > > + @param[in] FileHandle The handle of the file.
> > > + @param[out] Size The size of this file.
> > > +
> > > + @retval EFI_SUCCESS Get the file's size.
> > > + @retval EFI_DEVICE_ERROR Can't access the file.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_GET_FILE_SIZE)(
> > > + IN SHELL_FILE_HANDLE FileHandle,
> > > + OUT UINT64 *Size
> > > + );
> > > +
> > > +/**
> > > + Get the GUID value from a human readable name.
> > > +
> > > + If GuidName is a known GUID name, then update Guid to have the
> > correct
> > > value for
> > > + that GUID.
> > > +
> > > + This function is only available when the major and minor versions in the
> > > + EfiShellProtocol are greater than or equal to 2 and 1, respectively.
> > > +
> > > + @param[in] GuidName A pointer to the localized name for the GUID
> > > being queried.
> > > + @param[out] Guid A pointer to the GUID structure to be filled in.
> > > +
> > > + @retval EFI_SUCCESS The operation was successful.
> > > + @retval EFI_INVALID_PARAMETER Guid was NULL.
> > > + @retval EFI_INVALID_PARAMETER GuidName was NULL.
> > > + @retval EFI_NOT_FOUND GuidName is not a known GUID Name.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_GET_GUID_FROM_NAME)(
> > > + IN CONST CHAR16 *GuidName,
> > > + OUT EFI_GUID *Guid
> > > + );
> > > +
> > > +/**
> > > + Get the human readable name for a GUID from the value.
> > > +
> > > + If Guid is assigned a name, then update *GuidName to point to the
> > name.
> > > The callee
> > > + should not modify the value.
> > > +
> > > + This function is only available when the major and minor versions in the
> > > + EfiShellProtocol are greater than or equal to 2 and 1, respectively.
> > > +
> > > + @param[in] Guid A pointer to the GUID being queried.
> > > + @param[out] GuidName A pointer to a pointer the localized to name
> > for
> > > the GUID being requested
> > > +
> > > + @retval EFI_SUCCESS The operation was successful.
> > > + @retval EFI_INVALID_PARAMETER Guid was NULL.
> > > + @retval EFI_INVALID_PARAMETER GuidName was NULL.
> > > + @retval EFI_NOT_FOUND Guid is not assigned a name.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_GET_GUID_NAME)(
> > > + IN CONST EFI_GUID *Guid,
> > > + OUT CONST CHAR16 **GuidName
> > > + );
> > > +
> > > +/**
> > > + Return help information about a specific command.
> > > +
> > > + This function returns the help information for the specified command.
> > The
> > > help text
> > > + can be internal to the shell or can be from a UEFI Shell manual page.
> > > +
> > > + If Sections is specified, then each section name listed will be compared in
> > a
> > > casesensitive
> > > + manner, to the section names described in Appendix B. If the section
> > > exists,
> > > + it will be appended to the returned help text. If the section does not
> > exist,
> > > no
> > > + information will be returned. If Sections is NULL, then all help text
> > > information
> > > + available will be returned.
> > > +
> > > + @param[in] Command Points to the NULL-terminated UEFI Shell
> > > command name.
> > > + @param[in] Sections Points to the NULL-terminated comma-
> > > delimited
> > > + section names to return. If NULL, then all
> > > + sections will be returned.
> > > + @param[out] HelpText On return, points to a callee-allocated buffer
> > > + containing all specified help text.
> > > +
> > > + @retval EFI_SUCCESS The help text was returned.
> > > + @retval EFI_OUT_OF_RESOURCES The necessary buffer could not be
> > > allocated to hold the
> > > + returned help text.
> > > + @retval EFI_INVALID_PARAMETER HelpText is NULL.
> > > + @retval EFI_NOT_FOUND There is no help text available for
> > > Command.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_GET_HELP_TEXT) (
> > > + IN CONST CHAR16 *Command,
> > > + IN CONST CHAR16 *Sections OPTIONAL,
> > > + OUT CHAR16 **HelpText
> > > + );
> > > +
> > > +/**
> > > + Gets the mapping(s) that most closely matches the device path.
> > > +
> > > + This function gets the mapping which corresponds to the device path
> > > *DevicePath. If
> > > + there is no exact match, then the mapping which most closely matches
> > > *DevicePath
> > > + is returned, and *DevicePath is updated to point to the remaining
> > portion
> > > of the
> > > + device path. If there is an exact match, the mapping is returned and
> > > *DevicePath
> > > + points to the end-of-device-path node.
> > > +
> > > + If there are multiple map names they will be semi-colon seperated in the
> > > + NULL-terminated string.
> > > +
> > > + @param[in, out] DevicePath On entry, points to a device path pointer.
> > > On
> > > + exit, updates the pointer to point to the
> > > + portion of the device path after the mapping.
> > > +
> > > + @retval NULL No mapping was found.
> > > + @retval !=NULL Pointer to NULL-terminated mapping. The buffer
> > > + is callee allocated and should be freed by the
> caller.
> > > +**/
> > > +typedef
> > > +CONST CHAR16 *
> > > +(EFIAPI *EFI_SHELL_GET_MAP_FROM_DEVICE_PATH) (
> > > + IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
> > > + );
> > > +
> > > +/**
> > > + Gets the enable status of the page break output mode.
> > > +
> > > + User can use this function to determine current page break mode.
> > > +
> > > + @retval TRUE The page break output mode is enabled.
> > > + @retval FALSE The page break output mode is disabled.
> > > +**/
> > > +typedef
> > > +BOOLEAN
> > > +(EFIAPI *EFI_SHELL_GET_PAGE_BREAK) (
> > > + VOID
> > > + );
> > > +
> > > +/**
> > > + Judges whether the active shell is the root shell.
> > > +
> > > + This function makes the user to know that whether the active Shell is the
> > > root shell.
> > > +
> > > + @retval TRUE The active Shell is the root Shell.
> > > + @retval FALSE The active Shell is NOT the root Shell.
> > > +**/
> > > +typedef
> > > +BOOLEAN
> > > +(EFIAPI *EFI_SHELL_IS_ROOT_SHELL) (
> > > +VOID
> > > +);
> > > +
> > > +/**
> > > + Opens a file or a directory by file name.
> > > +
> > > + This function opens the specified file in the specified OpenMode and
> > > returns a file
> > > + handle.
> > > + If the file name begins with '>v', then the file handle which is returned
> > > refers to the
> > > + shell environment variable with the specified name. If the shell
> > > environment variable
> > > + exists, is non-volatile and the OpenMode indicates
> > > EFI_FILE_MODE_WRITE, then
> > > + EFI_INVALID_PARAMETER is returned.
> > > +
> > > + If the file name is '>i', then the file handle which is returned refers to the
> > > standard
> > > + input. If the OpenMode indicates EFI_FILE_MODE_WRITE, then
> > > EFI_INVALID_PARAMETER
> > > + is returned.
> > > +
> > > + If the file name is '>o', then the file handle which is returned refers to
> > the
> > > standard
> > > + output. If the OpenMode indicates EFI_FILE_MODE_READ, then
> > > EFI_INVALID_PARAMETER
> > > + is returned.
> > > +
> > > + If the file name is '>e', then the file handle which is returned refers to
> > the
> > > standard
> > > + error. If the OpenMode indicates EFI_FILE_MODE_READ, then
> > > EFI_INVALID_PARAMETER
> > > + is returned.
> > > +
> > > + If the file name is 'NUL', then the file handle that is returned refers to the
> > > standard NUL
> > > + file. If the OpenMode indicates EFI_FILE_MODE_READ, then
> > > EFI_INVALID_PARAMETER is
> > > + returned.
> > > +
> > > + If return EFI_SUCCESS, the FileHandle is the opened file's handle, else,
> > the
> > > + FileHandle is NULL.
> > > +
> > > + @param[in] FileName Points to the NULL-terminated UCS-2
> > encoded
> > > file name.
> > > + @param[out] FileHandle On return, points to the file handle.
> > > + @param[in] OpenMode File open mode. Either
> > > EFI_FILE_MODE_READ or
> > > + EFI_FILE_MODE_WRITE from section 12.4 of the
> UEFI
> > > + Specification.
> > > + @retval EFI_SUCCESS The file was opened. FileHandle has the
> > > opened file's handle.
> > > + @retval EFI_INVALID_PARAMETER One of the parameters has an invalid
> > > value. FileHandle is NULL.
> > > + @retval EFI_UNSUPPORTED Could not open the file path. FileHandle
> > is
> > > NULL.
> > > + @retval EFI_NOT_FOUND The specified file could not be found on
> > the
> > > device or the file
> > > + system could not be found on the device.
> FileHandle is
> > > NULL.
> > > + @retval EFI_NO_MEDIA The device has no medium. FileHandle is
> > > NULL.
> > > + @retval EFI_MEDIA_CHANGED The device has a different medium in it
> > > or the medium is no
> > > + longer supported. FileHandle is NULL.
> > > + @retval EFI_DEVICE_ERROR The device reported an error or can't get
> > > the file path according
> > > + the FileName. FileHandle is NULL.
> > > + @retval EFI_VOLUME_CORRUPTED The file system structures are
> > > corrupted. FileHandle is NULL.
> > > + @retval EFI_WRITE_PROTECTED An attempt was made to create a file,
> > or
> > > open a file for write
> > > + when the media is write-protected. FileHandle is
> NULL.
> > > + @retval EFI_ACCESS_DENIED The service denied access to the file.
> > > FileHandle is NULL.
> > > + @retval EFI_OUT_OF_RESOURCES Not enough resources were available
> > > to open the file. FileHandle
> > > + is NULL.
> > > + @retval EFI_VOLUME_FULL The volume is full. FileHandle is NULL.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_OPEN_FILE_BY_NAME) (
> > > + IN CONST CHAR16 *FileName,
> > > + OUT SHELL_FILE_HANDLE *FileHandle,
> > > + IN UINT64 OpenMode
> > > + );
> > > +
> > > +/**
> > > + Opens the files that match the path specified.
> > > +
> > > + This function opens all of the files specified by Path. Wildcards are
> > > processed
> > > + according to the rules specified in UEFI Shell 2.0 spec section 3.7.1. Each
> > > + matching file has an EFI_SHELL_FILE_INFO structure created in a linked
> > list.
> > > +
> > > + @param[in] Path A pointer to the path string.
> > > + @param[in] OpenMode Specifies the mode used to open each file,
> > > EFI_FILE_MODE_READ or
> > > + EFI_FILE_MODE_WRITE.
> > > + @param[in, out] FileList Points to the start of a list of files opened.
> > > +
> > > + @retval EFI_SUCCESS Create the file list successfully.
> > > + @return Can't create the file list.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_OPEN_FILE_LIST) (
> > > + IN CHAR16 *Path,
> > > + IN UINT64 OpenMode,
> > > + IN OUT EFI_SHELL_FILE_INFO **FileList
> > > + );
> > > +
> > > +/**
> > > + Opens the root directory of a device.
> > > +
> > > + This function opens the root directory of a device and returns a file
> > handle
> > > to it.
> > > +
> > > + @param[in] DevicePath Points to the device path corresponding to
> > the
> > > device where the
> > > + EFI_SIMPLE_FILE_SYSTEM_PROTOCOL is installed.
> > > + @param[out] FileHandle On exit, points to the file handle
> > > corresponding to the root directory on the
> > > + device.
> > > +
> > > + @retval EFI_SUCCESS Root opened successfully.
> > > + @retval EFI_NOT_FOUND EFI_SIMPLE_FILE_SYSTEM could not be
> > > found or the root directory
> > > + could not be opened.
> > > + @retval EFI_VOLUME_CORRUPTED The data structures in the volume
> > > were corrupted.
> > > + @retval EFI_DEVICE_ERROR The device had an error.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_OPEN_ROOT)(
> > > + IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
> > > + OUT SHELL_FILE_HANDLE *FileHandle
> > > + );
> > > +
> > > +/**
> > > + Opens the root directory of a device on a handle.
> > > +
> > > + This function opens the root directory of a device and returns a file
> > handle
> > > to it.
> > > +
> > > + @param[in] DeviceHandle The handle of the device that contains the
> > > volume.
> > > + @param[out] FileHandle On exit, points to the file handle
> > > corresponding to the root directory on the
> > > + device.
> > > +
> > > + @retval EFI_SUCCESS Root opened successfully.
> > > + @retval EFI_NOT_FOUND EFI_SIMPLE_FILE_SYSTEM could not be
> > > found or the root directory
> > > + could not be opened.
> > > + @retval EFI_VOLUME_CORRUPTED The data structures in the volume
> > > were corrupted.
> > > + @retval EFI_DEVICE_ERROR The device had an error.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_OPEN_ROOT_BY_HANDLE)(
> > > + IN EFI_HANDLE DeviceHandle,
> > > + OUT SHELL_FILE_HANDLE *FileHandle
> > > + );
> > > +
> > > +/**
> > > + Reads data from the file.
> > > +
> > > + If FileHandle is not a directory, the function reads the requested number
> > > of bytes
> > > + from the file at the file's current position and returns them in Buffer. If
> > the
> > > read goes
> > > + beyond the end of the file, the read length is truncated to the end of the
> > > file. The file's
> > > + current position is increased by the number of bytes returned.
> > > + If FileHandle is a directory, then an error is returned.
> > > +
> > > + @param[in] FileHandle The opened file handle for read.
> > > + @param[in] ReadSize On input, the size of Buffer, in bytes. On
> > > output, the amount of data read.
> > > + @param[in, out] Buffer The buffer in which data is read.
> > > +
> > > + @retval EFI_SUCCESS Data was read.
> > > + @retval EFI_NO_MEDIA The device has no media.
> > > + @retval EFI_DEVICE_ERROR The device reported an error.
> > > + @retval EFI_VOLUME_CORRUPTED The file system structures are
> > > corrupted.
> > > + @retval EFI_BUFFER_TO_SMALL Buffer is too small. ReadSize contains
> > > required size.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_READ_FILE) (
> > > + IN SHELL_FILE_HANDLE FileHandle,
> > > + IN OUT UINTN *ReadSize,
> > > + IN OUT VOID *Buffer
> > > + );
> > > +
> > > +/**
> > > + Register a GUID and a localized human readable name for it.
> > > +
> > > + If Guid is not assigned a name, then assign GuidName to Guid. This list of
> > > GUID
> > > + names must be used whenever a shell command outputs GUID
> > > information.
> > > +
> > > + This function is only available when the major and minor versions in the
> > > + EfiShellProtocol are greater than or equal to 2 and 1, respectively.
> > > +
> > > + @param[in] Guid A pointer to the GUID being registered.
> > > + @param[in] GuidName A pointer to the localized name for the GUID
> > > being registered.
> > > +
> > > + @retval EFI_SUCCESS The operation was successful.
> > > + @retval EFI_INVALID_PARAMETER Guid was NULL.
> > > + @retval EFI_INVALID_PARAMETER GuidName was NULL.
> > > + @retval EFI_ACCESS_DENIED Guid already is assigned a name.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_REGISTER_GUID_NAME)(
> > > + IN CONST EFI_GUID *Guid,
> > > + IN CONST CHAR16 *GuidName
> > > + );
> > > +
> > > +/**
> > > + Deletes the duplicate file names files in the given file list.
> > > +
> > > + @param[in] FileList A pointer to the first entry in the file list.
> > > +
> > > + @retval EFI_SUCCESS Always success.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_REMOVE_DUP_IN_FILE_LIST) (
> > > + IN EFI_SHELL_FILE_INFO **FileList
> > > + );
> > > +
> > > +/**
> > > + Changes a shell command alias.
> > > +
> > > + This function creates an alias for a shell command.
> > > +
> > > + @param[in] Command Points to the NULL-terminated shell
> > > command or existing alias.
> > > + @param[in] Alias Points to the NULL-terminated alias for the
> shell
> > > command. If this is NULL, and
> > > + Command refers to an alias, that alias will be
> deleted.
> > > + @param[in] Replace If TRUE and the alias already exists, then the
> > > existing alias will be replaced. If
> > > + FALSE and the alias already exists, then the
> existing alias is
> > > unchanged and
> > > + EFI_ACCESS_DENIED is returned.
> > > + @param[in] Volatile if TRUE the Alias being set will be stored in a
> > > volatile fashion. if FALSE the
> > > + Alias being set will be stored in a non-volatile
> fashion.
> > > +
> > > + @retval EFI_SUCCESS Alias created or deleted successfully.
> > > + @retval EFI_ACCESS_DENIED The alias is a built-in alias or already
> > existed
> > > and Replace was set to
> > > + FALSE.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_SET_ALIAS)(
> > > + IN CONST CHAR16 *Command,
> > > + IN CONST CHAR16 *Alias,
> > > + IN BOOLEAN Replace,
> > > + IN BOOLEAN Volatile
> > > + );
> > > +
> > > +/**
> > > + This function returns the command associated with a alias or a list of all
> > > + alias'.
> > > +
> > > + @param[in] Alias Points to the NULL-terminated shell alias.
> > > + If this parameter is NULL, then all
> > > + aliases will be returned in ReturnedData.
> > > + @param[out] Volatile Upon return of a single command if TRUE
> > > indicates
> > > + this is stored in a volatile fashion. FALSE
> otherwise.
> > > + @return If Alias is not NULL, it will return a
> pointer to
> > > + the NULL-terminated command for that alias.
> > > + If Alias is NULL, ReturnedData points to a ';'
> > > + delimited list of alias (e.g.
> > > + ReturnedData = "dir;del;copy;mfp") that is NULL-
> > > terminated.
> > > + @retval NULL An error ocurred.
> > > + @retval NULL Alias was not a valid Alias.
> > > +**/
> > > +typedef
> > > +CONST CHAR16 *
> > > +(EFIAPI *EFI_SHELL_GET_ALIAS)(
> > > + IN CONST CHAR16 *Alias,
> > > + OUT BOOLEAN *Volatile OPTIONAL
> > > + );
> > > +
> > > +/**
> > > + Changes the current directory on the specified device.
> > > +
> > > + If the FileSystem is NULL, and the directory Dir does not contain a file
> > > system's
> > > + mapped name, this function changes the current working directory. If
> > > FileSystem is
> > > + NULL and the directory Dir contains a mapped name, then the current
> > file
> > > system and
> > > + the current directory on that file system are changed.
> > > +
> > > + If FileSystem is not NULL, and Dir is NULL, then this changes the current
> > > working file
> > > + system.
> > > +
> > > + If FileSystem is not NULL and Dir is not NULL, then this function changes
> > > the current
> > > + directory on the specified file system.
> > > +
> > > + If the current working directory or the current working file system is
> > > changed then the
> > > + %cwd% environment variable will be updated.
> > > +
> > > + @param[in] FileSystem A pointer to the file system's mapped name.
> > If
> > > NULL, then the current working
> > > + directory is changed.
> > > + @param[in] Dir Points to the NULL-terminated directory on the
> > > device specified by FileSystem.
> > > +
> > > + @retval NULL Current directory does not exist.
> > > + @return The current directory.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_SET_CUR_DIR) (
> > > + IN CONST CHAR16 *FileSystem OPTIONAL,
> > > + IN CONST CHAR16 *Dir
> > > + );
> > > +
> > > +/**
> > > + Sets the environment variable.
> > > +
> > > + This function changes the current value of the specified environment
> > > variable. If the
> > > + environment variable exists and the Value is an empty string, then the
> > > environment
> > > + variable is deleted. If the environment variable exists and the Value is
> > not
> > > an empty
> > > + string, then the value of the environment variable is changed. If the
> > > environment
> > > + variable does not exist and the Value is an empty string, there is no
> > action.
> > > If the
> > > + environment variable does not exist and the Value is a non-empty string,
> > > then the
> > > + environment variable is created and assigned the specified value.
> > > +
> > > + For a description of volatile and non-volatile environment variables, see
> > > UEFI Shell
> > > + 2.0 specification section 3.6.1.
> > > +
> > > + @param[in] Name Points to the NULL-terminated environment
> > > variable name.
> > > + @param[in] Value Points to the NULL-terminated environment
> > > variable value. If the value is an
> > > + empty string then the environment variable is
> deleted.
> > > + @param[in] Volatile Indicates whether the variable is non-volatile
> > > (FALSE) or volatile (TRUE).
> > > +
> > > + @retval EFI_SUCCESS The environment variable was successfully
> > > updated.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_SET_ENV) (
> > > + IN CONST CHAR16 *Name,
> > > + IN CONST CHAR16 *Value,
> > > + IN BOOLEAN Volatile
> > > + );
> > > +
> > > +/**
> > > + Sets the file information to an opened file handle.
> > > +
> > > + This function changes file information. All file information in the
> > > EFI_FILE_INFO
> > > + struct will be updated to the passed in data.
> > > +
> > > + @param[in] FileHandle A file handle.
> > > + @param[in] FileInfo Points to new file information.
> > > +
> > > + @retval EFI_SUCCESS The information was set.
> > > + @retval EFI_NO_MEDIA The device has no medium.
> > > + @retval EFI_DEVICE_ERROR The device reported an error.
> > > + @retval EFI_VOLUME_CORRUPTED The file system structures are
> > > corrupted.
> > > + @retval EFI_WRITE_PROTECTED The file or medium is write-protected.
> > > + @retval EFI_ACCESS_DENIED The file was opened read-only.
> > > + @retval EFI_VOLUME_FULL The volume is full.
> > > + @retval EFI_BAD_BUFFER_SIZE BufferSize is smaller than the size of
> > > EFI_FILE_INFO.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_SET_FILE_INFO)(
> > > + IN SHELL_FILE_HANDLE FileHandle,
> > > + IN CONST EFI_FILE_INFO *FileInfo
> > > + );
> > > +
> > > +/**
> > > + Sets a file's current position.
> > > +
> > > + This function sets the current file position for the handle to the position
> > > supplied. With
> > > + the exception of seeking to position 0xFFFFFFFFFFFFFFFF, only absolute
> > > positioning is
> > > + supported, and seeking past the end of the file is allowed (a subsequent
> > > write would
> > > + grow the file). Seeking to position 0xFFFFFFFFFFFFFFFF causes the
> > current
> > > position
> > > + to be set to the end of the file.
> > > +
> > > + @param[in] FileHandle The file handle on which requested position
> > > will be set.
> > > + @param[in] Position Byte position from the start of the file.
> > > +
> > > + @retval EFI_SUCCESS Data was written.
> > > + @retval EFI_UNSUPPORTED The seek request for nonzero is not valid
> > > on open directories.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_SET_FILE_POSITION)(
> > > + IN SHELL_FILE_HANDLE FileHandle,
> > > + IN UINT64 Position
> > > + );
> > > +
> > > +/**
> > > + This function creates a mapping for a device path.
> > > +
> > > + @param[in] DevicePath Points to the device path. If this is NULL and
> > > Mapping points to a valid mapping,
> > > + then the mapping will be deleted.
> > > + @param[in] Mapping Points to the NULL-terminated mapping for
> > the
> > > device path.
> > > +
> > > + @retval EFI_SUCCESS Mapping created or deleted successfully.
> > > + @retval EFI_NO_MAPPING There is no handle that corresponds
> > exactly
> > > to DevicePath. See the
> > > + boot service function LocateDevicePath().
> > > + @retval EFI_ACCESS_DENIED The mapping is a built-in alias.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_SET_MAP)(
> > > + IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
> > > + IN CONST CHAR16 *Mapping
> > > + );
> > > +
> > > +/**
> > > + Writes data to the file.
> > > +
> > > + This function writes the specified number of bytes to the file at the
> > current
> > > file position.
> > > + The current file position is advanced the actual number of bytes written,
> > > which is
> > > + returned in BufferSize. Partial writes only occur when there has been a
> > > data error
> > > + during the write attempt (such as "volume space full"). The file
> > > automatically grows to
> > > + hold the data, if required.
> > > +
> > > + Direct writes to opened directories are not supported.
> > > +
> > > + @param[in] FileHandle The opened file handle for writing.
> > > + @param[in, out] BufferSize On input, size of Buffer.
> > > + @param[in] Buffer The buffer in which data to write.
> > > +
> > > + @retval EFI_SUCCESS Data was written.
> > > + @retval EFI_UNSUPPORTED Writes to open directory are not
> > > supported.
> > > + @retval EFI_NO_MEDIA The device has no media.
> > > + @retval EFI_DEVICE_ERROR The device reported an error.
> > > + @retval EFI_VOLUME_CORRUPTED The file system structures are
> > > corrupted.
> > > + @retval EFI_WRITE_PROTECTED The device is write-protected.
> > > + @retval EFI_ACCESS_DENIED The file was open for read only.
> > > + @retval EFI_VOLUME_FULL The volume is full.
> > > +**/
> > > +typedef
> > > +EFI_STATUS
> > > +(EFIAPI *EFI_SHELL_WRITE_FILE)(
> > > + IN SHELL_FILE_HANDLE FileHandle,
> > > + IN OUT UINTN *BufferSize,
> > > + IN VOID *Buffer
> > > + );
> > > +
> > > +//
> > > +// EFI_SHELL_PROTOCOL has been updated since UEFI Shell Spec 2.0
> > > +// Usage of this protocol will require version checking before attempting
> > > +// to use any new members. There is no need to check the version for
> > > +// members that existed in UEFI Shell Spec 2.0.
> > > +//
> > > +// Update below for any future UEFI Shell spec changes to this protocol.
> > > +//
> > > +// Check EFI_SHELL_PROTOCOL MajorVersion and MinorVersion:
> > > +// if ((2 == gEfiShellProtocol->MajorVersion) &&
> > > +// (0 == gEfiShellProtocol->MinorVersion)) {
> > > +// //
> > > +// // Cannot call:
> > > +// // RegisterGuidName - UEFI Shell 2.1
> > > +// // GetGuidName - UEFI Shell 2.1
> > > +// // GetGuidFromName - UEFI Shell 2.1
> > > +// // GetEnvEx - UEFI Shell 2.1
> > > +// //
> > > +// } else {
> > > +// //
> > > +// // Can use all members
> > > +// //
> > > +// }
> > > +//
> > > +typedef struct _EFI_SHELL_PROTOCOL {
> > > + EFI_SHELL_EXECUTE Execute;
> > > + EFI_SHELL_GET_ENV GetEnv;
> > > + EFI_SHELL_SET_ENV SetEnv;
> > > + EFI_SHELL_GET_ALIAS GetAlias;
> > > + EFI_SHELL_SET_ALIAS SetAlias;
> > > + EFI_SHELL_GET_HELP_TEXT GetHelpText;
> > > + EFI_SHELL_GET_DEVICE_PATH_FROM_MAP
> > GetDevicePathFromMap;
> > > + EFI_SHELL_GET_MAP_FROM_DEVICE_PATH
> > GetMapFromDevicePath;
> > > + EFI_SHELL_GET_DEVICE_PATH_FROM_FILE_PATH
> > > GetDevicePathFromFilePath;
> > > + EFI_SHELL_GET_FILE_PATH_FROM_DEVICE_PATH
> > > GetFilePathFromDevicePath;
> > > + EFI_SHELL_SET_MAP SetMap;
> > > + EFI_SHELL_GET_CUR_DIR GetCurDir;
> > > + EFI_SHELL_SET_CUR_DIR SetCurDir;
> > > + EFI_SHELL_OPEN_FILE_LIST OpenFileList;
> > > + EFI_SHELL_FREE_FILE_LIST FreeFileList;
> > > + EFI_SHELL_REMOVE_DUP_IN_FILE_LIST RemoveDupInFileList;
> > > + EFI_SHELL_BATCH_IS_ACTIVE BatchIsActive;
> > > + EFI_SHELL_IS_ROOT_SHELL IsRootShell;
> > > + EFI_SHELL_ENABLE_PAGE_BREAK EnablePageBreak;
> > > + EFI_SHELL_DISABLE_PAGE_BREAK DisablePageBreak;
> > > + EFI_SHELL_GET_PAGE_BREAK GetPageBreak;
> > > + EFI_SHELL_GET_DEVICE_NAME GetDeviceName;
> > > + EFI_SHELL_GET_FILE_INFO GetFileInfo;
> > > + EFI_SHELL_SET_FILE_INFO SetFileInfo;
> > > + EFI_SHELL_OPEN_FILE_BY_NAME OpenFileByName;
> > > + EFI_SHELL_CLOSE_FILE CloseFile;
> > > + EFI_SHELL_CREATE_FILE CreateFile;
> > > + EFI_SHELL_READ_FILE ReadFile;
> > > + EFI_SHELL_WRITE_FILE WriteFile;
> > > + EFI_SHELL_DELETE_FILE DeleteFile;
> > > + EFI_SHELL_DELETE_FILE_BY_NAME DeleteFileByName;
> > > + EFI_SHELL_GET_FILE_POSITION GetFilePosition;
> > > + EFI_SHELL_SET_FILE_POSITION SetFilePosition;
> > > + EFI_SHELL_FLUSH_FILE FlushFile;
> > > + EFI_SHELL_FIND_FILES FindFiles;
> > > + EFI_SHELL_FIND_FILES_IN_DIR FindFilesInDir;
> > > + EFI_SHELL_GET_FILE_SIZE GetFileSize;
> > > + EFI_SHELL_OPEN_ROOT OpenRoot;
> > > + EFI_SHELL_OPEN_ROOT_BY_HANDLE OpenRootByHandle;
> > > + EFI_EVENT ExecutionBreak;
> > > + UINT32 MajorVersion;
> > > + UINT32 MinorVersion;
> > > + // Added for Shell 2.1
> > > + EFI_SHELL_REGISTER_GUID_NAME RegisterGuidName;
> > > + EFI_SHELL_GET_GUID_NAME GetGuidName;
> > > + EFI_SHELL_GET_GUID_FROM_NAME GetGuidFromName;
> > > + EFI_SHELL_GET_ENV_EX GetEnvEx;
> > > +} EFI_SHELL_PROTOCOL;
> > > +
> > > +extern EFI_GUID gEfiShellProtocolGuid;
> > > +
> > > +enum ShellVersion {
> > > + SHELL_MAJOR_VERSION = 2,
> > > + SHELL_MINOR_VERSION = 1
> > > +};
> > > +
> > > +#endif
> > > diff --git a/MdePkg/Include/Protocol/ShellDynamicCommand.h
> > > b/MdePkg/Include/Protocol/ShellDynamicCommand.h
> > > new file mode 100644
> > > index 0000000..793b4fd
> > > --- /dev/null
> > > +++ b/MdePkg/Include/Protocol/ShellDynamicCommand.h
> > > @@ -0,0 +1,85 @@
> > > +/** @file
> > > + EFI Shell Dynamic Command registration protocol
> > > +
> > > + (C) Copyright 2012-2014 Hewlett-Packard Development Company,
> > > L.P.<BR>
> > > + Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
> > > + This program and the accompanying materials
> > > + are licensed and made available under the terms and conditions of the
> > BSD
> > > License
> > > + which accompanies this distribution. The full text of the license may be
> > > found at
> > > + http://opensource.org/licenses/bsd-license.php
> > > +
> > > + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> > > BASIS,
> > > + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> > > EXPRESS OR IMPLIED.
> > > +
> > > +**/
> > > +
> > > +#ifndef __EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL__
> > > +#define __EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL__
> > > +
> > > +#include <Protocol/Shell.h>
> > > +#include <Protocol/ShellParameters.h>
> > > +
> > > +// {3C7200E9-005F-4EA4-87DE-A3DFAC8A27C3}
> > > +#define EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL_GUID \
> > > + { \
> > > + 0x3c7200e9, 0x005f, 0x4ea4, { 0x87, 0xde, 0xa3, 0xdf, 0xac, 0x8a, 0x27,
> > 0xc3
> > > } \
> > > + }
> > > +
> > > +
> > > +//
> > > +// Define for forward reference.
> > > +//
> > > +typedef struct _EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL
> > > EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL;
> > > +
> > > +
> > > +/**
> > > + This is the shell command handler function pointer callback type. This
> > > + function handles the command when it is invoked in the shell.
> > > +
> > > + @param[in] This The instance of the
> > > EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL.
> > > + @param[in] SystemTable The pointer to the system table.
> > > + @param[in] ShellParameters The parameters associated with the
> > > command.
> > > + @param[in] Shell The instance of the shell protocol used in
> the
> > > context
> > > + of processing this command.
> > > +
> > > + @return EFI_SUCCESS the operation was sucessful
> > > + @return other the operation failed.
> > > +**/
> > > +typedef
> > > +SHELL_STATUS
> > > +(EFIAPI * SHELL_COMMAND_HANDLER)(
> > > + IN EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *This,
> > > + IN EFI_SYSTEM_TABLE *SystemTable,
> > > + IN EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters,
> > > + IN EFI_SHELL_PROTOCOL *Shell
> > > + );
> > > +
> > > +/**
> > > + This is the command help handler function pointer callback type. This
> > > + function is responsible for displaying help information for the associated
> > > + command.
> > > +
> > > + @param[in] This The instance of the
> > > EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL.
> > > + @param[in] Language The pointer to the language string to use.
> > > +
> > > + @return string Pool allocated help string, must be freed by
> > caller
> > > +**/
> > > +typedef
> > > +CHAR16*
> > > +(EFIAPI * SHELL_COMMAND_GETHELP)(
> > > + IN EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *This,
> > > + IN CONST CHAR8 *Language
> > > + );
> > > +
> > > +/// EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL protocol structure.
> > > +struct _EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL {
> > > +
> > > + CONST CHAR16 *CommandName;
> > > + SHELL_COMMAND_HANDLER Handler;
> > > + SHELL_COMMAND_GETHELP GetHelp;
> > > +
> > > +};
> > > +
> > > +extern EFI_GUID gEfiShellDynamicCommandProtocolGuid;
> > > +
> > > +#endif
> > > diff --git a/MdePkg/Include/Protocol/ShellParameters.h
> > > b/MdePkg/Include/Protocol/ShellParameters.h
> > > new file mode 100644
> > > index 0000000..68ca9ed
> > > --- /dev/null
> > > +++ b/MdePkg/Include/Protocol/ShellParameters.h
> > > @@ -0,0 +1,60 @@
> > > +/** @file
> > > + EFI Shell protocol as defined in the UEFI Shell 2.0 specification.
> > > +
> > > + Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
> > > + This program and the accompanying materials
> > > + are licensed and made available under the terms and conditions of the
> > BSD
> > > License
> > > + which accompanies this distribution. The full text of the license may be
> > > found at
> > > + http://opensource.org/licenses/bsd-license.php
> > > +
> > > + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> > > BASIS,
> > > + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> > > EXPRESS OR IMPLIED.
> > > +
> > > +**/
> > > +
> > > +#ifndef __EFI_SHELL_PARAMETERS_PROTOCOL__
> > > +#define __EFI_SHELL_PARAMETERS_PROTOCOL__
> > > +
> > > +#include <Protocol/Shell.h>
> > > +
> > > +#define EFI_SHELL_PARAMETERS_PROTOCOL_GUID \
> > > + { \
> > > + 0x752f3136, 0x4e16, 0x4fdc, { 0xa2, 0x2a, 0xe5, 0xf4, 0x68, 0x12, 0xf4,
> > 0xca
> > > } \
> > > + }
> > > +
> > > +typedef struct _EFI_SHELL_PARAMETERS_PROTOCOL {
> > > + ///
> > > + /// Points to an Argc-element array of points to NULL-terminated strings
> > > containing
> > > + /// the command-line parameters. The first entry in the array is always
> > the
> > > full file
> > > + /// path of the executable. Any quotation marks that were used to
> > > preserve
> > > + /// whitespace have been removed.
> > > + ///
> > > + CHAR16 **Argv;
> > > +
> > > + ///
> > > + /// The number of elements in the Argv array.
> > > + ///
> > > + UINTN Argc;
> > > +
> > > + ///
> > > + /// The file handle for the standard input for this executable. This may be
> > > different
> > > + /// from the ConInHandle in EFI_SYSTEM_TABLE.
> > > + ///
> > > + SHELL_FILE_HANDLE StdIn;
> > > +
> > > + ///
> > > + /// The file handle for the standard output for this executable. This may
> > be
> > > different
> > > + /// from the ConOutHandle in EFI_SYSTEM_TABLE.
> > > + ///
> > > + SHELL_FILE_HANDLE StdOut;
> > > +
> > > + ///
> > > + /// The file handle for the standard error output for this executable. This
> > > may be
> > > + /// different from the StdErrHandle in EFI_SYSTEM_TABLE.
> > > + ///
> > > + SHELL_FILE_HANDLE StdErr;
> > > +} EFI_SHELL_PARAMETERS_PROTOCOL;
> > > +
> > > +extern EFI_GUID gEfiShellParametersProtocolGuid;
> > > +
> > > +#endif
> > > diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec
> > > index f1e5151..3e08bed 100644
> > > --- a/MdePkg/MdePkg.dec
> > > +++ b/MdePkg/MdePkg.dec
> > > @@ -1645,6 +1645,21 @@ [Protocols]
> > > ## Include/Protocol/EraseBlock.h
> > > gEfiEraseBlockProtocolGuid = { 0x95a9a93e, 0xa86e, 0x4926, {0xaa,
> > > 0xef, 0x99, 0x18, 0xe7, 0x72, 0xd9, 0x87 }}
> > >
> > > + #
> > > + # Protocols defined in Shell2.0
> > > + #
> > > + ## Include/Protocol/Shell.h
> > > + gEfiShellProtocolGuid = { 0x6302d008, 0x7f9b, 0x4f30, {0x87,
> 0xac,
> > > 0x60, 0xc9, 0xfe, 0xf5, 0xda, 0x4e }}
> > > +
> > > + ## Include/Protocol/ShellParameters.h
> > > + gEfiShellParametersProtocolGuid = { 0x752f3136, 0x4e16, 0x4fdc, {0xa2,
> > > 0x2a, 0xe5, 0xf4, 0x68, 0x12, 0xf4, 0xca }}
> > > +
> > > + #
> > > + # Protocols defined in Shell2.1
> > > + #
> > > + ## Include/Protocol/ShellDynamicCommand.h
> > > + gEfiShellDynamicCommandProtocolGuid = { 0x3c7200e9, 0x005f, 0x4ea4,
> > > {0x87, 0xde, 0xa3, 0xdf, 0xac, 0x8a, 0x27, 0xc3 }}
> > > +
> > > #
> > > # [Error.gEfiMdePkgTokenSpaceGuid]
> > > # 0x80000001 | Invalid value provided.
> > > --
> > > 2.9.0.windows.1
> > >
> > > _______________________________________________
> > > edk2-devel mailing list
> > > edk2-devel@lists.01.org
> > > https://lists.01.org/mailman/listinfo/edk2-devel
next prev parent reply other threads:[~2016-10-18 5:59 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-14 9:44 [PATCH 0/5] Move Shell protocol definitions to MdePkg Ruiyu Ni
2016-10-14 9:44 ` [PATCH 1/5] ShellPkg: Move SHELL_FREE_NON_NULL from ShellBase.h to ShellLib.h Ruiyu Ni
2016-10-14 16:22 ` Tim Lewis
2016-10-17 16:25 ` Carsey, Jaben
2016-10-14 9:44 ` [PATCH 2/5] MdePkg: Include Shell/ShellDynamicCommand/ShellParameters definitions Ruiyu Ni
2016-10-17 18:02 ` Carsey, Jaben
2016-10-18 5:56 ` Ni, Ruiyu
2016-10-18 5:59 ` Kinney, Michael D [this message]
2016-10-18 15:19 ` Brian J. Johnson
2016-10-14 9:44 ` [PATCH 3/5] ArmPkg/LinuxLoader: Reference Shell protocols in MdePkg Ruiyu Ni
2016-10-14 19:55 ` Leif Lindholm
2016-10-14 9:44 ` [PATCH 4/5] EmbeddedPkg/FdtPlatformDxe: " Ruiyu Ni
2016-10-14 19:55 ` Leif Lindholm
2016-10-14 9:44 ` [PATCH 5/5] ShellPkg: Remove Shell/ShellDynamicCommand/ShellParameter definitions Ruiyu Ni
2016-10-14 13:08 ` [PATCH 0/5] Move Shell protocol definitions to MdePkg Yao, Jiewen
2016-10-14 13:13 ` Yao, Jiewen
2016-10-14 16:21 ` Tim Lewis
2016-10-15 13:29 ` Yao, Jiewen
2016-10-17 16:30 ` Carsey, Jaben
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=E92EE9817A31E24EB0585FDF735412F564825F40@ORSMSX113.amr.corp.intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox