OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
OcMachoLib.h File Reference

Go to the source code of this file.

Data Structures

struct  OC_MACHO_CONTEXT
 

Macros

#define MACHO_PAGE_SIZE   4096U
 
#define MACHO_ALIGN(x)
 

Functions

BOOLEAN MachoInitializeContext32 (OUT OC_MACHO_CONTEXT *Context, IN VOID *FileData, IN UINT32 FileSize, IN UINT32 HeaderOffset, IN UINT32 InnerSize)
 
BOOLEAN MachoInitializeContext64 (OUT OC_MACHO_CONTEXT *Context, IN VOID *FileData, IN UINT32 FileSize, IN UINT32 HeaderOffset, IN UINT32 InnerSize)
 
BOOLEAN MachoInitializeContext (OUT OC_MACHO_CONTEXT *Context, IN VOID *FileData, IN UINT32 FileSize, IN UINT32 HeaderOffset, IN UINT32 InnerSize, IN BOOLEAN Is32Bit)
 
MACH_HEADER_ANYMachoGetMachHeader (IN OUT OC_MACHO_CONTEXT *Context)
 
UINT32 MachoGetInnerSize (IN OUT OC_MACHO_CONTEXT *Context)
 
MACH_HEADERMachoGetMachHeader32 (IN OUT OC_MACHO_CONTEXT *Context)
 
MACH_HEADER_64MachoGetMachHeader64 (IN OUT OC_MACHO_CONTEXT *Context)
 
VOID * MachoGetFileData (IN OUT OC_MACHO_CONTEXT *Context)
 
UINT32 MachoGetFileSize (IN OUT OC_MACHO_CONTEXT *Context)
 
UINT32 MachoGetVmSize (IN OUT OC_MACHO_CONTEXT *Context)
 
UINT64 MachoGetLastAddress (IN OUT OC_MACHO_CONTEXT *Context)
 
MACH_UUID_COMMANDMachoGetUuid (IN OUT OC_MACHO_CONTEXT *Context)
 
MACH_SEGMENT_COMMAND_ANYMachoGetSegmentByName (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *SegmentName)
 
MACH_SEGMENT_COMMANDMachoGetSegmentByName32 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *SegmentName)
 
MACH_SEGMENT_COMMAND_64MachoGetSegmentByName64 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *SegmentName)
 
MACH_SECTION_ANYMachoGetSectionByName (IN OUT OC_MACHO_CONTEXT *Context, IN MACH_SEGMENT_COMMAND_ANY *Segment, IN CONST CHAR8 *SectionName)
 
MACH_SECTIONMachoGetSectionByName32 (IN OUT OC_MACHO_CONTEXT *Context, IN MACH_SEGMENT_COMMAND *Segment, IN CONST CHAR8 *SectionName)
 
MACH_SECTION_64MachoGetSectionByName64 (IN OUT OC_MACHO_CONTEXT *Context, IN MACH_SEGMENT_COMMAND_64 *Segment, IN CONST CHAR8 *SectionName)
 
MACH_SECTION_ANYMachoGetSegmentSectionByName (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *SegmentName, IN CONST CHAR8 *SectionName)
 
MACH_SECTIONMachoGetSegmentSectionByName32 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *SegmentName, IN CONST CHAR8 *SectionName)
 
MACH_SECTION_64MachoGetSegmentSectionByName64 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *SegmentName, IN CONST CHAR8 *SectionName)
 
MACH_SEGMENT_COMMAND_ANYMachoGetNextSegment (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_SEGMENT_COMMAND_ANY *Segment OPTIONAL)
 
MACH_SEGMENT_COMMANDMachoGetNextSegment32 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_SEGMENT_COMMAND *Segment OPTIONAL)
 
MACH_SEGMENT_COMMAND_64MachoGetNextSegment64 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_SEGMENT_COMMAND_64 *Segment OPTIONAL)
 
MACH_SECTION_ANYMachoGetNextSection (IN OUT OC_MACHO_CONTEXT *Context, IN MACH_SEGMENT_COMMAND_ANY *Segment, IN MACH_SECTION_ANY *Section OPTIONAL)
 
MACH_SECTIONMachoGetNextSection32 (IN OUT OC_MACHO_CONTEXT *Context, IN MACH_SEGMENT_COMMAND *Segment, IN MACH_SECTION *Section OPTIONAL)
 
MACH_SECTION_64MachoGetNextSection64 (IN OUT OC_MACHO_CONTEXT *Context, IN MACH_SEGMENT_COMMAND_64 *Segment, IN MACH_SECTION_64 *Section OPTIONAL)
 
MACH_SECTION_ANYMachoGetSectionByIndex (IN OUT OC_MACHO_CONTEXT *Context, IN UINT32 Index)
 
MACH_SECTIONMachoGetSectionByIndex32 (IN OUT OC_MACHO_CONTEXT *Context, IN UINT32 Index)
 
MACH_SECTION_64MachoGetSectionByIndex64 (IN OUT OC_MACHO_CONTEXT *Context, IN UINT32 Index)
 
MACH_SECTIONMachoGetSectionByAddress32 (IN OUT OC_MACHO_CONTEXT *Context, IN UINT32 Address)
 
MACH_SECTION_64MachoGetSectionByAddress64 (IN OUT OC_MACHO_CONTEXT *Context, IN UINT64 Address)
 
BOOLEAN MachoMergeSegments (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *Prefix)
 
BOOLEAN MachoSymbolIsSection32 (IN CONST MACH_NLIST *Symbol)
 
BOOLEAN MachoSymbolIsSection64 (IN CONST MACH_NLIST_64 *Symbol)
 
BOOLEAN MachoSymbolIsDefined (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST_ANY *Symbol)
 
BOOLEAN MachoSymbolIsDefined32 (IN CONST MACH_NLIST *Symbol)
 
BOOLEAN MachoSymbolIsDefined64 (IN CONST MACH_NLIST_64 *Symbol)
 
BOOLEAN MachoSymbolIsLocalDefined (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST_ANY *Symbol)
 
BOOLEAN MachoSymbolIsLocalDefined32 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST *Symbol)
 
BOOLEAN MachoSymbolIsLocalDefined64 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST_64 *Symbol)
 
MACH_NLIST_ANYMachoGetLocalDefinedSymbolByName (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *Name)
 
MACH_NLISTMachoGetLocalDefinedSymbolByName32 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *Name)
 
MACH_NLIST_64MachoGetLocalDefinedSymbolByName64 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *Name)
 
MACH_NLIST_ANYMachoGetSymbolByIndex (IN OUT OC_MACHO_CONTEXT *Context, IN UINT32 Index)
 
MACH_NLISTMachoGetSymbolByIndex32 (IN OUT OC_MACHO_CONTEXT *Context, IN UINT32 Index)
 
MACH_NLIST_64MachoGetSymbolByIndex64 (IN OUT OC_MACHO_CONTEXT *Context, IN UINT32 Index)
 
CONST CHAR8 * MachoGetSymbolName (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST_ANY *Symbol)
 
CONST CHAR8 * MachoGetSymbolName32 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST *Symbol)
 
CONST CHAR8 * MachoGetSymbolName64 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST_64 *Symbol)
 
CONST CHAR8 * MachoGetIndirectSymbolName (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST_ANY *Symbol)
 
