From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM04-BN3-obe.outbound.protection.outlook.com (NAM04-BN3-obe.outbound.protection.outlook.com [40.92.9.89]) by mx.groups.io with SMTP id smtpd.web12.8682.1608801092897425593 for ; Thu, 24 Dec 2020 01:11:33 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@outlook.com header.s=selector1 header.b=U7bYSa4b; spf=pass (domain: outlook.com, ip: 40.92.9.89, mailfrom: kun.q@outlook.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Nrc1EbbA0vGGgCZCVat5Hyo2oDGE0tNMz7Wm93oWQV2RywbPWWmASF81ec74GTsYGO+sQFT/NJt5E/NC0T0mg0jMtF+K1WbWRMVlnF1gmRB/DqthqlLqxj7lAh4HMGnmtcI+IsMpq0RBZ3WkrH6Ti3V1zZyKRPd1fsm2z6MLyN9gDnauwp4zH3VJ9+5o9MbdO646+F9BnZG/OEvMG+l5uQgMyCcq/HIfrTvX8kgB75XfTu4+lIAJ5Te39PYtmcMtDagThO7lNNqOhFnOPN8oCjNapL0OXmQAkeo6sXeSvjXKir2ux+py5oFIA9xk2wIj80sSaL/7pdMz8HkW0pnvYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3ojQ7bTHIqLrWCPDUgXlZEqtEyG+E+AFDTfgeQ+jtuc=; b=Y2yEjAQlLW07jSNe/r5jOW94uhHX7Y5/abVyjsQ/UO79C6RTgS7jMDVZ76FIBI1/fcUuKZe0oj5LJko7s7LwCvUtbB1y2wJMtKcDB4GSbksFDp5ggWWm7iC+/HzBZY9afVOin69LAizFR3m2lcpYErN0j8+v0O0rGVrwUmSYICGBsO0RKI+WFLCG/wlddFxCW7777h0xL/taVi4GZ2xQtjjh1x3oNPKb3VSEJqNWPE/xAN9egLP/y6SKGXNvKLGa8rek8euyZXZ0xNqIXKsIw7rivz16EjKGMdp0AeMFi/nNXAB21k1q8kGbzR9tuCvhuCLMlMrby7t6HtwCF3PbyA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3ojQ7bTHIqLrWCPDUgXlZEqtEyG+E+AFDTfgeQ+jtuc=; b=U7bYSa4bN/liQfq6IRQl28R9zqpcDep3fjGg9VXbOClSfVc/EahnCQhxzFdtBTOOFK7Hy+1gpkuHmbxkz7q03kXzi8t5g0IR0q0wi5mpeKmpBI96OOPmFGfd7I5OPybalfemqwnH31YD20aFdAIYDb/wNlyTq2ZOLKcRBkT75Eeoj+qfH08+Azd9ATFBkL7fTRsfFVVjya7MmFv1EEbonr6drhUKEHMv/zhyptjr3xFnzpvNVod/UPGQ5E3B8vyODFBNoAZeVgKwuPn0pEjCnEvAS00zFSxNO5woXUeGKXwh8avJwveBhwuudiTpG9kay61kJIJL/jy8RVhC1zMtMA== Received: from DM6NAM04FT013.eop-NAM04.prod.protection.outlook.com (2a01:111:e400:7ea3::42) by DM6NAM04HT201.eop-NAM04.prod.protection.outlook.com (2a01:111:e400:7ea3::112) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3676.25; Thu, 24 Dec 2020 09:11:31 +0000 Received: from MWHPR06MB3102.namprd06.prod.outlook.com (2a01:111:e400:7ea3::4a) by DM6NAM04FT013.mail.protection.outlook.com (2a01:111:e400:7ea3::78) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3700.27 via Frontend Transport; Thu, 24 Dec 2020 09:11:31 +0000 Received: from MWHPR06MB3102.namprd06.prod.outlook.com ([fe80::acb3:ab69:563d:b0d6]) by MWHPR06MB3102.namprd06.prod.outlook.com ([fe80::acb3:ab69:563d:b0d6%5]) with mapi id 15.20.3676.033; Thu, 24 Dec 2020 09:11:31 +0000 From: "Kun Qin" To: "devel@edk2.groups.io" , "gaoliming@byosoft.com.cn" , "hao.a.wu@intel.com" , "'Yao, Jiewen'" CC: "'Wang, Jian J'" , "'Bi, Dandan'" Subject: Re: [edk2-devel] [PATCH v1 06/15] MdeModulePkg: SmmReportStatusCodeLib: ReportStatusCodeLib in StandaloneMm Thread-Topic: [edk2-devel] [PATCH v1 06/15] MdeModulePkg: SmmReportStatusCodeLib: ReportStatusCodeLib in StandaloneMm Thread-Index: AQHW1W6oojBHwsGCV0ysC5Z2IgsQJKoC0A2AgACviAuAALnuAIABSsaAgABc/uo= Date: Thu, 24 Dec 2020 09:11:31 +0000 Message-ID: References: <20201218185011.1366-1-kun.q@outlook.com> , ,<00f701d6d997$93d1af10$bb750d30$@byosoft.com.cn> In-Reply-To: <00f701d6d997$93d1af10$bb750d30$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:ACA1CF539801C42FA002D92F4C77C6703F100D48C12702D7A864C644A96C7B8F;UpperCasedChecksum:01236DD8E8A4DF0452AF36BAFED87DE914E775A360960FDAA10E8483399BF8CF;SizeAsReceived:7511;Count:44 x-tmn: [81qeNVZPhGQjRbsihcTtALqKsGPpLdpw] x-ms-publictraffictype: Email x-incomingheadercount: 44 x-eopattributedmessage: 0 x-ms-office365-filtering-correlation-id: bdc0606e-8619-4c38-9e0b-08d8a7ebe74e x-ms-traffictypediagnostic: DM6NAM04HT201: x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ygOaYW7ibJyOZdaP3cGlQnqi5tmlEu7NgNY1KfWSC4TwA6LwPVtTqX3yMEOQKAvHI8Yw/yHRu/kQws6JU2UD/3h9lKAikzRKJQlPCMl8V6GzgIvlBBOum3MH5JxYKhSH2rE3hzI05YS3XNUeCEmFEz4QaU/u3SD/bNpWjPq/7q7qmRBwLk8eMabBHQfzbaeCnA/akLlhxiCmwZY6ph+0cPZNcCh/7UyA+4mm1mmCxq3JWqJW6i9C7LpCR+5HIANxcFOA66+32Ggt/Hnp9g47Cx68rtMvE4rE/wmSzCt5EUI= x-ms-exchange-antispam-messagedata: mpQ4cU6dmaXnKpJboYp2QEIlJFvTza1/08PcY2m0Mdj4gAy2mUi60RY2VaIH67S8S+B5IF7MxX9SQMPg9UZfcwAViAbAlniQDyF9iRMaG+cfnZ11AFKQ/J1LzoRsu5/gWaPkcCbdejIiY/oG46HOLQ== x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-AuthSource: DM6NAM04FT013.eop-NAM04.prod.protection.outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: bdc0606e-8619-4c38-9e0b-08d8a7ebe74e X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Dec 2020 09:11:31.0388 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6NAM04HT201 X-Groupsio-MsgNum: 69443 Content-Language: en-US Content-Type: multipart/related; boundary="_004_MWHPR06MB31029328A12F529A403B03D7F3DD0MWHPR06MB3102namp_"; type="multipart/alternative" --_004_MWHPR06MB31029328A12F529A403B03D7F3DD0MWHPR06MB3102namp_ Content-Type: multipart/alternative; boundary="_000_MWHPR06MB31029328A12F529A403B03D7F3DD0MWHPR06MB3102namp_" --_000_MWHPR06MB31029328A12F529A403B03D7F3DD0MWHPR06MB3102namp_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 TGltaW5nLA0KDQpJIGhhdmUgbm90IGhhZCBhIHBsYW4gZm9yIFN0YXR1c0NvZGVIYW5kbGVyU21t IGJlY2F1c2Ugb3VyIHBsYXRmb3JtcyBhcmUgbm90IHVzaW5nIGl0IGN1cnJlbnRseSAod2UgdXNl ZCBhIE1VIHZlcnNpb24gaW5zdGVhZCkuIFNvIGl0IHdvdWxkIGJlIGRpZmZpY3VsdCB0byBmdWxs eSB2YWxpZGF0ZSB0aGUgZnVuY3Rpb25hbGl0eSBhZnRlciB1cGRhdGVzLiBQbGVhc2UgbGV0IG1l IGtub3cgaWYgeW91IHByZWZlciB0byBoYXZlIHRoaXMgZHJpdmVyIHVwZGF0ZWQgaW4gdGhpcyBw YXRjaCBzZXJpZXMsIEkgY2FuIHRyeSB0byB1cGRhdGUgaXQgbG9jYWxseSB3aXRoIHNvbWUgZnVu ZGFtZW50YWwgc2FuaXR5IGNoZWNrcy4NCg0KUmVnYXJkcywNCkt1bg0KDQpGcm9tOiBnYW9saW1p bmc8bWFpbHRvOmdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NClNlbnQ6IFdlZG5lc2RheSwgRGVj ZW1iZXIgMjMsIDIwMjAgMTc6NTMNClRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzxtYWlsdG86ZGV2 ZWxAZWRrMi5ncm91cHMuaW8+OyBoYW8uYS53dUBpbnRlbC5jb208bWFpbHRvOmhhby5hLnd1QGlu dGVsLmNvbT47IGt1bi5xQG91dGxvb2suY29tPG1haWx0bzprdW4ucUBvdXRsb29rLmNvbT47ICdZ YW8sIEppZXdlbic8bWFpbHRvOmppZXdlbi55YW9AaW50ZWwuY29tPg0KQ2M6ICdXYW5nLCBKaWFu IEonPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyAnQmksIERhbmRhbic8bWFpbHRvOmRh bmRhbi5iaUBpbnRlbC5jb20+DQpTdWJqZWN0OiC72Li0OiBbZWRrMi1kZXZlbF0gW1BBVENIIHYx IDA2LzE1XSBNZGVNb2R1bGVQa2c6IFNtbVJlcG9ydFN0YXR1c0NvZGVMaWI6IFJlcG9ydFN0YXR1 c0NvZGVMaWIgaW4gU3RhbmRhbG9uZU1tDQoNCkt1bjoNCiBJIGFtIE9LIGZvciB0aGlzIHNvbHV0 aW9uLiBIYXZlIHlvdSBwbGFuIHRvIHVwZGF0ZSBTdGF0dXNDb2RlSGFuZGxlclNtbT8NCg0KVGhh bmtzDQpMaW1pbmcNCreivP7IyzogYm91bmNlKzI3OTUyKzY5Mzk3KzQ5MDU5NTMrODc2MTA0NUBn cm91cHMuaW8gPGJvdW5jZSsyNzk1Mis2OTM5Nys0OTA1OTUzKzg3NjEwNDVAZ3JvdXBzLmlvPiC0 +rHtIFd1LCBIYW8gQQ0Kt6LLzcqxvOQ6IDIwMjDE6jEy1MIyM8jVIDE0OjEwDQrK1bz+yMs6IGRl dmVsQGVkazIuZ3JvdXBzLmlvOyBrdW4ucUBvdXRsb29rLmNvbTsgTGltaW5nIEdhbyA8Z2FvbGlt aW5nQGJ5b3NvZnQuY29tLmNuPjsgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0K s63LzTogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBCaSwgRGFuZGFuIDxk YW5kYW4uYmlAaW50ZWwuY29tPg0K1vfM4jogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjEgMDYv MTVdIE1kZU1vZHVsZVBrZzogU21tUmVwb3J0U3RhdHVzQ29kZUxpYjogUmVwb3J0U3RhdHVzQ29k ZUxpYiBpbiBTdGFuZGFsb25lTW0NCg0KSGVsbG8gS3VuLA0KDQpHb3QgaXQsIHRoYW5rcyBmb3Ig dGhlIGV4cGxhbmF0aW9uLiBNeSBwcmVmZXJlbmNlIGlzIHRoZSBzYW1lIHdpdGggeW91ciBjdXJy ZW50IHByb3Bvc2FsIGluIHRoZSBwYXRjaC4NCg0KDQpIZWxsbyBMaW1pbmcgYW5kIEppZXdlbiwN Cg0KRG8geW91IGhhdmUgY29tbWVudHMgZm9yIHRoaXMgY2FzZT8gVGhhbmtzIGluIGFkdmFuY2Uu DQoNCkJlc3QgUmVnYXJkcywNCkhhbyBXdQ0KDQpGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzxt YWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IDxkZXZlbEBlZGsyLmdyb3Vwcy5pbzxtYWlsdG86 ZGV2ZWxAZWRrMi5ncm91cHMuaW8+PiBPbiBCZWhhbGYgT2YgS3VuIFFpbg0KU2VudDogV2VkbmVz ZGF5LCBEZWNlbWJlciAyMywgMjAyMCAzOjE1IEFNDQpUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW88 bWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPjsgV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5j b208bWFpbHRvOmhhby5hLnd1QGludGVsLmNvbT4+DQpDYzogV2FuZywgSmlhbiBKIDxqaWFuLmou d2FuZ0BpbnRlbC5jb208bWFpbHRvOmppYW4uai53YW5nQGludGVsLmNvbT4+OyBCaSwgRGFuZGFu IDxkYW5kYW4uYmlAaW50ZWwuY29tPG1haWx0bzpkYW5kYW4uYmlAaW50ZWwuY29tPj47IExpbWlu ZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbjxtYWlsdG86Z2FvbGltaW5nQGJ5b3NvZnQu Y29tLmNuPj47IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbTxtYWlsdG86amlld2Vu Lnlhb0BpbnRlbC5jb20+Pg0KU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjEgMDYv MTVdIE1kZU1vZHVsZVBrZzogU21tUmVwb3J0U3RhdHVzQ29kZUxpYjogUmVwb3J0U3RhdHVzQ29k ZUxpYiBpbiBTdGFuZGFsb25lTW0NCg0KSGkgSGFvLA0KDQpUaGF0IHdhcyBteSBvcmlnaW5hbCBw bGFuLCBidXQgZG9pbmcgaXQgbWlnaHQgcmVxdWlyZSBhIE1tU2VydmljZVRhYmxlTGliIGluc3Rh bmNlIGZvciBTTU1fQ09SRSB0eXBlIGlmIFBpU21tQ29yZSBsaW5rcyBpbiBSU0MgbGliIChzaW1p bGFyIHRvIFBpU21tQ29yZVNtbVNlcnZpY2VzVGFibGVMaWIpLiBXZSBjYW4gY3JlYXRlIHN1Y2gg YW4gaW5zdGFuY2UganVzdCBsaWtlIFBpU21tQ29yZVNtbVNlcnZpY2VzVGFibGVMaWIsIGJ1dCB0 aGUgaW1wbGVtZW50YXRpb24gd2lsbCBwdWxsIGluIGdTbW1Db3JlU21zdCBhcyBhbiBleHRlcm5h bCB2YXJpYWJsZSBhbmQgY2FzdCBpdCBmcm9tIGBFRklfU01NX1NZU1RFTV9UQUJMRTJgIHRvIGBF RklfTU1fU1lTVEVNX1RBQkxFYCwgd2hpY2ggZG9lcyBub3QgbG9vayBjbGVhbi4gVGh1cyBJIGp1 c3QgYWJzdHJhY3QgdGhlIHJvdXRpbmUgdG8gYXZvaWQgaXQuDQoNClBsZWFzZSBsZXQgbWUga25v dyBpZiB5b3UgaGF2ZSBiZXR0ZXIgaWRlYXMsIEkgY2FuIGFkZCB0aGUgY2hhbmdlIGZvciBuZXh0 IHBhdGNoIHNlcmllcy4NCg0KVGhhbmtzLA0KS3VuDQoNCkZyb206IFd1LCBIYW8gQTxtYWlsdG86 aGFvLmEud3VAaW50ZWwuY29tPg0KU2VudDogVHVlc2RheSwgRGVjZW1iZXIgMjIsIDIwMjAgMDA6 MzUNClRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+ OyBrdW4ucUBvdXRsb29rLmNvbTxtYWlsdG86a3VuLnFAb3V0bG9vay5jb20+DQpDYzogV2FuZywg SmlhbiBKPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBCaSwgRGFuZGFuPG1haWx0bzpk YW5kYW4uYmlAaW50ZWwuY29tPjsgTGltaW5nIEdhbzxtYWlsdG86Z2FvbGltaW5nQGJ5b3NvZnQu Y29tLmNuPjsgWWFvLCBKaWV3ZW48bWFpbHRvOmppZXdlbi55YW9AaW50ZWwuY29tPg0KU3ViamVj dDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjEgMDYvMTVdIE1kZU1vZHVsZVBrZzogU21tUmVw b3J0U3RhdHVzQ29kZUxpYjogUmVwb3J0U3RhdHVzQ29kZUxpYiBpbiBTdGFuZGFsb25lTW0NCg0K PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5p bzxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IDxkZXZlbEBlZGsyLmdyb3Vwcy5pbzxtYWls dG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+PiBPbiBCZWhhbGYgT2YgS3VuIFFpbg0KPiBTZW50OiBT YXR1cmRheSwgRGVjZW1iZXIgMTksIDIwMjAgMjo1MCBBTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91 cHMuaW88bWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPg0KPiBDYzogV2FuZywgSmlhbiBKIDxq aWFuLmoud2FuZ0BpbnRlbC5jb208bWFpbHRvOmppYW4uai53YW5nQGludGVsLmNvbT4+OyBXdSwg SGFvIEEgPGhhby5hLnd1QGludGVsLmNvbTxtYWlsdG86aGFvLmEud3VAaW50ZWwuY29tPj47DQo+ IEJpLCBEYW5kYW4gPGRhbmRhbi5iaUBpbnRlbC5jb208bWFpbHRvOmRhbmRhbi5iaUBpbnRlbC5j b20+PjsgTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPG1haWx0bzpnYW9saW1p bmdAYnlvc29mdC5jb20uY24+Pg0KPiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW1BBVENIIHYxIDA2 LzE1XSBNZGVNb2R1bGVQa2c6DQo+IFNtbVJlcG9ydFN0YXR1c0NvZGVMaWI6IFJlcG9ydFN0YXR1 c0NvZGVMaWIgaW4gU3RhbmRhbG9uZU1tDQo+DQo+IFRoaXMgY2hhbmdlIGFkZGVkIHN1cHBvcnQg b2YgU3RhbmRhbG9uZU1tIGZvciBSZXBvcnRTdGF0dXNDb2RlTGliLiBJdA0KPiBhZGRzIGEgbmV3 IGluc3RhbmNlIG9mIFJlcG9ydFN0YXR1c0NvZGVMaWIgZm9yIE1NX1NUQU5EQUxPTkUgdHlwZSwN Cj4gYW5kIGFic3RyYWN0cyB0aGUgcmVmZXJlbmNlcyBvZiBnTW1zdCBhbmQgZ1Ntc3QgZnVuY3Rp b25hbGl0aWVzIGludG8NCj4gc2VwYXJhdGUgZmlsZXMgaW4gb3JkZXIgdG8gbGluayBpbiBwcm9w ZXIgU2VydmljZSBUYWJsZSBmb3IgU01NIGNvcmUvZHJpdmVycy4NCg0KDQpTb3JyeSBmb3IgYSBx dWVzdGlvbi4NCg0KRG8geW91IHRoaW5rIGl0IGlzIGZlYXNpYmxlIHRvIHVzZToNCmdNbXN0LT5N bUxvY2F0ZVByb3RvY29sIHRvIGxvY2F0ZSBnRWZpTW1TdGF0dXNDb2RlUHJvdG9jb2xHdWlkDQph bmQgYXZvaWQgaW50cm9kdWNpbmcgMiBzZXBhcmF0ZSBpbXBsZW1lbnRhdGlvbnMgZm9yIGludGVy bmFsIGZ1bmN0aW9uIEludGVybmFsTG9jYXRlUHJvdG9jb2woKT8NCg0KU2luY2UgSSBmb3VuZCB0 aGF0IHRoZSBkZWZpbml0aW9ucyBmb3IgZ0VmaU1tU3RhdHVzQ29kZVByb3RvY29sR3VpZCBhbiBn RWZpU21tU3RhdHVzQ29kZVByb3RvY29sR3VpZCBhcmUgaWRlbnRpY2FsLg0KDQpCZXN0IFJlZ2Fy ZHMsDQpIYW8gV3UNCg0KDQo+DQo+IENjOiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwu Y29tPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+Pg0KPiBDYzogSGFvIEEgV3UgPGhhby5h Lnd1QGludGVsLmNvbTxtYWlsdG86aGFvLmEud3VAaW50ZWwuY29tPj4NCj4gQ2M6IERhbmRhbiBC aSA8ZGFuZGFuLmJpQGludGVsLmNvbTxtYWlsdG86ZGFuZGFuLmJpQGludGVsLmNvbT4+DQo+IENj OiBMaW1pbmcgR2FvIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY248bWFpbHRvOmdhb2xpbWluZ0Bi eW9zb2Z0LmNvbS5jbj4+DQo+DQo+IFNpZ25lZC1vZmYtYnk6IEt1biBRaW4gPGt1bi5xQG91dGxv b2suY29tPG1haWx0bzprdW4ucUBvdXRsb29rLmNvbT4+DQo+IC0tLQ0KPiAgTWRlTW9kdWxlUGtn L0xpYnJhcnkvU21tUmVwb3J0U3RhdHVzQ29kZUxpYi9SZXBvcnRTdGF0dXNDb2RlTGliLmMNCj4g fCAxNiArKysrLS0tLQ0KPg0KPiBNZGVNb2R1bGVQa2cvTGlicmFyeS9TbW1SZXBvcnRTdGF0dXND b2RlTGliL1JlcG9ydFN0YXR1c0NvZGVMaWJTdGENCj4gbmRhbG9uZU1tLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMzkgKysrKysrKysrKysrKysrKysrKysNCj4NCj4gTWRl TW9kdWxlUGtnL0xpYnJhcnkvU21tUmVwb3J0U3RhdHVzQ29kZUxpYi9SZXBvcnRTdGF0dXNDb2Rl TGliVHJhDQo+IGRpdGlvbmFsLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDM5ICsrKysrKysrKysrKysrKysrKysrDQo+ICBNZGVNb2R1bGVQa2cvTGlicmFyeS9TbW1SZXBv cnRTdGF0dXNDb2RlTGliL1JlcG9ydFN0YXR1c0NvZGVMaWIuaA0KPiB8IDM3ICsrKysrKysrKysr KysrKysrKysNCj4NCj4gTWRlTW9kdWxlUGtnL0xpYnJhcnkvU21tUmVwb3J0U3RhdHVzQ29kZUxp Yi9TbW1SZXBvcnRTdGF0dXNDb2RlTGkNCj4gYi5pbmYgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICA0ICstDQo+DQo+IE1kZU1vZHVsZVBrZy9MaWJyYXJ5L1NtbVJl cG9ydFN0YXR1c0NvZGVMaWIve1NtbVJlcG9ydFN0YXR1c0NvZGUNCj4gTGliLmluZiA9PiBTdGFu ZGFsb25lTW1SZXBvcnRTdGF0dXNDb2RlTGliLmluZn0gfCAxNyArKysrKy0tLS0NCj4gIE1kZU1v ZHVsZVBrZy9NZGVNb2R1bGVQa2cuZHNjDQo+IHwgIDEgKw0KPiAgNyBmaWxlcyBjaGFuZ2VkLCAx MzcgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pDQo+DQo+IGRpZmYgLS1naXQNCj4gYS9N ZGVNb2R1bGVQa2cvTGlicmFyeS9TbW1SZXBvcnRTdGF0dXNDb2RlTGliL1JlcG9ydFN0YXR1c0Nv ZGVMaWIuYw0KPiBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1NtbVJlcG9ydFN0YXR1c0NvZGVMaWIv UmVwb3J0U3RhdHVzQ29kZUxpYi4NCj4gYw0KPiBpbmRleCAzYTE3NzI1MzhjZGYuLmZiMTc2OWRi OTIyMyAxMDA2NDQNCj4gLS0tDQo+IGEvTWRlTW9kdWxlUGtnL0xpYnJhcnkvU21tUmVwb3J0U3Rh dHVzQ29kZUxpYi9SZXBvcnRTdGF0dXNDb2RlTGliLmMNCj4gKysrDQo+IGIvTWRlTW9kdWxlUGtn L0xpYnJhcnkvU21tUmVwb3J0U3RhdHVzQ29kZUxpYi9SZXBvcnRTdGF0dXNDb2RlTGliLg0KPiBj DQo+IEBAIC0xLDUgKzEsNSBAQA0KPiAgLyoqIEBmaWxlDQo+IC0gIFJlcG9ydCBTdGF0dXMgQ29k ZSBMaWJyYXJ5IGZvciBTTU0gUGhhc2UuDQo+ICsgIFJlcG9ydCBTdGF0dXMgQ29kZSBMaWJyYXJ5 IGZvciBNTSBQaGFzZS4NCj4NCj4gICAgQ29weXJpZ2h0IChjKSAyMDA5IC0gMjAxOCwgSW50ZWwg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudCBAQCAtOCw3ICs4LDcgQEANCj4NCj4gICNp bmNsdWRlIDxMaWJyYXJ5L1JlcG9ydFN0YXR1c0NvZGVMaWIuaD4gICNpbmNsdWRlIDxMaWJyYXJ5 L0RlYnVnTGliLmg+IC0NCj4gI2luY2x1ZGUgPExpYnJhcnkvU21tU2VydmljZXNUYWJsZUxpYi5o Pg0KPiArI2luY2x1ZGUgPExpYnJhcnkvTW1TZXJ2aWNlc1RhYmxlTGliLmg+DQo+ICAjaW5jbHVk ZSA8TGlicmFyeS9CYXNlTGliLmg+DQo+ICAjaW5jbHVkZSA8TGlicmFyeS9CYXNlTWVtb3J5TGli Lmg+DQo+ICAjaW5jbHVkZSA8TGlicmFyeS9QY2RMaWIuaD4NCj4gQEAgLTE2LDEwICsxNiwxMiBA QA0KPg0KPiAgI2luY2x1ZGUgPEd1aWQvU3RhdHVzQ29kZURhdGFUeXBlSWQuaD4NCj4gICNpbmNs dWRlIDxHdWlkL1N0YXR1c0NvZGVEYXRhVHlwZURlYnVnLmg+IC0jaW5jbHVkZQ0KPiA8UHJvdG9j b2wvU21tU3RhdHVzQ29kZS5oPg0KPiArI2luY2x1ZGUgPFByb3RvY29sL01tU3RhdHVzQ29kZS5o Pg0KPg0KPiAtRUZJX1NNTV9SRVBPUlRfU1RBVFVTX0NPREUgICAgIG1SZXBvcnRTdGF0dXNDb2Rl ID0gTlVMTDsNCj4gLUVGSV9TTU1fU1RBVFVTX0NPREVfUFJPVE9DT0wgICAqbVN0YXR1c0NvZGVQ cm90b2NvbCA9IE5VTEw7DQo+ICsjaW5jbHVkZSAiUmVwb3J0U3RhdHVzQ29kZUxpYi5oIg0KPiAr DQo+ICtFRklfTU1fUkVQT1JUX1NUQVRVU19DT0RFICAgICBtUmVwb3J0U3RhdHVzQ29kZSA9IE5V TEw7DQo+ICtFRklfTU1fU1RBVFVTX0NPREVfUFJPVE9DT0wgICAqbVN0YXR1c0NvZGVQcm90b2Nv bCA9IE5VTEw7DQo+DQo+DQo+ICAvKioNCj4gQEAgLTI5LDE0ICszMSwxNCBAQCBFRklfU01NX1NU QVRVU19DT0RFX1BST1RPQ09MDQo+ICptU3RhdHVzQ29kZVByb3RvY29sID0gTlVMTDsNCj4gICAg ICAgICAgICAgIE5VTEwgaXMgcmV0dXJuZWQgaWYgbm8gc3RhdHVzIGNvZGUgc2VydmljZSBpcyBh dmFpbGFibGUuDQo+DQo+ICAqKi8NCj4gLUVGSV9TTU1fUkVQT1JUX1NUQVRVU19DT0RFDQo+ICtF RklfTU1fUkVQT1JUX1NUQVRVU19DT0RFDQo+ICBJbnRlcm5hbEdldFJlcG9ydFN0YXR1c0NvZGUg KA0KPiAgICBWT0lEDQo+ICAgICkNCj4gIHsNCj4gICAgRUZJX1NUQVRVUyAgICAgICAgICAgICAg ICAgICAgU3RhdHVzOw0KPg0KPiAtICBTdGF0dXMgPSBnU21zdC0+U21tTG9jYXRlUHJvdG9jb2wg KCZnRWZpU21tU3RhdHVzQ29kZVByb3RvY29sR3VpZCwNCj4gTlVMTCwgKFZPSUQqKikmbVN0YXR1 c0NvZGVQcm90b2NvbCk7DQo+ICsgIFN0YXR1cyA9IEludGVybmFsTG9jYXRlUHJvdG9jb2wgKCZn RWZpTW1TdGF0dXNDb2RlUHJvdG9jb2xHdWlkLCBOVUxMLA0KPiArIChWT0lEKiopJm1TdGF0dXND b2RlUHJvdG9jb2wpOw0KPiAgICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSAmJiBtU3RhdHVzQ29k ZVByb3RvY29sICE9IE5VTEwpIHsNCj4gICAgICByZXR1cm4gbVN0YXR1c0NvZGVQcm90b2NvbC0+ UmVwb3J0U3RhdHVzQ29kZTsNCj4gICAgfQ0KPiBkaWZmIC0tZ2l0DQo+IGEvTWRlTW9kdWxlUGtn L0xpYnJhcnkvU21tUmVwb3J0U3RhdHVzQ29kZUxpYi9SZXBvcnRTdGF0dXNDb2RlTGliUw0KPiB0 YW5kYWxvbmVNbS5jDQo+IGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkvU21tUmVwb3J0U3RhdHVzQ29k ZUxpYi9SZXBvcnRTdGF0dXNDb2RlTGliUw0KPiB0YW5kYWxvbmVNbS5jDQo+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uZmM0N2RmZmU5ZmZiDQo+IC0tLSAvZGV2 L251bGwNCj4gKysrDQo+IGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkvU21tUmVwb3J0U3RhdHVzQ29k ZUxpYi9SZXBvcnRTdGF0dXNDb2RlTGliUw0KPiB0YQ0KPiArKysgbmRhbG9uZU1tLmMNCj4gQEAg LTAsMCArMSwzOSBAQA0KPiArLyoqIEBmaWxlDQo+ICsgIEFic3RyYWN0aW9uIGxheWVyIGZvciBN TSBzZXJ2aWNlIHRhYmxlIHVzZWQgYnkgTU0gUmVwb3J0U3RhdHVzQ29kZUxpYi4NCj4gKw0KPiAr ICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4NCj4gKyAgU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gKw0KPiArKiovDQo+ICsNCj4gKyNp bmNsdWRlIDxQaU1tLmg+DQo+ICsNCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L01tU2VydmljZXNUYWJs ZUxpYi5oPg0KPiArDQo+ICsvKioNCj4gKyAgUmV0dXJucyB0aGUgZmlyc3QgcHJvdG9jb2wgaW5z dGFuY2UgdGhhdCBtYXRjaGVzIHRoZSBnaXZlbiBwcm90b2NvbC4NCj4gKw0KPiArICBAcGFyYW1b aW5dICBQcm90b2NvbCAgICAgICAgICBQcm92aWRlcyB0aGUgcHJvdG9jb2wgdG8gc2VhcmNoIGZv ci4NCj4gKyAgQHBhcmFtW2luXSAgUmVnaXN0cmF0aW9uICAgICAgT3B0aW9uYWwgcmVnaXN0cmF0 aW9uIGtleSByZXR1cm5lZCBmcm9tDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJlZ2lzdGVyUHJvdG9jb2xOb3RpZnkoKS4NCj4gKyAgQHBhcmFtW291dF0gIEludGVyZmFjZSAg ICAgICAgT24gcmV0dXJuLCBhIHBvaW50ZXIgdG8gdGhlIGZpcnN0IGludGVyZmFjZSB0aGF0DQo+ IG1hdGNoZXMgUHJvdG9jb2wgYW5kDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJlZ2lzdHJhdGlvbi4NCj4gKw0KPiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICBB IHByb3RvY29sIGluc3RhbmNlIG1hdGNoaW5nIFByb3RvY29sIHdhcw0KPiBmb3VuZCBhbmQgcmV0 dXJuZWQgaW4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJmYWNlLg0K PiArICBAcmV0dmFsIEVGSV9OT1RfRk9VTkQgICAgICAgICBObyBwcm90b2NvbCBpbnN0YW5jZXMg d2VyZSBmb3VuZCB0aGF0DQo+IG1hdGNoIFByb3RvY29sIGFuZA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZWdpc3RyYXRpb24uDQo+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURf UEFSQU1FVEVSIEludGVyZmFjZSBpcyBOVUxMLg0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQcm90b2NvbCBpcyBOVUxMLg0KPiArDQo+ICsqKi8NCj4gK0VGSV9TVEFUVVMNCj4g K0VGSUFQSQ0KPiArSW50ZXJuYWxMb2NhdGVQcm90b2NvbCAoDQo+ICsgIElOICBFRklfR1VJRCAg KlByb3RvY29sLA0KPiArICBJTiAgVk9JRCAgICAgICpSZWdpc3RyYXRpb24sIE9QVElPTkFMDQo+ ICsgIE9VVCBWT0lEICAgICAgKipJbnRlcmZhY2UNCj4gKyAgKQ0KPiArew0KPiArICByZXR1cm4g Z01tc3QtPk1tTG9jYXRlUHJvdG9jb2wgKFByb3RvY29sLCBSZWdpc3RyYXRpb24sIEludGVyZmFj ZSk7IH0NCj4gZGlmZiAtLWdpdA0KPiBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1NtbVJlcG9ydFN0 YXR1c0NvZGVMaWIvUmVwb3J0U3RhdHVzQ29kZUxpYlQNCj4gcmFkaXRpb25hbC5jDQo+IGIvTWRl TW9kdWxlUGtnL0xpYnJhcnkvU21tUmVwb3J0U3RhdHVzQ29kZUxpYi9SZXBvcnRTdGF0dXNDb2Rl TGliVA0KPiByYWRpdGlvbmFsLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAw MDAwMDAwMDAwLi42YjNhN2M2MDUxYzUNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysNCj4gYi9NZGVN b2R1bGVQa2cvTGlicmFyeS9TbW1SZXBvcnRTdGF0dXNDb2RlTGliL1JlcG9ydFN0YXR1c0NvZGVM aWJUDQo+IHJhDQo+ICsrKyBkaXRpb25hbC5jDQo+IEBAIC0wLDAgKzEsMzkgQEANCj4gKy8qKiBA ZmlsZQ0KPiArICBBYnN0cmFjdGlvbiBsYXllciBmb3IgU01NIHNlcnZpY2UgdGFibGUgdXNlZCBi eSBTTU0NCj4gUmVwb3J0U3RhdHVzQ29kZUxpYi4NCj4gKw0KPiArICBDb3B5cmlnaHQgKGMpIE1p Y3Jvc29mdCBDb3Jwb3JhdGlvbi4NCj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0y LUNsYXVzZS1QYXRlbnQNCj4gKw0KPiArKiovDQo+ICsNCj4gKyNpbmNsdWRlIDxQaU1tLmg+DQo+ ICsNCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L1NtbVNlcnZpY2VzVGFibGVMaWIuaD4NCj4gKw0KPiAr LyoqDQo+ICsgIFJldHVybnMgdGhlIGZpcnN0IHByb3RvY29sIGluc3RhbmNlIHRoYXQgbWF0Y2hl cyB0aGUgZ2l2ZW4gcHJvdG9jb2wuDQo+ICsNCj4gKyAgQHBhcmFtW2luXSAgUHJvdG9jb2wgICAg ICAgICAgUHJvdmlkZXMgdGhlIHByb3RvY29sIHRvIHNlYXJjaCBmb3IuDQo+ICsgIEBwYXJhbVtp bl0gIFJlZ2lzdHJhdGlvbiAgICAgIE9wdGlvbmFsIHJlZ2lzdHJhdGlvbiBrZXkgcmV0dXJuZWQg ZnJvbQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlclByb3RvY29s Tm90aWZ5KCkuDQo+ICsgIEBwYXJhbVtvdXRdICBJbnRlcmZhY2UgICAgICAgIE9uIHJldHVybiwg YSBwb2ludGVyIHRvIHRoZSBmaXJzdCBpbnRlcmZhY2UgdGhhdA0KPiBtYXRjaGVzIFByb3RvY29s IGFuZA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RyYXRpb24uDQo+ ICsNCj4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgQSBwcm90b2NvbCBpbnN0YW5j ZSBtYXRjaGluZyBQcm90b2NvbCB3YXMNCj4gZm91bmQgYW5kIHJldHVybmVkIGluDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVyZmFjZS4NCj4gKyAgQHJldHZhbCBFRklf Tk9UX0ZPVU5EICAgICAgICAgTm8gcHJvdG9jb2wgaW5zdGFuY2VzIHdlcmUgZm91bmQgdGhhdA0K PiBtYXRjaCBQcm90b2NvbCBhbmQNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmVnaXN0cmF0aW9uLg0KPiArICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBJbnRlcmZh Y2UgaXMgTlVMTC4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvdG9jb2wg aXMgTlVMTC4NCj4gKw0KPiArKiovDQo+ICtFRklfU1RBVFVTDQo+ICtFRklBUEkNCj4gK0ludGVy bmFsTG9jYXRlUHJvdG9jb2wgKA0KPiArICBJTiAgRUZJX0dVSUQgICpQcm90b2NvbCwNCj4gKyAg SU4gIFZPSUQgICAgICAqUmVnaXN0cmF0aW9uLCBPUFRJT05BTA0KPiArICBPVVQgVk9JRCAgICAg ICoqSW50ZXJmYWNlDQo+ICsgICkNCj4gK3sNCj4gKyAgcmV0dXJuIGdTbXN0LT5TbW1Mb2NhdGVQ cm90b2NvbCAoUHJvdG9jb2wsIFJlZ2lzdHJhdGlvbiwgSW50ZXJmYWNlKTsNCj4gK30NCj4gZGlm ZiAtLWdpdA0KPiBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1NtbVJlcG9ydFN0YXR1c0NvZGVMaWIv UmVwb3J0U3RhdHVzQ29kZUxpYi4NCj4gaA0KPiBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1NtbVJl cG9ydFN0YXR1c0NvZGVMaWIvUmVwb3J0U3RhdHVzQ29kZUxpYi4NCj4gaA0KPiBuZXcgZmlsZSBt b2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMDAuLjlhMTY3NDFlNjRmNg0KPiAtLS0gL2Rl di9udWxsDQo+ICsrKw0KPiBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1NtbVJlcG9ydFN0YXR1c0Nv ZGVMaWIvUmVwb3J0U3RhdHVzQ29kZUxpYi4NCj4gaA0KPiBAQCAtMCwwICsxLDM3IEBADQo+ICsv KiogQGZpbGUNCj4gKyAgUmVwb3J0IFN0YXR1cyBDb2RlIExpYnJhcnkgZm9yIE1NIFBoYXNlLg0K PiArDQo+ICsgIENvcHlyaWdodCAoYykgMjAwOSAtIDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBB bGwgcmlnaHRzDQo+ICsgcmVzZXJ2ZWQuPEJSPg0KPiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArDQo+ICsqKi8NCj4gKw0KPiArI2lmbmRlZiBfTU1f UlNDX0xJQl9IXw0KPiArI2RlZmluZSBfTU1fUlNDX0xJQl9IXw0KPiArDQo+ICsvKioNCj4gKyAg UmV0dXJucyB0aGUgZmlyc3QgcHJvdG9jb2wgaW5zdGFuY2UgdGhhdCBtYXRjaGVzIHRoZSBnaXZl biBwcm90b2NvbC4NCj4gKw0KPiArICBAcGFyYW1baW5dICBQcm90b2NvbCAgICAgICAgICBQcm92 aWRlcyB0aGUgcHJvdG9jb2wgdG8gc2VhcmNoIGZvci4NCj4gKyAgQHBhcmFtW2luXSAgUmVnaXN0 cmF0aW9uICAgICAgT3B0aW9uYWwgcmVnaXN0cmF0aW9uIGtleSByZXR1cm5lZCBmcm9tDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyUHJvdG9jb2xOb3RpZnkoKS4N Cj4gKyAgQHBhcmFtW291dF0gIEludGVyZmFjZSAgICAgICAgT24gcmV0dXJuLCBhIHBvaW50ZXIg dG8gdGhlIGZpcnN0IGludGVyZmFjZSB0aGF0DQo+IG1hdGNoZXMgUHJvdG9jb2wgYW5kDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdHJhdGlvbi4NCj4gKw0KPiArICBA cmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICBBIHByb3RvY29sIGluc3RhbmNlIG1hdGNoaW5n IFByb3RvY29sIHdhcw0KPiBmb3VuZCBhbmQgcmV0dXJuZWQgaW4NCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSW50ZXJmYWNlLg0KPiArICBAcmV0dmFsIEVGSV9OT1RfRk9VTkQg ICAgICAgICBObyBwcm90b2NvbCBpbnN0YW5jZXMgd2VyZSBmb3VuZCB0aGF0DQo+IG1hdGNoIFBy b3RvY29sIGFuZA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RyYXRp b24uDQo+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSIEludGVyZmFjZSBpcyBOVUxM Lg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm90b2NvbCBpcyBOVUxMLg0K PiArDQo+ICsqKi8NCj4gK0VGSV9TVEFUVVMNCj4gK0VGSUFQSQ0KPiArSW50ZXJuYWxMb2NhdGVQ cm90b2NvbCAoDQo+ICsgIElOICBFRklfR1VJRCAgKlByb3RvY29sLA0KPiArICBJTiAgVk9JRCAg ICAgICpSZWdpc3RyYXRpb24sIE9QVElPTkFMDQo+ICsgIE9VVCBWT0lEICAgICAgKipJbnRlcmZh Y2UNCj4gKyAgKTsNCj4gKw0KPiArI2VuZGlmIC8vIF9NTV9SU0NfTElCX0hfDQo+IGRpZmYgLS1n aXQNCj4gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9TbW1SZXBvcnRTdGF0dXNDb2RlTGliL1NtbVJl cG9ydFN0YXR1c0NvZA0KPiBlTGliLmluZg0KPiBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1NtbVJl cG9ydFN0YXR1c0NvZGVMaWIvU21tUmVwb3J0U3RhdHVzQ29kDQo+IGVMaWIuaW5mDQo+IGluZGV4 IDcyNDk2YmZhYmFiZC4uMDJkY2UwOWExOTlkIDEwMDY0NA0KPiAtLS0NCj4gYS9NZGVNb2R1bGVQ a2cvTGlicmFyeS9TbW1SZXBvcnRTdGF0dXNDb2RlTGliL1NtbVJlcG9ydFN0YXR1c0NvZA0KPiBl TGliLmluZg0KPiArKysNCj4gYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9TbW1SZXBvcnRTdGF0dXND b2RlTGliL1NtbVJlcG9ydFN0YXR1c0NvZA0KPiBlTGliDQo+ICsrKyAuaW5mDQo+IEBAIC0yOCw2 ICsyOCw4IEBAIFtEZWZpbmVzXQ0KPg0KPiAgW1NvdXJjZXNdDQo+ICAgIFJlcG9ydFN0YXR1c0Nv ZGVMaWIuYw0KPiArICBSZXBvcnRTdGF0dXNDb2RlTGliLmgNCj4gKyAgUmVwb3J0U3RhdHVzQ29k ZUxpYlRyYWRpdGlvbmFsLmMNCj4NCj4gIFtQYWNrYWdlc10NCj4gICAgTWRlUGtnL01kZVBrZy5k ZWMNCj4gQEAgLTQ1LDcgKzQ3LDcgQEAgW0d1aWRzXQ0KPiAgICBnRWZpU3RhdHVzQ29kZURhdGFU eXBlRGVidWdHdWlkICAgICAgICAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVTDQo+ICMjIFVO REVGSU5FRA0KPg0KPiAgW1Byb3RvY29sc10NCj4gLSAgZ0VmaVNtbVN0YXR1c0NvZGVQcm90b2Nv bEd1aWQgICAgICAgICAgICAgICAgICMjIENPTlNVTUVTDQo+ICsgIGdFZmlNbVN0YXR1c0NvZGVQ cm90b2NvbEd1aWQgICAgICAgICAgICAgICAgICAjIyBDT05TVU1FUw0KPg0KPiAgW1BjZF0NCj4g ICAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFJlcG9ydFN0YXR1c0NvZGVQcm9wZXJ0eU1h c2sgICMjDQo+IENPTlNVTUVTIGRpZmYgLS1naXQNCj4gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9T bW1SZXBvcnRTdGF0dXNDb2RlTGliL1NtbVJlcG9ydFN0YXR1c0NvZA0KPiBlTGliLmluZg0KPiBi L01kZU1vZHVsZVBrZy9MaWJyYXJ5L1NtbVJlcG9ydFN0YXR1c0NvZGVMaWIvU3RhbmRhbG9uZU1t UmVwb3J0DQo+IFN0YXR1c0NvZGVMaWIuaW5mDQo+IHNpbWlsYXJpdHkgaW5kZXggNjQlDQo+IGNv cHkgZnJvbQ0KPiBNZGVNb2R1bGVQa2cvTGlicmFyeS9TbW1SZXBvcnRTdGF0dXNDb2RlTGliL1Nt bVJlcG9ydFN0YXR1c0NvZGVMaQ0KPiBiLmluZg0KPiBjb3B5IHRvDQo+IE1kZU1vZHVsZVBrZy9M aWJyYXJ5L1NtbVJlcG9ydFN0YXR1c0NvZGVMaWIvU3RhbmRhbG9uZU1tUmVwb3J0U3QNCj4gYXR1 c0NvZGVMaWIuaW5mDQo+IGluZGV4IDcyNDk2YmZhYmFiZC4uMTFlY2M2N2ZjNGZhIDEwMDY0NA0K PiAtLS0NCj4gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9TbW1SZXBvcnRTdGF0dXNDb2RlTGliL1Nt bVJlcG9ydFN0YXR1c0NvZA0KPiBlTGliLmluZg0KPiArKysNCj4gYi9NZGVNb2R1bGVQa2cvTGli cmFyeS9TbW1SZXBvcnRTdGF0dXNDb2RlTGliL1N0YW5kYWxvbmVNbVJlcG9ydA0KPiBTdGF0DQo+ ICsrKyB1c0NvZGVMaWIuaW5mDQo+IEBAIC0xMiwxMyArMTIsMTIgQEANCj4NCj4gIFtEZWZpbmVz XQ0KPiAgICBJTkZfVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgPSAweDAwMDEwMDA1DQo+IC0g IEJBU0VfTkFNRSAgICAgICAgICAgICAgICAgICAgICA9IFNtbVJlcG9ydFN0YXR1c0NvZGVMaWIN Cj4gLSAgTU9EVUxFX1VOSV9GSUxFICAgICAgICAgICAgICAgID0gU21tUmVwb3J0U3RhdHVzQ29k ZUxpYi51bmkNCj4gLSAgRklMRV9HVUlEICAgICAgICAgICAgICAgICAgICAgID0gNjcwODlEMTkt QjNENi00ZDllLUEwRUItRkVEQzFGODNBMUVFDQo+IC0gIE1PRFVMRV9UWVBFICAgICAgICAgICAg ICAgICAgICA9IERYRV9TTU1fRFJJVkVSDQo+ICsgIEJBU0VfTkFNRSAgICAgICAgICAgICAgICAg ICAgICA9IFN0YW5kYWxvbmVNbVJlcG9ydFN0YXR1c0NvZGVMaWINCj4gKyAgRklMRV9HVUlEICAg ICAgICAgICAgICAgICAgICAgID0gMTdDN0ZDOEMtOEM1RC00OTdFLTlDMEUtQzIxMjU1QjMwRTA0 DQo+ICsgIE1PRFVMRV9UWVBFICAgICAgICAgICAgICAgICAgICA9IE1NX1NUQU5EQUxPTkUNCj4g ICAgVkVSU0lPTl9TVFJJTkcgICAgICAgICAgICAgICAgID0gMS4wDQo+IC0gIFBJX1NQRUNJRklD QVRJT05fVkVSU0lPTiAgICAgICA9IDB4MDAwMTAwMEENCj4gLSAgTElCUkFSWV9DTEFTUyAgICAg ICAgICAgICAgICAgID0gUmVwb3J0U3RhdHVzQ29kZUxpYnxEWEVfU01NX0RSSVZFUg0KPiBTTU1f Q09SRQ0KPiArICBQSV9TUEVDSUZJQ0FUSU9OX1ZFUlNJT04gICAgICAgPSAweDAwMDEwMDMyDQo+ ICsgIExJQlJBUllfQ0xBU1MgICAgICAgICAgICAgICAgICA9IFJlcG9ydFN0YXR1c0NvZGVMaWJ8 TU1fU1RBTkRBTE9ORQ0KPg0KPiAgIw0KPiAgIyBUaGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIGlz IGZvciByZWZlcmVuY2Ugb25seSBhbmQgbm90IHJlcXVpcmVkIGJ5IHRoZQ0KPiBidWlsZCB0b29s cy4NCj4gQEAgLTI4LDYgKzI3LDggQEAgW0RlZmluZXNdDQo+DQo+ICBbU291cmNlc10NCj4gICAg UmVwb3J0U3RhdHVzQ29kZUxpYi5jDQo+ICsgIFJlcG9ydFN0YXR1c0NvZGVMaWIuaA0KPiArICBS ZXBvcnRTdGF0dXNDb2RlTGliU3RhbmRhbG9uZU1tLmMNCj4NCj4gIFtQYWNrYWdlc10NCj4gICAg TWRlUGtnL01kZVBrZy5kZWMNCj4gQEAgLTM2LDcgKzM3LDcgQEAgW1BhY2thZ2VzXQ0KPiAgW0xp YnJhcnlDbGFzc2VzXQ0KPiAgICBQY2RMaWINCj4gICAgQmFzZU1lbW9yeUxpYg0KPiAtICBTbW1T ZXJ2aWNlc1RhYmxlTGliDQo+ICsgIE1tU2VydmljZXNUYWJsZUxpYg0KPiAgICBEZWJ1Z0xpYg0K PiAgICBNZW1vcnlBbGxvY2F0aW9uTGliDQo+DQo+IEBAIC00NSw3ICs0Niw3IEBAIFtHdWlkc10N Cj4gICAgZ0VmaVN0YXR1c0NvZGVEYXRhVHlwZURlYnVnR3VpZCAgICAgICAgICAgICAgICMjIFNP TUVUSU1FU19DT05TVU1FUw0KPiAjIyBVTkRFRklORUQNCj4NCj4gIFtQcm90b2NvbHNdDQo+IC0g IGdFZmlTbW1TdGF0dXNDb2RlUHJvdG9jb2xHdWlkICAgICAgICAgICAgICAgICAjIyBDT05TVU1F Uw0KPiArICBnRWZpTW1TdGF0dXNDb2RlUHJvdG9jb2xHdWlkICAgICAgICAgICAgICAgICAgIyMg Q09OU1VNRVMNCj4NCj4gIFtQY2RdDQo+ICAgIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RS ZXBvcnRTdGF0dXNDb2RlUHJvcGVydHlNYXNrICAjIw0KPiBDT05TVU1FUyBkaWZmIC0tZ2l0IGEv TWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kc2MNCj4gYi9NZGVNb2R1bGVQa2cvTWRlTW9kdWxl UGtnLmRzYyBpbmRleCBjZDkxYTcwYjRmZGQuLjA1YmY1ZmUwODA5NA0KPiAxMDA2NDQNCj4gLS0t IGEvTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kc2MNCj4gKysrIGIvTWRlTW9kdWxlUGtnL01k ZU1vZHVsZVBrZy5kc2MNCj4gQEAgLTQ3Myw2ICs0NzMsNyBAQCBbQ29tcG9uZW50cy5JQTMyLCBD b21wb25lbnRzLlg2NF0NCj4gICAgfQ0KPg0KPiBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1Zhcmlh YmxlL1J1bnRpbWVEeGUvVmFyaWFibGVTbW1SdW50aW1lRHhlLmkNCj4gbmYNCj4NCj4gTWRlTW9k dWxlUGtnL0xpYnJhcnkvU21tUmVwb3J0U3RhdHVzQ29kZUxpYi9TbW1SZXBvcnRTdGF0dXNDb2Rl TGkNCj4gYi5pbmYNCj4gKw0KPiArDQo+IE1kZU1vZHVsZVBrZy9MaWJyYXJ5L1NtbVJlcG9ydFN0 YXR1c0NvZGVMaWIvU3RhbmRhbG9uZU1tUmVwb3J0U3QNCj4gYXR1c0NvDQo+ICsgZGVMaWIuaW5m DQo+DQo+IE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvU3RhdHVzQ29kZUhhbmRsZXIvU21tL1N0YXR1 c0NvZGVIYW5kbGVyU20NCj4gbS5pbmYNCj4NCj4gTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9SZXBv cnRTdGF0dXNDb2RlUm91dGVyL1NtbS9SZXBvcnRTdGF0dXNDb2QNCj4gZVJvdXRlclNtbS5pbmYN Cj4gICAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9Mb2NrQm94L1NtbUxvY2tCb3gvU21tTG9ja0Jv eC5pbmYNCj4gLS0NCj4gMi4yOC4wLndpbmRvd3MuMQ0KPg0KPg0KPg0KPg0KPg0KDQoNCg0KDQoN Cg0KDQo= --_000_MWHPR06MB31029328A12F529A403B03D7F3DD0MWHPR06MB3102namp_ Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable

Liming,

 

I have not had a plan for StatusCodeHandlerSmm beca= use our platforms are not using it currently (we used a MU version instead)= . So it would be difficult to fully validate the functionality after update= s. Please let me know if you prefer to have this driver updated in this patch series, I can try to update it = locally with some fundamental sanity checks.

 

Regards,

Kun

 

From: gaoliming
Sent: Wednesday, December 23, 2020 17:53
To: devel@edk2.groups.io; hao.a.wu@intel.com; kun.q@outlook= .com; 'Yao, Jiewen'
Cc: 'Wang, Jian J'; 'Bi, Dandan'
Subject: =BB=D8= = =B8=B4: [edk2-devel] [PATCH v1 06/15] MdeModulePkg: SmmReportStatus= CodeLib: ReportStatusCodeLib in StandaloneMm

 

Kun:

 I am OK for this solution. Have you plan to update StatusCodeHandl= erSmm?

 

Thanks

Liming

=B7=A2=BC=FE=C8=CB:<= /span> bounce+27952+69397+4905953+= 8761045@groups.io <bounce+27952+69397+4905953+8761045@groups.io> =B4=FA=B1=ED Wu, Hao A
=B7=A2=CB=CD=CA=B1=BC=E4: 2020=C4=EA12=D4=C223=C8=D5 14:10
=CA=D5=BC=FE=C8=CB: devel@edk2.groups.i= o; kun.q@outlook.com; Liming Gao <gaoliming@byosoft.com.cn>; Yao, Jie= wen <jiewen.yao@intel.com>
=B3=AD=CB=CD: Wang, Jian J <jian.j.w= ang@intel.com>; Bi, Dandan <dandan.bi@intel.com>
=D6=F7=CC=E2: Re: [edk2-devel] [PATCH v= 1 06/15] MdeModulePkg: SmmReportStatusCodeLib: ReportStatusCodeLib in Stand= aloneMm

 

Hello Kun,

 

Got it, thanks for the explanation. My preference i= s the same with your current proposal in the patch.

 

 

Hello Liming and Jiewen,

 

Do you have comments for this case? Thanks in advan= ce.

 

Best Regards,

Hao Wu

 

 

Hi Hao,

 

That was my original plan, but doing it might requi= re a MmServiceTableLib instance for SMM_CORE type if PiSmmCore links in RSC= lib (similar to PiSmmCoreSmmServicesTableLib). We can create such an insta= nce 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 do= es not look clean. Thus I just abstract the routine to avoid it.=

 

Please let me know if you have better ideas, I can = add the change for next patch series.

 

Thanks,

Kun

 

From: = Wu, Hao A
Sent: Tuesday, December 22, 2020 00:35
To: devel@edk2.groups.io; kun.q@outlook.com
Cc: Wang, Jian J; Bi, Dandan; Liming Gao= ; Yao, Jiewen
Subject: Re: [edk2-devel] [PATCH v1 06/15] MdeModulePkg: SmmReportS= tatusCodeLib: ReportStatusCodeLib in StandaloneMm

 

> -----Original M= essage-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> = On Behalf Of Kun Qin
> Sent: Saturday, December 19, 2020 2:50 AM
> To: devel@edk2.groups.io<= br> > Cc: Wang, Jian J <jian.j.= wang@intel.com>; Wu, Hao A <hao.a.wu@intel.com>;
> Bi, Dandan <dandan.bi@intel= .com>; Liming Gao <ga= oliming@byosoft.com.cn>
> Subject: [edk2-devel] [PATCH v1 06/15] MdeModulePkg:
> SmmReportStatusCodeLib: ReportStatusCodeLib in StandaloneMm
>
> This change added support of StandaloneMm for ReportStatusCodeLib. It=
> adds a new instance of ReportStatusCodeLib for MM_STANDALONE type, > 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.


Sorry for a question.

Do you think it is feasible to use:
gMmst->MmLocateProtocol to locate gEfiMmStatusCodeProtocolGuid
and avoid introducing 2 separate implementations for internal function Int= ernalLocateProtocol()?

Since I found that the definitions for gEfiMmStatusCodeProtocolGuid an gEf= iSmmStatusCodeProtocolGuid are identical.

Best Regards,
Hao Wu


>
> Cc: Jian J Wang <jian.j.w= ang@intel.com>
> Cc: Hao A Wu <hao.a.wu@intel= .com>
> Cc: Dandan Bi <dandan.bi@in= tel.com>
> Cc: Liming Gao <gaolim= ing@byosoft.com.cn>
>
> Signed-off-by: Kun Qin <kun.q= @outlook.com>
> ---
>  MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib= .c
> | 16 ++++----
>
> MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibSta > ndaloneMm.c         &nbs= p;            &= nbsp;            | 3= 9 ++++++++++++++++++++
>
> MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibTra > ditional.c          = ;            &n= bsp;            = ; | 39 ++++++++++++++++++++
>  MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib= .h
> | 37 +++++++++++++++++++
>
> MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCodeLi
> b.inf          &nbs= p;            &= nbsp;           &nbs= p;      |  4 +-
>
> MdeModulePkg/Library/SmmReportStatusCodeLib/{SmmReportStatusCode
> Lib.inf =3D> StandaloneMmReportStatusCodeLib.inf} | 17 +++++---- >  MdeModulePkg/MdeModulePkg.dsc
> |  1 +
>  7 files changed, 137 insertions(+), 16 deletions(-)
>
> diff --git
> a/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib.c > b/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib. > c
> index 3a1772538cdf..fb1769db9223 100644
> ---
> a/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib.c > +++
> b/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib. > c
> @@ -1,5 +1,5 @@
>  /** @file
> -  Report Status Code Library for SMM Phase.
> +  Report Status Code Library for MM Phase.
>
>    Copyright (c) 2009 - 2018, Intel Corporation. All r= ights reserved.<BR>
>    SPDX-License-Identifier: BSD-2-Clause-Patent @@ -8,= 7 +8,7 @@
>
>  #include <Library/ReportStatusCodeLib.h>  #include &= lt;Library/DebugLib.h> -
> #include <Library/SmmServicesTableLib.h>
> +#include <Library/MmServicesTableLib.h>
>  #include <Library/BaseLib.h>
>  #include <Library/BaseMemoryLib.h>
>  #include <Library/PcdLib.h>
> @@ -16,10 +16,12 @@
>
>  #include <Guid/StatusCodeDataTypeId.h>
>  #include <Guid/StatusCodeDataTypeDebug.h> -#include
> <Protocol/SmmStatusCode.h>
> +#include <Protocol/MmStatusCode.h>
>
> -EFI_SMM_REPORT_STATUS_CODE     mReportStatusCode= =3D NULL;
> -EFI_SMM_STATUS_CODE_PROTOCOL   *mStatusCodeProtocol =3D NU= LL;
> +#include "ReportStatusCodeLib.h"
> +
> +EFI_MM_REPORT_STATUS_CODE     mReportStatusCode = = =3D NULL;
> +EFI_MM_STATUS_CODE_PROTOCOL   *mStatusCodeProtocol =3D NUL= L;
>
>
>  /**
> @@ -29,14 +31,14 @@ EFI_SMM_STATUS_CODE_PROTOCOL
> *mStatusCodeProtocol =3D NULL;
>           &nbs= p;  NULL is returned if no status code service is available.
>
>  **/
> -EFI_SMM_REPORT_STATUS_CODE
> +EFI_MM_REPORT_STATUS_CODE
>  InternalGetReportStatusCode (
>    VOID
>    )
>  {
>    EFI_STATUS       = ;             S= tatus;
>
> -  Status =3D gSmst->SmmLocateProtocol (&gEfiSmmStatusCod= eProtocolGuid,
> NULL, (VOID**)&mStatusCodeProtocol);
> +  Status =3D InternalLocateProtocol (&gEfiMmStatusCodeProto= colGuid, NULL,
> + (VOID**)&mStatusCodeProtocol);
>    if (!EFI_ERROR (Status) && mStatusCodeProto= col !=3D NULL) {
>      return mStatusCodeProtocol->ReportSt= atusCode;
>    }
> diff --git
> a/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibS > tandaloneMm.c
> b/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibS > tandaloneMm.c
> new file mode 100644
> index 000000000000..fc47dffe9ffb
> --- /dev/null
> +++
> b/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibS > ta
> +++ ndaloneMm.c
> @@ -0,0 +1,39 @@
> +/** @file
> +  Abstraction layer for MM service table used by MM ReportStatu= sCodeLib.
> +
> +  Copyright (c) Microsoft Corporation.
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +#include <PiMm.h>
> +
> +#include <Library/MmServicesTableLib.h>
> +
> +/**
> +  Returns the first protocol instance that matches the given pr= otocol.
> +
> +  @param[in]  Protocol      =     Provides the protocol to search for.
> +  @param[in]  Registration      O= ptional registration key returned from
> +           &n= bsp;            = ;        RegisterProtocolNotify().
> +  @param[out]  Interface     &nbs= p;  On return, a pointer to the first interface that
> matches Protocol and
> +           &n= bsp;            = ;        Registration.
> +
> +  @retval EFI_SUCCESS       =     A protocol instance matching Protocol was
> found and returned in
> +           &n= bsp;            = ;        Interface.
> +  @retval EFI_NOT_FOUND      &nbs= p;  No protocol instances were found that
> match Protocol and
> +           &n= bsp;            = ;        Registration.
> +  @retval EFI_INVALID_PARAMETER Interface is NULL.
> +           &n= bsp;            = ;        Protocol is NULL.
> +
> +**/
> +EFI_STATUS
> +EFIAPI
> +InternalLocateProtocol (
> +  IN  EFI_GUID  *Protocol,
> +  IN  VOID      *Registration, OP= TIONAL
> +  OUT VOID      **Interface
> +  )
> +{
> +  return gMmst->MmLocateProtocol (Protocol, Registration, In= terface); }
> diff --git
> a/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibT > raditional.c
> b/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibT > raditional.c
> new file mode 100644
> index 000000000000..6b3a7c6051c5
> --- /dev/null
> +++
> b/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibT > ra
> +++ ditional.c
> @@ -0,0 +1,39 @@
> +/** @file
> +  Abstraction layer for SMM service table used by SMM
> ReportStatusCodeLib.
> +
> +  Copyright (c) Microsoft Corporation.
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +#include <PiMm.h>
> +
> +#include <Library/SmmServicesTableLib.h>
> +
> +/**
> +  Returns the first protocol instance that matches the given pr= otocol.
> +
> +  @param[in]  Protocol      =     Provides the protocol to search for.
> +  @param[in]  Registration      O= ptional registration key returned from
> +           &n= bsp;            = ;        RegisterProtocolNotify().
> +  @param[out]  Interface     &nbs= p;  On return, a pointer to the first interface that
> matches Protocol and
> +           &n= bsp;            = ;        Registration.
> +
> +  @retval EFI_SUCCESS       =     A protocol instance matching Protocol was
> found and returned in
> +           &n= bsp;            = ;        Interface.
> +  @retval EFI_NOT_FOUND      &nbs= p;  No protocol instances were found that
> match Protocol and
> +           &n= bsp;            = ;        Registration.
> +  @retval EFI_INVALID_PARAMETER Interface is NULL.
> +           &n= bsp;            = ;        Protocol is NULL.
> +
> +**/
> +EFI_STATUS
> +EFIAPI
> +InternalLocateProtocol (
> +  IN  EFI_GUID  *Protocol,
> +  IN  VOID      *Registration, OP= TIONAL
> +  OUT VOID      **Interface
> +  )
> +{
> +  return gSmst->SmmLocateProtocol (Protocol, Registration, I= nterface);
> +}
> diff --git
> a/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib. > h
> b/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib. > h
> new file mode 100644
> index 000000000000..9a16741e64f6
> --- /dev/null
> +++
> b/MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib. > h
> @@ -0,0 +1,37 @@
> +/** @file
> +  Report Status Code Library for MM Phase.
> +
> +  Copyright (c) 2009 - 2018, Intel Corporation. All rights
> + reserved.<BR>
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +#ifndef _MM_RSC_LIB_H_
> +#define _MM_RSC_LIB_H_
> +
> +/**
> +  Returns the first protocol instance that matches the given pr= otocol.
> +
> +  @param[in]  Protocol      =     Provides the protocol to search for.
> +  @param[in]  Registration      O= ptional registration key returned from
> +           &n= bsp;            = ;        RegisterProtocolNotify().
> +  @param[out]  Interface     &nbs= p;  On return, a pointer to the first interface that
> matches Protocol and
> +           &n= bsp;            = ;        Registration.
> +
> +  @retval EFI_SUCCESS       =     A protocol instance matching Protocol was
> found and returned in
> +           &n= bsp;            = ;        Interface.
> +  @retval EFI_NOT_FOUND      &nbs= p;  No protocol instances were found that
> match Protocol and
> +           &n= bsp;            = ;        Registration.
> +  @retval EFI_INVALID_PARAMETER Interface is NULL.
> +           &n= bsp;            = ;        Protocol is NULL.
> +
> +**/
> +EFI_STATUS
> +EFIAPI
> +InternalLocateProtocol (
> +  IN  EFI_GUID  *Protocol,
> +  IN  VOID      *Registration, OP= TIONAL
> +  OUT VOID      **Interface
> +  );
> +
> +#endif // _MM_RSC_LIB_H_
> diff --git
> a/MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCod
> eLib.inf
> b/MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCod
> eLib.inf
> index 72496bfababd..02dce09a199d 100644
> ---
> a/MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCod
> eLib.inf
> +++
> b/MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCod
> eLib
> +++ .inf
> @@ -28,6 +28,8 @@ [Defines]
>
>  [Sources]
>    ReportStatusCodeLib.c
> +  ReportStatusCodeLib.h
> +  ReportStatusCodeLibTraditional.c
>
>  [Packages]
>    MdePkg/MdePkg.dec
> @@ -45,7 +47,7 @@ [Guids]
>    gEfiStatusCodeDataTypeDebugGuid   &n= bsp;           ## SOMETIM= ES_CONSUMES
> ## UNDEFINED
>
>  [Protocols]
> -  gEfiSmmStatusCodeProtocolGuid     &n= bsp;           ## CONSUME= S
> +  gEfiMmStatusCodeProtocolGuid     &nb= sp;            ## CO= NSUMES
>
>  [Pcd]
>    gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropert= yMask  ##
> CONSUMES diff --git
> a/MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCod
> eLib.inf
> b/MdeModulePkg/Library/SmmReportStatusCodeLib/StandaloneMmReport
> StatusCodeLib.inf
> similarity index 64%
> copy from
> MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCodeLi
> b.inf
> copy to
> MdeModulePkg/Library/SmmReportStatusCodeLib/StandaloneMmReportSt
> atusCodeLib.inf
> index 72496bfababd..11ecc67fc4fa 100644
> ---
> a/MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCod
> eLib.inf
> +++
> b/MdeModulePkg/Library/SmmReportStatusCodeLib/StandaloneMmReport
> Stat
> +++ usCodeLib.inf
> @@ -12,13 +12,12 @@
>
>  [Defines]
>    INF_VERSION      &nbs= p;             = = =3D 0x00010005
> -  BASE_NAME        &nbs= p;             = = =3D SmmReportStatusCodeLib
> -  MODULE_UNI_FILE       &nbs= p;        =3D SmmReportStatusCodeLib.uni=
> -  FILE_GUID        &nbs= p;             = = =3D 67089D19-B3D6-4d9e-A0EB-FEDC1F83A1EE
> -  MODULE_TYPE        &n= bsp;           =3D DXE_SM= M_DRIVER
> +  BASE_NAME        &nbs= p;             = = =3D StandaloneMmReportStatusCodeLib
> +  FILE_GUID        &nbs= p;             = = =3D 17C7FC8C-8C5D-497E-9C0E-C21255B30E04
> +  MODULE_TYPE        &n= bsp;           =3D MM_STA= NDALONE
>    VERSION_STRING      &= nbsp;          =3D 1.0
> -  PI_SPECIFICATION_VERSION       = = =3D 0x0001000A
> -  LIBRARY_CLASS        =           =3D ReportStatusCode= Lib|DXE_SMM_DRIVER
> SMM_CORE
> +  PI_SPECIFICATION_VERSION       = = =3D 0x00010032
> +  LIBRARY_CLASS        =           =3D ReportStatusCode= Lib|MM_STANDALONE
>
>  #
>  # The following information is for reference only and not requi= red by the
> build tools.
> @@ -28,6 +27,8 @@ [Defines]
>
>  [Sources]
>    ReportStatusCodeLib.c
> +  ReportStatusCodeLib.h
> +  ReportStatusCodeLibStandaloneMm.c
>
>  [Packages]
>    MdePkg/MdePkg.dec
> @@ -36,7 +37,7 @@ [Packages]
>  [LibraryClasses]
>    PcdLib
>    BaseMemoryLib
> -  SmmServicesTableLib
> +  MmServicesTableLib
>    DebugLib
>    MemoryAllocationLib
>
> @@ -45,7 +46,7 @@ [Guids]
>    gEfiStatusCodeDataTypeDebugGuid   &n= bsp;           ## SOMETIM= ES_CONSUMES
> ## UNDEFINED
>
>  [Protocols]
> -  gEfiSmmStatusCodeProtocolGuid     &n= bsp;           ## CONSUME= S
> +  gEfiMmStatusCodeProtocolGuid     &nb= sp;            ## CO= NSUMES
>
>  [Pcd]
>    gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropert= yMask  ##
> CONSUMES diff --git a/MdeModulePkg/MdeModulePkg.dsc
> b/MdeModulePkg/MdeModulePkg.dsc index cd91a70b4fdd..05bf5fe08094
> 100644
> --- a/MdeModulePkg/MdeModulePkg.dsc
> +++ b/MdeModulePkg/MdeModulePkg.dsc
> @@ -473,6 +473,7 @@ [Components.IA32, Components.X64]
>    }
>
> MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.i > nf
>
> MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCodeLi
> b.inf
> +
> +
> MdeModulePkg/Library/SmmReportStatusCodeLib/StandaloneMmReportSt
> atusCo
> + deLib.inf
>
> MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSm
> m.inf
>
> MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCod
> eRouterSmm.inf
>    MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBo= x.inf
> --
> 2.28.0.windows.1
>
>
>
>
>




 

 

--_000_MWHPR06MB31029328A12F529A403B03D7F3DD0MWHPR06MB3102namp_-- --_004_MWHPR06MB31029328A12F529A403B03D7F3DD0MWHPR06MB3102namp_ Content-Type: image/png; name="EAEEDEA3E735495E93D05EB5B8C6E1D2.png" Content-Description: EAEEDEA3E735495E93D05EB5B8C6E1D2.png Content-Disposition: inline; filename="EAEEDEA3E735495E93D05EB5B8C6E1D2.png"; size=140; creation-date="Thu, 24 Dec 2020 09:11:28 GMT"; modification-date="Thu, 24 Dec 2020 09:11:28 GMT" Content-ID: Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAsQAAAABCAYAAADZ77itAAAAAXNSR0IArs4c6QAAAARnQU1BAACx jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAhSURBVEhL7cMBDQAACAMg+5cygQkeRoMIG9WT VVXVn7MHYi5moJeByLMAAAAASUVORK5CYII= --_004_MWHPR06MB31029328A12F529A403B03D7F3DD0MWHPR06MB3102namp_--