OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
AppleRamDisk.h
Go to the documentation of this file.
1
15#ifndef APPLE_RAM_DISK_PROTOCOL_H
16#define APPLE_RAM_DISK_PROTOCOL_H
17
18#include <Protocol/BlockIo.h>
19#include <Protocol/DevicePath.h>
20
25#define APPLE_RAM_DISK_PROTOCOL_GUID \
26 { 0x957932CC, 0x7E8E, 0x433B, \
27 { 0x8F, 0x41, 0xD3, 0x91, 0xEA, 0x3C, 0x10, 0xF8 } }
28
32#define APPLE_DMG_BOOT_PROTOCOL_REVISION 3
33
37#define APPLE_RAM_DISK_EXTENT_SIGNATURE 0x544E5458444D4152ULL
38
42#define APPLE_RAM_DISK_EXTENT_VERSION 0x10000U
43
47#define APPLE_RAM_DISK_MAX_EXTENTS 0xFE
48
49#pragma pack(push, 1)
50
59typedef PACKED struct {
64 UINT64 Start;
68 UINT64 Length;
70
74typedef PACKED struct {
78 UINT64 Signature;
82 UINT32 Version;
94 UINT64 Reserved;
98 UINT64 Signature2;
100
104typedef PACKED struct {
108 UINT64 ExtentCount;
112 UINT64 Reserved1;
116 UINT64 DiskSize;
124 UINT64 Reserved2;
134
138typedef PACKED struct {
146 VENDOR_DEVICE_PATH Vendor;
150 UINT32 Counter;
152
156typedef PACKED struct {
164 MEMMAP_DEVICE_PATH MemMap;
166
170typedef PACKED struct {
187 MEMMAP_DEVICE_PATH MemMap;
191 EFI_DEVICE_PATH_PROTOCOL End;
193
194#pragma pack(pop)
195
224typedef
225EFI_STATUS
226(EFIAPI *APPLE_RAM_DISK_CREATE)(
227 IN UINT64 BlockCount OPTIONAL,
228 IN UINT32 BlockSize OPTIONAL,
229 IN BOOLEAN AllocateMemory,
230 IN BOOLEAN ReserveMemory,
231 OUT EFI_HANDLE *Handle
232 );
233
247typedef
248EFI_STATUS
249(EFIAPI *APPLE_RAM_DISK_DESTROY)(
250 IN EFI_HANDLE Handle
251 );
252
265typedef
266EFI_STATUS
268 IN EFI_HANDLE Handle,
269 OUT APPLE_RAM_DISK_CONTEXT *Context
270 );
271
281
282STATIC_ASSERT (sizeof (APPLE_RAM_DISK_DP_VENDOR) == 24, "Invalid APPLE_RAM_DISK_DP_VENDOR size");
283STATIC_ASSERT (sizeof (APPLE_RAM_DISK_DP) == 52, "Invalid APPLE_RAM_DISK_DP size");
284STATIC_ASSERT (sizeof (APPLE_RAM_DISK_EXTENT) == 16, "Invalid APPLE_RAM_DISK_EXTENT size");
285STATIC_ASSERT (sizeof (APPLE_RAM_DISK_EXTENT_TABLE) == 4096, "Invalid APPLE_RAM_DISK_EXTENT_TABLE size");
286STATIC_ASSERT (sizeof (APPLE_RAM_DISK_CONTEXT) == 8192, "Invalid APPLE_RAM_DISK_CONTEXT size");
287
288extern EFI_GUID gAppleRamDiskProtocolGuid;
289
299#define APPLE_RAM_DISK_INSTANCE_SIGNATURE 0x444D4152U
300
305#define APPLE_RAM_DISK_DEFAULT_SIZE 0xA00000U
306
341
384
385#endif // APPLE_RAM_DISK_PROTOCOL_H
UINT16 BlockSize
Definition Apm.h:32
#define APPLE_RAM_DISK_MAX_EXTENTS
UINT32 Version
UINT64 Start
STATIC_ASSERT(sizeof(APPLE_RAM_DISK_DP_VENDOR)==24, "Invalid APPLE_RAM_DISK_DP_VENDOR size")
UINT64 Reserved1
PACKED struct @53 APPLE_RAM_DISK_EXTENT
UINT64 Reserved
UINT64 Signature
UINT64 DiskSize
APPLE_RAM_DISK_EXTENT Extents[APPLE_RAM_DISK_MAX_EXTENTS]
VENDOR_DEVICE_PATH Vendor
UINT64 Signature2
EFI_DEVICE_PATH_PROTOCOL End
UINT32 Counter
EFI_GUID gAppleRamDiskProtocolGuid
APPLE_RAM_DISK_EXTENT_TABLE ExtentTable
EFI_STATUS(EFIAPI * APPLE_RAM_DISK_CREATE)(IN UINT64 BlockCount OPTIONAL, IN UINT32 BlockSize OPTIONAL, IN BOOLEAN AllocateMemory, IN BOOLEAN ReserveMemory, OUT EFI_HANDLE *Handle)
EFI_STATUS(EFIAPI * APPLE_RAM_DISK_DESTROY)(IN EFI_HANDLE Handle)
EFI_STATUS(EFIAPI * APPLE_RAM_DISK_GET_CONTEXT)(IN EFI_HANDLE Handle, OUT APPLE_RAM_DISK_CONTEXT *Context)
UINT64 Length
PACKED struct @56 APPLE_RAM_DISK_DP_VENDOR
PACKED struct @57 APPLE_RAM_DISK_DP_HEADER
UINT64 Reserved2
MEMMAP_DEVICE_PATH MemMap
PACKED struct @55 APPLE_RAM_DISK_CONTEXT
PACKED struct @54 APPLE_RAM_DISK_EXTENT_TABLE
PACKED struct @58 APPLE_RAM_DISK_DP
UINT32 ExtentCount
APPLE_EVENT_HANDLE Handle
Definition OcTypingLib.h:45
APPLE_RAM_DISK_EXTENT_TABLE * Extents
APPLE_RAM_DISK * RamDisk
EFI_DEVICE_PATH_PROTOCOL * DevicePath
EFI_BLOCK_IO_PROTOCOL BlockIo
APPLE_RAM_DISK_CONTEXT * Context
APPLE_RAM_DISK_CREATE CreateRamDisk
APPLE_RAM_DISK_DESTROY DestroyRamDisk
APPLE_RAM_DISK_GET_CONTEXT GetRamDiskContext
UINT64 AllocatedExtents