CONST CHAR8 * MachoGetIndirectSymbolName32 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST *Symbol)
 
CONST CHAR8 * MachoGetIndirectSymbolName64 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST_64 *Symbol)
 
BOOLEAN MachoIsSymbolValueInRange (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST_ANY *Symbol)
 
BOOLEAN MachoIsSymbolValueInRange32 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST *Symbol)
 
BOOLEAN MachoIsSymbolValueInRange64 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST_64 *Symbol)
 
BOOLEAN MachoGetSymbolByRelocationOffset32 (IN OUT OC_MACHO_CONTEXT *Context, IN UINT32 Address, OUT MACH_NLIST **Symbol)
 
BOOLEAN MachoGetSymbolByRelocationOffset64 (IN OUT OC_MACHO_CONTEXT *Context, IN UINT64 Address, OUT MACH_NLIST_64 **Symbol)
 
BOOLEAN MachoGetSymbolByExternRelocationOffset (IN OUT OC_MACHO_CONTEXT *Context, IN UINT64 Address, OUT MACH_NLIST_ANY **Symbol)
 
BOOLEAN MachoGetSymbolByExternRelocationOffset32 (IN OUT OC_MACHO_CONTEXT *Context, IN UINT32 Address, OUT MACH_NLIST **Symbol)
 
BOOLEAN MachoGetSymbolByExternRelocationOffset64 (IN OUT OC_MACHO_CONTEXT *Context, IN UINT64 Address, OUT MACH_NLIST_64 **Symbol)
 
BOOLEAN MachoRelocateSymbol (IN OUT OC_MACHO_CONTEXT *Context, IN UINT64 LinkAddress, IN OUT MACH_NLIST_ANY *Symbol)
 
BOOLEAN MachoRelocateSymbol32 (IN OUT OC_MACHO_CONTEXT *Context, IN UINT32 LinkAddress, IN OUT MACH_NLIST *Symbol)
 
BOOLEAN MachoRelocateSymbol64 (IN OUT OC_MACHO_CONTEXT *Context, IN UINT64 LinkAddress, IN OUT MACH_NLIST_64 *Symbol)
 
BOOLEAN MachoSymbolGetFileOffset32 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST *Symbol, OUT UINT32 *FileOffset, OUT UINT32 *MaxSize OPTIONAL)
 
BOOLEAN MachoSymbolGetFileOffset64 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST_64 *Symbol, OUT UINT32 *FileOffset, OUT UINT32 *MaxSize OPTIONAL)
 
BOOLEAN MachoSymbolGetFileOffset (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST_ANY *Symbol, OUT UINT32 *FileOffset, OUT UINT32 *MaxSize OPTIONAL)
 
BOOLEAN MachoSymbolGetDirectFileOffset (IN OUT OC_MACHO_CONTEXT *Context, IN UINT64 Address, OUT UINT32 *FileOffset, OUT UINT32 *MaxSize OPTIONAL)
 
BOOLEAN MachoSymbolNameIsPureVirtual (IN CONST CHAR8 *Name)
 
BOOLEAN MachoSymbolNameIsPadslot (IN CONST CHAR8 *Name)
 
BOOLEAN MachoSymbolNameIsSmcp (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *SymbolName)
 
BOOLEAN MachoSymbolNameIsMetaclassPointer (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *SymbolName)
 
BOOLEAN MachoGetClassNameFromSuperMetaClassPointer (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *SmcpName, IN UINTN ClassNameSize, OUT CHAR8 *ClassName)
 
CONST CHAR8 * MachoGetClassNameFromVtableName (IN CONST CHAR8 *VtableName)
 
BOOLEAN MachoGetFunctionPrefixFromClassName (IN CONST CHAR8 *ClassName, IN UINTN FunctionPrefixSize, OUT CHAR8 *FunctionPrefix)
 
BOOLEAN MachoGetClassNameFromMetaClassPointer (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *MetaClassName, IN UINTN ClassNameSize, OUT CHAR8 *ClassName)
 
BOOLEAN MachoGetVtableNameFromClassName (IN CONST CHAR8 *ClassName, IN UINTN VtableNameSize, OUT CHAR8 *VtableName)
 
BOOLEAN MachoGetMetaVtableNameFromClassName (IN CONST CHAR8 *ClassName, IN UINTN VtableNameSize, OUT CHAR8 *VtableName)
 
BOOLEAN MachoGetFinalSymbolNameFromClassName (IN CONST CHAR8 *ClassName, IN UINTN FinalSymbolNameSize, OUT CHAR8 *FinalSymbolName)
 
BOOLEAN MachoSymbolNameIsVtable (IN CONST CHAR8 *SymbolName)
 
BOOLEAN MachoSymbolNameIsCxx (IN CONST CHAR8 *Name)
 
MACH_NLIST_ANYMachoGetMetaclassSymbolFromSmcpSymbol (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST_ANY *Smcp)
 
MACH_NLISTMachoGetMetaclassSymbolFromSmcpSymbol32 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST *Smcp)
 
MACH_NLIST_64MachoGetMetaclassSymbolFromSmcpSymbol64 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_NLIST_64 *Smcp)
 
BOOLEAN MachoGetVtableSymbolsFromSmcp (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *SmcpName, OUT CONST MACH_NLIST_ANY **Vtable, OUT CONST MACH_NLIST_ANY **MetaVtable)
 
BOOLEAN MachoGetVtableSymbolsFromSmcp32 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *SmcpName, OUT CONST MACH_NLIST **Vtable, OUT CONST MACH_NLIST **MetaVtable)
 
BOOLEAN MachoGetVtableSymbolsFromSmcp64 (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *SmcpName, OUT CONST MACH_NLIST_64 **Vtable, OUT CONST MACH_NLIST_64 **MetaVtable)
 
BOOLEAN MachoRelocationIsPairIntel32 (IN UINT8 Type)
 
BOOLEAN MachoRelocationIsPairIntel64 (IN UINT8 Type)
 
BOOLEAN MachoIsRelocationPairTypeIntel64 (IN UINT8 Type)
 
BOOLEAN MachoPreserveRelocationIntel64 (IN UINT8 Type)
 
BOOLEAN MachoInitialiseSymtabsExternal (IN OUT OC_MACHO_CONTEXT *Context, IN OC_MACHO_CONTEXT *SymsContext)
 
UINT32 MachoGetSymbolTable (IN OUT OC_MACHO_CONTEXT *Context, OUT CONST MACH_NLIST_ANY **SymbolTable, OUT CONST CHAR8 **StringTable OPTIONAL, OUT CONST MACH_NLIST_ANY **LocalSymbols OPTIONAL, OUT UINT32 *NumLocalSymbols OPTIONAL, OUT CONST MACH_NLIST_ANY **ExternalSymbols OPTIONAL, OUT UINT32 *NumExternalSymbols OPTIONAL, OUT CONST MACH_NLIST_ANY **UndefinedSymbols OPTIONAL, OUT UINT32 *NumUndefinedSymbols OPTIONAL)
 
