Revision: 18918
          http://sourceforge.net/p/edk2/code/18918
Author:   ydong10
Date:     2015-11-23 05:42:21 +0000 (Mon, 23 Nov 2015)
Log Message:
-----------
MdeModulePkg FileExplorerDxe: Create file explorer Protocol.

This driver produces file explorer protocol layered on top of the 
FileExplorerLib.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.d...@intel.com>
Reviewed-by: Liming Gao <liming....@intel.com>
Reviewed-by: Samer El-Haj-Mahmoud <el...@hpe.com>

Modified Paths:
--------------
    trunk/edk2/MdeModulePkg/MdeModulePkg.dec
    trunk/edk2/MdeModulePkg/MdeModulePkg.dsc

Added Paths:
-----------
    trunk/edk2/MdeModulePkg/Include/Protocol/FileExplorer.h
    trunk/edk2/MdeModulePkg/Universal/FileExplorerDxe/
    trunk/edk2/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.c
    trunk/edk2/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.inf
    trunk/edk2/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.uni
    trunk/edk2/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxeExtra.uni

Added: trunk/edk2/MdeModulePkg/Include/Protocol/FileExplorer.h
===================================================================
--- trunk/edk2/MdeModulePkg/Include/Protocol/FileExplorer.h                     
        (rev 0)
+++ trunk/edk2/MdeModulePkg/Include/Protocol/FileExplorer.h     2015-11-23 
05:42:21 UTC (rev 18918)
@@ -0,0 +1,75 @@
+/** @file
+
+  This file explorer protocol defines defines a set of interfaces for 
+  how to do file explorer.
+
+Copyright (c) 2006 - 2015, 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 that 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 __FILE_EXPLORER_H__
+#define __FILE_EXPLORER_H__
+
+#define EFI_FILE_EXPLORER_PROTOCOL_GUID  \
+  { 0x2C03C536, 0x4594, 0x4515, { 0x9E, 0x7A, 0xD3, 0xD2, 0x04, 0xFE, 0x13, 
0x63 } }
+
+//
+// Forward reference for pure ANSI compatability
+//
+typedef struct _EFI_FILE_EXPLORER_PROTOCOL  EFI_FILE_EXPLORER_PROTOCOL;
+
+/**
+  Prototype for the next process after user chosed one file.
+
+  @param[in] FilePath     The device path of the find file.
+
+  @retval    TRUE         Need exit file explorer after do the extra task.
+  @retval    FALSE        Not need to exit file explorer after do the extra 
task.
+
+**/
+typedef
+BOOLEAN
+(EFIAPI *CHOOSE_HANDLER)(
+  IN EFI_DEVICE_PATH_PROTOCOL  *FilePath
+  );
+
+/**
+  Choose a file in the specified directory. 
+
+  If user input NULL for the RootDirectory, will choose file in the system.
+
+  If user input *File != NULL, function will return the allocate device path
+  info for the choosed file, caller has to free the memory after use it.
+
+  @param  RootDirectory    Pointer to the root directory.
+  @param  FileType         The file type need to choose.
+  @param  ChooseHandler    Function pointer to the extra task need to do
+                           after choose one file.
+  @param  File             Return the device path for the last time chosed 
file.
+
+  @retval EFI_SUCESS       Choose the file success.
+  @retval Other errors     Choose the file failed.
+**/
+typedef
+EFI_STATUS
+(EFIAPI   *CHOOSE_FILE) (
+  IN  EFI_DEVICE_PATH_PROTOCOL  *RootDirectory,
+  IN  CHAR16                    *FileType,  OPTIONAL
+  IN  CHOOSE_HANDLER            ChooseHandler,  OPTIONAL
+  OUT EFI_DEVICE_PATH_PROTOCOL  **File  OPTIONAL
+  );
+
+struct _EFI_FILE_EXPLORER_PROTOCOL {
+  CHOOSE_FILE                          ChooseFile;
+};
+
+extern EFI_GUID gEfiFileExplorerProtocolGuid;
+
+#endif

Modified: trunk/edk2/MdeModulePkg/MdeModulePkg.dec
===================================================================
--- trunk/edk2/MdeModulePkg/MdeModulePkg.dec    2015-11-23 05:41:28 UTC (rev 
18917)
+++ trunk/edk2/MdeModulePkg/MdeModulePkg.dec    2015-11-23 05:42:21 UTC (rev 
18918)
@@ -464,6 +464,9 @@
   ## Include/Protocol/PlatformLogo.h
   gEdkiiPlatformLogoProtocolGuid = { 0x9b517978, 0xeba1, 0x44e7, { 0xba, 0x65, 
0x7c, 0x2c, 0xd0, 0x8b, 0xf8, 0xe9 } }
 
+  ## Include/Protocol/FileExplorer.h
+  gEfiFileExplorerProtocolGuid = { 0x2C03C536, 0x4594, 0x4515, { 0x9E, 0x7A, 
0xD3, 0xD2, 0x04, 0xFE, 0x13, 0x63 } }
+
 #
 # [Error.gEfiMdeModulePkgTokenSpaceGuid]
 #   0x80000001 | Invalid value provided.

