summaryrefslogtreecommitdiff
path: root/Include/Protocol/SmmPchIoTrapDispatch2.h
diff options
context:
space:
mode:
Diffstat (limited to 'Include/Protocol/SmmPchIoTrapDispatch2.h')
-rw-r--r--Include/Protocol/SmmPchIoTrapDispatch2.h134
1 files changed, 134 insertions, 0 deletions
diff --git a/Include/Protocol/SmmPchIoTrapDispatch2.h b/Include/Protocol/SmmPchIoTrapDispatch2.h
new file mode 100644
index 0000000..b2c4b7c
--- /dev/null
+++ b/Include/Protocol/SmmPchIoTrapDispatch2.h
@@ -0,0 +1,134 @@
+//*************************************************************************
+//*************************************************************************
+//** **
+//** (C)Copyright 1985-2011, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//*************************************************************************
+//*************************************************************************
+
+//*************************************************************************
+// $Header: /Alaska/BIN/Chipset/Intel/SouthBridge/LynxPoint/Intel Pch SB Chipset/SB Protocols/SmmPchIoTrapDispatch2.h 1 2/08/12 8:26a Yurenlai $
+//
+// $Revision: 1 $
+//
+// $Date: 2/08/12 8:26a $
+//*************************************************************************
+// Revision History
+// ----------------
+// $Log: /Alaska/BIN/Chipset/Intel/SouthBridge/LynxPoint/Intel Pch SB Chipset/SB Protocols/SmmPchIoTrapDispatch2.h $
+//
+// 1 2/08/12 8:26a Yurenlai
+// Intel Lynx Point/SB eChipset initially releases.
+//
+//*************************************************************************
+//<AMI_FHDR_START>
+//
+// Name: SmmIoTrap2Dispatch.h
+//
+// Description: The header file for I/O Trap # 2 SMM Dispatch Protocol.
+//
+// Note: This GUID & Contexts are followed Platform Initialization
+// specification 1.2
+//
+//<AMI_FHDR_END>
+//*************************************************************************
+
+#ifndef __SMM_IO_TRAP_DISPATCH2_PROTOCOL_H__
+#define __SMM_IO_TRAP_DISPATCH2_PROTOCOL_H__
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <EFI.h>
+
+//#### {58DC368D-7BFA-4E77-ABBC-0E29418DF930}
+//#####define EFI_SMM_IO_TRAP_DISPATCH2_PROTOCOL_GUID \
+//#### {0x58dc368d, 0x7bfa, 0x4e77, 0xab, 0xbc, 0x0e, 0x29, 0x41, 0x8d, 0xf9, 0x30}
+// For avoid conflicting with Intel RC's "EFI_SMM_IO_TRAP_DISPATCH_PROTOCOL_GUID",
+// therefore AMI modifies the IO trap #2 GUID.
+#define EFI_SMM_IO_TRAP_DISPATCH2_PROTOCOL_GUID \
+ {0xf1507845, 0x6494, 0x4377, 0xa1, 0x15, 0x45, 0xdf, 0xe6, 0x5f, 0x5d, 0x71}
+
+GUID_VARIABLE_DECLARATION( gEfiSmmIoTrapDispatch2ProtocolGuid, \
+ EFI_SMM_IO_TRAP_DISPATCH2_PROTOCOL_GUID );
+
+// I/O Trap valid types
+
+typedef enum {
+ WriteTrap = 0,
+ ReadTrap,
+ ReadWriteTrap,
+ IoTrapTypeMaximum
+} EFI_SMM_IO_TRAP_DISPATCH_TYPE;
+
+// I/O Trap #2 context structure containing information about the I/O Trap
+// event that should invoke the handler
+
+typedef struct {
+ UINT16 Address;
+ UINT16 Length;
+ EFI_SMM_IO_TRAP_DISPATCH_TYPE Type;
+} EFI_SMM_IO_TRAP_REGISTER_CONTEXT;
+
+// I/O Trap #2 context structure containing information about the I/O Trap
+// that occurred.
+
+typedef struct {
+ UINT32 WriteData;
+} EFI_SMM_IO_TRAP_CONTEXT;
+
+typedef struct _EFI_SMM_IO_TRAP_DISPATCH2_PROTOCOL \
+ EFI_SMM_IO_TRAP_DISPATCH2_PROTOCOL;
+
+//******************************************************
+// EFI_SMM_IO_TRAP_DISPATCH2
+//******************************************************
+typedef VOID (EFIAPI *EFI_SMM_IO_TRAP_DISPATCH2) (
+ IN EFI_HANDLE DispatchHandle,
+ IN EFI_SMM_IO_TRAP_CONTEXT *Context
+);
+
+
+typedef EFI_STATUS (EFIAPI *EFI_SMM_IO_TRAP_DISPATCH2_REGISTER) (
+ IN EFI_SMM_IO_TRAP_DISPATCH2_PROTOCOL *This,
+ IN EFI_SMM_IO_TRAP_DISPATCH2 DispatchFunction,
+ IN OUT EFI_SMM_IO_TRAP_REGISTER_CONTEXT *DispatchContext,
+ OUT EFI_HANDLE *DispatchHandle
+);
+
+typedef EFI_STATUS (EFIAPI *EFI_SMM_IO_TRAP_DISPATCH2_UNREGISTER) (
+ IN EFI_SMM_IO_TRAP_DISPATCH2_PROTOCOL *This,
+ IN EFI_HANDLE DispatchHandle
+);
+
+
+struct _EFI_SMM_IO_TRAP_DISPATCH2_PROTOCOL {
+ EFI_SMM_IO_TRAP_DISPATCH2_REGISTER Register;
+ EFI_SMM_IO_TRAP_DISPATCH2_UNREGISTER UnRegister;
+};
+
+
+/****** DO NOT WRITE BELOW THIS LINE *******/
+#ifdef __cplusplus
+}
+#endif
+#endif
+
+//*************************************************************************
+//*************************************************************************
+//** **
+//** (C)Copyright 1985-2011, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//*************************************************************************
+//*************************************************************************