You've already forked slimbootloader
mirror of
https://github.com/Dasharo/slimbootloader.git
synced 2026-03-06 15:26:20 -08:00
This patch updated SBL BaseTools to be in sync with EDK2 stable tag 202211. Preserve previous changes made in GNUmakefile, Makefile, RunTest, and PatchCheck to prevent compiling issue. Add condition to match last line when reporting "No newline at end of file" Signed-off-by: Kevin Tsai <kevin.tsai@intel.com> Signed-off-by: Kevin Tsai <kevin.tsai@intel.com>
123 lines
2.6 KiB
C
123 lines
2.6 KiB
C
/** @file
|
|
Header file for Elf convert solution
|
|
|
|
Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
|
|
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#ifndef _ELF_CONVERT_H_
|
|
#define _ELF_CONVERT_H_
|
|
|
|
#include "elf_common.h"
|
|
#include "elf32.h"
|
|
#include "elf64.h"
|
|
|
|
//
|
|
// Externally defined variables
|
|
//
|
|
extern UINT32 mCoffOffset;
|
|
extern CHAR8 *mInImageName;
|
|
extern UINT32 mImageTimeStamp;
|
|
extern UINT8 *mCoffFile;
|
|
extern UINT32 mTableOffset;
|
|
extern UINT32 mOutImageType;
|
|
extern UINT32 mFileBufferSize;
|
|
extern BOOLEAN mExportFlag;
|
|
|
|
//
|
|
// Common EFI specific data.
|
|
//
|
|
#define ELF_HII_SECTION_NAME ".hii"
|
|
#define ELF_STRTAB_SECTION_NAME ".strtab"
|
|
#define MAX_COFF_ALIGNMENT 0x10000
|
|
#define ELF_SYMBOL_SECTION_NAME ".symtab"
|
|
|
|
//
|
|
// Platform Runtime Mechanism (PRM) specific data.
|
|
//
|
|
#define PRM_MODULE_EXPORT_SYMBOL_NUM 256
|
|
|
|
// <to-do> to include PRM header directly once PrmPkg is in main repo
|
|
#define PRM_HANDLER_NAME_MAXIMUM_LENGTH 128
|
|
|
|
#define PRM_MODULE_EXPORT_DESCRIPTOR_NAME "PrmModuleExportDescriptor"
|
|
#define PRM_MODULE_EXPORT_DESCRIPTOR_SIGNATURE SIGNATURE_64 ('P', 'R', 'M', '_', 'M', 'E', 'D', 'T')
|
|
#define PRM_MODULE_EXPORT_REVISION 0x0
|
|
|
|
//
|
|
// Platform Runtime Mechanism (PRM) Export Descriptor Structures
|
|
//
|
|
#pragma pack(push, 1)
|
|
|
|
typedef struct {
|
|
EFI_GUID PrmHandlerGuid;
|
|
CHAR8 PrmHandlerName[PRM_HANDLER_NAME_MAXIMUM_LENGTH];
|
|
} PRM_HANDLER_EXPORT_DESCRIPTOR_STRUCT;
|
|
|
|
typedef struct {
|
|
UINT64 Signature;
|
|
UINT16 Revision;
|
|
UINT16 NumberPrmHandlers;
|
|
EFI_GUID PlatformGuid;
|
|
EFI_GUID ModuleGuid;
|
|
} PRM_MODULE_EXPORT_DESCRIPTOR_STRUCT_HEADER;
|
|
|
|
typedef struct {
|
|
PRM_MODULE_EXPORT_DESCRIPTOR_STRUCT_HEADER Header;
|
|
PRM_HANDLER_EXPORT_DESCRIPTOR_STRUCT PrmHandlerExportDescriptors[1];
|
|
} PRM_MODULE_EXPORT_DESCRIPTOR_STRUCT;
|
|
|
|
#pragma pack(pop)
|
|
|
|
//
|
|
// Filter Types
|
|
//
|
|
typedef enum {
|
|
SECTION_TEXT,
|
|
SECTION_HII,
|
|
SECTION_DATA,
|
|
SECTION_SYMBOL
|
|
|
|
} SECTION_FILTER_TYPES;
|
|
|
|
//
|
|
// FunctionTable
|
|
//
|
|
typedef struct {
|
|
VOID (*ScanSections) ();
|
|
BOOLEAN (*WriteSections) (SECTION_FILTER_TYPES FilterType);
|
|
VOID (*WriteRelocations) ();
|
|
VOID (*WriteDebug) ();
|
|
VOID (*WriteExport) ();
|
|
VOID (*SetImageSize) ();
|
|
VOID (*CleanUp) ();
|
|
|
|
} ELF_FUNCTION_TABLE;
|
|
|
|
//
|
|
// Common functions
|
|
//
|
|
VOID
|
|
CoffAddFixup (
|
|
UINT32 Offset,
|
|
UINT8 Type
|
|
);
|
|
|
|
VOID
|
|
CoffAddFixupEntry (
|
|
UINT16 Val
|
|
);
|
|
|
|
|
|
VOID
|
|
CreateSectionHeader (
|
|
const CHAR8 *Name,
|
|
UINT32 Offset,
|
|
UINT32 Size,
|
|
UINT32 Flags
|
|
);
|
|
|
|
#endif
|