OpenCore
1.0.4
OpenCore Bootloader
|
#include <Base.h>
#include <IndustryStandard/AppleMachoImage.h>
#include <Library/BaseLib.h>
#include <Library/BaseOverflowLib.h>
#include <Library/DebugLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/OcAppleKernelLib.h>
#include <Library/OcMachoLib.h>
#include "PrelinkedInternal.h"
Go to the source code of this file.
Functions | |
CONST PRELINKED_VTABLE * | InternalGetOcVtableByNameWorker (IN PRELINKED_CONTEXT *Context, IN PRELINKED_KEXT *Kext, IN CONST CHAR8 *Name) |
CONST PRELINKED_VTABLE * | InternalGetOcVtableByName (IN PRELINKED_CONTEXT *Context, IN PRELINKED_KEXT *Kext, IN CONST CHAR8 *Name) |
STATIC VOID | InternalConstructVtablePrelinked (IN PRELINKED_CONTEXT *Context, IN OUT PRELINKED_KEXT *Kext, IN CONST OC_PRELINKED_VTABLE_LOOKUP_ENTRY *VtableLookup, OUT PRELINKED_VTABLE *Vtable) |
BOOLEAN | InternalGetVtableEntries (IN BOOLEAN Is32Bit, IN CONST VOID *VtableData, IN UINT32 MaxSize, OUT UINT32 *NumEntries) |
BOOLEAN | InternalPrepareCreateVtablesPrelinked (IN PRELINKED_KEXT *Kext, IN UINT32 MaxSize, OUT UINT32 *NumVtables, OUT OC_PRELINKED_VTABLE_LOOKUP_ENTRY *Vtables) |
VOID | InternalCreateVtablesPrelinked (IN PRELINKED_CONTEXT *Context, IN OUT PRELINKED_KEXT *Kext, IN UINT32 NumVtables, IN CONST OC_PRELINKED_VTABLE_LOOKUP_ENTRY *VtableLookups, OUT PRELINKED_VTABLE *VtableBuffer) |
STATIC BOOLEAN | InternalPatchVtableSymbol (IN OUT OC_MACHO_CONTEXT *MachoContext, IN CONST PRELINKED_VTABLE_ENTRY *ParentEntry, IN CONST CHAR8 *VtableName, OUT MACH_NLIST_ANY *Symbol) |
STATIC BOOLEAN | InternalInitializeVtableByEntriesAndRelocations (IN PRELINKED_CONTEXT *Context, IN PRELINKED_KEXT *Kext, IN CONST PRELINKED_VTABLE *SuperVtable, IN CONST MACH_NLIST_ANY *VtableSymbol, IN CONST VOID *VtableData, IN UINT32 NumSolveSymbols, IN OUT MACH_NLIST_ANY **SolveSymbols, OUT PRELINKED_VTABLE *Vtable) |
STATIC BOOLEAN | InternalInitializeVtablePatchData (IN OUT OC_MACHO_CONTEXT *MachoContext, IN CONST MACH_NLIST_ANY *VtableSymbol, IN OUT UINT32 *MaxSize, OUT VOID **VtableDataPtr, OUT UINT32 *NumEntries, OUT UINT32 *NumSymbols, OUT MACH_NLIST_ANY **SolveSymbols) |
BOOLEAN | InternalPatchByVtables (IN PRELINKED_CONTEXT *Context, IN OUT PRELINKED_KEXT *Kext) |
Library handling KEXT prelinking.
Copyright (c) 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 Vtables.c.
STATIC VOID InternalConstructVtablePrelinked | ( | IN PRELINKED_CONTEXT * | Context, |
IN OUT PRELINKED_KEXT * | Kext, | ||
IN CONST OC_PRELINKED_VTABLE_LOOKUP_ENTRY * | VtableLookup, | ||
OUT PRELINKED_VTABLE * | Vtable ) |
VOID InternalCreateVtablesPrelinked | ( | IN PRELINKED_CONTEXT * | Context, |
IN OUT PRELINKED_KEXT * | Kext, | ||
IN UINT32 | NumVtables, | ||
IN CONST OC_PRELINKED_VTABLE_LOOKUP_ENTRY * | VtableLookups, | ||
OUT PRELINKED_VTABLE * | VtableBuffer ) |
CONST PRELINKED_VTABLE * InternalGetOcVtableByName | ( | IN PRELINKED_CONTEXT * | Context, |
IN PRELINKED_KEXT * | Kext, | ||
IN CONST CHAR8 * | Name ) |
CONST PRELINKED_VTABLE * InternalGetOcVtableByNameWorker | ( | IN PRELINKED_CONTEXT * | Context, |
IN PRELINKED_KEXT * | Kext, | ||
IN CONST CHAR8 * | Name ) |
BOOLEAN InternalGetVtableEntries | ( | IN BOOLEAN | Is32Bit, |
IN CONST VOID * | VtableData, | ||
IN UINT32 | MaxSize, | ||
OUT UINT32 * | NumEntries ) |
STATIC BOOLEAN InternalInitializeVtableByEntriesAndRelocations | ( | IN PRELINKED_CONTEXT * | Context, |
IN PRELINKED_KEXT * | Kext, | ||
IN CONST PRELINKED_VTABLE * | SuperVtable, | ||
IN CONST MACH_NLIST_ANY * | VtableSymbol, | ||
IN CONST VOID * | VtableData, | ||
IN UINT32 | NumSolveSymbols, | ||
IN OUT MACH_NLIST_ANY ** | SolveSymbols, | ||
OUT PRELINKED_VTABLE * | Vtable ) |
STATIC BOOLEAN InternalInitializeVtablePatchData | ( | IN OUT OC_MACHO_CONTEXT * | MachoContext, |
IN CONST MACH_NLIST_ANY * | VtableSymbol, | ||
IN OUT UINT32 * | MaxSize, | ||
OUT VOID ** | VtableDataPtr, | ||
OUT UINT32 * | NumEntries, | ||
OUT UINT32 * | NumSymbols, | ||
OUT MACH_NLIST_ANY ** | SolveSymbols ) |
BOOLEAN InternalPatchByVtables | ( | IN PRELINKED_CONTEXT * | Context, |
IN OUT PRELINKED_KEXT * | Kext ) |
STATIC BOOLEAN InternalPatchVtableSymbol | ( | IN OUT OC_MACHO_CONTEXT * | MachoContext, |
IN CONST PRELINKED_VTABLE_ENTRY * | ParentEntry, | ||
IN CONST CHAR8 * | VtableName, | ||
OUT MACH_NLIST_ANY * | Symbol ) |
BOOLEAN InternalPrepareCreateVtablesPrelinked | ( | IN PRELINKED_KEXT * | Kext, |
IN UINT32 | MaxSize, | ||
OUT UINT32 * | NumVtables, | ||
OUT OC_PRELINKED_VTABLE_LOOKUP_ENTRY * | Vtables ) |