1 /** @file
2 
3   Debug Mask Protocol.
4 
5 Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
6 This program and the accompanying materials are licensed and made available under
7 the terms and conditions of the BSD License that accompanies this distribution.
8 The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php.
10 
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 
14 **/
15 
16 #ifndef __DEBUG_MASK_H__
17 #define __DEBUG_MASK_H__
18 
19 ///
20 /// Protocol GUID for DXE Phase Debug Mask support
21 ///
22 #define EFI_DEBUG_MASK_PROTOCOL_GUID \
23   { 0x4c8a2451, 0xc207, 0x405b, {0x96, 0x94, 0x99, 0xea, 0x13, 0x25, 0x13, 0x41} }
24 
25 ///
26 /// Forward reference for pure ANSI compatability
27 ///
28 typedef struct _EFI_DEBUG_MASK_PROTOCOL  EFI_DEBUG_MASK_PROTOCOL;
29 
30 ///
31 ///
32 ///
33 #define EFI_DEBUG_MASK_REVISION        0x00010000
34 
35 //
36 // DebugMask member functions definition
37 //
38 typedef
39 EFI_STATUS
40 (EFIAPI * EFI_GET_DEBUG_MASK) (
41   IN EFI_DEBUG_MASK_PROTOCOL  *This,
42   IN OUT UINTN                *CurrentDebugMask
43   );
44 
45 typedef
46 EFI_STATUS
47 (EFIAPI *EFI_SET_DEBUG_MASK) (
48   IN EFI_DEBUG_MASK_PROTOCOL  *This,
49   IN UINTN                    NewDebugMask
50   );
51 
52 ///
53 /// DebugMask protocol definition
54 ///
55 struct _EFI_DEBUG_MASK_PROTOCOL {
56   INT64               Revision;
57   EFI_GET_DEBUG_MASK  GetDebugMask;
58   EFI_SET_DEBUG_MASK  SetDebugMask;
59 };
60 
61 extern EFI_GUID gEfiDebugMaskProtocolGuid;
62 
63 ///
64 /// GUID used to store the global debug mask in an the "EFIDebug" EFI Variabe
65 /// Also used as a GUIDed HOB that contains a UINT32 debug mask default value
66 ///
67 #define EFI_GENERIC_VARIABLE_GUID \
68   { 0x59d1c24f, 0x50f1, 0x401a, {0xb1, 0x01, 0xf3, 0x3e, 0x0d, 0xae, 0xd4, 0x43} }
69 
70 #define DEBUG_MASK_VARIABLE_NAME  L"EFIDebug"
71 
72 extern EFI_GUID gEfiGenericVariableGuid;
73 
74 #endif
75