]> git.proxmox.com Git - mirror_edk2.git/blob - Tools/Source/TianoTools/Common/PeiLib/Debug.c
Add <FrameworkModules> in EdkModulePkg-All-Archs.fpd and MdePkg-All-Archs.fpd file...
[mirror_edk2.git] / Tools / Source / TianoTools / Common / PeiLib / Debug.c
1 /*++
2
3 Copyright (c) 2004 - 2005, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 Debug.c
15
16 Abstract:
17
18 Support for Debug primatives.
19
20 --*/
21
22 #include "Tiano.h"
23 #include "Pei.h"
24 #include "EfiPrintLib.h"
25 #include "EfiStatusCode.h"
26 #include "EfiCommonLib.h"
27 #include EFI_GUID_DEFINITION (StatusCodeCallerId)
28 #include EFI_GUID_DEFINITION (StatusCodeDataTypeId)
29
30 VOID
31 PeiDebugAssert (
32 IN EFI_PEI_SERVICES **PeiServices,
33 IN CHAR8 *FileName,
34 IN INTN LineNumber,
35 IN CHAR8 *Description
36 )
37 /*++
38
39 Routine Description:
40
41 Worker function for ASSERT(). If Error Logging hub is loaded log ASSERT
42 information. If Error Logging hub is not loaded DEADLOOP ().
43
44 Arguments:
45
46 PeiServices - The PEI core services table.
47
48 FileName - File name of failing routine.
49
50 LineNumber - Line number of failing ASSERT().
51
52 Description - Description, usually the assertion,
53
54 Returns:
55
56 None
57
58 --*/
59 {
60 UINT64 Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE];
61
62 EfiDebugAssertWorker (FileName, LineNumber, Description, sizeof (Buffer), Buffer);
63
64 //
65 // We choose NOT to use PEI_REPORT_STATUS_CODE here, because when debug is enable,
66 // we want get enough information if assert.
67 //
68 (**PeiServices).PeiReportStatusCode (
69 PeiServices,
70 (EFI_ERROR_CODE | EFI_ERROR_UNRECOVERED),
71 (EFI_SOFTWARE_PEI_MODULE | EFI_SW_EC_ILLEGAL_SOFTWARE_STATE),
72 0,
73 &gEfiCallerIdGuid,
74 (EFI_STATUS_CODE_DATA *) Buffer
75 );
76
77 EFI_DEADLOOP ();
78 }
79
80
81 VOID
82 PeiDebugPrint (
83 IN EFI_PEI_SERVICES **PeiServices,
84 IN UINTN ErrorLevel,
85 IN CHAR8 *Format,
86 ...
87 )
88 /*++
89
90 Routine Description:
91
92 Worker function for DEBUG(). If Error Logging hub is loaded log ASSERT
93 information. If Error Logging hub is not loaded do nothing.
94
95 Arguments:
96
97 PeiServices - The PEI core services table.
98
99 ErrorLevel - If error level is set do the debug print.
100
101 Format - String to use for the print, followed by Print arguments.
102
103 ... - Print arguments
104
105 Returns:
106
107 None
108
109 --*/
110 {
111 VA_LIST Marker;
112 UINT64 Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE];
113
114 VA_START (Marker, Format);
115 EfiDebugVPrintWorker (ErrorLevel, Format, Marker, sizeof (Buffer), Buffer);
116
117 //
118 // We choose NOT to use PEI_REPORT_STATUS_CODE here, because when debug is enable,
119 // we want get enough information if assert.
120 //
121 (**PeiServices).PeiReportStatusCode (
122 PeiServices,
123 EFI_DEBUG_CODE,
124 (EFI_SOFTWARE_PEI_MODULE | EFI_DC_UNSPECIFIED),
125 0,
126 &gEfiCallerIdGuid,
127 (EFI_STATUS_CODE_DATA *) Buffer
128 );
129
130 return ;
131 }