Reviewed-by: Dandan Bi <dandan...@intel.com>


Thanks,
Dandan
-----Original Message-----
From: Lai, Cosmo <cosmo....@intel.com> 
Sent: Tuesday, July 19, 2022 1:59 PM
To: devel@edk2.groups.io
Cc: Lai, Cosmo <cosmo....@intel.com>; Wang, Jian J <jian.j.w...@intel.com>; 
Gao, Liming <gaolim...@byosoft.com.cn>; Bi, Dandan <dandan...@intel.com>
Subject: [PATCH v5] MdeModulePkg/Include: Long debug string is truncated to 104 
char

From: Cosmo Lai <cosmo....@intel.com>

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3986

The EFI_STATUS_CODE_DATA_MAX_SIZE is defined as 200 in MdeModulePkg.
After reducing 96byte buffer for variable parameters it is limited to only 104 
char debug string. This is a non-necessary limitation.
This change sets EFI_STATUS_CODE_DATA_MAX_SIZE to 0x200, and moves 
MAX_EXTENDED_DATA_SIZE definition to the same header file with value of 
EFI_STATUS_CODE_DATA_MAX_SIZE + sizeof (EFI_STATUS_CODE_DATA) which is used in 
ReportStatusCodeLib to support longer debug string.

Cc: Jian J Wang <jian.j.w...@intel.com>
Cc: Liming Gao <gaolim...@byosoft.com.cn>
Cc: Dandan Bi <dandan...@intel.com>

Signed-off-by: Cosmo Lai <cosmo....@intel.com>
---
 MdeModulePkg/Include/Guid/StatusCodeDataTypeDebug.h            | 10 +++++++++-
 .../Library/DxeReportStatusCodeLib/ReportStatusCodeLib.c       |  6 ------
 .../Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c       |  5 -----
 .../RuntimeDxeReportStatusCodeLib/ReportStatusCodeLib.c        |  5 -----
 4 files changed, 9 insertions(+), 17 deletions(-)

diff --git a/MdeModulePkg/Include/Guid/StatusCodeDataTypeDebug.h 
b/MdeModulePkg/Include/Guid/StatusCodeDataTypeDebug.h
index 16203452e4..6f2688064b 100644
--- a/MdeModulePkg/Include/Guid/StatusCodeDataTypeDebug.h
+++ b/MdeModulePkg/Include/Guid/StatusCodeDataTypeDebug.h
@@ -10,6 +10,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  #ifndef 
_STATUS_CODE_DATA_TYPE_DEBUG_H_  #define _STATUS_CODE_DATA_TYPE_DEBUG_H_
 
+#include <Pi/PiStatusCode.h>
+
 ///
 /// The Global ID used to identify a structure of type EFI_DEBUG_INFO.
 ///
@@ -21,7 +23,13 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  ///  /// The 
maximum size of an EFI_DEBUG_INFO structure.
 ///
-#define EFI_STATUS_CODE_DATA_MAX_SIZE  200
+#define EFI_STATUS_CODE_DATA_MAX_SIZE  0x200
+
+///
+/// Define the maximum extended data size that is supported when a /// 
+status code is reported.
+///
+#define MAX_EXTENDED_DATA_SIZE  (EFI_STATUS_CODE_DATA_MAX_SIZE + 
+sizeof(EFI_STATUS_CODE_DATA))
 
 ///
 /// This structure contains the ErrorLevel passed into the DEBUG() macro, 
followed diff --git 
a/MdeModulePkg/Library/DxeReportStatusCodeLib/ReportStatusCodeLib.c 
b/MdeModulePkg/Library/DxeReportStatusCodeLib/ReportStatusCodeLib.c
index ed01d8aacb..da254b755f 100644
--- a/MdeModulePkg/Library/DxeReportStatusCodeLib/ReportStatusCodeLib.c
+++ b/MdeModulePkg/Library/DxeReportStatusCodeLib/ReportStatusCodeLib.c
@@ -19,12 +19,6 @@
 #include <Guid/StatusCodeDataTypeId.h>
 #include <Guid/StatusCodeDataTypeDebug.h>
 
-//
-// Define the maximum extended data size that is supported when a status code 
is -// reported at TPL_HIGH_LEVEL.
-//
-#define MAX_EXTENDED_DATA_SIZE  0x200
-
 EFI_STATUS_CODE_PROTOCOL  *mReportStatusCodeLibStatusCodeProtocol = NULL;
 
 /**
diff --git a/MdeModulePkg/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c 
b/MdeModulePkg/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c
index b0a5f61cda..71da0e94fc 100644
--- a/MdeModulePkg/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c
+++ b/MdeModulePkg/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c
@@ -17,11 +17,6 @@
 #include <Library/OemHookStatusCodeLib.h>  #include <Library/PcdLib.h>
 
-//
-// Define the maximum extended data size that is supported in the PEI phase 
-// -#define MAX_EXTENDED_DATA_SIZE  0x200
-
 /**
   Internal worker function that reports a status code through the PEI Status 
Code Service or
   OEM Hook Status Code Library.
diff --git 
a/MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/ReportStatusCodeLib.c 
b/MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/ReportStatusCodeLib.c
index fdda288d33..8fd20ff239 100644
--- a/MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/ReportStatusCodeLib.c
+++ b/MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/ReportStatusCod
+++ eLib.c
@@ -21,11 +21,6 @@
 #include <Guid/StatusCodeDataTypeDebug.h>  #include <Guid/EventGroup.h>
 
-//
-// Define the maximum extended data size that is supported when a status code 
is reported.
-//
-#define MAX_EXTENDED_DATA_SIZE  0x200
-
 EFI_STATUS_CODE_PROTOCOL  *mReportStatusCodeLibStatusCodeProtocol = NULL;
 EFI_EVENT                 mReportStatusCodeLibVirtualAddressChangeEvent;
 EFI_EVENT                 mReportStatusCodeLibExitBootServicesEvent;
--
2.16.2.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#91610): https://edk2.groups.io/g/devel/message/91610
Mute This Topic: https://groups.io/mt/92477444/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to