UINT32 MachoGetSymbolTable32 (IN OUT OC_MACHO_CONTEXT *Context, OUT CONST MACH_NLIST **SymbolTable, OUT CONST CHAR8 **StringTable OPTIONAL, OUT CONST MACH_NLIST **LocalSymbols OPTIONAL, OUT UINT32 *NumLocalSymbols OPTIONAL, OUT CONST MACH_NLIST **ExternalSymbols OPTIONAL, OUT UINT32 *NumExternalSymbols OPTIONAL, OUT CONST MACH_NLIST **UndefinedSymbols OPTIONAL, OUT UINT32 *NumUndefinedSymbols OPTIONAL)
 
UINT32 MachoGetSymbolTable64 (IN OUT OC_MACHO_CONTEXT *Context, OUT CONST MACH_NLIST_64 **SymbolTable, OUT CONST CHAR8 **StringTable OPTIONAL, OUT CONST MACH_NLIST_64 **LocalSymbols OPTIONAL, OUT UINT32 *NumLocalSymbols OPTIONAL, OUT CONST MACH_NLIST_64 **ExternalSymbols OPTIONAL, OUT UINT32 *NumExternalSymbols OPTIONAL, OUT CONST MACH_NLIST_64 **UndefinedSymbols OPTIONAL, OUT UINT32 *NumUndefinedSymbols OPTIONAL)
 
UINT32 MachoGetIndirectSymbolTable (IN OUT OC_MACHO_CONTEXT *Context, OUT CONST MACH_NLIST_ANY **SymbolTable)
 
UINT32 MachoGetIndirectSymbolTable32 (IN OUT OC_MACHO_CONTEXT *Context, OUT CONST MACH_NLIST **SymbolTable)
 
UINT32 MachoGetIndirectSymbolTable64 (IN OUT OC_MACHO_CONTEXT *Context, OUT CONST MACH_NLIST_64 **SymbolTable)
 
VOID * MachoGetFilePointerByAddress (IN OUT OC_MACHO_CONTEXT *Context, IN UINT64 Address, OUT UINT32 *MaxSize OPTIONAL)
 
UINT32 MachoExpandImage (IN OC_MACHO_CONTEXT *Context, OUT UINT8 *Destination, IN UINT32 DestinationSize, IN BOOLEAN Strip, OUT UINT64 *FileOffset OPTIONAL)
 
UINT32 MachoGetExpandedImageSize (IN OC_MACHO_CONTEXT *Context)
 
UINT64 MachoRuntimeGetEntryAddress (IN VOID *Image)
 
MACH_LOAD_COMMANDMachoGetNextCommand (IN OUT OC_MACHO_CONTEXT *Context, IN MACH_LOAD_COMMAND_TYPE LoadCommandType, IN CONST MACH_LOAD_COMMAND *LoadCommand OPTIONAL)
 
EFI_STATUS FatGetArchitectureOffset (IN CONST UINT8 *Buffer, IN UINT32 BufferSize, IN UINT32 FullSize, IN MACH_CPU_TYPE CpuType, OUT UINT32 *FatOffset, OUT UINT32 *FatSize)
 
EFI_STATUS FatFilterArchitectureByType (IN OUT UINT8 **FileData, IN OUT UINT32 *FileSize, IN MACH_CPU_TYPE CpuType)
 
EFI_STATUS FatFilterArchitecture32 (IN OUT UINT8 **FileData, IN OUT UINT32 *FileSize)
 
EFI_STATUS FatFilterArchitecture64 (IN OUT UINT8 **FileData, IN OUT UINT32 *FileSize)
 

Detailed Description

Provides Mach-O parsing helper functions.

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.

Definition in file OcMachoLib.h.

Macro Definition Documentation

◆ MACHO_ALIGN

#define MACHO_ALIGN ( x)
Value:
ALIGN_VALUE((x), MACHO_PAGE_SIZE)
UINT16 x
Definition BmfFile.h:83
#define MACHO_PAGE_SIZE
Definition OcMachoLib.h:23

Macro to align by default assumed page size.

Definition at line 28 of file OcMachoLib.h.

◆ MACHO_PAGE_SIZE

#define MACHO_PAGE_SIZE   4096U

Default assumed page size.

Definition at line 23 of file OcMachoLib.h.

Function Documentation

◆ FatFilterArchitecture32()

EFI_STATUS FatFilterArchitecture32 ( IN OUT UINT8 ** FileData,
IN OUT UINT32 * FileSize )

Moves file pointer and size to point to x86 slice in case FAT Mach-O is used.

Parameters
[in,out]FileDataPointer to pointer of the file's data.
[in,out]FileSizePointer to file size of FileData.
Returns
EFI_SUCCESS if no FAT, or a valid 32-bit arch exists.

Definition at line 142 of file MachoFat.c.

◆ FatFilterArchitecture64()

EFI_STATUS FatFilterArchitecture64 ( IN OUT UINT8 ** FileData,
IN OUT UINT32 * FileSize )

Moves file pointer and size to point to x86_64 slice in case FAT Mach-O is used.

Parameters
[in,out]FileDataPointer to pointer of the file's data.
[in,out]FileSizePointer to file size of FileData.
Returns
EFI_SUCCESS if no FAT, or a valid 64-bit arch exists.

Definition at line 151 of file MachoFat.c.

◆ FatFilterArchitectureByType()

EFI_STATUS FatFilterArchitectureByType ( IN OUT UINT8 ** FileData,
IN OUT UINT32 * FileSize,
IN MACH_CPU_TYPE CpuType )

Moves file pointer and size to point to specified slice in case FAT Mach-O is used.

Parameters
[in,out]FileDataPointer to pointer of the file's data.
[in,out]FileSizePointer to file size of FileData.
[in]CpuTypeDesired CPU slice to use.
Returns
EFI_SUCCESS if no FAT, or arch was found in valid FAT image.

Definition at line 116 of file MachoFat.c.

◆ FatGetArchitectureOffset()

EFI_STATUS FatGetArchitectureOffset ( IN CONST UINT8 * Buffer,
IN UINT32 BufferSize,
IN UINT32 FullSize,
IN MACH_CPU_TYPE CpuType,
OUT UINT32 * FatOffset,
OUT UINT32 * FatSize )

Returns offset and size of specified slice in case FAT Mach-O is used. If no FAT is detected, FatOffset and FatSize are set to 0 and FullSize respectively.

Parameters
[in]BufferPointer to the buffer data.
[in]BufferSizeSize of Buffer.
[in]FullSizeFull file size, used to validate sizes within FAT structure.
[in]CpuTypeDesired CPU slice to use.
[out]FatOffsetPointer to offset of FAT slice.
[out]FatSizePointer to size of FAT slice.
Returns
EFI_SUCCESS if no FAT, or arch was found in valid FAT image.

Definition at line 27 of file MachoFat.c.

◆ MachoExpandImage()

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

Expand Mach-O image to Destination (make segment file sizes equal to vm sizes).

Parameters
[in]ContextContext of the Mach-O.
[out]DestinationOutput buffer.
[in]DestinationSizeOutput buffer maximum size.
[in]StripOutput with stripped prelink commands.
[in]FileOffsetPointer to the file offset of the first segment.
Returns
New image size or 0 on failure.

Definition at line 645 of file Header.c.

◆ MachoGetClassNameFromMetaClassPointer()

BOOLEAN MachoGetClassNameFromMetaClassPointer ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST CHAR8 * MetaClassName,
IN UINTN ClassNameSize,
OUT CHAR8 * ClassName )

Retrieves the class name of a Meta Class Pointer.

