<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta name=Generator content="Microsoft Word 15 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:DengXian;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=ZH-CN link=blue vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:DengXian'>Kun:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:DengXian'>  I am OK for this solution. Have you plan to update StatusCodeHandlerSmm?<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:DengXian'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:DengXian'>Thanks<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:DengXian'>Liming<o:p></o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='font-family:DengXian'>发件人<span lang=EN-US>:</span></span></b><span lang=EN-US style='font-family:DengXian'> bounce+27952+69397+4905953+8761045@groups.io <bounce+27952+69397+4905953+8761045@groups.io> </span><b><span style='font-family:DengXian'>代表 </span></b><span lang=EN-US style='font-family:DengXian'>Wu, Hao A<br></span><b><span style='font-family:DengXian'>发送时间<span lang=EN-US>:</span></span></b><span lang=EN-US style='font-family:DengXian'> 2020</span><span style='font-family:DengXian'>年<span lang=EN-US>12</span>月<span lang=EN-US>23</span>日<span lang=EN-US> 14:10<br></span><b>收件人<span lang=EN-US>:</span></b><span lang=EN-US> devel@edk2.groups.io; kun.q@outlook.com; Liming Gao <gaoliming@byosoft.com.cn>; Yao, Jiewen <jiewen.yao@intel.com><br></span><b>抄送<span lang=EN-US>:</span></b><span lang=EN-US> Wang, Jian J <jian.j.wang@intel.com>; Bi, Dandan <dandan.bi@intel.com><br></span><b>主题<span lang=EN-US>:</span></b><span lang=EN-US> Re: [edk2-devel] [PATCH v1 06/15] MdeModulePkg: SmmReportStatusCodeLib: ReportStatusCodeLib in StandaloneMm<o:p></o:p></span></span></p></div></div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Hello Kun,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Got it, thanks for the explanation. My preference is the same with your current proposal in the patch.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Hello Liming and Jiewen,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Do you have comments for this case? Thanks in advance.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><div><p class=MsoNormal><span lang=EN-US>Best Regards,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Hao Wu<o:p></o:p></span></p></div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US>From:</span></b><span lang=EN-US> <a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a> <<a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>> <b>On Behalf Of </b>Kun Qin<br><b>Sent:</b> Wednesday, December 23, 2020 3:15 AM<br><b>To:</b> <a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>; Wu, Hao A <<a href="mailto:hao.a.wu@intel.com">hao.a.wu@intel.com</a>><br><b>Cc:</b> Wang, Jian J <<a href="mailto:jian.j.wang@intel.com">jian.j.wang@intel.com</a>>; Bi, Dandan <<a href="mailto:dandan.bi@intel.com">dandan.bi@intel.com</a>>; Liming Gao <<a href="mailto:gaoliming@byosoft.com.cn">gaoliming@byosoft.com.cn</a>>; Yao, Jiewen <<a href="mailto:jiewen.yao@intel.com">jiewen.yao@intel.com</a>><br><b>Subject:</b> Re: [edk2-devel] [PATCH v1 06/15] MdeModulePkg: SmmReportStatusCodeLib: ReportStatusCodeLib in StandaloneMm<o:p></o:p></span></p></div></div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Hi Hao,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>That was my original plan, but doing it might require a MmServiceTableLib instance for SMM_CORE type if PiSmmCore links in RSC lib (similar to PiSmmCoreSmmServicesTableLib). We can create such an instance just like PiSmmCoreSmmServicesTableLib, but the implementation will pull in gSmmCoreSmst as an external variable and cast it from `EFI_SMM_SYSTEM_TABLE2` to `EFI_MM_SYSTEM_TABLE`, which does not look clean. Thus I just abstract the routine to avoid it.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Please let me know if you have better ideas, I can add the change for next patch series.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Thanks,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Kun<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US>From: </span></b><span lang=EN-US><a href="mailto:hao.a.wu@intel.com">Wu, Hao A</a><br><b>Sent: </b>Tuesday, December 22, 2020 00:35<br><b>To: </b><a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>; <a href="mailto:kun.q@outlook.com">kun.q@outlook.com</a><br><b>Cc: </b><a href="mailto:jian.j.wang@intel.com">Wang, Jian J</a>; <a href="mailto:dandan.bi@intel.com">Bi, Dandan</a>; <a href="mailto:gaoliming@byosoft.com.cn">Liming Gao</a>; <a href="mailto:jiewen.yao@intel.com">Yao, Jiewen</a><br><b>Subject: </b>Re: [edk2-devel] [PATCH v1 06/15] MdeModulePkg: SmmReportStatusCodeLib: ReportStatusCodeLib in StandaloneMm<o:p></o:p></span></p></div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal style='margin-bottom:12.0pt'><span lang=EN-US>> -----Original Message-----<br>> From: <a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a> <<a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>> On Behalf Of Kun Qin<br>> Sent: Saturday, December 19, 2020 2:50 AM<br>> To: <a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a><br>> Cc: Wang, Jian J <<a href="mailto:jian.j.wang@intel.com">jian.j.wang@intel.com</a>>; Wu, Hao A <<a href="mailto:hao.a.wu@intel.com">hao.a.wu@intel.com</a>>;<br>> Bi, Dandan <<a href="mailto:dandan.bi@intel.com">dandan.bi@intel.com</a>>; Liming Gao <<a href="mailto:gaoliming@byosoft.com.cn">gaoliming@byosoft.com.cn</a>><br>> Subject: [edk2-devel] [PATCH v1 06/15] MdeModulePkg:<br>> SmmReportStatusCodeLib: ReportStatusCodeLib in StandaloneMm<br>> <br>> This change added support of StandaloneMm for ReportStatusCodeLib. It<br>> adds a new instance of ReportStatusCodeLib for MM_STANDALONE type,<br>> and abstracts the references of gMmst and gSmst functionalities into<br>> separate files in order to link in proper Service Table for SMM core/drivers.<br><br><br>Sorry for a question.<br><br>Do you think it is feasible to use:<br>gMmst->MmLocateProtocol to locate gEfiMmStatusCodeProtocolGuid<br>and avoid introducing 2 separate implementations for internal function InternalLocateProtocol()?<br><br>Since I found that the definitions for gEfiMmStatusCodeProtocolGuid an gEfiSmmStatusCodeProtocolGuid are identical.<br><br>Best Regards,<br>Hao Wu<br><br><br>> <br>> Cc: Jian J Wang <<a href="mailto:jian.j.wang@intel.com">jian.j.wang@intel.com</a>><br>> Cc: Hao A Wu <<a href="mailto:hao.a.wu@intel.com">hao.a.wu@intel.com</a>><br>> Cc: Dandan Bi <<a href="mailto:dandan.bi@intel.com">dandan.bi@intel.com</a>><br>> Cc: Liming Gao <<a href="mailto:gaoliming@byosoft.com.cn">gaoliming@byosoft.com.cn</a>><br>> <br>> Signed-off-by: Kun Qin <<a href="mailto:kun.q@outlook.com">kun.q@outlook.com</a>><br>> ---<br>>  MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib.c<br>> | 16 ++++----<br>> <br>> MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibSta<br>> ndaloneMm.c                                   | 39 ++++++++++++++++++++<br>> <br>> MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibTra<br>> ditional.c                                    | 39 ++++++++++++++++++++<br>>  MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib.h<br>> | 37 +++++++++++++++++++<br>> <br>> MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCodeLi<br>> b.inf                                          |  4 +-<br>> <br>> MdeModulePkg/Library/SmmReportStatusCodeLib/{SmmReportStatusCode<br>> Lib.inf => StandaloneMmReportStatusCodeLib.inf} | 17 +++++----<br>>  MdeModulePkg/MdeModulePkg.dsc<br>> |  1 +<br>>  7 files changed, 137 insertions(+), 16 deletions(-)<br>> <br>> diff --git<br>> a/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib.c<br>> b/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib.<br>> c<br>> index 3a1772538cdf..fb1769db9223 100644<br>> ---<br>> a/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib.c<br>> +++<br>> b/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib.<br>> c<br>> @@ -1,5 +1,5 @@<br>>  /** @file<br>> -  Report Status Code Library for SMM Phase.<br>> +  Report Status Code Library for MM Phase.<br>> <br>>    Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR><br>>    SPDX-License-Identifier: BSD-2-Clause-Patent @@ -8,7 +8,7 @@<br>> <br>>  #include <Library/ReportStatusCodeLib.h>  #include <Library/DebugLib.h> -<br>> #include <Library/SmmServicesTableLib.h><br>> +#include <Library/MmServicesTableLib.h><br>>  #include <Library/BaseLib.h><br>>  #include <Library/BaseMemoryLib.h><br>>  #include <Library/PcdLib.h><br>> @@ -16,10 +16,12 @@<br>> <br>>  #include <Guid/StatusCodeDataTypeId.h><br>>  #include <Guid/StatusCodeDataTypeDebug.h> -#include<br>> <Protocol/SmmStatusCode.h><br>> +#include <Protocol/MmStatusCode.h><br>> <br>> -EFI_SMM_REPORT_STATUS_CODE     mReportStatusCode = NULL;<br>> -EFI_SMM_STATUS_CODE_PROTOCOL   *mStatusCodeProtocol = NULL;<br>> +#include "ReportStatusCodeLib.h"<br>> +<br>> +EFI_MM_REPORT_STATUS_CODE     mReportStatusCode = NULL;<br>> +EFI_MM_STATUS_CODE_PROTOCOL   *mStatusCodeProtocol = NULL;<br>> <br>> <br>>  /**<br>> @@ -29,14 +31,14 @@ EFI_SMM_STATUS_CODE_PROTOCOL<br>> *mStatusCodeProtocol = NULL;<br>>              NULL is returned if no status code service is available.<br>> <br>>  **/<br>> -EFI_SMM_REPORT_STATUS_CODE<br>> +EFI_MM_REPORT_STATUS_CODE<br>>  InternalGetReportStatusCode (<br>>    VOID<br>>    )<br>>  {<br>>    EFI_STATUS                    Status;<br>> <br>> -  Status = gSmst->SmmLocateProtocol (&gEfiSmmStatusCodeProtocolGuid,<br>> NULL, (VOID**)&mStatusCodeProtocol);<br>> +  Status = InternalLocateProtocol (&gEfiMmStatusCodeProtocolGuid, NULL,<br>> + (VOID**)&mStatusCodeProtocol);<br>>    if (!EFI_ERROR (Status) && mStatusCodeProtocol != NULL) {<br>>      return mStatusCodeProtocol->ReportStatusCode;<br>>    }<br>> diff --git<br>> a/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibS<br>> tandaloneMm.c<br>> b/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibS<br>> tandaloneMm.c<br>> new file mode 100644<br>> index 000000000000..fc47dffe9ffb<br>> --- /dev/null<br>> +++<br>> b/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibS<br>> ta<br>> +++ ndaloneMm.c<br>> @@ -0,0 +1,39 @@<br>> +/** @file<br>> +  Abstraction layer for MM service table used by MM ReportStatusCodeLib.<br>> +<br>> +  Copyright (c) Microsoft Corporation.<br>> +  SPDX-License-Identifier: BSD-2-Clause-Patent<br>> +<br>> +**/<br>> +<br>> +#include <PiMm.h><br>> +<br>> +#include <Library/MmServicesTableLib.h><br>> +<br>> +/**<br>> +  Returns the first protocol instance that matches the given protocol.<br>> +<br>> +  @param[in]  Protocol          Provides the protocol to search for.<br>> +  @param[in]  Registration      Optional registration key returned from<br>> +                                RegisterProtocolNotify().<br>> +  @param[out]  Interface        On return, a pointer to the first interface that<br>> matches Protocol and<br>> +                                Registration.<br>> +<br>> +  @retval EFI_SUCCESS           A protocol instance matching Protocol was<br>> found and returned in<br>> +                                Interface.<br>> +  @retval EFI_NOT_FOUND         No protocol instances were found that<br>> match Protocol and<br>> +                                Registration.<br>> +  @retval EFI_INVALID_PARAMETER Interface is NULL.<br>> +                                Protocol is NULL.<br>> +<br>> +**/<br>> +EFI_STATUS<br>> +EFIAPI<br>> +InternalLocateProtocol (<br>> +  IN  EFI_GUID  *Protocol,<br>> +  IN  VOID      *Registration, OPTIONAL<br>> +  OUT VOID      **Interface<br>> +  )<br>> +{<br>> +  return gMmst->MmLocateProtocol (Protocol, Registration, Interface); }<br>> diff --git<br>> a/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibT<br>> raditional.c<br>> b/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibT<br>> raditional.c<br>> new file mode 100644<br>> index 000000000000..6b3a7c6051c5<br>> --- /dev/null<br>> +++<br>> b/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibT<br>> ra<br>> +++ ditional.c<br>> @@ -0,0 +1,39 @@<br>> +/** @file<br>> +  Abstraction layer for SMM service table used by SMM<br>> ReportStatusCodeLib.<br>> +<br>> +  Copyright (c) Microsoft Corporation.<br>> +  SPDX-License-Identifier: BSD-2-Clause-Patent<br>> +<br>> +**/<br>> +<br>> +#include <PiMm.h><br>> +<br>> +#include <Library/SmmServicesTableLib.h><br>> +<br>> +/**<br>> +  Returns the first protocol instance that matches the given protocol.<br>> +<br>> +  @param[in]  Protocol          Provides the protocol to search for.<br>> +  @param[in]  Registration      Optional registration key returned from<br>> +                                RegisterProtocolNotify().<br>> +  @param[out]  Interface        On return, a pointer to the first interface that<br>> matches Protocol and<br>> +                                Registration.<br>> +<br>> +  @retval EFI_SUCCESS           A protocol instance matching Protocol was<br>> found and returned in<br>> +                                Interface.<br>> +  @retval EFI_NOT_FOUND         No protocol instances were found that<br>> match Protocol and<br>> +                                Registration.<br>> +  @retval EFI_INVALID_PARAMETER Interface is NULL.<br>> +                                Protocol is NULL.<br>> +<br>> +**/<br>> +EFI_STATUS<br>> +EFIAPI<br>> +InternalLocateProtocol (<br>> +  IN  EFI_GUID  *Protocol,<br>> +  IN  VOID      *Registration, OPTIONAL<br>> +  OUT VOID      **Interface<br>> +  )<br>> +{<br>> +  return gSmst->SmmLocateProtocol (Protocol, Registration, Interface);<br>> +}<br>> diff --git<br>> a/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib.<br>> h<br>> b/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib.<br>> h<br>> new file mode 100644<br>> index 000000000000..9a16741e64f6<br>> --- /dev/null<br>> +++<br>> b/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib.<br>> h<br>> @@ -0,0 +1,37 @@<br>> +/** @file<br>> +  Report Status Code Library for MM Phase.<br>> +<br>> +  Copyright (c) 2009 - 2018, Intel Corporation. All rights<br>> + reserved.<BR><br>> +  SPDX-License-Identifier: BSD-2-Clause-Patent<br>> +<br>> +**/<br>> +<br>> +#ifndef _MM_RSC_LIB_H_<br>> +#define _MM_RSC_LIB_H_<br>> +<br>> +/**<br>> +  Returns the first protocol instance that matches the given protocol.<br>> +<br>> +  @param[in]  Protocol          Provides the protocol to search for.<br>> +  @param[in]  Registration      Optional registration key returned from<br>> +                                RegisterProtocolNotify().<br>> +  @param[out]  Interface        On return, a pointer to the first interface that<br>> matches Protocol and<br>> +                                Registration.<br>> +<br>> +  @retval EFI_SUCCESS           A protocol instance matching Protocol was<br>> found and returned in<br>> +                                Interface.<br>> +  @retval EFI_NOT_FOUND         No protocol instances were found that<br>> match Protocol and<br>> +                                Registration.<br>> +  @retval EFI_INVALID_PARAMETER Interface is NULL.<br>> +                                Protocol is NULL.<br>> +<br>> +**/<br>> +EFI_STATUS<br>> +EFIAPI<br>> +InternalLocateProtocol (<br>> +  IN  EFI_GUID  *Protocol,<br>> +  IN  VOID      *Registration, OPTIONAL<br>> +  OUT VOID      **Interface<br>> +  );<br>> +<br>> +#endif // _MM_RSC_LIB_H_<br>> diff --git<br>> a/MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCod<br>> eLib.inf<br>> b/MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCod<br>> eLib.inf<br>> index 72496bfababd..02dce09a199d 100644<br>> ---<br>> a/MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCod<br>> eLib.inf<br>> +++<br>> b/MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCod<br>> eLib<br>> +++ .inf<br>> @@ -28,6 +28,8 @@ [Defines]<br>> <br>>  [Sources]<br>>    ReportStatusCodeLib.c<br>> +  ReportStatusCodeLib.h<br>> +  ReportStatusCodeLibTraditional.c<br>> <br>>  [Packages]<br>>    MdePkg/MdePkg.dec<br>> @@ -45,7 +47,7 @@ [Guids]<br>>    gEfiStatusCodeDataTypeDebugGuid               ## SOMETIMES_CONSUMES<br>> ## UNDEFINED<br>> <br>>  [Protocols]<br>> -  gEfiSmmStatusCodeProtocolGuid                 ## CONSUMES<br>> +  gEfiMmStatusCodeProtocolGuid                  ## CONSUMES<br>> <br>>  [Pcd]<br>>    gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask  ##<br>> CONSUMES diff --git<br>> a/MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCod<br>> eLib.inf<br>> b/MdeModulePkg/Library/SmmReportStatusCodeLib/StandaloneMmReport<br>> StatusCodeLib.inf<br>> similarity index 64%<br>> copy from<br>> MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCodeLi<br>> b.inf<br>> copy to<br>> MdeModulePkg/Library/SmmReportStatusCodeLib/StandaloneMmReportSt<br>> atusCodeLib.inf<br>> index 72496bfababd..11ecc67fc4fa 100644<br>> ---<br>> a/MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCod<br>> eLib.inf<br>> +++<br>> b/MdeModulePkg/Library/SmmReportStatusCodeLib/StandaloneMmReport<br>> Stat<br>> +++ usCodeLib.inf<br>> @@ -12,13 +12,12 @@<br>> <br>>  [Defines]<br>>    INF_VERSION                    = 0x00010005<br>> -  BASE_NAME                      = SmmReportStatusCodeLib<br>> -  MODULE_UNI_FILE                = SmmReportStatusCodeLib.uni<br>> -  FILE_GUID                      = 67089D19-B3D6-4d9e-A0EB-FEDC1F83A1EE<br>> -  MODULE_TYPE                    = DXE_SMM_DRIVER<br>> +  BASE_NAME                      = StandaloneMmReportStatusCodeLib<br>> +  FILE_GUID                      = 17C7FC8C-8C5D-497E-9C0E-C21255B30E04<br>> +  MODULE_TYPE                    = MM_STANDALONE<br>>    VERSION_STRING                 = 1.0<br>> -  PI_SPECIFICATION_VERSION       = 0x0001000A<br>> -  LIBRARY_CLASS                  = ReportStatusCodeLib|DXE_SMM_DRIVER<br>> SMM_CORE<br>> +  PI_SPECIFICATION_VERSION       = 0x00010032<br>> +  LIBRARY_CLASS                  = ReportStatusCodeLib|MM_STANDALONE<br>> <br>>  #<br>>  # The following information is for reference only and not required by the<br>> build tools.<br>> @@ -28,6 +27,8 @@ [Defines]<br>> <br>>  [Sources]<br>>    ReportStatusCodeLib.c<br>> +  ReportStatusCodeLib.h<br>> +  ReportStatusCodeLibStandaloneMm.c<br>> <br>>  [Packages]<br>>    MdePkg/MdePkg.dec<br>> @@ -36,7 +37,7 @@ [Packages]<br>>  [LibraryClasses]<br>>    PcdLib<br>>    BaseMemoryLib<br>> -  SmmServicesTableLib<br>> +  MmServicesTableLib<br>>    DebugLib<br>>    MemoryAllocationLib<br>> <br>> @@ -45,7 +46,7 @@ [Guids]<br>>    gEfiStatusCodeDataTypeDebugGuid               ## SOMETIMES_CONSUMES<br>> ## UNDEFINED<br>> <br>>  [Protocols]<br>> -  gEfiSmmStatusCodeProtocolGuid                 ## CONSUMES<br>> +  gEfiMmStatusCodeProtocolGuid                  ## CONSUMES<br>> <br>>  [Pcd]<br>>    gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask  ##<br>> CONSUMES diff --git a/MdeModulePkg/MdeModulePkg.dsc<br>> b/MdeModulePkg/MdeModulePkg.dsc index cd91a70b4fdd..05bf5fe08094<br>> 100644<br>> --- a/MdeModulePkg/MdeModulePkg.dsc<br>> +++ b/MdeModulePkg/MdeModulePkg.dsc<br>> @@ -473,6 +473,7 @@ [Components.IA32, Components.X64]<br>>    }<br>> <br>> MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.i<br>> nf<br>> <br>> MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCodeLi<br>> b.inf<br>> +<br>> +<br>> MdeModulePkg/Library/SmmReportStatusCodeLib/StandaloneMmReportSt<br>> atusCo<br>> + deLib.inf<br>> <br>> MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSm<br>> m.inf<br>> <br>> MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCod<br>> eRouterSmm.inf<br>>    MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf<br>> --<br>> 2.28.0.windows.1<br>> <br>> <br>> <br>> <br>> <br><br><br><br><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><div><p class=MsoNormal></o:p></span></p></div></div></body></html>


 <div width="1" style="color:white;clear:both">_._,_._,_</div> <hr> Groups.io Links:<p>   You receive all messages sent to this group.    <p> <a target="_blank" href="https://edk2.groups.io/g/devel/message/69439">View/Reply Online (#69439)</a> |    |  <a target="_blank" href="https://groups.io/mt/79194918/1813853">Mute This Topic</a>  | <a href="https://edk2.groups.io/g/devel/post">New Topic</a><br>    <a href="https://edk2.groups.io/g/devel/editsub/1813853">Your Subscription</a> | <a href="mailto:devel+owner@edk2.groups.io">Contact Group Owner</a> |  <a href="https://edk2.groups.io/g/devel/unsub">Unsubscribe</a>  [edk2-devel-archive@redhat.com]<br> <div width="1" style="color:white;clear:both">_._,_._,_</div>