More Media-related protocols
This commit is contained in:
parent
5d67c2c599
commit
4d1fb71456
3 changed files with 503 additions and 11 deletions
7
efi_bs.h
7
efi_bs.h
|
@ -109,13 +109,6 @@ typedef struct {
|
||||||
UINT64 Attribute;
|
UINT64 Attribute;
|
||||||
} EFI_MEMORY_DESCRIPTOR;
|
} EFI_MEMORY_DESCRIPTOR;
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
UINT32 Data1;
|
|
||||||
UINT16 Data2;
|
|
||||||
UINT16 Data3;
|
|
||||||
UINT8 Data4[8];
|
|
||||||
} EFI_GUID;
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
EFI_HANDLE AgentHandle;
|
EFI_HANDLE AgentHandle;
|
||||||
EFI_HANDLE ControllerHandle;
|
EFI_HANDLE ControllerHandle;
|
||||||
|
|
68
efi_types.h
68
efi_types.h
|
@ -188,4 +188,72 @@ typedef struct {
|
||||||
#define ARROW_UP 0x2191
|
#define ARROW_UP 0x2191
|
||||||
#define ARROW_DOWN 0x2193
|
#define ARROW_DOWN 0x2193
|
||||||
|
|
||||||
|
// EFI_GUID
|
||||||
|
typedef struct {
|
||||||
|
UINT32 Data1;
|
||||||
|
UINT16 Data2;
|
||||||
|
UINT16 Data3;
|
||||||
|
UINT8 Data4[8];
|
||||||
|
} EFI_GUID;
|
||||||
|
|
||||||
|
// MBR Partition Entry
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
#pragma pack(1)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
UINT8 BootIndicator;
|
||||||
|
UINT8 StartHead;
|
||||||
|
UINT8 StartSector;
|
||||||
|
UINT8 StartTrack;
|
||||||
|
UINT8 OSIndicator;
|
||||||
|
UINT8 EndHead;
|
||||||
|
UINT8 EndSector;
|
||||||
|
UINT8 EndTrack;
|
||||||
|
UINT8 StartingLBA[4];
|
||||||
|
UINT8 SizeInLBA[4];
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
} MBR_PARTITION_RECORD;
|
||||||
|
#pragma pack()
|
||||||
|
#else
|
||||||
|
} __attribute__((packed)) MBR_PARTITION_RECORD;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Master Boot Record
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
#pragma pack(1)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
UINT8 BootStrapCode[440];
|
||||||
|
UINT8 UniqueMbrSignature[4];
|
||||||
|
UINT8 Unknown[2];
|
||||||
|
MBR_PARTITION_RECORD Partition[4];
|
||||||
|
UINT16 Signature;
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
} MASTER_BOOT_RECORD;
|
||||||
|
#pragma pack()
|
||||||
|
#else
|
||||||
|
} __attribute__((packed)) MASTER_BOOT_RECORD;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// GPT Partition Entry
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
#pragma pack(1)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
EFI_GUID PartitionTypeGUID;
|
||||||
|
EFI_GUID UniquePartitionGUID;
|
||||||
|
EFI_LBA StartingLBA;
|
||||||
|
EFI_LBA EndingLBA;
|
||||||
|
UINT64 Attributes;
|
||||||
|
CHAR16 PartitionName[36];
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
} EFI_PARTITION_ENTRY;
|
||||||
|
#pragma pack()
|
||||||
|
#else
|
||||||
|
} __attribute__((packed)) EFI_PARTITION_ENTRY;
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* EFI_TYPES_H */
|
#endif /* EFI_TYPES_H */
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef EFI_PROTOCOLS_MEDIA_ACCESS_H
|
#ifndef EFI_PROTOCOLS_MEDIA_ACCESS_H
|
||||||
#define EFI_PROTOCOLS_MEDIA_ACCESS_H
|
#define EFI_PROTOCOLS_MEDIA_ACCESS_H
|
||||||
|
|
||||||
|
#include "device_path.h"
|
||||||
|
|
||||||
////
|
////
|
||||||
// Load File Protocol
|
// Load File Protocol
|
||||||
///
|
///
|
||||||
|
@ -594,40 +596,470 @@ typedef struct _EFI_ERASE_BLOCK_PROTOCOL {
|
||||||
} EFI_ERASE_BLOCK_PROTOCOL;
|
} EFI_ERASE_BLOCK_PROTOCOL;
|
||||||
|
|
||||||
////
|
////
|
||||||
// ATA Pass Through Protocol
|
// ATA Pass Thru Protocol
|
||||||
///
|
///
|
||||||
|
|
||||||
|
#define EFI_ATA_PASS_THRU_PROTOCOL_GUID {0x1d3de7f0,0x807,0x424f, {0xaa,0x69,0x11,0xa5,0x4e,0x19,0xa4,0x6f}}
|
||||||
|
|
||||||
|
#define EFI_ATA_PASS_THRU_ATTRIBUTES_PHYSICAL 0x0001
|
||||||
|
#define EFI_ATA_PASS_THRU_ATTRIBUTES_LOGICAL 0x0002
|
||||||
|
#define EFI_ATA_PASS_THRU_ATTRIBUTES_NONBLOCKIO 0x0004
|
||||||
|
|
||||||
|
#define EFI_ATA_PASS_THRU_PROTOCOL_ATA_HARDWARE_RESET 0x00
|
||||||
|
#define EFI_ATA_PASS_THRU_PROTOCOL_ATA_SOFTWARE_RESET 0x01
|
||||||
|
#define EFI_ATA_PASS_THRU_PROTOCOL_ATA_NON_DATA 0x02
|
||||||
|
#define EFI_ATA_PASS_THRU_PROTOCOL_PIO_DATA_IN 0x04
|
||||||
|
#define EFI_ATA_PASS_THRU_PROTOCOL_PIO_DATA_OUT 0x05
|
||||||
|
#define EFI_ATA_PASS_THRU_PROTOCOL_DMA 0x06
|
||||||
|
#define EFI_ATA_PASS_THRU_PROTOCOL_DMA_QUEUED 0x07
|
||||||
|
#define EFI_ATA_PASS_THRU_PROTOCOL_DEVICE_DIAGNOSTIC 0x08
|
||||||
|
#define EFI_ATA_PASS_THRU_PROTOCOL_DEVICE_RESET 0x09
|
||||||
|
#define EFI_ATA_PASS_THRU_PROTOCOL_UDMA_DATA_IN 0x0A
|
||||||
|
#define EFI_ATA_PASS_THRU_PROTOCOL_UDMA_DATA_OUT 0x0B
|
||||||
|
#define EFI_ATA_PASS_THRU_PROTOCOL_FPDMA 0x0C
|
||||||
|
#define EFI_ATA_PASS_THRU_PROTOCOL_RETURN_RESPONSE 0xFF
|
||||||
|
|
||||||
|
#define EFI_ATA_PASS_THRU_LENGTH_BYTES 0x80
|
||||||
|
|
||||||
|
#define EFI_ATA_PASS_THRU_LENGTH_MASK 0x70
|
||||||
|
#define EFI_ATA_PASS_THRU_LENGTH_NO_DATA_TRANSFER 0x00
|
||||||
|
#define EFI_ATA_PASS_THRU_LENGTH_FEATURES 0x10
|
||||||
|
#define EFI_ATA_PASS_THRU_LENGTH_SECTOR_COUNT 0x20
|
||||||
|
#define EFI_ATA_PASS_THRU_LENGTH_TPSIU 0x30
|
||||||
|
|
||||||
|
#define EFI_ATA_PASS_THRU_LENGTH_COUNT 0x0F
|
||||||
|
|
||||||
|
typedef struct _EFI_ATA_PASS_THRU_PROTOCOL EFI_ATA_PASS_THRU_PROTOCOL;
|
||||||
|
|
||||||
|
typedef UINT8 EFI_ATA_PASS_THRU_CMD_PROTOCOL;
|
||||||
|
typedef UINT8 EFI_ATA_PASS_THRU_LENGTH;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
UINT32 Attributes;
|
||||||
|
UINT32 IoAlign;
|
||||||
|
} EFI_ATA_PASS_THRU_MODE;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
UINT8 Reserved1[2];
|
||||||
|
UINT8 AtaCommand;
|
||||||
|
UINT8 AtaFeatures;
|
||||||
|
UINT8 AtaSectorNumber;
|
||||||
|
UINT8 AtaCylinderLow;
|
||||||
|
UINT8 AtaCylinderHigh;
|
||||||
|
UINT8 AtaDeviceHead;
|
||||||
|
UINT8 AtaSectorNumberExp;
|
||||||
|
UINT8 AtaCylinderLowExp;
|
||||||
|
UINT8 AtaCylinderHighExp;
|
||||||
|
UINT8 AtaFeaturesExp;
|
||||||
|
UINT8 AtaSectorCount;
|
||||||
|
UINT8 AtaSectorCountExp;
|
||||||
|
UINT8 Reserved2[6];
|
||||||
|
} EFI_ATA_COMMAND_BLOCK;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
UINT8 Reserved1[2];
|
||||||
|
UINT8 AtaStatus;
|
||||||
|
UINT8 AtaError;
|
||||||
|
UINT8 AtaSectorNumber;
|
||||||
|
UINT8 AtaCylinderLow;
|
||||||
|
UINT8 AtaCylinderHigh;
|
||||||
|
UINT8 AtaDeviceHead;
|
||||||
|
UINT8 AtaSectorNumberExp;
|
||||||
|
UINT8 AtaCylinderLowExp;
|
||||||
|
UINT8 AtaCylinderHighExp;
|
||||||
|
UINT8 Reserved2;
|
||||||
|
UINT8 AtaSectorCount;
|
||||||
|
UINT8 AtaSectorCountExp;
|
||||||
|
UINT8 Reserved3[6];
|
||||||
|
} EFI_ATA_STATUS_BLOCK;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
EFI_ATA_STATUS_BLOCK *Asb;
|
||||||
|
EFI_ATA_COMMAND_BLOCK *Acb;
|
||||||
|
UINT64 Timeout;
|
||||||
|
VOID *InDataBuffer;
|
||||||
|
VOID *OutDataBuffer;
|
||||||
|
UINT32 InTransferLength;
|
||||||
|
UINT32 OutTransferLength;
|
||||||
|
EFI_ATA_PASS_THRU_CMD_PROTOCOL Protocol;
|
||||||
|
EFI_ATA_PASS_THRU_LENGTH Length;
|
||||||
|
} EFI_ATA_PASS_THRU_COMMAND_PACKET;
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_ATA_PASS_THRU_PASSTHRU)(
|
||||||
|
IN EFI_ATA_PASS_THRU_PROTOCOL *This,
|
||||||
|
IN UINT16 Port,
|
||||||
|
IN UINT16 PortMultiplierPort,
|
||||||
|
IN OUT EFI_ATA_PASS_THRU_COMMAND_PACKET *Packet,
|
||||||
|
IN EFI_EVENT Event OPTIONAL
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_ATA_PASS_THRU_GET_NEXT_PORT)(
|
||||||
|
IN EFI_ATA_PASS_THRU_PROTOCOL *This,
|
||||||
|
IN OUT UINT16 *Port
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_ATA_PASS_THRU_GET_NEXT_DEVICE)(
|
||||||
|
IN EFI_ATA_PASS_THRU_PROTOCOL *This,
|
||||||
|
IN UINT16 Port,
|
||||||
|
IN OUT UINT16 *PortMultiplierPort
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_ATA_PASS_THRU_BUILD_DEVICE_PATH)(
|
||||||
|
IN EFI_ATA_PASS_THRU_PROTOCOL *This,
|
||||||
|
IN UINT16 Port,
|
||||||
|
IN UINT16 PortMultiplierPort,
|
||||||
|
OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_ATA_PASS_THRU_GET_DEVICE)(
|
||||||
|
IN EFI_ATA_PASS_THRU_PROTOCOL *This,
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
|
||||||
|
OUT UINT16 *Port,
|
||||||
|
OUT UINT16 *PortMultiplierPort
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_ATA_PASS_THRU_RESET_PORT)(
|
||||||
|
IN EFI_ATA_PASS_THRU_PROTOCOL *This,
|
||||||
|
IN UINT16 *Port
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_ATA_PASS_THRU_RESET_DEVICE)(
|
||||||
|
IN EFI_ATA_PASS_THRU_PROTOCOL *This,
|
||||||
|
IN UINT16 Port,
|
||||||
|
IN UINT16 PortMultiplierPort
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef struct _EFI_ATA_PASS_THRU_PROTOCOL {
|
||||||
|
EFI_ATA_PASS_THRU_MODE *Mode;
|
||||||
|
EFI_ATA_PASS_THRU_PASSTHRU PassThru;
|
||||||
|
EFI_ATA_PASS_THRU_GET_NEXT_PORT GetNextPort;
|
||||||
|
EFI_ATA_PASS_THRU_GET_NEXT_DEVICE GetNextDevice;
|
||||||
|
EFI_ATA_PASS_THRU_BUILD_DEVICE_PATH BuildDevicePath;
|
||||||
|
EFI_ATA_PASS_THRU_GET_DEVICE GetDevice;
|
||||||
|
EFI_ATA_PASS_THRU_RESET_PORT ResetPort;
|
||||||
|
EFI_ATA_PASS_THRU_RESET_DEVICE ResetDevice;
|
||||||
|
} EFI_ATA_PASS_THRU_PROTOCOL;
|
||||||
|
|
||||||
////
|
////
|
||||||
// Storage Security Command Protocol
|
// Storage Security Command Protocol
|
||||||
///
|
///
|
||||||
|
|
||||||
|
#define EFI_STORAGE_SECURITY_COMMAND_PROTOCOL_GUID {0xc88b0b6d,0x0dfc,0x49a7, {0x9c,0xb4,0x49,0x7,0x4b,0x4c,0x3a,0x78}}
|
||||||
|
|
||||||
|
typedef struct _EFI_STORAGE_SECURITY_COMMAND_PROTOCOL EFI_STORAGE_SECURITY_COMMAND_PROTOCOL;
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_STORAGE_SECURITY_RECEIVE_DATA)(
|
||||||
|
IN EFI_STORAGE_SECURITY_COMMAND_PROTOCOL *This,
|
||||||
|
IN UINT32 MediaId,
|
||||||
|
IN UINT64 Timeout,
|
||||||
|
IN UINT8 SecurityProtocol,
|
||||||
|
IN UINT16 SecurityProtocolSpecificData,
|
||||||
|
IN UINTN PayloadBufferSize,
|
||||||
|
OUT VOID *PayloadBuffer,
|
||||||
|
OUT UINTN *PayloadTransferSize
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_STORAGE_SECURITY_SEND_DATA)(
|
||||||
|
IN EFI_STORAGE_SECURITY_COMMAND_PROTOCOL *This,
|
||||||
|
IN UINT32 MediaId,
|
||||||
|
IN UINT64 Timeout,
|
||||||
|
IN UINT8 SecurityProtocolId,
|
||||||
|
IN UINT16 SecurityProtocolSpecificData,
|
||||||
|
IN UINTN PayloadBufferSize,
|
||||||
|
IN VOID *PayloadBuffer
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef struct _EFI_STORAGE_SECURITY_COMMAND_PROTOCOL {
|
||||||
|
EFI_STORAGE_SECURITY_RECEIVE_DATA ReceiveData;
|
||||||
|
EFI_STORAGE_SECURITY_SEND_DATA SendData;
|
||||||
|
} EFI_STORAGE_SECURITY_COMMAND_PROTOCOL;
|
||||||
|
|
||||||
////
|
////
|
||||||
// NVM Express Pass Through Protocol
|
// NVM Express Pass Thru Protocol
|
||||||
///
|
///
|
||||||
|
|
||||||
|
#define EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL_GUID {0x52c78312,0x8edc,0x4233, {0x98,0xf2,0x1a,0x1a,0xa5,0xe3,0x88,0xa5}}
|
||||||
|
|
||||||
|
#define EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_PHYSICAL 0x0001
|
||||||
|
#define EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_LOGICAL 0x0002
|
||||||
|
#define EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_NONBLOCKIO 0x0004
|
||||||
|
#define EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_CMD_SET_NVM 0x0008
|
||||||
|
|
||||||
|
#define NORMAL_CMD 0x00
|
||||||
|
#define FUSED_FIRST_CMD 0x01
|
||||||
|
#define FUSED_SECOND_CMD 0x02
|
||||||
|
|
||||||
|
#define CDW2_VALID 0x01
|
||||||
|
#define CDW3_VALID 0x02
|
||||||
|
#define CDW10_VALID 0x04
|
||||||
|
#define CDW11_VALID 0x08
|
||||||
|
#define CDW12_VALID 0x10
|
||||||
|
#define CDW13_VALID 0x20
|
||||||
|
#define CDW14_VALID 0x40
|
||||||
|
#define CDW15_VALID 0x80
|
||||||
|
|
||||||
|
typedef struct _EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
UINT32 OpCode : 8;
|
||||||
|
UINT32 FusedOperation : 2;
|
||||||
|
UINT32 Reserved : 22;
|
||||||
|
} NVME_CDW0;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
NVME_CDW0 Cdw0;
|
||||||
|
UINT8 Flags;
|
||||||
|
UINT32 Nsid;
|
||||||
|
UINT32 Cdw2;
|
||||||
|
UINT32 Cdw3;
|
||||||
|
UINT32 Cdw10;
|
||||||
|
UINT32 Cdw11;
|
||||||
|
UINT32 Cdw12;
|
||||||
|
UINT32 Cdw13;
|
||||||
|
UINT32 Cdw14;
|
||||||
|
UINT32 Cdw15;
|
||||||
|
} EFI_NVM_EXPRESS_COMMAND;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
UINT32 DW0;
|
||||||
|
UINT32 DW1;
|
||||||
|
UINT32 DW2;
|
||||||
|
UINT32 DW3;
|
||||||
|
} EFI_NVM_EXPRESS_COMPLETION;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
UINT32 Attributes;
|
||||||
|
UINT32 IoAlign;
|
||||||
|
UINT32 NvmeVersion;
|
||||||
|
} EFI_NVM_EXPRESS_PASS_THRU_MODE;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
UINT64 CommandTimeout;
|
||||||
|
VOID *TransferBuffer OPTIONAL;
|
||||||
|
UINT32 TransferLength OPTIONAL;
|
||||||
|
VOID *MetaDataBuffer OPTIONAL;
|
||||||
|
UINT32 MetadataLength OPTIONAL;
|
||||||
|
UINT8 QueueType;
|
||||||
|
EFI_NVM_EXPRESS_COMMAND *NvmeCmd;
|
||||||
|
EFI_NVM_EXPRESS_COMPLETION *NvmeCompletion;
|
||||||
|
} EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET;
|
||||||
|
|
||||||
|
typedef EFI_STATUS
|
||||||
|
(EFIAPI *EFI_NVM_EXPRESS_PASS_THRU_PASSTHRU)(
|
||||||
|
IN EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL This,
|
||||||
|
IN UINT32 NamespaceId,
|
||||||
|
IN OUT EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET *Packet,
|
||||||
|
IN EFI_EVENT Event OPTIONAL
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_NVM_EXPRESS_PASS_THRU_GET_NEXT_NAMESPACE)(
|
||||||
|
IN EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL *This,
|
||||||
|
IN OUT UINT32 *NamespaceId
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_NVM_EXPRESS_PASS_THRU_BUILD_DEVICE_PATH)(
|
||||||
|
IN EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL *This,
|
||||||
|
IN UINT32 NamespaceId,
|
||||||
|
OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_NVM_EXPRESS_PASS_THRU_GET_NAMESPACE)(
|
||||||
|
IN EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL *This,
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
|
||||||
|
OUT UINT32 *NamespaceId
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef struct _EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL {
|
||||||
|
EFI_NVM_EXPRESS_PASS_THRU_MODE *Mode;
|
||||||
|
EFI_NVM_EXPRESS_PASS_THRU_PASSTHRU PassThru;
|
||||||
|
EFI_NVM_EXPRESS_PASS_THRU_GET_NEXT_NAMESPACE GetNextNamespace;
|
||||||
|
EFI_NVM_EXPRESS_PASS_THRU_BUILD_DEVICE_PATH BuildDevicePath;
|
||||||
|
EFI_NVM_EXPRESS_PASS_THRU_GET_NAMESPACE GetNamespace;
|
||||||
|
} EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL;
|
||||||
|
|
||||||
////
|
////
|
||||||
// SD MMC Pass Through Protocol
|
// SD MMC Pass Thru Protocol
|
||||||
///
|
///
|
||||||
|
|
||||||
|
#define EFI_SD_MMC_PASS_THRU_PROTOCOL_GUID {0x716ef0d9,0xff83,0x4f69, {0x81,0xe9,0x51,0x8b,0xd3,0x9a,0x8e,0x70}}
|
||||||
|
|
||||||
|
typedef struct _EFI_SD_MMC_PASS_THRU_PROTOCOL EFI_SD_MMC_PASS_THRU_PROTOCOL;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
SdMmcCommandTypeBc,
|
||||||
|
SdMmcCommandTypeBcr,
|
||||||
|
SdMmcCommandTypeAc,
|
||||||
|
SdMmcCommandTypeAdtc
|
||||||
|
} EFI_SD_MMC_COMMAND_TYPE;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
SdMmcResponceTypeR1,
|
||||||
|
SdMmcResponceTypeR1b,
|
||||||
|
SdMmcResponceTypeR2,
|
||||||
|
SdMmcResponceTypeR3,
|
||||||
|
SdMmcResponceTypeR4,
|
||||||
|
SdMmcResponceTypeR5,
|
||||||
|
SdMmcResponceTypeR5b,
|
||||||
|
SdMmcResponceTypeR6,
|
||||||
|
SdMmcResponceTypeR7
|
||||||
|
} EFI_SD_MMC_RESPONSE_TYPE;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
UINT16 CommandIndex;
|
||||||
|
UINT32 CommandArgument;
|
||||||
|
UINT32 CommandType;
|
||||||
|
UINT32 ResponseType;
|
||||||
|
} EFI_SD_MMC_COMMAND_BLOCK;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
UINT32 Resp0;
|
||||||
|
UINT32 Resp1;
|
||||||
|
UINT32 Resp2;
|
||||||
|
UINT32 Resp3;
|
||||||
|
} EFI_SD_MMC_STATUS_BLOCK;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
EFI_SD_MMC_COMMAND_BLOCK *SdMmcCmdBlk;
|
||||||
|
EFI_SD_MMC_STATUS_BLOCK *SdMmcStatusBlk;
|
||||||
|
UINT64 Timeout;
|
||||||
|
VOID *InDataBuffer;
|
||||||
|
VOID *OutDataBuffer;
|
||||||
|
UINT32 InTransferLength;
|
||||||
|
UINT32 OutTransferLength;
|
||||||
|
EFI_STATUS TransactionStatus;
|
||||||
|
} EFI_SD_MMC_PASS_THRU_COMMAND_PACKET;
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_SD_MMC_PASS_THRU_PASSTHRU)(
|
||||||
|
IN EFI_SD_MMC_PASS_THRU_PROTOCOL *This,
|
||||||
|
IN UINT8 Slot,
|
||||||
|
IN OUT EFI_SD_MMC_PASS_THRU_COMMAND_PACKET *Packet,
|
||||||
|
IN EFI_EVENT Event OPTIONAL
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_SD_MMC_PASS_THRU_GET_NEXT_SLOT)(
|
||||||
|
IN EFI_SD_MMC_PASS_THRU_PROTOCOL *This,
|
||||||
|
IN OUT UINT8 *Slot
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_SD_MMC_PASS_THRU_BUILD_DEVICE_PATH)(
|
||||||
|
IN EFI_SD_MMC_PASS_THRU_PROTOCOL *This,
|
||||||
|
IN UINT8 Slot,
|
||||||
|
OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_SD_MMC_PASS_THRU_GET_SLOT_NUMBER)(
|
||||||
|
IN EFI_SD_MMC_PASS_THRU_PROTOCOL *This,
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
|
||||||
|
OUT UINT8 *Slot
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_SD_MMC_PASS_THRU_RESET_DEVICE)(
|
||||||
|
IN EFI_SD_MMC_PASS_THRU_PROTOCOL *This,
|
||||||
|
IN UINT8 Slot
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef struct _EFI_SD_MMC_PASS_THRU_PROTOCOL {
|
||||||
|
UINTN IoAlign;
|
||||||
|
EFI_SD_MMC_PASS_THRU_PASSTHRU PassThru;
|
||||||
|
EFI_SD_MMC_PASS_THRU_GET_NEXT_SLOT GetNextSlot;
|
||||||
|
EFI_SD_MMC_PASS_THRU_BUILD_DEVICE_PATH BuildDevicePath;
|
||||||
|
EFI_SD_MMC_PASS_THRU_GET_SLOT_NUMBER GetSlotNumber;
|
||||||
|
EFI_SD_MMC_PASS_THRU_RESET_DEVICE ResetDevice;
|
||||||
|
} EFI_SD_MMC_PASS_THRU_PROTOCOL;
|
||||||
|
|
||||||
////
|
////
|
||||||
// RAM Disk Protocol
|
// RAM Disk Protocol
|
||||||
///
|
///
|
||||||
|
|
||||||
|
#define EFI_RAM_DISK_PROTOCOL_GUID {0xab38a0df,0x6873,0x44a9, {0x87,0xe6,0xd4,0xeb,0x56,0x14,0x84,0x49}}
|
||||||
|
|
||||||
|
typedef struct _EFI_RAM_DISK_PROTOCOL EFI_RAM_DISK_PROTOCOL;
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_RAM_DISK_REGISTER_RAMDISK)(
|
||||||
|
IN UINT64 RamDiskBase,
|
||||||
|
IN UINT64 RamDiskSize,
|
||||||
|
IN EFI_GUID *RamDiskType,
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath OPTIONAL,
|
||||||
|
OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_RAM_DISK_UNREGISTER_RAMDISK)(
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef struct _EFI_RAM_DISK_PROTOCOL {
|
||||||
|
EFI_RAM_DISK_REGISTER_RAMDISK Register;
|
||||||
|
EFI_RAM_DISK_UNREGISTER_RAMDISK Unregister;
|
||||||
|
} EFI_RAM_DISK_PROTOCOL;
|
||||||
|
|
||||||
////
|
////
|
||||||
// Partition Information Protocol
|
// Partition Information Protocol
|
||||||
///
|
///
|
||||||
|
|
||||||
|
#define EFI_PARTITION_INFO_PROTOCOL_GUID {0x8cf2f62c,0xbc9b,0x4821, {0x80,0x8d,0xec,0x9e,0xc4,0x21,0xa1,0xa0}}
|
||||||
|
|
||||||
|
#define EFI_PARTITION_INFO_PROTOCOL_REVISION 0x0001000
|
||||||
|
#define PARTITION_TYPE_OTHER 0x00
|
||||||
|
#define PARTITION_TYPE_MBR 0x01
|
||||||
|
#define PARTITION_TYPE_GPT 0x02
|
||||||
|
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
#pragma pack(1)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
UINT32 Revision;
|
||||||
|
UINT32 Type;
|
||||||
|
UINT8 System;
|
||||||
|
UINT8 Reserved[7];
|
||||||
|
union {
|
||||||
|
MBR_PARTITION_RECORD Mbr;
|
||||||
|
EFI_PARTITION_ENTRY Gpt;
|
||||||
|
} Info;
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
} EFI_PARTITION_INFO_PROTOCOL;
|
||||||
|
#pragma pack()
|
||||||
|
#else
|
||||||
|
} __attribute__((packed)) EFI_PARTITION_INFO_PROTOCOL;
|
||||||
|
#endif
|
||||||
|
|
||||||
////
|
////
|
||||||
// NVDIMM Label Protocol
|
// NVDIMM Label Protocol
|
||||||
|
@ -641,5 +1073,4 @@ typedef struct _EFI_ERASE_BLOCK_PROTOCOL {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* EFI_PROTOCOLS_MEDIA_ACCESS_H */
|
#endif /* EFI_PROTOCOLS_MEDIA_ACCESS_H */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue