Skip to content
This repository has been archived by the owner on May 17, 2020. It is now read-only.

Commit

Permalink
Move private data structure of ApfsJumpStart into ApfsDriverLoader
Browse files Browse the repository at this point in the history
  • Loading branch information
Savva Mitrofanov committed Sep 2, 2018
1 parent 7e49b40 commit 303beed
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 39 deletions.
39 changes: 0 additions & 39 deletions Include/Protocol/ApfsEfiBootRecordInfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,22 +19,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#ifndef APPLE_FILESYSTEM_EFIBOOTRECORD_INFO_PROTOCOL_H_
#define APPLE_FILESYSTEM_EFIBOOTRECORD_INFO_PROTOCOL_H_

#define APPLE_FILESYSTEM_DRIVER_INFO_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('A', 'F', 'J', 'S')

#define APPLE_FILESYSTEM_EFIBOOTRECORD_INFO_PROTOCOL_GUID \
{ 0x03B8D751, 0xA02F, 0x4FF8, {0x9B, 0x1A, 0x55, 0x24, 0xAF, 0xA3, 0x94, 0x5F } }


typedef struct _UNKNOWNFIELD
{
UINT32 Unknown1;
EFI_HANDLE Handle;
EFI_HANDLE AgentHandle;
UINT8 Unknown2[88];
UINT64 Unknown3;
} UNKNOWNFIELD;


typedef struct _APPLE_FILESYSTEM_EFIBOOTRECORD_LOCATION_INFO
{
//
Expand All @@ -47,32 +34,6 @@ typedef struct _APPLE_FILESYSTEM_EFIBOOTRECORD_LOCATION_INFO
EFI_GUID ContainerUuid;
} APPLE_FILESYSTEM_EFIBOOTRECORD_LOCATION_INFO;

//
// Private data structure gathered from original Apple driver
//
typedef struct _APPLE_FILESYSTEM_DRIVER_INFO_PRIVATE_DATA
{
UINT32 Magic;
EFI_HANDLE ControllerHandle;
EFI_HANDLE DriverBindingHandle;
APPLE_FILESYSTEM_EFIBOOTRECORD_LOCATION_INFO EfiBootRecordLocationInfo;
UINT8 Unknown1[24];
EFI_EVENT NotifyEvent;
VOID *ApfsDriverPtr;
UINT32 ApfsDriverSize;
UINT32 ContainerBlockSize;
UINT64 ContainerTotalBlocks;
UINT8 Unknown2[4];
UINT32 Unknown3;
EFI_BLOCK_IO_PROTOCOL *BlockIoInterface;
UNKNOWNFIELD *Unknown4;
UINT64 UnknownAddress;
} APPLE_FILESYSTEM_DRIVER_INFO_PRIVATE_DATA;


#define APPLE_FILESYSTEM_EFIBOOTRECORD_INFO_PRIVATE_DATA_FROM_THIS(a) \
CR(a, APPLE_FILESYSTEM_DRIVER_INFO_PRIVATE_DATA, EfiBootRecordLocationInfo, APPLE_FILESYSTEM_DRIVER_INFO_PRIVATE_DATA_SIGNATURE)

extern EFI_GUID gAppleFileSystemEfiBootRecordInfoProtocolGuid;

#endif // APPLE_FILESYSTEM_EFIBOOTRECORD_INFO_PROTOCOL_H_
36 changes: 36 additions & 0 deletions Platform/ApfsDriverLoader/ApfsDriverLoader.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,42 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#ifndef APFS_DRIVER_LOADER_H_
#define APFS_DRIVER_LOADER_H_

#define APPLE_FILESYSTEM_DRIVER_INFO_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('A', 'F', 'J', 'S')

typedef struct _UNKNOWNFIELD
{
UINT32 Unknown1;
EFI_HANDLE Handle;
EFI_HANDLE AgentHandle;
UINT8 Unknown2[88];
UINT64 Unknown3;
} UNKNOWNFIELD;

//
// Private ApfsJumpStart structure
//
typedef struct _APPLE_FILESYSTEM_DRIVER_INFO_PRIVATE_DATA
{
UINT32 Magic;
EFI_HANDLE ControllerHandle;
EFI_HANDLE DriverBindingHandle;
APPLE_FILESYSTEM_EFIBOOTRECORD_LOCATION_INFO EfiBootRecordLocationInfo;
UINT8 Unknown1[24];
EFI_EVENT NotifyEvent;
VOID *ApfsDriverPtr;
UINT32 ApfsDriverSize;
UINT32 ContainerBlockSize;
UINT64 ContainerTotalBlocks;
UINT8 Unknown2[4];
UINT32 Unknown3;
EFI_BLOCK_IO_PROTOCOL *BlockIoInterface;
UNKNOWNFIELD *Unknown4;
UINT64 UnknownAddress;
} APPLE_FILESYSTEM_DRIVER_INFO_PRIVATE_DATA;

#define APPLE_FILESYSTEM_EFIBOOTRECORD_INFO_PRIVATE_DATA_FROM_THIS(a) \
CR(a, APPLE_FILESYSTEM_DRIVER_INFO_PRIVATE_DATA, EfiBootRecordLocationInfo, APPLE_FILESYSTEM_DRIVER_INFO_PRIVATE_DATA_SIGNATURE)

//
// Container Superblock magic
// 'NXSB'
Expand Down

0 comments on commit 303beed

Please sign in to comment.