--- /dev/null
+/** @file\r
+\r
+ Debug Mask Protocol.\r
+\r
+Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials are licensed and made available under \r
+the terms and conditions of the BSD License that accompanies this distribution. \r
+The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php. \r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#ifndef __DEBUG_MASK_H__\r
+#define __DEBUG_MASK_H__\r
+\r
+///\r
+/// Protocol GUID for DXE Phase Debug Mask support\r
+///\r
+#define EFI_DEBUG_MASK_PROTOCOL_GUID \\r
+ { 0x4c8a2451, 0xc207, 0x405b, {0x96, 0x94, 0x99, 0xea, 0x13, 0x25, 0x13, 0x41} }\r
+\r
+///\r
+/// Forward reference for pure ANSI compatability\r
+///\r
+typedef struct _EFI_DEBUG_MASK_PROTOCOL EFI_DEBUG_MASK_PROTOCOL;\r
+\r
+///\r
+///\r
+/// \r
+#define EFI_DEBUG_MASK_REVISION 0x00010000\r
+\r
+//\r
+// DebugMask member functions definition\r
+//\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI * EFI_GET_DEBUG_MASK) (\r
+ IN EFI_DEBUG_MASK_PROTOCOL *This, \r
+ IN OUT UINTN *CurrentDebugMask \r
+ );\r
+\r
+typedef \r
+EFI_STATUS\r
+(EFIAPI *EFI_SET_DEBUG_MASK) (\r
+ IN EFI_DEBUG_MASK_PROTOCOL *This,\r
+ IN UINTN NewDebugMask\r
+ );\r
+\r
+///\r
+/// DebugMask protocol definition\r
+///\r
+struct _EFI_DEBUG_MASK_PROTOCOL {\r
+ INT64 Revision;\r
+ EFI_GET_DEBUG_MASK GetDebugMask;\r
+ EFI_SET_DEBUG_MASK SetDebugMask;\r
+};\r
+\r
+extern EFI_GUID gEfiDebugMaskProtocolGuid;\r
+\r
+///\r
+/// GUID used to store the global debug mask in an the "EFIDebug" EFI Variabe\r
+///\r
+#define EFI_GENERIC_VARIABLE_GUID \\r
+ { 0x59d1c24f, 0x50f1, 0x401a, {0xb1, 0x01, 0xf3, 0x3e, 0x0d, 0xae, 0xd4, 0x43} }\r
+ \r
+#define DEBUG_MASK_VARIABLE_NAME L"EFIDebug"\r
+\r
+extern EFI_GUID gEfiGenericVariableGuid;\r
+\r
+#endif\r