Parameters
[in,out]ContextContext of the Mach-O.
[in]MetaClassNameMCP Symbol name to get the class name of.
[in]ClassNameSizeThe size of ClassName.
[out]ClassNameThe output buffer for the class name.
Returns
Whether the name has been retrieved successfully.

Definition at line 204 of file CxxSymbols.c.

◆ MachoGetClassNameFromSuperMetaClassPointer()

BOOLEAN MachoGetClassNameFromSuperMetaClassPointer ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST CHAR8 * SmcpName,
IN UINTN ClassNameSize,
OUT CHAR8 * ClassName )

Retrieves the class name of a Super Meta Class Pointer.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SmcpNameSMCP Symbol name to get the class name of.
[in]ClassNameSizeThe size of ClassName.
[out]ClassNameThe output buffer for the class name.
Returns
Whether the name has been retrieved successfully.

Definition at line 116 of file CxxSymbols.c.

◆ MachoGetClassNameFromVtableName()

CONST CHAR8 * MachoGetClassNameFromVtableName ( IN CONST CHAR8 * VtableName)

Retrieves the class name of a VTable.

Parameters
[out]VtableNameThe VTable's name.

Definition at line 152 of file CxxSymbols.c.

◆ MachoGetExpandedImageSize()

UINT32 MachoGetExpandedImageSize ( IN OC_MACHO_CONTEXT * Context)

Calculates size required for expanded Mach-O image using MachoExpandImage().

Parameters
[in]ContextContext of the Mach-O.
Returns
New image size or 0 on failure.

Definition at line 661 of file Header.c.

◆ MachoGetFileData()

VOID * MachoGetFileData ( IN OUT OC_MACHO_CONTEXT * Context)

Returns the file data of the Mach-O.

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

Definition at line 66 of file Header.c.

◆ MachoGetFilePointerByAddress()

VOID * MachoGetFilePointerByAddress ( IN OUT OC_MACHO_CONTEXT * Context,
IN UINT64 Address,
OUT UINT32 *MaxSize OPTIONAL )

Returns a pointer to the Mach-O file at the specified virtual address.

Parameters
[in,out]ContextContext of the Mach-O.
[in]AddressVirtual address to look up.
[out]MaxSizeMaximum data safely available from FileOffset. If NULL is returned, the output is undefined.

Definition at line 627 of file Header.c.

◆ MachoGetFileSize()

UINT32 MachoGetFileSize ( IN OUT OC_MACHO_CONTEXT * Context)

Returns the Mach-O's file size.

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

Definition at line 77 of file Header.c.

◆ MachoGetFinalSymbolNameFromClassName()

BOOLEAN MachoGetFinalSymbolNameFromClassName ( IN CONST CHAR8 * ClassName,
IN UINTN FinalSymbolNameSize,
OUT CHAR8 * FinalSymbolName )

Retrieves the final symbol name of a class name.

Parameters
[in]ClassNameClass name to get the final symbol name of.
[in]FinalSymbolNameSizeThe size of FinalSymbolName.
[out]FinalSymbolNameThe output buffer for the final symbol name.
Returns
Whether the name has been retrieved successfully.

Definition at line 327 of file CxxSymbols.c.

◆ MachoGetFunctionPrefixFromClassName()

BOOLEAN MachoGetFunctionPrefixFromClassName ( IN CONST CHAR8 * ClassName,
IN UINTN FunctionPrefixSize,
OUT CHAR8 * FunctionPrefix )

Retrieves the function prefix of a class name.

Parameters
[in]ClassNameThe class name to evaluate.
[in]FunctionPrefixSizeThe size of FunctionPrefix.
[out]FunctionPrefixThe output buffer for the function prefix.
Returns
Whether the name has been retrieved successfully.

Definition at line 165 of file CxxSymbols.c.

◆ MachoGetIndirectSymbolName()

CONST CHAR8 * MachoGetIndirectSymbolName ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST_ANY * Symbol )

Retrieves a Symbol's name.

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

Definition at line 93 of file Symbols.c.

◆ MachoGetIndirectSymbolName32()

CONST CHAR8 * MachoGetIndirectSymbolName32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST * Symbol )

Retrieves a 32-bit Symbol's name.

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

◆ MachoGetIndirectSymbolName64()

CONST CHAR8 * MachoGetIndirectSymbolName64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST_64 * Symbol )

Retrieves a 64-bit Symbol's name.

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

◆ MachoGetIndirectSymbolTable()

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

Obtain indirect symbol table.

Parameters
[in]ContextContext of the Mach-O.
[in,out]SymbolTableIndirect symbol table.
Returns
number of symbols in indirect symbol table or 0.

Definition at line 559 of file Header.c.

◆ MachoGetIndirectSymbolTable32()

UINT32 MachoGetIndirectSymbolTable32 ( IN OUT OC_MACHO_CONTEXT * Context,
OUT CONST MACH_NLIST ** SymbolTable )

Obtain indirect 32-bit symbol table.

Parameters
[in]ContextContext of the Mach-O.
[in,out]SymbolTableIndirect symbol table.
Returns
number of symbols in indirect symbol table or 0.

◆ MachoGetIndirectSymbolTable64()

UINT32 MachoGetIndirectSymbolTable64 ( IN OUT OC_MACHO_CONTEXT * Context,
OUT CONST MACH_NLIST_64 ** SymbolTable )

Obtain indirect 64-bit symbol table.

Parameters
[in]ContextContext of the Mach-O.
[in,out]SymbolTableIndirect symbol table.
Returns
number of symbols in indirect symbol table or 0.

◆ MachoGetInnerSize()

UINT32 MachoGetInnerSize ( IN OUT OC_MACHO_CONTEXT * Context)

Returns the size of the inner Mach-O file (otherwise, the file size).

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

Definition at line 55 of file Header.c.

◆ MachoGetLastAddress()

UINT64 MachoGetLastAddress ( IN OUT OC_MACHO_CONTEXT * Context)

Returns the last virtual address of a Mach-O.

Parameters
[in]ContextContext of the Mach-O.
Return values
0The binary is malformed.

Definition at line 99 of file Header.c.

◆ MachoGetLocalDefinedSymbolByName()

MACH_NLIST_ANY * MachoGetLocalDefinedSymbolByName ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST CHAR8 * Name )

Retrieves a locally defined symbol by its name.

Parameters
[in]ContextContext of the Mach-O.
[in]NameName of the symbol to locate.

Definition at line 54 of file Symbols.c.

◆ MachoGetLocalDefinedSymbolByName32()

MACH_NLIST * MachoGetLocalDefinedSymbolByName32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST CHAR8 * Name )

Retrieves a locally defined 32-bit symbol by its name.

Parameters
[in]ContextContext of the Mach-O.
[in]NameName of the symbol to locate.

◆ MachoGetLocalDefinedSymbolByName64()

MACH_NLIST_64 * MachoGetLocalDefinedSymbolByName64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST CHAR8 * Name )

Retrieves a locally defined 64-bit symbol by its name.

Parameters
[in]ContextContext of the Mach-O.
[in]NameName of the symbol to locate.

◆ MachoGetMachHeader()

MACH_HEADER_ANY * 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 44 of file Header.c.

◆ MachoGetMachHeader32()

MACH_HEADER * MachoGetMachHeader32 ( IN OUT OC_MACHO_CONTEXT * Context)

