]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Core/Dxe/FwVol/FwVolAttrib.c
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdeModulePkg / Core / Dxe / FwVol / FwVolAttrib.c
CommitLineData
23c98c94 1/** @file\r
504214c4 2 Implements get/set firmware volume attributes\r
28a00297 3\r
1f33d186 4Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>\r
9d510e61 5SPDX-License-Identifier: BSD-2-Clause-Patent\r
28a00297 6\r
504214c4 7**/\r
28a00297 8\r
9c4ac31c 9#include "DxeMain.h"\r
ec90508b 10#include "FwVolDriver.h"\r
28a00297 11\r
162ed594 12/**\r
13 Retrieves attributes, insures positive polarity of attribute bits, returns\r
14 resulting attributes in output parameter.\r
15\r
022c6d45 16 @param This Calling context\r
17 @param Attributes output buffer which contains attributes\r
162ed594 18\r
19 @retval EFI_SUCCESS Successfully got volume attributes\r
20\r
21**/\r
28a00297 22EFI_STATUS\r
23EFIAPI\r
24FvGetVolumeAttributes (\r
1436aea4
MK
25 IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
26 OUT EFI_FV_ATTRIBUTES *Attributes\r
28a00297 27 )\r
28a00297 28{\r
1436aea4
MK
29 EFI_STATUS Status;\r
30 FV_DEVICE *FvDevice;\r
31 EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb;\r
32 EFI_FVB_ATTRIBUTES_2 FvbAttributes;\r
28a00297 33\r
34 FvDevice = FV_DEVICE_FROM_THIS (This);\r
1436aea4 35 Fvb = FvDevice->Fvb;\r
28a00297 36\r
28a00297 37 //\r
38 // First get the Firmware Volume Block Attributes\r
39 //\r
40 Status = Fvb->GetAttributes (Fvb, &FvbAttributes);\r
41\r
42 //\r
022c6d45 43 // Mask out Fvb bits that are not defined in FV\r
28a00297 44 //\r
45 FvbAttributes &= 0xfffff0ff;\r
022c6d45 46\r
47 *Attributes = (EFI_FV_ATTRIBUTES)FvbAttributes;\r
48\r
28a00297 49 return Status;\r
50}\r
51\r
162ed594 52/**\r
53 Sets current attributes for volume\r
54\r
022c6d45 55 @param This Calling context\r
56 @param Attributes At input, contains attributes to be set. At output\r
57 contains new value of FV\r
162ed594 58\r
59 @retval EFI_UNSUPPORTED Could not be set.\r
60\r
61**/\r
28a00297 62EFI_STATUS\r
63EFIAPI\r
64FvSetVolumeAttributes (\r
0c2b5da8 65 IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
66 IN OUT EFI_FV_ATTRIBUTES *Attributes\r
28a00297 67 )\r
162ed594 68{\r
69 return EFI_UNSUPPORTED;\r
70}\r
28a00297 71\r
162ed594 72/**\r
73 Return information of type InformationType for the requested firmware\r
74 volume.\r
28a00297 75\r
022c6d45 76 @param This Pointer to EFI_FIRMWARE_VOLUME2_PROTOCOL.\r
77 @param InformationType InformationType for requested.\r
78 @param BufferSize On input, size of Buffer.On output, the amount of data\r
79 returned in Buffer.\r
80 @param Buffer A poniter to the data buffer to return.\r
28a00297 81\r
162ed594 82 @retval EFI_SUCCESS Successfully got volume Information.\r
28a00297 83\r
162ed594 84**/\r
0c2b5da8 85EFI_STATUS\r
86EFIAPI\r
87FvGetVolumeInfo (\r
1436aea4
MK
88 IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
89 IN CONST EFI_GUID *InformationType,\r
90 IN OUT UINTN *BufferSize,\r
91 OUT VOID *Buffer\r
0c2b5da8 92 )\r
0c2b5da8 93{\r
94 return EFI_UNSUPPORTED;\r
95}\r
96\r
162ed594 97/**\r
98 Set information of type InformationType for the requested firmware\r
99 volume.\r
100\r
022c6d45 101 @param This Pointer to EFI_FIRMWARE_VOLUME2_PROTOCOL.\r
102 @param InformationType InformationType for requested.\r
103 @param BufferSize On input, size of Buffer.On output, the amount of data\r
104 returned in Buffer.\r
105 @param Buffer A poniter to the data buffer to return.\r
162ed594 106\r
107 @retval EFI_SUCCESS Successfully set volume Information.\r
108\r
109**/\r
0c2b5da8 110EFI_STATUS\r
111EFIAPI\r
112FvSetVolumeInfo (\r
1436aea4
MK
113 IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
114 IN CONST EFI_GUID *InformationType,\r
115 IN UINTN BufferSize,\r
116 IN CONST VOID *Buffer\r
0c2b5da8 117 )\r
0c2b5da8 118{\r
119 return EFI_UNSUPPORTED;\r
120}\r