OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
OcApfsConnect.c File Reference
#include "OcApfsInternal.h"
#include <Library/BaseLib.h>
#include <Library/BaseOverflowLib.h>
#include <Library/DebugLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/OcApfsLib.h>
#include <Library/OcPeCoffExtLib.h>
#include <Library/OcAppleSecureBootLib.h>
#include <Library/OcBootManagementLib.h>
#include <Library/OcConsoleLib.h>
#include <Library/OcDriverConnectionLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/UefiRuntimeServicesTableLib.h>
#include <Guid/OcVariable.h>
#include <Protocol/ApfsUnsupportedBds.h>
#include <Protocol/DevicePath.h>
#include <Protocol/LoadedImage.h>
#include <Protocol/SimpleFileSystem.h>

Go to the source code of this file.

Functions

STATIC EFI_STATUS ApfsCheckOpenCoreScanPolicy (IN EFI_HANDLE Handle)
 
STATIC EFI_STATUS ApfsVerifyDriverVersion (IN APFS_PRIVATE_DATA *PrivateData, IN VOID *DriverBuffer, IN UINT32 DriverSize)
 
STATIC EFI_STATUS ApfsRegisterPartition (IN EFI_HANDLE Handle, IN EFI_BLOCK_IO_PROTOCOL *BlockIo, IN APFS_NX_SUPERBLOCK *SuperBlock, OUT APFS_PRIVATE_DATA **PrivateDataPointer)
 
STATIC EFI_STATUS ApfsStartDriver (IN APFS_PRIVATE_DATA *PrivateData, IN VOID *DriverBuffer, IN UINT32 DriverSize)
 
STATIC EFI_STATUS ApfsConnectDevice (IN EFI_HANDLE Handle, IN EFI_BLOCK_IO_PROTOCOL *BlockIo)
 
VOID OcApfsConfigure (IN UINT64 MinVersion, IN UINT32 MinDate, IN UINT32 ScanPolicy, IN BOOLEAN GlobalConnect, IN BOOLEAN DisconnectHandles, IN BOOLEAN IgnoreVerbose)
 
EFI_STATUS OcApfsConnectHandle (IN EFI_HANDLE Handle, IN BOOLEAN VerifyPolicy)
 

Variables

LIST_ENTRY mApfsPrivateDataList = INITIALIZE_LIST_HEAD_VARIABLE (mApfsPrivateDataList)
 
STATIC UINT64 mApfsMinimalVersion = OC_APFS_VERSION_DEFAULT
 
STATIC UINT32 mApfsMinimalDate = OC_APFS_DATE_DEFAULT
 
STATIC UINT32 mOcScanPolicy
 
STATIC BOOLEAN mIgnoreVerbose
 
STATIC BOOLEAN mGlobalConnect
 
STATIC BOOLEAN mDisconnectHandles
 
STATIC EFI_SYSTEM_TABLE * mNullSystemTable
 
STATIC UINT64 mApfsBlacklistedVersions []
 

Detailed Description

Copyright (C) 2020, vit9696. All rights reserved.

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 OcApfsConnect.c.

Function Documentation

◆ ApfsCheckOpenCoreScanPolicy()

STATIC EFI_STATUS ApfsCheckOpenCoreScanPolicy ( IN EFI_HANDLE Handle)

Definition at line 53 of file OcApfsConnect.c.

◆ ApfsConnectDevice()

STATIC EFI_STATUS ApfsConnectDevice ( IN EFI_HANDLE Handle,
IN EFI_BLOCK_IO_PROTOCOL * BlockIo )

Definition at line 385 of file OcApfsConnect.c.

◆ ApfsRegisterPartition()

STATIC EFI_STATUS ApfsRegisterPartition ( IN EFI_HANDLE Handle,
IN EFI_BLOCK_IO_PROTOCOL * BlockIo,
IN APFS_NX_SUPERBLOCK * SuperBlock,
OUT APFS_PRIVATE_DATA ** PrivateDataPointer )

Definition at line 184 of file OcApfsConnect.c.

◆ ApfsStartDriver()

STATIC EFI_STATUS ApfsStartDriver ( IN APFS_PRIVATE_DATA * PrivateData,
IN VOID * DriverBuffer,
IN UINT32 DriverSize )

Definition at line 236 of file OcApfsConnect.c.

◆ ApfsVerifyDriverVersion()

STATIC EFI_STATUS ApfsVerifyDriverVersion ( IN APFS_PRIVATE_DATA * PrivateData,
IN VOID * DriverBuffer,
IN UINT32 DriverSize )

< From apfs kernel extension.

Definition at line 85 of file OcApfsConnect.c.

◆ OcApfsConfigure()

VOID OcApfsConfigure ( IN UINT64 MinVersion,
IN UINT32 MinDate,
IN UINT32 ScanPolicy,
IN BOOLEAN GlobalConnect,
IN BOOLEAN DisconnectHandles,
IN BOOLEAN IgnoreVerbose )

Configure APFS driver loading for subsequent connections.

Parameters
[in]MinVersionMinimal allowed APFS driver version to load.
[in]MinDateMinimal allowed APFS driver date to load.
[in]ScanPolicyOpenCore scan policy.
[in]GlobalConnectPerform global device connection for APFS.
[in]DisconnectHandlesPerform handle disconnection prior to connection.
[in]IgnoreVerboseAvoid APFS driver verbose output.

Definition at line 434 of file OcApfsConnect.c.

◆ OcApfsConnectHandle()

EFI_STATUS OcApfsConnectHandle ( IN EFI_HANDLE Handle,
IN BOOLEAN VerifyPolicy )

Connect APFS driver to a device at handle.

Parameters
[in]HandleDevice handle (APFS container).
[in]VerifyPolicyApply ScanPolicy rules.
Return values
EFI_SUCCESSif the device was connected.

Definition at line 469 of file OcApfsConnect.c.

Variable Documentation

◆ mApfsBlacklistedVersions

STATIC UINT64 mApfsBlacklistedVersions[]
Initial value:
= {
4294966999999999999ULL
}

Definition at line 47 of file OcApfsConnect.c.

◆ mApfsMinimalDate

STATIC UINT32 mApfsMinimalDate = OC_APFS_DATE_DEFAULT

Definition at line 36 of file OcApfsConnect.c.

◆ mApfsMinimalVersion

STATIC UINT64 mApfsMinimalVersion = OC_APFS_VERSION_DEFAULT

Definition at line 35 of file OcApfsConnect.c.

◆ mApfsPrivateDataList

LIST_ENTRY mApfsPrivateDataList = INITIALIZE_LIST_HEAD_VARIABLE (mApfsPrivateDataList)

List of discovered partitions.

Definition at line 34 of file OcApfsConnect.c.

◆ mDisconnectHandles

STATIC BOOLEAN mDisconnectHandles

Definition at line 40 of file OcApfsConnect.c.

◆ mGlobalConnect

STATIC BOOLEAN mGlobalConnect

Definition at line 39 of file OcApfsConnect.c.

◆ mIgnoreVerbose

STATIC BOOLEAN mIgnoreVerbose

Definition at line 38 of file OcApfsConnect.c.

◆ mNullSystemTable

STATIC EFI_SYSTEM_TABLE* mNullSystemTable

Definition at line 41 of file OcApfsConnect.c.

◆ mOcScanPolicy

STATIC UINT32 mOcScanPolicy

Definition at line 37 of file OcApfsConnect.c.