]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Core/Dxe/FwVolDriver.h
Merge the PI enabling works from the branch
[mirror_edk2.git] / MdeModulePkg / Core / Dxe / FwVolDriver.h
index fb4e0d5bb2527fcc86254c3e3831de22dd769b86..fe70090630f9f65620cf4a7bd11e772651f6b64c 100644 (file)
@@ -24,6 +24,8 @@ Abstract:
 #define __FWVOL_H\r
 \r
 \r
+#define FV2_DEVICE_SIGNATURE EFI_SIGNATURE_32 ('_', 'F', 'V', '2')\r
+\r
 //\r
 // Used to track all non-deleted files\r
 //\r
@@ -38,7 +40,7 @@ typedef struct {
   UINTN                                   Signature;\r
   EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL      *Fvb;\r
   EFI_HANDLE                              Handle;\r
-  EFI_FIRMWARE_VOLUME_PROTOCOL            Fv;\r
+  EFI_FIRMWARE_VOLUME2_PROTOCOL           Fv;\r
 \r
   EFI_FIRMWARE_VOLUME_HEADER              *FwVolHeader;\r
   UINT8                                   *CachedFv;\r
@@ -51,14 +53,14 @@ typedef struct {
   UINT8                                   ErasePolarity;\r
 } FV_DEVICE;\r
 \r
-#define FV_DEVICE_FROM_THIS(a) CR(a, FV_DEVICE, Fv, FV_DEVICE_SIGNATURE)\r
+#define FV_DEVICE_FROM_THIS(a) CR(a, FV_DEVICE, Fv, FV2_DEVICE_SIGNATURE)\r
 \r
 \r
 EFI_STATUS\r
 EFIAPI\r
 FvGetVolumeAttributes (\r
-  IN    EFI_FIRMWARE_VOLUME_PROTOCOL   *This,\r
-  OUT   EFI_FV_ATTRIBUTES              *Attributes\r
+  IN    CONST EFI_FIRMWARE_VOLUME2_PROTOCOL  *This,\r
+  OUT         EFI_FV_ATTRIBUTES              *Attributes\r
   )\r
 /*++\r
 \r
@@ -79,8 +81,8 @@ Returns:
 EFI_STATUS\r
 EFIAPI\r
 FvSetVolumeAttributes (\r
-  IN     EFI_FIRMWARE_VOLUME_PROTOCOL   *This,\r
-  IN OUT EFI_FV_ATTRIBUTES              *Attributes\r
+  IN CONST  EFI_FIRMWARE_VOLUME2_PROTOCOL  *This,\r
+  IN OUT    EFI_FV_ATTRIBUTES              *Attributes\r
   )\r
 /*++\r
 \r
@@ -100,12 +102,12 @@ Returns:
 EFI_STATUS\r
 EFIAPI\r
 FvGetNextFile (\r
-  IN     EFI_FIRMWARE_VOLUME_PROTOCOL   *This,\r
-  IN OUT VOID                           *Key,\r
-  IN OUT EFI_FV_FILETYPE                *FileType,\r
-  OUT    EFI_GUID                       *NameGuid,\r
-  OUT    EFI_FV_FILE_ATTRIBUTES         *Attributes,\r
-  OUT    UINTN                          *Size\r
+  IN CONST  EFI_FIRMWARE_VOLUME2_PROTOCOL  *This,\r
+  IN OUT    VOID                           *Key,\r
+  IN OUT    EFI_FV_FILETYPE                *FileType,\r
+  OUT       EFI_GUID                       *NameGuid,\r
+  OUT       EFI_FV_FILE_ATTRIBUTES         *Attributes,\r
+  OUT       UINTN                          *Size\r
   )\r
 /*++\r
 \r
@@ -156,13 +158,13 @@ Returns:
 EFI_STATUS\r
 EFIAPI\r
 FvReadFile (\r
-  IN     EFI_FIRMWARE_VOLUME_PROTOCOL   *This,\r
-  IN     EFI_GUID                       *NameGuid,\r
-  IN OUT VOID                           **Buffer,\r
-  IN OUT UINTN                          *BufferSize,\r
-  OUT    EFI_FV_FILETYPE                *FoundType,\r
-  OUT    EFI_FV_FILE_ATTRIBUTES         *FileAttributes,\r
-  OUT    UINT32                         *AuthenticationStatus\r
+  IN CONST  EFI_FIRMWARE_VOLUME2_PROTOCOL   *This,\r
+  IN CONST  EFI_GUID                       *NameGuid,\r
+  IN OUT    VOID                           **Buffer,\r
+  IN OUT    UINTN                          *BufferSize,\r
+  OUT       EFI_FV_FILETYPE                *FoundType,\r
+  OUT       EFI_FV_FILE_ATTRIBUTES         *FileAttributes,\r
+  OUT       UINT32                         *AuthenticationStatus\r
   )\r
 /*++\r
 \r
@@ -207,13 +209,13 @@ Returns:
 EFI_STATUS\r
 EFIAPI\r
 FvReadFileSection (\r
-  IN     EFI_FIRMWARE_VOLUME_PROTOCOL   *This,\r
-  IN     EFI_GUID                       *NameGuid,\r
-  IN     EFI_SECTION_TYPE               SectionType,\r
-  IN     UINTN                          SectionInstance,\r
-  IN OUT VOID                           **Buffer,\r
-  IN OUT UINTN                          *BufferSize,\r
-  OUT    UINT32                         *AuthenticationStatus\r
+  IN CONST  EFI_FIRMWARE_VOLUME2_PROTOCOL   *This,\r
+  IN CONST  EFI_GUID                       *NameGuid,\r
+  IN        EFI_SECTION_TYPE               SectionType,\r
+  IN        UINTN                          SectionInstance,\r
+  IN OUT    VOID                           **Buffer,\r
+  IN OUT    UINTN                          *BufferSize,\r
+  OUT       UINT32                         *AuthenticationStatus\r
   )\r
 /*++\r
 \r
@@ -248,10 +250,10 @@ FvReadFileSection (
 EFI_STATUS\r
 EFIAPI\r
 FvWriteFile (\r
-  IN EFI_FIRMWARE_VOLUME_PROTOCOL       *This,\r
-  IN UINT32                             NumberOfFiles,\r
-  IN EFI_FV_WRITE_POLICY                WritePolicy,\r
-  IN EFI_FV_WRITE_FILE_DATA             *FileData\r
+  IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL       *This,\r
+  IN       UINT32                             NumberOfFiles,\r
+  IN       EFI_FV_WRITE_POLICY                WritePolicy,\r
+  IN       EFI_FV_WRITE_FILE_DATA             *FileData\r
   )\r
 /*++\r
 \r
@@ -278,7 +280,58 @@ FvWriteFile (
 --*/\r
 ;\r
 \r
+EFI_STATUS\r
+EFIAPI\r
+FvGetVolumeInfo (\r
+  IN  CONST EFI_FIRMWARE_VOLUME2_PROTOCOL       *This,\r
+  IN  CONST EFI_GUID                            *InformationType,\r
+  IN  OUT   UINTN                               *BufferSize,\r
+  OUT       VOID                                *Buffer\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+  Return information of type InformationType for the requested firmware\r
+  volume.\r
+  \r
+Arguments:\r
+    This                - Pointer to EFI_FIRMWARE_VOLUME2_PROTOCOL.\r
+    InformationType     - InformationType for requested.\r
+    BufferSize          - On input, size of Buffer.On output, the amount of\r
+                          data returned in Buffer.\r
+    Buffer              - A poniter to the data buffer to return.\r
+Returns:\r
+    EFI_SUCCESS         - Successfully got volume Information.\r
+\r
+--*/\r
+;\r
+\r
 \r
+EFI_STATUS\r
+EFIAPI\r
+FvSetVolumeInfo (\r
+  IN  CONST EFI_FIRMWARE_VOLUME2_PROTOCOL       *This,\r
+  IN  CONST EFI_GUID                            *InformationType,\r
+  IN        UINTN                               BufferSize,\r
+  IN  CONST  VOID                               *Buffer\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+  Set information of type InformationType for the requested firmware\r
+  volume.\r
+\r
+Arguments:\r
+    This                - Pointer to EFI_FIRMWARE_VOLUME2_PROTOCOL.\r
+    InformationType     - InformationType for requested.\r
+    BufferSize          - On input, size of Buffer.On output, the amount of\r
+                          data returned in Buffer.\r
+    Buffer              - A poniter to the data buffer to return.\r
+Returns:\r
+    EFI_SUCCESS         - Successfully set volume Information.\r
+\r
+--*/\r
+;\r
   \r
 //\r
 //Internal functions\r