Returns the 32-bit Mach-O Header structure.

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

◆ MachoGetMachHeader64()

MACH_HEADER_64 * MachoGetMachHeader64 ( IN OUT OC_MACHO_CONTEXT * Context)

Returns the 64-bit Mach-O Header structure.

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

◆ MachoGetMetaclassSymbolFromSmcpSymbol()

MACH_NLIST_ANY * MachoGetMetaclassSymbolFromSmcpSymbol ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST_ANY * Smcp )

Retrieves Metaclass symbol of a SMCP.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SmcpThe SMCP to evaluate.
Return values
NULLNULL is returned on failure.

Definition at line 400 of file CxxSymbols.c.

◆ MachoGetMetaclassSymbolFromSmcpSymbol32()

MACH_NLIST * MachoGetMetaclassSymbolFromSmcpSymbol32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST * Smcp )

Retrieves 32-bit Metaclass symbol of a SMCP.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SmcpThe SMCP to evaluate.
Return values
NULLNULL is returned on failure.

◆ MachoGetMetaclassSymbolFromSmcpSymbol64()

MACH_NLIST_64 * MachoGetMetaclassSymbolFromSmcpSymbol64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST_64 * Smcp )

Retrieves 64-bit Metaclass symbol of a SMCP.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SmcpThe SMCP to evaluate.
Return values
NULLNULL is returned on failure.

◆ MachoGetMetaVtableNameFromClassName()

BOOLEAN MachoGetMetaVtableNameFromClassName ( IN CONST CHAR8 * ClassName,
IN UINTN VtableNameSize,
OUT CHAR8 * VtableName )

Retrieves the Meta VTable name of a class name.

Parameters
[in]ClassNameClass name to get the Meta VTable name of.
[in]VtableNameSizeThe size of VtableName.
[out]VtableNameThe output buffer for the VTable name.
Returns
Whether the name has been retrieved successfully.

Definition at line 279 of file CxxSymbols.c.

◆ MachoGetNextCommand()

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

Retrieves the next Load Command of type LoadCommandType.

Parameters
[in,out]ContextContext of the Mach-O.
[in]LoadCommandTypeType of the Load Command to retrieve.
[in]LoadCommandPrevious Load Command. If NULL, the first match is returned.
Return values
NULLNULL is returned on failure.

Definition at line 110 of file Header.c.

◆ MachoGetNextSection()

MACH_SECTION_ANY * MachoGetNextSection ( IN OUT OC_MACHO_CONTEXT * Context,
IN MACH_SEGMENT_COMMAND_ANY * Segment,
IN MACH_SECTION_ANY *Section OPTIONAL )

Retrieves the next section of a segment.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SegmentThe segment to get the section of.
[in]SectionThe section to get the successor of.
Return values
NULLNULL is returned on failure.

Definition at line 173 of file Header.c.

◆ MachoGetNextSection32()

MACH_SECTION * MachoGetNextSection32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN MACH_SEGMENT_COMMAND * Segment,
IN MACH_SECTION *Section OPTIONAL )

Retrieves the next 32-bit section of a segment.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SegmentThe segment to get the section of.
[in]SectionThe section to get the successor of.
Return values
NULLNULL is returned on failure.

◆ MachoGetNextSection64()

MACH_SECTION_64 * MachoGetNextSection64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN MACH_SEGMENT_COMMAND_64 * Segment,
IN MACH_SECTION_64 *Section OPTIONAL )

Retrieves the next 64-bit section of a segment.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SegmentThe segment to get the section of.
[in]SectionThe section to get the successor of.
Return values
NULLNULL is returned on failure.

◆ MachoGetNextSegment()

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

Retrieves the next segment.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SegmentSegment to retrieve the successor of. if NULL, the first segment is returned.
Return values
NULLNULL is returned on failure.

Definition at line 160 of file Header.c.

◆ MachoGetNextSegment32()

MACH_SEGMENT_COMMAND * MachoGetNextSegment32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_SEGMENT_COMMAND *Segment OPTIONAL )

Retrieves the next 32-bit segment.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SegmentSegment to retrieve the successor of. if NULL, the first segment is returned.
Return values
NULLNULL is returned on failure.

◆ MachoGetNextSegment64()

MACH_SEGMENT_COMMAND_64 * MachoGetNextSegment64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_SEGMENT_COMMAND_64 *Segment OPTIONAL )

Retrieves the next 64-bit segment.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SegmentSegment to retrieve the successor of. if NULL, the first segment is returned.
Return values
NULLNULL is returned on failure.

◆ MachoGetSectionByAddress32()

MACH_SECTION * MachoGetSectionByAddress32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN UINT32 Address )

Retrieves a 32-bit section by its address.

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

◆ MachoGetSectionByAddress64()

MACH_SECTION_64 * MachoGetSectionByAddress64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN UINT64 Address )

Retrieves a 64-bit section by its address.

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

◆ MachoGetSectionByIndex()

MACH_SECTION_ANY * 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 188 of file Header.c.

◆ MachoGetSectionByIndex32()

MACH_SECTION * MachoGetSectionByIndex32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN UINT32 Index )

Retrieves a 32-bit 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.

◆ MachoGetSectionByIndex64()

MACH_SECTION_64 * MachoGetSectionByIndex64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN UINT32 Index )

Retrieves a 64-bit 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.

◆ MachoGetSectionByName()

MACH_SECTION_ANY * MachoGetSectionByName ( IN OUT OC_MACHO_CONTEXT * Context,
IN MACH_SEGMENT_COMMAND_ANY * Segment,
IN CONST CHAR8 * SectionName )

Retrieves the first section by the name of SectionName.

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

Definition at line 214 of file Header.c.

◆ MachoGetSectionByName32()

MACH_SECTION * MachoGetSectionByName32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN MACH_SEGMENT_COMMAND * Segment,
IN CONST CHAR8 * SectionName )

Retrieves the first 32-bit section by the name of SectionName.

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

◆ MachoGetSectionByName64()

MACH_SECTION_64 * MachoGetSectionByName64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN MACH_SEGMENT_COMMAND_64 * Segment,
IN CONST CHAR8 * SectionName )

Retrieves the first 64-bit section by the name of SectionName.

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

◆ MachoGetSegmentByName()

MACH_SEGMENT_COMMAND_ANY * 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 201 of file Header.c.

◆ MachoGetSegmentByName32()

MACH_SEGMENT_COMMAND * MachoGetSegmentByName32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST CHAR8 * SegmentName )

Retrieves the first 32-bit 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.

◆ MachoGetSegmentByName64()

MACH_SEGMENT_COMMAND_64 * MachoGetSegmentByName64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST CHAR8 * SegmentName )

Retrieves the first 64-bit 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.

◆ MachoGetSegmentSectionByName()

MACH_SECTION_ANY * 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 228 of file Header.c.

◆ MachoGetSegmentSectionByName32()

MACH_SECTION * MachoGetSegmentSectionByName32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST CHAR8 * SegmentName,
IN CONST CHAR8 * SectionName )

Retrieves a 32-bit 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.

◆ MachoGetSegmentSectionByName64()

MACH_SECTION_64 * MachoGetSegmentSectionByName64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST CHAR8 * SegmentName,
IN CONST CHAR8 * SectionName )

Retrieves a 64-bit 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.

