OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
HeaderX.h File Reference
#include "MachoX.h"

Go to the source code of this file.

Functions

STATIC BOOLEAN InternalSectionIsSane (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_SECTION_X *Section, IN CONST MACH_SEGMENT_COMMAND_X *Segment)
 
STATIC VOID InternalStripLoadCommands (IN OUT MACH_HEADER_X *MachHeader)
 
UINT32 MACH_X InternalMachoGetVmSize (IN OUT OC_MACHO_CONTEXT *Context)
 
MACH_LOAD_COMMAND *MACH_X InternalMachoGetNextCommand (IN OUT OC_MACHO_CONTEXT *Context, IN MACH_LOAD_COMMAND_TYPE LoadCommandType, IN CONST MACH_LOAD_COMMAND *LoadCommand OPTIONAL)
 
VOID *MACH_X InternalMachoGetFilePointerByAddress (IN OUT OC_MACHO_CONTEXT *Context, IN MACH_UINT_X Address, OUT UINT32 *MaxSize OPTIONAL)
 
UINT32 MACH_X InternalMachoExpandImage (IN OC_MACHO_CONTEXT *Context, IN BOOLEAN CalculateSizeOnly, OUT UINT8 *Destination, IN UINT32 DestinationSize, IN BOOLEAN Strip, OUT UINT64 *FileOffset OPTIONAL)
 
BOOLEAN MACH_X InternalMachoMergeSegments (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *Prefix)
 
BOOLEAN MACH_X MachoInitializeContext (OUT OC_MACHO_CONTEXT *Context, IN VOID *FileData, IN UINT32 FileSize, IN UINT32 HeaderOffset, IN UINT32 InnerSize)
 
MACH_HEADER_X *MACH_X MachoGetMachHeader (IN OUT OC_MACHO_CONTEXT *Context)
 
MACH_UINT_X MACH_X InternalMachoGetLastAddress (IN OUT OC_MACHO_CONTEXT *Context)
 
MACH_SEGMENT_COMMAND_X *MACH_X MachoGetSegmentByName (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *SegmentName)
 
MACH_SECTION_X *MACH_X MachoGetSectionByName (IN OUT OC_MACHO_CONTEXT *Context, IN MACH_SEGMENT_COMMAND_X *Segment, IN CONST CHAR8 *SectionName)
 
MACH_SECTION_X *MACH_X MachoGetSegmentSectionByName (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *SegmentName, IN CONST CHAR8 *SectionName)
 
MACH_SEGMENT_COMMAND_X *MACH_X MachoGetNextSegment (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_SEGMENT_COMMAND_X *Segment OPTIONAL)
 
MACH_SECTION_X *MACH_X MachoGetNextSection (IN OUT OC_MACHO_CONTEXT *Context, IN MACH_SEGMENT_COMMAND_X *Segment, IN MACH_SECTION_X *Section OPTIONAL)
 
MACH_SECTION_X *MACH_X MachoGetSectionByIndex (IN OUT OC_MACHO_CONTEXT *Context, IN UINT32 Index)
 
MACH_SECTION_X *MACH_X MachoGetSectionByAddress (IN OUT OC_MACHO_CONTEXT *Context, IN MACH_UINT_X Address)
 
UINT32 MACH_X MachoGetSymbolTable (IN OUT OC_MACHO_CONTEXT *Context, OUT CONST MACH_NLIST_X **SymbolTable, OUT CONST CHAR8 **StringTable OPTIONAL, OUT CONST MACH_NLIST_X **LocalSymbols OPTIONAL, OUT UINT32 *NumLocalSymbols OPTIONAL, OUT CONST MACH_NLIST_X **ExternalSymbols OPTIONAL, OUT UINT32 *NumExternalSymbols OPTIONAL, OUT CONST MACH_NLIST_X **UndefinedSymbols OPTIONAL, OUT UINT32 *NumUndefinedSymbols OPTIONAL)
 
UINT32 MACH_X MachoGetIndirectSymbolTable (IN OUT OC_MACHO_CONTEXT *Context, OUT CONST MACH_NLIST_X **SymbolTable)
 

Function Documentation

◆ InternalMachoExpandImage()

UINT32 MACH_X InternalMachoExpandImage ( IN OC_MACHO_CONTEXT * Context,
IN BOOLEAN CalculateSizeOnly,
OUT UINT8 * Destination,
IN UINT32 DestinationSize,
IN BOOLEAN Strip,
OUT UINT64 *FileOffset OPTIONAL )

Definition at line 271 of file HeaderX.h.

◆ InternalMachoGetFilePointerByAddress()

VOID *MACH_X InternalMachoGetFilePointerByAddress ( IN OUT OC_MACHO_CONTEXT * Context,
IN MACH_UINT_X Address,
OUT UINT32 *MaxSize OPTIONAL )

Definition at line 238 of file HeaderX.h.

◆ InternalMachoGetLastAddress()

MACH_UINT_X MACH_X InternalMachoGetLastAddress ( IN OUT OC_MACHO_CONTEXT * Context)

Definition at line 1054 of file HeaderX.h.

◆ InternalMachoGetNextCommand()

MACH_LOAD_COMMAND *MACH_X InternalMachoGetNextCommand ( IN OUT OC_MACHO_CONTEXT * Context,
IN MACH_LOAD_COMMAND_TYPE LoadCommandType,
IN CONST MACH_LOAD_COMMAND *LoadCommand OPTIONAL )

Definition at line 194 of file HeaderX.h.

