]> git.proxmox.com Git - mirror_edk2.git/blob - Tools/CodeTools/Source/GenFvImage/GenFvImageLibInternal.h
More renames for Tool Packages
[mirror_edk2.git] / Tools / CodeTools / Source / GenFvImage / GenFvImageLibInternal.h
1 /*++
2
3 Copyright (c) 2004, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 GenFvImageLibInternal.h
15
16 Abstract:
17
18 This file contains describes the private declarations for the GenFvImage Library.
19 The basic purpose of the library is to create Firmware Volume images.
20
21 --*/
22
23 #ifndef _EFI_GEN_FV_IMAGE_LIB_INTERNAL_H
24 #define _EFI_GEN_FV_IMAGE_LIB_INTERNAL_H
25
26 //
27 // Include files
28 //
29 #include <stdlib.h>
30
31 #include <Common/FirmwareVolumeHeader.h>
32
33 #include "CommonLib.h"
34 #include "GenFvImageLib.h"
35
36 //
37 // Private data declarations
38 //
39 //
40 // The maximum number of block map entries supported by the library
41 //
42 #define MAX_NUMBER_OF_FV_BLOCKS 100
43
44 //
45 // The maximum number of files in the FV supported by the library
46 //
47 #define MAX_NUMBER_OF_FILES_IN_FV 1000
48 #define MAX_NUMBER_OF_COMPONENTS_IN_FV 10
49
50 //
51 // INF file strings
52 //
53 #define OPTIONS_SECTION_STRING "[options]"
54 #define ATTRIBUTES_SECTION_STRING "[attributes]"
55 #define FILES_SECTION_STRING "[files]"
56 #define COMPONENT_SECTION_STRING "[components]"
57
58 #define EFI_FV_BASE_ADDRESS_STRING "EFI_BASE_ADDRESS"
59 #define EFI_FV_FILE_NAME_STRING "EFI_FILE_NAME"
60 #define EFI_SYM_FILE_NAME_STRING "EFI_SYM_FILE_NAME"
61 #define EFI_NUM_BLOCKS_STRING "EFI_NUM_BLOCKS"
62 #define EFI_BLOCK_SIZE_STRING "EFI_BLOCK_SIZE"
63 #define EFI_FV_GUID_STRING "EFI_FV_GUID"
64
65 #define EFI_FVB_READ_DISABLED_CAP_STRING "EFI_READ_DISABLED_CAP"
66 #define EFI_FVB_READ_ENABLED_CAP_STRING "EFI_READ_ENABLED_CAP"
67 #define EFI_FVB_READ_STATUS_STRING "EFI_READ_STATUS"
68
69 #define EFI_FVB_WRITE_DISABLED_CAP_STRING "EFI_WRITE_DISABLED_CAP"
70 #define EFI_FVB_WRITE_ENABLED_CAP_STRING "EFI_WRITE_ENABLED_CAP"
71 #define EFI_FVB_WRITE_STATUS_STRING "EFI_WRITE_STATUS"
72
73 #define EFI_FVB_LOCK_CAP_STRING "EFI_LOCK_CAP"
74 #define EFI_FVB_LOCK_STATUS_STRING "EFI_LOCK_STATUS"
75
76 #define EFI_FVB_STICKY_WRITE_STRING "EFI_STICKY_WRITE"
77 #define EFI_FVB_MEMORY_MAPPED_STRING "EFI_MEMORY_MAPPED"
78 #define EFI_FVB_ERASE_POLARITY_STRING "EFI_ERASE_POLARITY"
79
80 #define EFI_FVB_ALIGNMENT_CAP_STRING "EFI_ALIGNMENT_CAP"
81 #define EFI_FVB_ALIGNMENT_2_STRING "EFI_ALIGNMENT_2"
82 #define EFI_FVB_ALIGNMENT_4_STRING "EFI_ALIGNMENT_4"
83 #define EFI_FVB_ALIGNMENT_8_STRING "EFI_ALIGNMENT_8"
84 #define EFI_FVB_ALIGNMENT_16_STRING "EFI_ALIGNMENT_16"
85 #define EFI_FVB_ALIGNMENT_32_STRING "EFI_ALIGNMENT_32"
86 #define EFI_FVB_ALIGNMENT_64_STRING "EFI_ALIGNMENT_64"
87 #define EFI_FVB_ALIGNMENT_128_STRING "EFI_ALIGNMENT_128"
88 #define EFI_FVB_ALIGNMENT_256_STRING "EFI_ALIGNMENT_256"
89 #define EFI_FVB_ALIGNMENT_512_STRING "EFI_ALIGNMENT_512"
90 #define EFI_FVB_ALIGNMENT_1K_STRING "EFI_ALIGNMENT_1K"
91 #define EFI_FVB_ALIGNMENT_2K_STRING "EFI_ALIGNMENT_2K"
92 #define EFI_FVB_ALIGNMENT_4K_STRING "EFI_ALIGNMENT_4K"
93 #define EFI_FVB_ALIGNMENT_8K_STRING "EFI_ALIGNMENT_8K"
94 #define EFI_FVB_ALIGNMENT_16K_STRING "EFI_ALIGNMENT_16K"
95 #define EFI_FVB_ALIGNMENT_32K_STRING "EFI_ALIGNMENT_32K"
96 #define EFI_FVB_ALIGNMENT_64K_STRING "EFI_ALIGNMENT_64K"
97
98 //
99 // Component sections
100 //
101 #define EFI_NV_VARIABLE_STRING "EFI_NV_VARIABLE"
102 #define EFI_NV_EVENT_LOG_STRING "EFI_NV_EVENT_LOG"
103 #define EFI_NV_FTW_WORKING_STRING "EFI_NV_FTW_WORKING"
104 #define EFI_NV_FTW_SPARE_STRING "EFI_NV_FTW_SPARE"
105
106 #define EFI_FILE_NAME_STRING "EFI_FILE_NAME"
107
108 #define ONE_STRING "1"
109 #define ZERO_STRING "0"
110 #define TRUE_STRING "TRUE"
111 #define FALSE_STRING "FALSE"
112 #define NULL_STRING "NULL"
113
114 //
115 // Defines to calculate the offset for PEI CORE entry points
116 //
117 #define IA32_PEI_CORE_ENTRY_OFFSET 0x20
118
119 //
120 // Defines to calculate the FIT table
121 //
122 #define IPF_FIT_ADDRESS_OFFSET 0x20
123
124 //
125 // Defines to calculate the offset for SALE_ENTRY
126 //
127 #define IPF_SALE_ENTRY_ADDRESS_OFFSET 0x18
128
129 //
130 // Symbol file definitions, current max size if 512K
131 //
132 #define SYMBOL_FILE_SIZE 0x80000
133
134 #define FV_IMAGES_TOP_ADDRESS 0x100000000ULL
135
136 //
137 // Private data types
138 //
139 //
140 // Component information
141 //
142 typedef struct {
143 UINTN Size;
144 CHAR8 ComponentName[_MAX_PATH];
145 } COMPONENT_INFO;
146
147 //
148 // FV information holder
149 //
150 typedef struct {
151 EFI_PHYSICAL_ADDRESS BaseAddress;
152 EFI_GUID FvGuid;
153 UINTN Size;
154 CHAR8 FvName[_MAX_PATH];
155 CHAR8 SymName[_MAX_PATH];
156 EFI_FV_BLOCK_MAP_ENTRY FvBlocks[MAX_NUMBER_OF_FV_BLOCKS];
157 EFI_FVB_ATTRIBUTES FvAttributes;
158 CHAR8 FvFiles[MAX_NUMBER_OF_FILES_IN_FV][_MAX_PATH];
159 COMPONENT_INFO FvComponents[MAX_NUMBER_OF_COMPONENTS_IN_FV];
160 } FV_INFO;
161
162 //
163 // Private function prototypes
164 //
165 EFI_STATUS
166 ParseFvInf (
167 IN MEMORY_FILE *InfFile,
168 IN FV_INFO *FvInfo
169 )
170 ;
171
172 #endif