◆ MachoGetSymbolByExternRelocationOffset()

BOOLEAN MachoGetSymbolByExternRelocationOffset ( IN OUT OC_MACHO_CONTEXT * Context,
IN UINT64 Address,
OUT MACH_NLIST_ANY ** Symbol )

Retrieves the symbol referenced by the extern Relocation targeting Address.

Parameters
[in,out]ContextContext of the Mach-O.
[in]AddressAddress to search for.
[out]SymbolBuffer to output the symbol referenced by the Relocation into. The output is undefined when FALSE is returned. May be NULL.
Returns
Whether the Relocation exists.

Definition at line 119 of file Symbols.c.

◆ MachoGetSymbolByExternRelocationOffset32()

BOOLEAN MachoGetSymbolByExternRelocationOffset32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN UINT32 Address,
OUT MACH_NLIST ** Symbol )

Retrieves the 32-bit symbol referenced by the extern Relocation targeting Address.

Parameters
[in,out]ContextContext of the Mach-O.
[in]AddressAddress to search for.
[out]SymbolBuffer to output the symbol referenced by the Relocation into. The output is undefined when FALSE is returned. May be NULL.
Returns
Whether the Relocation exists.

◆ MachoGetSymbolByExternRelocationOffset64()

BOOLEAN MachoGetSymbolByExternRelocationOffset64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN UINT64 Address,
OUT MACH_NLIST_64 ** Symbol )

Retrieves the 64-bit symbol referenced by the extern Relocation targeting Address.

Parameters
[in,out]ContextContext of the Mach-O.
[in]AddressAddress to search for.
[out]SymbolBuffer to output the symbol referenced by the Relocation into. The output is undefined when FALSE is returned. May be NULL.
Returns
Whether the Relocation exists.

◆ MachoGetSymbolByIndex()

MACH_NLIST_ANY * MachoGetSymbolByIndex ( IN OUT OC_MACHO_CONTEXT * Context,
IN UINT32 Index )

Retrieves a symbol by its index.

Parameters
[in]ContextContext of the Mach-O.
[in]IndexIndex of the symbol to locate.
Return values
NULLNULL is returned on failure.

Definition at line 67 of file Symbols.c.

◆ MachoGetSymbolByIndex32()

MACH_NLIST * MachoGetSymbolByIndex32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN UINT32 Index )

Retrieves a 32-bit symbol by its index.

Parameters
[in]ContextContext of the Mach-O.
[in]IndexIndex of the symbol to locate.
Return values
NULLNULL is returned on failure.

◆ MachoGetSymbolByIndex64()

MACH_NLIST_64 * MachoGetSymbolByIndex64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN UINT32 Index )

Retrieves a 64-bit symbol by its index.

Parameters
[in]ContextContext of the Mach-O.
[in]IndexIndex of the symbol to locate.
Return values
NULLNULL is returned on failure.

◆ MachoGetSymbolByRelocationOffset32()

BOOLEAN MachoGetSymbolByRelocationOffset32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN UINT32 Address,
OUT MACH_NLIST ** Symbol )

Retrieves the 32-bit symbol referenced by the Relocation targeting Address.

Parameters
[in,out]ContextContext of the Mach-O.
[in]AddressAddress to search for.
[out]SymbolBuffer to output the symbol referenced by the Relocation into. The output is undefined when FALSE is returned. May be NULL.
Returns
Whether the Relocation exists.

◆ MachoGetSymbolByRelocationOffset64()

BOOLEAN MachoGetSymbolByRelocationOffset64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN UINT64 Address,
OUT MACH_NLIST_64 ** Symbol )

Retrieves the 64-bit symbol referenced by the Relocation targeting Address.

Parameters
[in,out]ContextContext of the Mach-O.
[in]AddressAddress to search for.
[out]SymbolBuffer to output the symbol referenced by the Relocation into. The output is undefined when FALSE is returned. May be NULL.
Returns
Whether the Relocation exists.

◆ MachoGetSymbolName()

CONST CHAR8 * MachoGetSymbolName ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST_ANY * Symbol )

Retrieves a Symbol's name.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SymbolSymbol to retrieve the name of.
Return values
symbolname.

Definition at line 80 of file Symbols.c.

◆ MachoGetSymbolName32()

CONST CHAR8 * MachoGetSymbolName32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST * Symbol )

Retrieves a 32-bit Symbol's name.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SymbolSymbol to retrieve the name of.
Return values
symbolname.

◆ MachoGetSymbolName64()

CONST CHAR8 * MachoGetSymbolName64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST_64 * Symbol )

Retrieves a 64-bit Symbol's name.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SymbolSymbol to retrieve the name of.
Return values
symbolname.

◆ MachoGetSymbolTable()

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

Obtain symbol tables.

Parameters
[in]ContextContext of the Mach-O.
[out]SymbolTableSymbol table.
[out]StringTableString table for that symbol table.
[out]LocalSymbolsLocal symbol table.
[out]NumLocalSymbolsNumber of symbols in local symbol table.
[out]ExternalSymbolsExternal symbol table.
[out]NumExternalSymbolsNumber of symbols in external symbol table.
[out]UndefinedSymbolsUndefined symbol table.
[out]NumUndefinedSymbolsNumber of symbols in undefined symbol table.
Returns
number of symbols in symbol table or 0.

Definition at line 519 of file Header.c.

◆ MachoGetSymbolTable32()

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

Obtain 32-bit symbol tables.

Parameters
[in]ContextContext of the Mach-O.
[out]SymbolTableSymbol table.
[out]StringTableString table for that symbol table.
[out]LocalSymbolsLocal symbol table.
[out]NumLocalSymbolsNumber of symbols in local symbol table.
[out]ExternalSymbolsExternal symbol table.
[out]NumExternalSymbolsNumber of symbols in external symbol table.
[out]UndefinedSymbolsUndefined symbol table.
[out]NumUndefinedSymbolsNumber of symbols in undefined symbol table.
Returns
number of symbols in symbol table or 0.

◆ MachoGetSymbolTable64()

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

Obtain 64-bit symbol tables.

Parameters
[in]ContextContext of the Mach-O.
[out]SymbolTableSymbol table.
[out]StringTableString table for that symbol table.
[out]LocalSymbolsLocal symbol table.
[out]NumLocalSymbolsNumber of symbols in local symbol table.
[out]ExternalSymbolsExternal symbol table.
[out]NumExternalSymbolsNumber of symbols in external symbol table.
[out]UndefinedSymbolsUndefined symbol table.
[out]NumUndefinedSymbolsNumber of symbols in undefined symbol table.
Returns
number of symbols in symbol table or 0.

◆ MachoGetUuid()

MACH_UUID_COMMAND * MachoGetUuid ( IN OUT OC_MACHO_CONTEXT * Context)

Retrieves the first UUID Load Command.

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

Definition at line 124 of file Header.c.

◆ MachoGetVmSize()

UINT32 MachoGetVmSize ( IN OUT OC_MACHO_CONTEXT * Context)

Returns the Mach-O's virtual address space size.

Parameters
[out]ContextContext of the Mach-O.

Definition at line 88 of file Header.c.

◆ MachoGetVtableNameFromClassName()

BOOLEAN MachoGetVtableNameFromClassName ( IN CONST CHAR8 * ClassName,
IN UINTN VtableNameSize,
OUT CHAR8 * VtableName )

