MmcDisconnectState,\r
} MMC_STATE;\r
\r
-typedef BOOLEAN (*MMC_ISCARDPRESENT)();\r
-\r
-typedef BOOLEAN (*MMC_ISREADONLY)();\r
-\r
-typedef EFI_STATUS (*MMC_BUILDDEVICEPATH)(EFI_DEVICE_PATH_PROTOCOL **DevicePath);\r
-\r
-typedef EFI_STATUS (*MMC_NOTIFYSTATE)(MMC_STATE State);\r
-\r
-typedef EFI_STATUS (*MMC_SENDCOMMAND)(MMC_CMD Cmd, UINT32 Argument);\r
+///\r
+/// Forward declaration for EFI_MMC_HOST_PROTOCOL\r
+///\r
+typedef struct _EFI_MMC_HOST_PROTOCOL EFI_MMC_HOST_PROTOCOL;\r
+\r
+typedef BOOLEAN (EFIAPI *MMC_ISCARDPRESENT) (\r
+ IN EFI_MMC_HOST_PROTOCOL *This\r
+ );\r
+\r
+typedef BOOLEAN (EFIAPI *MMC_ISREADONLY) (\r
+ IN EFI_MMC_HOST_PROTOCOL *This\r
+ );\r
+\r
+typedef EFI_STATUS (EFIAPI *MMC_BUILDDEVICEPATH) (\r
+ IN EFI_MMC_HOST_PROTOCOL *This,\r
+ OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath\r
+ );\r
+\r
+typedef EFI_STATUS (EFIAPI *MMC_NOTIFYSTATE) (\r
+ IN EFI_MMC_HOST_PROTOCOL *This,\r
+ IN MMC_STATE State\r
+ );\r
+\r
+typedef EFI_STATUS (EFIAPI *MMC_SENDCOMMAND) (\r
+ IN EFI_MMC_HOST_PROTOCOL *This,\r
+ IN MMC_CMD Cmd,\r
+ IN UINT32 Argument\r
+ );\r
+\r
+typedef EFI_STATUS (EFIAPI *MMC_RECEIVERESPONSE) (\r
+ IN EFI_MMC_HOST_PROTOCOL *This,\r
+ IN MMC_RESPONSE_TYPE Type,\r
+ IN UINT32 *Buffer\r
+ );\r
+\r
+typedef EFI_STATUS (EFIAPI *MMC_READBLOCKDATA) (\r
+ IN EFI_MMC_HOST_PROTOCOL *This,\r
+ IN EFI_LBA Lba,\r
+ IN UINTN Length,\r
+ OUT UINT32 *Buffer\r
+ );\r
+\r
+typedef EFI_STATUS (EFIAPI *MMC_WRITEBLOCKDATA) (\r
+ IN EFI_MMC_HOST_PROTOCOL *This,\r
+ IN EFI_LBA Lba,\r
+ IN UINTN Length,\r
+ IN UINT32 *Buffer\r
+ );\r
\r
-typedef EFI_STATUS (*MMC_RECEIVERESPONSE)(MMC_RESPONSE_TYPE Type, UINT32* Buffer);\r
\r
-typedef EFI_STATUS (*MMC_READBLOCKDATA)(EFI_LBA Lba, UINTN Length, UINT32* Buffer);\r
+typedef struct _EFI_MMC_HOST_PROTOCOL {\r
\r
-typedef EFI_STATUS (*MMC_WRITEBLOCKDATA)(EFI_LBA Lba, UINTN Length, UINT32* Buffer);\r
+ UINT32 Revision;\r
+ MMC_ISCARDPRESENT IsCardPresent;\r
+ MMC_ISREADONLY IsReadOnly;\r
+ MMC_BUILDDEVICEPATH BuildDevicePath;\r
\r
-typedef struct _EFI_MMC_HOST_PROTOCOL {\r
- MMC_ISCARDPRESENT IsCardPresent;\r
- MMC_ISREADONLY IsReadOnly;\r
- MMC_BUILDDEVICEPATH BuildDevicePath;\r
+ MMC_NOTIFYSTATE NotifyState;\r
\r
- MMC_NOTIFYSTATE NotifyState;\r
+ MMC_SENDCOMMAND SendCommand;\r
+ MMC_RECEIVERESPONSE ReceiveResponse;\r
\r
- MMC_SENDCOMMAND SendCommand;\r
- MMC_RECEIVERESPONSE ReceiveResponse;\r
+ MMC_READBLOCKDATA ReadBlockData;\r
+ MMC_WRITEBLOCKDATA WriteBlockData;\r
\r
- MMC_READBLOCKDATA ReadBlockData;\r
- MMC_WRITEBLOCKDATA WriteBlockData;\r
} EFI_MMC_HOST_PROTOCOL;\r
\r
+#define MMC_HOST_PROTOCOL_REVISION 0x00010001 // 1.1\r
+\r
extern EFI_GUID gEfiMmcHostProtocolGuid;\r
\r
#endif\r