mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-12-17 15:18:06 +01:00
7c0aa811ec
Signed-off-by: Sergey Isakov <isakov-sl@bk.ru>
67 lines
2.3 KiB
C
67 lines
2.3 KiB
C
/** @file
|
|
|
|
Module Name:
|
|
|
|
FSInject.h
|
|
|
|
Definitions for private EFI_SIMPLE_FILE_SYSTEM_PROTOCOL and EFI_FILE_PROTOCOL implementations.
|
|
|
|
initial version - dmazar
|
|
|
|
**/
|
|
|
|
#ifndef __FSInject_H__
|
|
#define __FSInject_H__
|
|
|
|
/**
|
|
* FSInjection EFI_SIMPLE_FILE_SYSTEM_PROTOCOL private structure
|
|
*/
|
|
typedef struct {
|
|
UINT64 Signature; // identification signature
|
|
|
|
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL FS; // public EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
|
|
|
|
EFI_HANDLE *TgtHandle; // target handle we are attached to
|
|
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *TgtFS; // target FS we are replacing
|
|
CHAR16 *TgtDir; // target dir where injection will be done
|
|
|
|
EFI_HANDLE *SrcHandle; // handle where injection dir is
|
|
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SrcFS; // FS with injection dir we are replacing
|
|
CHAR16 *SrcDir; // injection dir that contains files that will be injected into TgtDir
|
|
|
|
FSI_STRING_LIST *Blacklist; // linked list of file names to be blocked on target volume
|
|
FSI_STRING_LIST *ForceLoadKexts;// linked list of kext plists
|
|
} FSI_SIMPLE_FILE_SYSTEM_PROTOCOL;
|
|
|
|
/** Signature for FSI_SIMPLE_FILE_SYSTEM_PROTOCOL */
|
|
#define FSI_SIMPLE_FILE_SYSTEM_PROTOCOL_SIGNATURE SIGNATURE_32('f', 'i', 'f', 's')
|
|
|
|
/** Macro to access FSI_SIMPLE_FILE_SYSTEM_PROTOCOL from public FS */
|
|
#define FSI_FROM_SIMPLE_FILE_SYSTEM(a) CR (a, FSI_SIMPLE_FILE_SYSTEM_PROTOCOL, FS, FSI_SIMPLE_FILE_SYSTEM_PROTOCOL_SIGNATURE)
|
|
|
|
|
|
|
|
/**
|
|
* FSInjection EFI_FILE_PROTOCOL private structure.
|
|
*/
|
|
typedef struct {
|
|
UINT64 Signature; // identification signature
|
|
|
|
EFI_FILE_PROTOCOL FP; // public EFI_FILE_PROTOCOL
|
|
|
|
FSI_SIMPLE_FILE_SYSTEM_PROTOCOL *FSI_FS; // FS protocol that created this structure
|
|
CHAR16 *FName; // file name this structure represents
|
|
BOOLEAN IsDir; // true after GetInfo if this file is directory
|
|
EFI_FILE_PROTOCOL *TgtFP; // target EFI_FILE_PROTOCOL
|
|
EFI_FILE_PROTOCOL *SrcFP; // EFI_FILE_PROTOCOL from injection volume
|
|
BOOLEAN FromTgt; // TRUE if file is opened from original target volume, FALSE if from injection volume
|
|
} FSI_FILE_PROTOCOL;
|
|
|
|
/** Signature for FSI_FILE_PROTOCOL */
|
|
#define FSI_FILE_PROTOCOL_SIGNATURE SIGNATURE_32('f', 'i', 'f', 'p')
|
|
|
|
/** Macro to access FSI_FILE_PROTOCOL from public FP */
|
|
#define FSI_FROM_FILE_PROTOCOL(a) CR (a, FSI_FILE_PROTOCOL, FP, FSI_FILE_PROTOCOL_SIGNATURE)
|
|
|
|
|
|
#endif |