Retrieves the VTable name of a class name.

Parameters
[in]ClassNameClass name to get the VTable name of.
[in]VtableNameSizeThe size of VtableName.
[out]VtableNameThe output buffer for the VTable name.
Returns
Whether the name has been retrieved successfully.

Definition at line 239 of file CxxSymbols.c.

◆ MachoGetVtableSymbolsFromSmcp()

BOOLEAN MachoGetVtableSymbolsFromSmcp ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST CHAR8 * SmcpName,
OUT CONST MACH_NLIST_ANY ** Vtable,
OUT CONST MACH_NLIST_ANY ** MetaVtable )

Retrieves VTable and Meta VTable of a SMCP. Logically matches XNU's get_vtable_syms_from_smcp.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SmcpNameSMCP Symbol mame to retrieve the VTables from.
[out]VtableOutput buffer for the VTable symbol pointer.
[out]MetaVtableOutput buffer for the Meta VTable symbol pointer.

Definition at line 413 of file CxxSymbols.c.

◆ MachoGetVtableSymbolsFromSmcp32()

BOOLEAN MachoGetVtableSymbolsFromSmcp32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST CHAR8 * SmcpName,
OUT CONST MACH_NLIST ** Vtable,
OUT CONST MACH_NLIST ** MetaVtable )

Retrieves 32-bit VTable and Meta VTable of a SMCP. Logically matches XNU's get_vtable_syms_from_smcp.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SmcpNameSMCP Symbol mame to retrieve the VTables from.
[out]VtableOutput buffer for the VTable symbol pointer.
[out]MetaVtableOutput buffer for the Meta VTable symbol pointer.

◆ MachoGetVtableSymbolsFromSmcp64()

BOOLEAN MachoGetVtableSymbolsFromSmcp64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST CHAR8 * SmcpName,
OUT CONST MACH_NLIST_64 ** Vtable,
OUT CONST MACH_NLIST_64 ** MetaVtable )

Retrieves 64-bit VTable and Meta VTable of a SMCP. Logically matches XNU's get_vtable_syms_from_smcp.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SmcpNameSMCP Symbol mame to retrieve the VTables from.
[out]VtableOutput buffer for the VTable symbol pointer.
[out]MetaVtableOutput buffer for the Meta VTable symbol pointer.

◆ MachoInitialiseSymtabsExternal()

BOOLEAN MachoInitialiseSymtabsExternal ( IN OUT OC_MACHO_CONTEXT * Context,
IN OC_MACHO_CONTEXT * SymsContext )

Definition at line 423 of file Header.c.

◆ MachoInitializeContext()

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

Initializes a Mach-O Context.

Parameters
[out]ContextMach-O Context to initialize.
[in]FileDataPointer to the file's expected Mach-O header.
[in]FileSizeFile size of FileData.
[in]HeaderOffsetThe amount of Bytes the Mach-O header is offset from the base (container, e.g. KC) of the file.
[in]InnerSizeThe size, in Bytes, of the inner Mach-O file.
[in]Is32BitTRUE if Mach-O is 32-bit.
Returns
Whether Context has been initialized successfully.

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.

Definition at line 29 of file Header.c.

◆ MachoInitializeContext32()

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

Initializes a 32-bit Mach-O Context.

Parameters
[out]ContextMach-O Context to initialize.
[in]FileDataPointer to the file's expected Mach-O header.
[in]FileSizeFile size of FileData.
[in]HeaderOffsetThe amount of Bytes the Mach-O header is offset from the base (container, e.g. KC) of the file.
[in]InnerSizeThe size, in Bytes, of the inner Mach-O file.
Returns
Whether Context has been initialized successfully.

◆ MachoInitializeContext64()

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

Initializes a 64-bit Mach-O Context.

Parameters
[out]ContextMach-O Context to initialize.
[in]FileDataPointer to the file's expected Mach-O header.
[in]FileSizeFile size of FileData.
[in]HeaderOffsetThe amount of Bytes the Mach-O header is offset from the base (container, e.g. KC) of the file.
[in]InnerSizeThe size, in Bytes, of the inner Mach-O file.
Returns
Whether Context has been initialized successfully.

◆ MachoIsRelocationPairTypeIntel64()

BOOLEAN MachoIsRelocationPairTypeIntel64 ( IN UINT8 Type)

Returns whether the Relocation's type matches a Pair's for the Intel 64 platform.

Parameters
[in]TypeThe Relocation's type to verify.

Definition at line 62 of file Relocations.c.

◆ MachoIsSymbolValueInRange()

BOOLEAN MachoIsSymbolValueInRange ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST_ANY * Symbol )

Returns whether the symbol's value is a valid address within the Mach-O referenced to by Context.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SymbolSymbol to verify the value of.

Definition at line 106 of file Symbols.c.

◆ MachoIsSymbolValueInRange32()

BOOLEAN MachoIsSymbolValueInRange32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST * Symbol )

Returns whether the 32-bit symbol's value is a valid address within the Mach-O referenced to by Context.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SymbolSymbol to verify the value of.

◆ MachoIsSymbolValueInRange64()

BOOLEAN MachoIsSymbolValueInRange64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST_64 * Symbol )

Returns whether the 64-bit symbol's value is a valid address within the Mach-O referenced to by Context.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SymbolSymbol to verify the value of.

◆ MachoMergeSegments()

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

Merge Mach-O segments into one with lowest protection.

Parameters
[in,out]ContextContext of the Mach-O.
[in]PrefixSegment prefix to merge.
Return values
TRUEon success

Definition at line 673 of file Header.c.

◆ MachoPreserveRelocationIntel64()

BOOLEAN MachoPreserveRelocationIntel64 ( IN UINT8 Type)

Returns whether the Relocation shall be preserved for the Intel 64 platform.

Parameters
[in]TypeThe Relocation's type to verify.

Definition at line 76 of file Relocations.c.

◆ MachoRelocateSymbol()

BOOLEAN MachoRelocateSymbol ( IN OUT OC_MACHO_CONTEXT * Context,
IN UINT64 LinkAddress,
IN OUT MACH_NLIST_ANY * Symbol )

Relocate Symbol to be against LinkAddress.

Parameters
[in,out]ContextContext of the Mach-O.
[in]LinkAddressThe address to be linked against.
[in,out]SymbolThe symbol to be relocated.
Returns
Whether the operation has been completed successfully.

Definition at line 136 of file Symbols.c.

◆ MachoRelocateSymbol32()

BOOLEAN MachoRelocateSymbol32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN UINT32 LinkAddress,
IN OUT MACH_NLIST * Symbol )

Relocate 32-bit Symbol to be against LinkAddress.

Parameters
[in,out]ContextContext of the Mach-O.
[in]LinkAddressThe address to be linked against.
[in,out]SymbolThe symbol to be relocated.
Returns
Whether the operation has been completed successfully.

◆ MachoRelocateSymbol64()

BOOLEAN MachoRelocateSymbol64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN UINT64 LinkAddress,
IN OUT MACH_NLIST_64 * Symbol )

Relocate 64-bit Symbol to be against LinkAddress.

Parameters
[in,out]ContextContext of the Mach-O.
[in]LinkAddressThe address to be linked against.
[in,out]SymbolThe symbol to be relocated.
Returns
Whether the operation has been completed successfully.

