OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
OcStorageLib.h
Go to the documentation of this file.
1
15#ifndef OC_STORAGE_LIB_H
16#define OC_STORAGE_LIB_H
17
18#include <Library/BaseOverflowLib.h>
19#include <Library/OcCryptoLib.h>
20#include <Library/OcFileLib.h>
22
26#define OC_STORAGE_VAULT_PATH L"vault.plist"
27
31#define OC_STORAGE_VAULT_SIGNATURE_PATH L"vault.sig"
32
36#define OC_STORAGE_VAULT_VERSION 1
37
41#define OC_STORAGE_SAFE_PATH_MAX 128
42
46#define OC_STORAGE_VAULT_HASH_FIELDS(_, __) \
47 _(UINT8 , Hash , [SHA256_DIGEST_SIZE] , {0} , () )
48OC_DECLARE (OC_STORAGE_VAULT_HASH)
49
50#define OC_STORAGE_VAULT_FILES_FIELDS(_, __) \
51 OC_MAP (OC_STRING, OC_STORAGE_VAULT_HASH, _, __)
52OC_DECLARE (OC_STORAGE_VAULT_FILES)
53
54#define OC_STORAGE_VAULT_FIELDS(_, __) \
55 _(UINT32 , Version , , 0 , () ) \
56 _(OC_STORAGE_VAULT_FILES , Files , , OC_CONSTR (OC_STORAGE_VAULT_FILES, _, __) , OC_DESTR (OC_STORAGE_VAULT_FILES))
57OC_DECLARE (OC_STORAGE_VAULT)
58
59
62typedef struct {
66 EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *FileSystem;
70 EFI_HANDLE StorageHandle;
74 EFI_DEVICE_PATH_PROTOCOL *StoragePath;
78 CONST CHAR16 *StorageRoot;
82 EFI_FILE_PROTOCOL *Storage;
90 EFI_DEVICE_PATH_PROTOCOL *DummyDevicePath;
94 EFI_DEVICE_PATH_PROTOCOL *DummyFilePath;
98 OC_STORAGE_VAULT Vault;
102 BOOLEAN HasVault;
104
117EFI_STATUS
119 OUT OC_STORAGE_CONTEXT *Context,
120 IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *FileSystem,
121 IN EFI_HANDLE StorageHandle OPTIONAL,
122 IN EFI_DEVICE_PATH_PROTOCOL *StoragePath OPTIONAL,
123 IN CONST CHAR16 *StorageRoot,
124 IN OC_RSA_PUBLIC_KEY *StorageKey OPTIONAL
125 );
126
132VOID
134 IN OUT OC_STORAGE_CONTEXT *Context
135 );
136
145BOOLEAN
147 IN OC_STORAGE_CONTEXT *Context,
148 IN CONST CHAR16 *FilePath
149 );
150
164VOID *
166 IN OC_STORAGE_CONTEXT *Context,
167 IN CONST CHAR16 *FilePath,
168 OUT UINT32 *FileSize OPTIONAL
169 );
170
183EFI_STATUS
185 IN OC_STORAGE_CONTEXT *Context,
186 IN CONST CHAR16 *FilePath,
187 OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
188 OUT EFI_HANDLE *StorageHandle,
189 OUT EFI_DEVICE_PATH_PROTOCOL **StoragePath,
190 IN BOOLEAN RealPath
191 );
192
193#endif // OC_STORAGE_LIB_H
DMG_FILEPATH_DEVICE_PATH FilePath
BOOLEAN OcStorageExistsFileUnicode(IN OC_STORAGE_CONTEXT *Context, IN CONST CHAR16 *FilePath)
EFI_STATUS OcStorageInitFromFs(OUT OC_STORAGE_CONTEXT *Context, IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *FileSystem, IN EFI_HANDLE StorageHandle OPTIONAL, IN EFI_DEVICE_PATH_PROTOCOL *StoragePath OPTIONAL, IN CONST CHAR16 *StorageRoot, IN OC_RSA_PUBLIC_KEY *StorageKey OPTIONAL)
VOID * OcStorageReadFileUnicode(IN OC_STORAGE_CONTEXT *Context, IN CONST CHAR16 *FilePath, OUT UINT32 *FileSize OPTIONAL)
EFI_STATUS OcStorageGetInfo(IN OC_STORAGE_CONTEXT *Context, IN CONST CHAR16 *FilePath, OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath, OUT EFI_HANDLE *StorageHandle, OUT EFI_DEVICE_PATH_PROTOCOL **StoragePath, IN BOOLEAN RealPath)
VOID OcStorageFree(IN OUT OC_STORAGE_CONTEXT *Context)
#define OC_DECLARE(Name)
EFI_FILE_PROTOCOL * Storage
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL * FileSystem
EFI_DEVICE_PATH_PROTOCOL * DummyFilePath
OC_STORAGE_VAULT Vault
EFI_DEVICE_PATH_PROTOCOL * DummyDevicePath
EFI_HANDLE StorageHandle
EFI_DEVICE_PATH_PROTOCOL * StoragePath
CONST CHAR16 * StorageRoot
EFI_HANDLE DummyStorageHandle