summaryrefslogtreecommitdiff
path: root/Include/Protocol/Mxm30.h
diff options
context:
space:
mode:
Diffstat (limited to 'Include/Protocol/Mxm30.h')
-rw-r--r--Include/Protocol/Mxm30.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/Include/Protocol/Mxm30.h b/Include/Protocol/Mxm30.h
new file mode 100644
index 0000000..a53b70e
--- /dev/null
+++ b/Include/Protocol/Mxm30.h
@@ -0,0 +1,80 @@
+// {2EF1BA1A-C836-4a50-BF89-525FF29FF787}
+#define MXM30_PEI_GUID \
+ { 0x2ef1ba1a, 0xc836, 0x4a50, 0xbf, 0x89, 0x52, 0x5f, 0xf2, 0x9f, 0xf7, 0x87 }
+
+// {4EA9D4FE-E6F6-410b-8037-0F98B5968B65}
+#define MXM3_EFI_GUID \
+ { 0x4EA9D4FE, 0xE6F6, 0x410B, 0x90, 0x37, 0x0f, 0x98, 0xB5, 0x96, 0x8B, 0x65 }
+
+/////////////////////////////////////////////////////////////////////////////////////////
+//////M X M 3.0 D E F I N I T I O N S /////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////////////////
+#define EFI30_DataBlockID MXM_REV_SUPPORTED
+//0x30;
+// the revision of the MXM software specification that is supported by the MXM module.
+// Format is binary coded decimal, for example: 0x30 = 3.0, etc.
+
+#define EFI30_SupportFuncs MXM_FUNC_SUPPORTED
+//0x3;
+// Bit 0 = `1' MxmReturnSpecLevel method is required
+// Bit 1 = `1' MxmReturnStucture is also required
+// Bit 2 = `1' OPTIONAL. if MxmSelectOutputDevice is supported, `0' if not
+// Bit 3 = `1' OPTIONAL. if MxmCheckOutputDevice is supported, `0' if not
+
+typedef struct {
+ CHAR8 Sig[4]; // "MXM_"
+ UINT8 Ver;
+ UINT8 Rev;
+ UINT16 Len;
+} MXM_STRUCT_HDR;
+
+typedef EFI_STATUS (EFIAPI *MXM_RETURN_SPEC_LEVEL) (
+ IN struct _MXM3_EFI_INTERFACE *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN OUT CHAR16 usStructSize,
+ IN OUT CHAR8 *pucRevisionLevel,
+ OUT UINTN *puSupportFuncs
+);
+
+typedef EFI_STATUS (EFIAPI *MXM_RETURN_STRUCTURE)(
+ IN struct _MXM3_EFI_INTERFACE *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN OUT CHAR16 *usStructSize,
+ IN CHAR16 usDataBlockID,
+ OUT CHAR8 **pMxmStruct
+);
+
+typedef EFI_STATUS (EFIAPI *MXM_SELECT_OUTPUT_DEVICE)(
+ IN struct _MXM3_EFI_INTERFACE *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN OUT CHAR16 usStructSize,
+ IN EFI_HANDLE ChildHandle,
+ IN CHAR8 ucOutputSetting
+);
+
+typedef EFI_STATUS (EFIAPI *MXM_CHECK_OUTPUT_DEVICE)(
+ IN struct _MXM3_EFI_INTERFACE *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN OUT CHAR16 usStructSize,
+ IN EFI_HANDLE ChildHandle,
+ OUT CHAR8 ucDisplayAvailable
+);
+
+typedef struct _MXM3_EFI_INTERFACE {
+ MXM_RETURN_SPEC_LEVEL MxmReturnSpecLevel;
+ MXM_RETURN_STRUCTURE MxmReturnStructure;
+ MXM_SELECT_OUTPUT_DEVICE MxmSelectOutputDevice;
+ MXM_CHECK_OUTPUT_DEVICE MxmCheckOutputDevice;
+} MXM3_EFI_PROTOCOL;
+
+
+
+EFI_STATUS
+LoadFile(
+ IN EFI_GUID *Guid,
+ OUT VOID **Buffer,
+ OUT UINTN *BufferSize
+ );
+
+//#define MXM_DRIVER_VERSION 0x001
+