]>
Commit | Line | Data |
---|---|---|
a64b9449 CC |
1 | ## @file\r |
2 | # This file is used to define the FV Header C Struct.\r | |
3 | #\r | |
4 | # Copyright (c) 2021-, Intel Corporation. All rights reserved.<BR>\r | |
5 | # SPDX-License-Identifier: BSD-2-Clause-Patent\r | |
6 | ##\r | |
7 | from ast import Str\r | |
8 | from struct import *\r | |
9 | from ctypes import *\r | |
10 | from FirmwareStorageFormat.Common import *\r | |
11 | \r | |
12 | class EFI_FV_BLOCK_MAP_ENTRY(Structure):\r | |
13 | _pack_ = 1\r | |
14 | _fields_ = [\r | |
15 | ('NumBlocks', c_uint32),\r | |
16 | ('Length', c_uint32),\r | |
17 | ]\r | |
18 | \r | |
19 | \r | |
20 | class EFI_FIRMWARE_VOLUME_HEADER(Structure):\r | |
21 | _fields_ = [\r | |
22 | ('ZeroVector', ARRAY(c_uint8, 16)),\r | |
23 | ('FileSystemGuid', GUID),\r | |
24 | ('FvLength', c_uint64),\r | |
25 | ('Signature', c_uint32),\r | |
26 | ('Attributes', c_uint32),\r | |
27 | ('HeaderLength', c_uint16),\r | |
28 | ('Checksum', c_uint16),\r | |
29 | ('ExtHeaderOffset', c_uint16),\r | |
30 | ('Reserved', c_uint8),\r | |
31 | ('Revision', c_uint8),\r | |
32 | ('BlockMap', ARRAY(EFI_FV_BLOCK_MAP_ENTRY, 1)),\r | |
33 | ]\r | |
34 | \r | |
35 | def Refine_FV_Header(nums):\r | |
36 | class EFI_FIRMWARE_VOLUME_HEADER(Structure):\r | |
37 | _fields_ = [\r | |
38 | ('ZeroVector', ARRAY(c_uint8, 16)),\r | |
39 | ('FileSystemGuid', GUID),\r | |
40 | ('FvLength', c_uint64),\r | |
41 | ('Signature', c_uint32),\r | |
42 | ('Attributes', c_uint32),\r | |
43 | ('HeaderLength', c_uint16),\r | |
44 | ('Checksum', c_uint16),\r | |
45 | ('ExtHeaderOffset', c_uint16),\r | |
46 | ('Reserved', c_uint8),\r | |
47 | ('Revision', c_uint8),\r | |
48 | ('BlockMap', ARRAY(EFI_FV_BLOCK_MAP_ENTRY, nums)),\r | |
49 | ]\r | |
50 | return EFI_FIRMWARE_VOLUME_HEADER\r | |
51 | \r | |
52 | class EFI_FIRMWARE_VOLUME_EXT_HEADER(Structure):\r | |
53 | _fields_ = [\r | |
54 | ('FvName', GUID),\r | |
55 | ('ExtHeaderSize', c_uint32)\r | |
56 | ]\r | |
57 | \r | |
58 | class EFI_FIRMWARE_VOLUME_EXT_ENTRY(Structure):\r | |
59 | _fields_ = [\r | |
60 | ('ExtEntrySize', c_uint16),\r | |
61 | ('ExtEntryType', c_uint16)\r | |
62 | ]\r | |
63 | \r | |
64 | class EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE_0(Structure):\r | |
65 | _fields_ = [\r | |
66 | ('Hdr', EFI_FIRMWARE_VOLUME_EXT_ENTRY),\r | |
67 | ('TypeMask', c_uint32)\r | |
68 | ]\r | |
69 | \r | |
70 | class EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE(Structure):\r | |
71 | _fields_ = [\r | |
72 | ('Hdr', EFI_FIRMWARE_VOLUME_EXT_ENTRY),\r | |
73 | ('TypeMask', c_uint32),\r | |
74 | ('Types', ARRAY(GUID, 1))\r | |
75 | ]\r | |
76 | \r | |
77 | def Refine_FV_EXT_ENTRY_OEM_TYPE_Header(nums: int) -> EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE:\r | |
78 | class EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE(Structure):\r | |
79 | _fields_ = [\r | |
80 | ('Hdr', EFI_FIRMWARE_VOLUME_EXT_ENTRY),\r | |
81 | ('TypeMask', c_uint32),\r | |
82 | ('Types', ARRAY(GUID, nums))\r | |
83 | ]\r | |
84 | return EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE(Structure)\r | |
85 | \r | |
86 | class EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE_0(Structure):\r | |
87 | _fields_ = [\r | |
88 | ('Hdr', EFI_FIRMWARE_VOLUME_EXT_ENTRY),\r | |
89 | ('FormatType', GUID)\r | |
90 | ]\r | |
91 | \r | |
92 | class EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE(Structure):\r | |
93 | _fields_ = [\r | |
94 | ('Hdr', EFI_FIRMWARE_VOLUME_EXT_ENTRY),\r | |
95 | ('FormatType', GUID),\r | |
96 | ('Data', ARRAY(c_uint8, 1))\r | |
97 | ]\r | |
98 | \r | |
99 | def Refine_FV_EXT_ENTRY_GUID_TYPE_Header(nums: int) -> EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE:\r | |
100 | class EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE(Structure):\r | |
101 | _fields_ = [\r | |
102 | ('Hdr', EFI_FIRMWARE_VOLUME_EXT_ENTRY),\r | |
103 | ('FormatType', GUID),\r | |
104 | ('Data', ARRAY(c_uint8, nums))\r | |
105 | ]\r | |
106 | return EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE(Structure)\r | |
107 | \r | |
108 | class EFI_FIRMWARE_VOLUME_EXT_ENTRY_USED_SIZE_TYPE(Structure):\r | |
109 | _fields_ = [\r | |
110 | ('Hdr', EFI_FIRMWARE_VOLUME_EXT_ENTRY),\r | |
111 | ('UsedSize', c_uint32)\r | |
112 | ]\r |