2 Header file for Elf convert solution
4 Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
6 SPDX-License-Identifier: BSD-2-Clause-Patent
10 #ifndef _ELF_CONVERT_H_
11 #define _ELF_CONVERT_H_
13 #include "elf_common.h"
18 // Externally defined variables
20 extern UINT32 mCoffOffset
;
21 extern CHAR8
*mInImageName
;
22 extern UINT32 mImageTimeStamp
;
23 extern UINT8
*mCoffFile
;
24 extern UINT32 mTableOffset
;
25 extern UINT32 mOutImageType
;
26 extern UINT32 mFileBufferSize
;
27 extern BOOLEAN mExportFlag
;
30 // Common EFI specific data.
32 #define ELF_HII_SECTION_NAME ".hii"
33 #define ELF_STRTAB_SECTION_NAME ".strtab"
34 #define MAX_COFF_ALIGNMENT 0x10000
35 #define ELF_SYMBOL_SECTION_NAME ".symtab"
38 // Platform Runtime Mechanism (PRM) specific data.
40 #define PRM_MODULE_EXPORT_SYMBOL_NUM 256
42 // <to-do> to include PRM header directly once PrmPkg is in main repo
43 #define PRM_HANDLER_NAME_MAXIMUM_LENGTH 128
45 #define PRM_MODULE_EXPORT_DESCRIPTOR_NAME "PrmModuleExportDescriptor"
46 #define PRM_MODULE_EXPORT_DESCRIPTOR_SIGNATURE SIGNATURE_64 ('P', 'R', 'M', '_', 'M', 'E', 'D', 'T')
47 #define PRM_MODULE_EXPORT_REVISION 0x0
50 // Platform Runtime Mechanism (PRM) Export Descriptor Structures
55 EFI_GUID PrmHandlerGuid
;
56 CHAR8 PrmHandlerName
[PRM_HANDLER_NAME_MAXIMUM_LENGTH
];
57 } PRM_HANDLER_EXPORT_DESCRIPTOR_STRUCT
;
62 UINT16 NumberPrmHandlers
;
63 EFI_GUID PlatformGuid
;
65 } PRM_MODULE_EXPORT_DESCRIPTOR_STRUCT_HEADER
;
68 PRM_MODULE_EXPORT_DESCRIPTOR_STRUCT_HEADER Header
;
69 PRM_HANDLER_EXPORT_DESCRIPTOR_STRUCT PrmHandlerExportDescriptors
[1];
70 } PRM_MODULE_EXPORT_DESCRIPTOR_STRUCT
;
83 } SECTION_FILTER_TYPES
;
89 VOID (*ScanSections
) ();
90 BOOLEAN (*WriteSections
) (SECTION_FILTER_TYPES FilterType
);
91 VOID (*WriteRelocations
) ();
92 VOID (*WriteDebug
) ();
93 VOID (*WriteExport
) ();
94 VOID (*SetImageSize
) ();
115 CreateSectionHeader (