◆ InternalMachoGetVmSize()

UINT32 MACH_X InternalMachoGetVmSize ( IN OUT OC_MACHO_CONTEXT * Context)

Definition at line 156 of file HeaderX.h.

◆ InternalMachoMergeSegments()

BOOLEAN MACH_X InternalMachoMergeSegments ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST CHAR8 * Prefix )

Definition at line 779 of file HeaderX.h.

◆ InternalSectionIsSane()

STATIC BOOLEAN InternalSectionIsSane ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_SECTION_X * Section,
IN CONST MACH_SEGMENT_COMMAND_X * Segment )

Provides services for Mach-O headers.

Copyright (C) 2016 - 2018, Download-Fritz. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php.

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. Returns whether Section is sane.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SectionSection to verify.
[in]SegmentSegment the section is part of.

Definition at line 27 of file HeaderX.h.

◆ InternalStripLoadCommands()

STATIC VOID InternalStripLoadCommands ( IN OUT MACH_HEADER_X * MachHeader)

Strip superfluous Load Commands from the Mach-O header. This includes the Code Signature Load Command which must be removed for the binary has been modified by the prelinking routines.

Parameters
[in,out]MachHeaderMach-O header to strip the Load Commands from.

Definition at line 97 of file HeaderX.h.

◆ MachoGetIndirectSymbolTable()

UINT32 MACH_X MachoGetIndirectSymbolTable ( IN OUT OC_MACHO_CONTEXT * Context,
OUT CONST MACH_NLIST_X ** SymbolTable )

Definition at line 1461 of file HeaderX.h.

◆ MachoGetMachHeader()

MACH_HEADER_X *MACH_X MachoGetMachHeader ( IN OUT OC_MACHO_CONTEXT * Context)

Returns the universal Mach-O Header structure.

Parameters
[in,out]ContextContext of the Mach-O.

Definition at line 1041 of file HeaderX.h.

◆ MachoGetNextSection()

MACH_SECTION_X *MACH_X MachoGetNextSection ( IN OUT OC_MACHO_CONTEXT * Context,
IN MACH_SEGMENT_COMMAND_X * Segment,
IN MACH_SECTION_X *Section OPTIONAL )

Definition at line 1256 of file HeaderX.h.

◆ MachoGetNextSegment()

MACH_SEGMENT_COMMAND_X *MACH_X MachoGetNextSegment ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_SEGMENT_COMMAND_X *Segment OPTIONAL )

Definition at line 1186 of file HeaderX.h.

◆ MachoGetSectionByAddress()

MACH_SECTION_X *MACH_X MachoGetSectionByAddress ( IN OUT OC_MACHO_CONTEXT * Context,
IN MACH_UINT_X Address )

Definition at line 1338 of file HeaderX.h.

◆ MachoGetSectionByIndex()

MACH_SECTION_X *MACH_X MachoGetSectionByIndex ( IN OUT OC_MACHO_CONTEXT * Context,
IN UINT32 Index )

Retrieves a section by its index.

Parameters
[in,out]ContextContext of the Mach-O.
[in]IndexIndex of the section to retrieve.
Return values
NULLNULL is returned on failure.

Definition at line 1289 of file HeaderX.h.

◆ MachoGetSectionByName()

MACH_SECTION_X *MACH_X MachoGetSectionByName ( IN OUT OC_MACHO_CONTEXT * Context,
IN MACH_SEGMENT_COMMAND_X * Segment,
IN CONST CHAR8 * SectionName )

Definition at line 1121 of file HeaderX.h.

◆ MachoGetSegmentByName()

MACH_SEGMENT_COMMAND_X *MACH_X MachoGetSegmentByName ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST CHAR8 * SegmentName )

Retrieves the first segment by the name of SegmentName.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SegmentNameSegment name to search for.
Return values
NULLNULL is returned on failure.

Definition at line 1086 of file HeaderX.h.

◆ MachoGetSegmentSectionByName()

MACH_SECTION_X *MACH_X MachoGetSegmentSectionByName ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST CHAR8 * SegmentName,
IN CONST CHAR8 * SectionName )

Retrieves a section within a segment by the name of SegmentName.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SegmentNameThe name of the segment to search in.
[in]SectionNameThe name of the section to search for.
Return values
NULLNULL is returned on failure.

Definition at line 1162 of file HeaderX.h.

◆ MachoGetSymbolTable()

UINT32 MACH_X MachoGetSymbolTable ( IN OUT OC_MACHO_CONTEXT * Context,
OUT CONST MACH_NLIST_X ** SymbolTable,
OUT CONST CHAR8 **StringTable OPTIONAL,
OUT CONST MACH_NLIST_X **LocalSymbols OPTIONAL,
OUT UINT32 *NumLocalSymbols OPTIONAL,
OUT CONST MACH_NLIST_X **ExternalSymbols OPTIONAL,
OUT UINT32 *NumExternalSymbols OPTIONAL,
OUT CONST MACH_NLIST_X **UndefinedSymbols OPTIONAL,
OUT UINT32 *NumUndefinedSymbols OPTIONAL )

Definition at line 1378 of file HeaderX.h.

◆ MachoInitializeContext()

BOOLEAN MACH_X MachoInitializeContext ( OUT OC_MACHO_CONTEXT * Context,
IN VOID * FileData,
IN UINT32 FileSize,
IN UINT32 HeaderOffset,
IN UINT32 InnerSize )

Definition at line 895 of file HeaderX.h.