◆ MachoRelocationIsPairIntel32()

BOOLEAN MachoRelocationIsPairIntel32 ( IN UINT8 Type)

Returns whether the Relocation's type indicates a Pair for the Intel 32 platform.

Parameters
[in]TypeThe Relocation's type to verify.

Definition at line 32 of file Relocations.c.

◆ MachoRelocationIsPairIntel64()

BOOLEAN MachoRelocationIsPairIntel64 ( IN UINT8 Type)

Returns whether the Relocation's type indicates a Pair for the Intel 64 platform.

Parameters
[in]TypeThe Relocation's type to verify.

Definition at line 47 of file Relocations.c.

◆ MachoRuntimeGetEntryAddress()

UINT64 MachoRuntimeGetEntryAddress ( IN VOID * Image)

Find Mach-O entry point from LC_UNIXTHREAD loader command. This command does not verify Mach-O and assumes it is valid.

Parameters
[in]ImageLoaded Mach-O image.
Returns
Entry point or 0.

Definition at line 572 of file Header.c.

◆ MachoSymbolGetDirectFileOffset()

BOOLEAN MachoSymbolGetDirectFileOffset ( IN OUT OC_MACHO_CONTEXT * Context,
IN UINT64 Address,
OUT UINT32 * FileOffset,
OUT UINT32 *MaxSize OPTIONAL )

Retrieves the Mach-O file offset of the address pointed to by a Symbol.

Parameters
[in,out]ContextContext of the Mach-O.
[in]AddressVirtual address to retrieve the offset of.
[out]FileOffsetPointer the file offset is returned into. If FALSE is returned, the output is undefined.
[out]MaxSizeMaximum data safely available from FileOffset.
Return values
00 is returned on failure.

Definition at line 168 of file Symbols.c.

◆ MachoSymbolGetFileOffset()

BOOLEAN MachoSymbolGetFileOffset ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST_ANY * Symbol,
OUT UINT32 * FileOffset,
OUT UINT32 *MaxSize OPTIONAL )

Retrieves the Mach-O file offset of the address pointed to by a Symbol.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SymbolSymbol to retrieve the offset of.
[out]FileOffsetPointer the file offset is returned into. If FALSE is returned, the output is undefined.
[out]MaxSizeMaximum data safely available from FileOffset.
Return values
00 is returned on failure.

Definition at line 153 of file Symbols.c.

◆ MachoSymbolGetFileOffset32()

BOOLEAN MachoSymbolGetFileOffset32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST * Symbol,
OUT UINT32 * FileOffset,
OUT UINT32 *MaxSize OPTIONAL )

Retrieves the Mach-O file offset of the address pointed to by a 32-bit Symbol.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SymbolSymbol to retrieve the offset of.
[out]FileOffsetPointer the file offset is returned into. If FALSE is returned, the output is undefined.
[out]MaxSizeMaximum data safely available from FileOffset.
Return values
00 is returned on failure.

◆ MachoSymbolGetFileOffset64()

BOOLEAN MachoSymbolGetFileOffset64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST_64 * Symbol,
OUT UINT32 * FileOffset,
OUT UINT32 *MaxSize OPTIONAL )

Retrieves the Mach-O file offset of the address pointed to by a 64-bit Symbol.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SymbolSymbol to retrieve the offset of.
[out]FileOffsetPointer the file offset is returned into. If FALSE is returned, the output is undefined.
[out]MaxSizeMaximum data safely available from FileOffset.
Return values
00 is returned on failure.

◆ MachoSymbolIsDefined()

BOOLEAN MachoSymbolIsDefined ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST_ANY * Symbol )

Returns whether Symbol is defined.

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

Definition at line 28 of file Symbols.c.

◆ MachoSymbolIsDefined32()

BOOLEAN MachoSymbolIsDefined32 ( IN CONST MACH_NLIST * Symbol)

Returns whether 32-bit Symbol is defined.

Parameters
[in]SymbolSymbol to evaluate.

◆ MachoSymbolIsDefined64()

BOOLEAN MachoSymbolIsDefined64 ( IN CONST MACH_NLIST_64 * Symbol)

Returns whether 64-bit Symbol is defined.

Parameters
[in]SymbolSymbol to evaluate.

◆ MachoSymbolIsLocalDefined()

BOOLEAN MachoSymbolIsLocalDefined ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST_ANY * Symbol )

Returns whether Symbol is defined locally.

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

Definition at line 41 of file Symbols.c.

◆ MachoSymbolIsLocalDefined32()

BOOLEAN MachoSymbolIsLocalDefined32 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST * Symbol )

Returns whether 32-bit Symbol is defined locally.

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

◆ MachoSymbolIsLocalDefined64()

BOOLEAN MachoSymbolIsLocalDefined64 ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST MACH_NLIST_64 * Symbol )

Returns whether 64-bit Symbol is defined locally.

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

◆ MachoSymbolIsSection32()

BOOLEAN MachoSymbolIsSection32 ( IN CONST MACH_NLIST * Symbol)

Returns whether 32-bit Symbol describes a section.

Parameters
[in]SymbolSymbol to evaluate.

◆ MachoSymbolIsSection64()

BOOLEAN MachoSymbolIsSection64 ( IN CONST MACH_NLIST_64 * Symbol)

Returns whether 64-bit Symbol describes a section.

Parameters
[in]SymbolSymbol to evaluate.

◆ MachoSymbolNameIsCxx()

BOOLEAN MachoSymbolNameIsCxx ( IN CONST CHAR8 * Name)

Returns whether the symbol name describes a C++ symbol.

Parameters
[in]NameThe name to evaluate.

Definition at line 391 of file CxxSymbols.c.

◆ MachoSymbolNameIsMetaclassPointer()

BOOLEAN MachoSymbolNameIsMetaclassPointer ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST CHAR8 * SymbolName )

Returns whether SymbolName defines a Super Metaclass Pointer.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SymbolNameThe symbol name to check.

Definition at line 88 of file CxxSymbols.c.

◆ MachoSymbolNameIsPadslot()

BOOLEAN MachoSymbolNameIsPadslot ( IN CONST CHAR8 * Name)

Returns whether Name is a Padslot.

Parameters
[in]NameThe name to evaluate.

Definition at line 51 of file CxxSymbols.c.

◆ MachoSymbolNameIsPureVirtual()

BOOLEAN MachoSymbolNameIsPureVirtual ( IN CONST CHAR8 * Name)

Returns whether Name is pure virtual.

Parameters
[in]NameThe name to evaluate.

Definition at line 42 of file CxxSymbols.c.

◆ MachoSymbolNameIsSmcp()

BOOLEAN MachoSymbolNameIsSmcp ( IN OUT OC_MACHO_CONTEXT * Context,
IN CONST CHAR8 * SymbolName )

Returns whether SymbolName defines a Super Metaclass Pointer.

Parameters
[in,out]ContextContext of the Mach-O.
[in]SymbolNameThe symbol name to check.

Definition at line 60 of file CxxSymbols.c.

◆ MachoSymbolNameIsVtable()

BOOLEAN MachoSymbolNameIsVtable ( IN CONST CHAR8 * SymbolName)

Returns whether SymbolName defines a VTable.

Parameters
[in]SymbolNameThe symbol name to check.

Definition at line 379 of file CxxSymbols.c.