]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Add Load File 2 Protocol and MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH definition...
authorqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 15 Jan 2009 09:57:19 +0000 (09:57 +0000)
committerqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 15 Jan 2009 09:57:19 +0000 (09:57 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7286 6f19259b-4bc3-4df7-8a09-765794883524

EdkCompatibilityPkg/Foundation/Efi/Include/EfiDevicePath.h
EdkCompatibilityPkg/Foundation/Efi/Protocol/EfiProtocolLib.inf
EdkCompatibilityPkg/Foundation/Efi/Protocol/LoadFile2/LoadFile2.c [new file with mode: 0644]
EdkCompatibilityPkg/Foundation/Efi/Protocol/LoadFile2/LoadFile2.h [new file with mode: 0644]

index aee6e3b0e81005c4ce8dce234d776432e21bd747..66de7aed4929af9b80679d52e951aa1febf393ac 100644 (file)
@@ -241,6 +241,8 @@ typedef struct {
   UINT16                          Lun;\r
 } SATA_DEVICE_PATH;\r
 \r
+#define SATA_HBA_DIRECT_CONNECT_FLAG 0x8000\r
+\r
 #define MSG_I2O_DP                0x06\r
 typedef struct {\r
   EFI_DEVICE_PATH_PROTOCOL        Header;\r
@@ -427,6 +429,12 @@ typedef struct {
   EFI_GUID                  NameGuid;\r
 } MEDIA_FW_VOL_FILEPATH_DEVICE_PATH;\r
 \r
+#define MEDIA_RELATIVE_OFFSET_RANGE_DP 0x08\r
+typedef struct {\r
+  EFI_DEVICE_PATH_PROTOCOL  Header;\r
+  UINT64                    StartingOffset;\r
+  UINT64                    EndingOffset;\r
+} MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH;\r
 #endif\r
 \r
 //\r
@@ -511,6 +519,8 @@ typedef union {
   #if (EFI_SPECIFICATION_VERSION >= 0x0002000A)\r
   MEDIA_FW_VOL_DEVICE_PATH             PiwgFirmwareVolume;\r
   MEDIA_FW_VOL_FILEPATH_DEVICE_PATH    PiwgFirmwareFile;\r
+  MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH\r
+                                       Offset;\r
   #endif\r
 \r
   BBS_BBS_DEVICE_PATH                  Bbs;\r
index 5ba111e50fd4a5af942e8942958ecfdfb96c364b..1aa68ee966632483ea52e66345635ab2b69e111e 100644 (file)
@@ -129,6 +129,8 @@ COMPONENT_TYPE=   LIBRARY
   LoadedImageDevicePath/LoadedImageDevicePath.c\r
   LoadFile/LoadFile.h\r
   LoadFile/LoadFile.c\r
+  LoadFile2/LoadFile2.h\r
+  LoadFile2/LoadFile2.c\r
   ManagedNetwork/ManagedNetwork.h\r
   ManagedNetwork/ManagedNetwork.c\r
   Mtftp4/Mtftp4.h\r
diff --git a/EdkCompatibilityPkg/Foundation/Efi/Protocol/LoadFile2/LoadFile2.c b/EdkCompatibilityPkg/Foundation/Efi/Protocol/LoadFile2/LoadFile2.c
new file mode 100644 (file)
index 0000000..00f82ca
--- /dev/null
@@ -0,0 +1,30 @@
+/*++\r
+\r
+Copyright (c) 2008, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  LoadFile2.c\r
+\r
+Abstract:\r
+\r
+  Load File2 protocol as defined in the UEFI specification.\r
+\r
+  Load File2 protocol exists to support to obtain files from arbitrary devices\r
+  but are not used as boot options.\r
+\r
+--*/\r
+\r
+#include "EfiSpec.h"\r
+#include EFI_PROTOCOL_DEFINITION (LoadFile2)\r
+\r
+EFI_GUID  gEfiLoadFile2ProtocolGuid = EFI_LOAD_FILE2_PROTOCOL_GUID;\r
+\r
+EFI_GUID_STRING(&gEfiLoad2FileProtocolGuid, "LoadFile2 Protocol", "UEFI 2.1 Load File2 Protocol");\r
diff --git a/EdkCompatibilityPkg/Foundation/Efi/Protocol/LoadFile2/LoadFile2.h b/EdkCompatibilityPkg/Foundation/Efi/Protocol/LoadFile2/LoadFile2.h
new file mode 100644 (file)
index 0000000..78d28ad
--- /dev/null
@@ -0,0 +1,84 @@
+/*++\r
+\r
+Copyright (c) 2008, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  LoadFile2.h\r
+\r
+Abstract:\r
+\r
+  Load File2 protocol as defined in the UEFI specification.\r
+\r
+  Load File2 protocol exists to support to obtain files from arbitrary devices\r
+  but are not used as boot options.\r
+\r
+--*/\r
+\r
+#ifndef _LOAD_FILE2_H_\r
+#define _LOAD_FILE2_H_\r
+\r
+#define EFI_LOAD_FILE2_PROTOCOL_GUID \\r
+  { \\r
+  0x4006c0c1, 0xfcb3, 0x403e, {0x99, 0x6d, 0x4a, 0x6c, 0x87, 0x24, 0xe0, 0x6d} \\r
+  }\r
+\r
+EFI_FORWARD_DECLARATION (EFI_LOAD_FILE2_PROTOCOL);\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_LOAD_FILE2_LOAD_FILE) (\r
+  IN EFI_LOAD_FILE2_PROTOCOL          * This,\r
+  IN EFI_DEVICE_PATH_PROTOCOL         * FilePath,\r
+  IN BOOLEAN                          BootPolicy,\r
+  IN OUT UINTN                        *BufferSize,\r
+  IN VOID                             *Buffer OPTIONAL\r
+  )\r
+/*++\r
+\r
+  Routine Description:\r
+    Causes the driver to load a specified file.\r
+\r
+  Arguments:\r
+    This       - Protocol instance pointer.\r
+    FilePath   - The device specific path of the file to load.\r
+    BootPolicy - Should always be FALSE.\r
+    BufferSize - On input the size of Buffer in bytes. On output with a return\r
+                  code of EFI_SUCCESS, the amount of data transferred to \r
+                  Buffer. On output with a return code of EFI_BUFFER_TOO_SMALL,\r
+                  the size of Buffer required to retrieve the requested file.\r
+    Buffer     - The memory buffer to transfer the file to. IF Buffer is NULL,\r
+                  then no the size of the requested file is returned in \r
+                  BufferSize.\r
+\r
+  Returns:\r
+    EFI_SUCCESS           - The file was loaded.\r
+    EFI_UNSUPPORTED       - BootPolicy is TRUE.\r
+    EFI_INVALID_PARAMETER - FilePath is not a valid device path, or \r
+                             BufferSize is NULL.\r
+    EFI_NO_MEDIA          - No medium was present to load the file.\r
+    EFI_DEVICE_ERROR      - The file was not loaded due to a device error.\r
+    EFI_NO_RESPONSE       - The remote system did not respond.\r
+    EFI_NOT_FOUND         - The file was not found\r
+    EFI_ABORTED           - The file load process was manually cancelled.\r
+    EFI_BUFFER_TOO_SMALL  - The BufferSize is too small to read the current \r
+                             directory entry. BufferSize has been updated with\r
+                             the size needed to complete the request.\r
+\r
+--*/\r
+;\r
+\r
+struct _EFI_LOAD_FILE2_PROTOCOL {\r
+  EFI_LOAD_FILE2_LOAD_FILE LoadFile;\r
+};\r
+\r
+extern EFI_GUID gEfiLoadFile2ProtocolGuid;\r
+\r
+#endif\r