1 /** @file
2 
3   Debug Mask Protocol.
4 
5 Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7 
8 **/
9 
10 #ifndef __DEBUG_MASK_H__
11 #define __DEBUG_MASK_H__
12 
13 ///
14 /// Protocol GUID for DXE Phase Debug Mask support
15 ///
16 #define EFI_DEBUG_MASK_PROTOCOL_GUID \
17   { 0x4c8a2451, 0xc207, 0x405b, {0x96, 0x94, 0x99, 0xea, 0x13, 0x25, 0x13, 0x41} }
18 
19 ///
20 /// Forward reference for pure ANSI compatability
21 ///
22 typedef struct _EFI_DEBUG_MASK_PROTOCOL  EFI_DEBUG_MASK_PROTOCOL;
23 
24 ///
25 ///
26 ///
27 #define EFI_DEBUG_MASK_REVISION        0x00010000
28 
29 //
30 // DebugMask member functions definition
31 //
32 typedef
33 EFI_STATUS
34 (EFIAPI * EFI_GET_DEBUG_MASK) (
35   IN EFI_DEBUG_MASK_PROTOCOL  *This,
36   IN OUT UINTN                *CurrentDebugMask
37   );
38 
39 typedef
40 EFI_STATUS
41 (EFIAPI *EFI_SET_DEBUG_MASK) (
42   IN EFI_DEBUG_MASK_PROTOCOL  *This,
43   IN UINTN                    NewDebugMask
44   );
45 
46 ///
47 /// DebugMask protocol definition
48 ///
49 struct _EFI_DEBUG_MASK_PROTOCOL {
50   INT64               Revision;
51   EFI_GET_DEBUG_MASK  GetDebugMask;
52   EFI_SET_DEBUG_MASK  SetDebugMask;
53 };
54 
55 extern EFI_GUID gEfiDebugMaskProtocolGuid;
56 
57 ///
58 /// GUID used to store the global debug mask in an the "EFIDebug" EFI Variabe
59 /// Also used as a GUIDed HOB that contains a UINT32 debug mask default value
60 ///
61 #define EFI_GENERIC_VARIABLE_GUID \
62   { 0x59d1c24f, 0x50f1, 0x401a, {0xb1, 0x01, 0xf3, 0x3e, 0x0d, 0xae, 0xd4, 0x43} }
63 
64 #define DEBUG_MASK_VARIABLE_NAME  L"EFIDebug"
65 
66 extern EFI_GUID gEfiGenericVariableGuid;
67 
68 #endif
69