+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2004, 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
- GenFvImageLibInternal.h\r
-\r
-Abstract:\r
-\r
- This file contains describes the private declarations for the GenFvImage Library.\r
- The basic purpose of the library is to create Firmware Volume images.\r
-\r
---*/\r
-\r
-#ifndef _EFI_GEN_FV_IMAGE_LIB_INTERNAL_H\r
-#define _EFI_GEN_FV_IMAGE_LIB_INTERNAL_H\r
-\r
-//\r
-// Include files\r
-//\r
-#include <stdlib.h>\r
-\r
-#include <Common/FirmwareVolumeHeader.h>\r
-\r
-#include "CommonLib.h"\r
-#include "GenFvImageLib.h"\r
-\r
-//\r
-// Private data declarations\r
-//\r
-//\r
-// The maximum number of block map entries supported by the library\r
-//\r
-#define MAX_NUMBER_OF_FV_BLOCKS 100\r
-\r
-//\r
-// The maximum number of files in the FV supported by the library\r
-//\r
-#define MAX_NUMBER_OF_FILES_IN_FV 1000\r
-#define MAX_NUMBER_OF_COMPONENTS_IN_FV 10\r
-\r
-//\r
-// INF file strings\r
-//\r
-#define OPTIONS_SECTION_STRING "[options]"\r
-#define ATTRIBUTES_SECTION_STRING "[attributes]"\r
-#define FILES_SECTION_STRING "[files]"\r
-#define COMPONENT_SECTION_STRING "[components]"\r
-\r
-#define EFI_FV_BASE_ADDRESS_STRING "EFI_BASE_ADDRESS"\r
-#define EFI_FV_FILE_NAME_STRING "EFI_FILE_NAME"\r
-#define EFI_SYM_FILE_NAME_STRING "EFI_SYM_FILE_NAME"\r
-#define EFI_NUM_BLOCKS_STRING "EFI_NUM_BLOCKS"\r
-#define EFI_BLOCK_SIZE_STRING "EFI_BLOCK_SIZE"\r
-#define EFI_FV_GUID_STRING "EFI_FV_GUID"\r
-\r
-#define EFI_FVB_READ_DISABLED_CAP_STRING "EFI_READ_DISABLED_CAP"\r
-#define EFI_FVB_READ_ENABLED_CAP_STRING "EFI_READ_ENABLED_CAP"\r
-#define EFI_FVB_READ_STATUS_STRING "EFI_READ_STATUS"\r
-\r
-#define EFI_FVB_WRITE_DISABLED_CAP_STRING "EFI_WRITE_DISABLED_CAP"\r
-#define EFI_FVB_WRITE_ENABLED_CAP_STRING "EFI_WRITE_ENABLED_CAP"\r
-#define EFI_FVB_WRITE_STATUS_STRING "EFI_WRITE_STATUS"\r
-\r
-#define EFI_FVB_LOCK_CAP_STRING "EFI_LOCK_CAP"\r
-#define EFI_FVB_LOCK_STATUS_STRING "EFI_LOCK_STATUS"\r
-\r
-#define EFI_FVB_STICKY_WRITE_STRING "EFI_STICKY_WRITE"\r
-#define EFI_FVB_MEMORY_MAPPED_STRING "EFI_MEMORY_MAPPED"\r
-#define EFI_FVB_ERASE_POLARITY_STRING "EFI_ERASE_POLARITY"\r
-\r
-#define EFI_FVB_ALIGNMENT_CAP_STRING "EFI_ALIGNMENT_CAP"\r
-#define EFI_FVB_ALIGNMENT_2_STRING "EFI_ALIGNMENT_2"\r
-#define EFI_FVB_ALIGNMENT_4_STRING "EFI_ALIGNMENT_4"\r
-#define EFI_FVB_ALIGNMENT_8_STRING "EFI_ALIGNMENT_8"\r
-#define EFI_FVB_ALIGNMENT_16_STRING "EFI_ALIGNMENT_16"\r
-#define EFI_FVB_ALIGNMENT_32_STRING "EFI_ALIGNMENT_32"\r
-#define EFI_FVB_ALIGNMENT_64_STRING "EFI_ALIGNMENT_64"\r
-#define EFI_FVB_ALIGNMENT_128_STRING "EFI_ALIGNMENT_128"\r
-#define EFI_FVB_ALIGNMENT_256_STRING "EFI_ALIGNMENT_256"\r
-#define EFI_FVB_ALIGNMENT_512_STRING "EFI_ALIGNMENT_512"\r
-#define EFI_FVB_ALIGNMENT_1K_STRING "EFI_ALIGNMENT_1K"\r
-#define EFI_FVB_ALIGNMENT_2K_STRING "EFI_ALIGNMENT_2K"\r
-#define EFI_FVB_ALIGNMENT_4K_STRING "EFI_ALIGNMENT_4K"\r
-#define EFI_FVB_ALIGNMENT_8K_STRING "EFI_ALIGNMENT_8K"\r
-#define EFI_FVB_ALIGNMENT_16K_STRING "EFI_ALIGNMENT_16K"\r
-#define EFI_FVB_ALIGNMENT_32K_STRING "EFI_ALIGNMENT_32K"\r
-#define EFI_FVB_ALIGNMENT_64K_STRING "EFI_ALIGNMENT_64K"\r
-\r
-//\r
-// Component sections\r
-//\r
-#define EFI_NV_VARIABLE_STRING "EFI_NV_VARIABLE"\r
-#define EFI_NV_EVENT_LOG_STRING "EFI_NV_EVENT_LOG"\r
-#define EFI_NV_FTW_WORKING_STRING "EFI_NV_FTW_WORKING"\r
-#define EFI_NV_FTW_SPARE_STRING "EFI_NV_FTW_SPARE"\r
-\r
-#define EFI_FILE_NAME_STRING "EFI_FILE_NAME"\r
-\r
-#define ONE_STRING "1"\r
-#define ZERO_STRING "0"\r
-#define TRUE_STRING "TRUE"\r
-#define FALSE_STRING "FALSE"\r
-#define NULL_STRING "NULL"\r
-\r
-//\r
-// Defines to calculate the offset for PEI CORE entry points\r
-//\r
-#define IA32_PEI_CORE_ENTRY_OFFSET 0x20\r
-\r
-//\r
-// Defines to calculate the FIT table\r
-//\r
-#define IPF_FIT_ADDRESS_OFFSET 0x20\r
-\r
-//\r
-// Defines to calculate the offset for SALE_ENTRY\r
-//\r
-#define IPF_SALE_ENTRY_ADDRESS_OFFSET 0x18\r
-\r
-//\r
-// Symbol file definitions, current max size if 512K\r
-//\r
-#define SYMBOL_FILE_SIZE 0x80000\r
-\r
-#define FV_IMAGES_TOP_ADDRESS 0x100000000ULL\r
-\r
-//\r
-// Private data types\r
-//\r
-//\r
-// Component information\r
-//\r
-typedef struct {\r
- UINTN Size;\r
- CHAR8 ComponentName[_MAX_PATH];\r
-} COMPONENT_INFO;\r
-\r
-//\r
-// FV information holder\r
-//\r
-typedef struct {\r
- EFI_PHYSICAL_ADDRESS BaseAddress;\r
- EFI_GUID FvGuid;\r
- UINTN Size;\r
- CHAR8 FvName[_MAX_PATH];\r
- CHAR8 SymName[_MAX_PATH];\r
- EFI_FV_BLOCK_MAP_ENTRY FvBlocks[MAX_NUMBER_OF_FV_BLOCKS];\r
- EFI_FVB_ATTRIBUTES FvAttributes;\r
- CHAR8 FvFiles[MAX_NUMBER_OF_FILES_IN_FV][_MAX_PATH];\r
- COMPONENT_INFO FvComponents[MAX_NUMBER_OF_COMPONENTS_IN_FV];\r
-} FV_INFO;\r
-\r
-//\r
-// Private function prototypes\r
-//\r
-EFI_STATUS\r
-ParseFvInf (\r
- IN MEMORY_FILE *InfFile,\r
- IN FV_INFO *FvInfo\r
- )\r
-;\r
-\r
-#endif\r