Modified: trunk/edk2/MdeModulePkg/MdeModulePkg.dsc
===================================================================
--- trunk/edk2/MdeModulePkg/MdeModulePkg.dsc    2015-11-23 05:41:28 UTC (rev 
18917)
+++ trunk/edk2/MdeModulePkg/MdeModulePkg.dsc    2015-11-23 05:42:21 UTC (rev 
18918)
@@ -375,6 +375,10 @@
   MdeModulePkg/Universal/EsrtDxe/EsrtDxe.inf
   
   
MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableAttributesDxe.inf
+  MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.inf  {
+    <LibraryClasses>
+      FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
+  }
 
 [Components.IA32, Components.X64, Components.IPF]  
   MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf

Added: trunk/edk2/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.c
===================================================================
--- trunk/edk2/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.c         
                (rev 0)
+++ trunk/edk2/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.c 
2015-11-23 05:42:21 UTC (rev 18918)
@@ -0,0 +1,58 @@
+/** @file
+  This driver produces file explorer protocol layered on top of the 
FileExplorerLib from the MdeModulePkg.
+
+Copyright (c) 2015, 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.
+
+**/
+
+#include <PiDxe.h>
+
+#include <Protocol/FileExplorer.h>
+#include <Library/FileExplorerLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/DebugLib.h>
+#include <Library/UefiDriverEntryPoint.h>
+
+EFI_HANDLE  mFileExplorerThunkHandle = NULL;
+
+CONST EFI_FILE_EXPLORER_PROTOCOL mFileExplorerProtocol = {
+  ChooseFile
+};
+
+/**
+  The user Entry Point for File explorer module.
+
+  This is the entry point for Print DXE Driver. It installs the file explorer 
Protocol.
+
+  @param[in] ImageHandle    The firmware allocated handle for the EFI image.
+  @param[in] SystemTable    A pointer to the EFI System Table.
+
+  @retval EFI_SUCCESS       The entry point is executed successfully.
+  @retval Others            Some error occurs when executing this entry point.
+
+**/
+EFI_STATUS
+EFIAPI
+FileExplorerEntryPoint (
+  IN EFI_HANDLE           ImageHandle,
+  IN EFI_SYSTEM_TABLE     *SystemTable
+  )
+{
+  EFI_STATUS  Status;
+
+  Status = gBS->InstallMultipleProtocolInterfaces (
+                  &mFileExplorerThunkHandle,
+                  &gEfiFileExplorerProtocolGuid, &mFileExplorerProtocol,
+                  NULL
+                  );
+  ASSERT_EFI_ERROR (Status);
+
+  return Status;
+}

Added: trunk/edk2/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.inf
===================================================================
--- trunk/edk2/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.inf       
                        (rev 0)
+++ trunk/edk2/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.inf       
2015-11-23 05:42:21 UTC (rev 18918)
@@ -0,0 +1,53 @@
+## @file
+#  File explorer DXE driver that produces File explorer Protocol.
+#
+#  This driver produces File explorerprotocol layered on top of the 
FileExplorerLib 
+#  from the MdeModulePkg.
+#
+#  Copyright (c) 2009 - 2015, 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.
+#
+##
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = FileExplorerDxe
+  MODULE_UNI_FILE                = FileExplorerDxe.uni
+  FILE_GUID                      = 405DA936-3737-4C0C-8E3F-E6172A568592
+  MODULE_TYPE                    = DXE_DRIVER
+  VERSION_STRING                 = 1.0
+  ENTRY_POINT                    = FileExplorerEntryPoint
+
+#
+# The following information is for reference only and not required by the 
build tools.
+#
+#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
+#
+
+[Sources]
+  FileExplorerDxe.c
+
+[Packages]
+  MdeModulePkg/MdeModulePkg.dec
+  MdePkg/MdePkg.dec
+
+[LibraryClasses]
+  FileExplorerLib
+  UefiBootServicesTableLib
+  UefiDriverEntryPoint
+  DebugLib
+
+[Protocols]
+  gEfiFileExplorerProtocolGuid    ## PRODUCES
+
+[Depex]
+  TRUE
+
+[UserExtensions.TianoCore."ExtraFiles"]
+  FileExplorerDxeExtra.uni

Added: trunk/edk2/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.uni
===================================================================
--- trunk/edk2/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.uni       
                        (rev 0)
+++ trunk/edk2/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.uni       
2015-11-23 05:42:21 UTC (rev 18918)
@@ -0,0 +1,47 @@
+\xFF\xFE/+++++++++++++++++++++++\ No newline at end of file

Added: 
trunk/edk2/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxeExtra.uni
===================================================================
--- trunk/edk2/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxeExtra.uni  
                        (rev 0)
+++ trunk/edk2/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxeExtra.uni  
2015-11-23 05:42:21 UTC (rev 18918)
@@ -0,0 +1,41 @@
+\xFF\xFE/++++++++++++++++++++\ No newline at end of file


------------------------------------------------------------------------------
Go from Idea to Many App Stores Faster with Intel(R) XDK
Give your users amazing mobile app experiences with Intel(R) XDK.
Use one codebase in this all-in-one HTML5 development environment.
Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs.
http://pubads.g.doubleclick.net/gampad/clk?id=254741551&iu=/4140
_______________________________________________
edk2-commits mailing list
edk2-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to