From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (NAM12-BN8-obe.outbound.protection.outlook.com [40.92.21.80]) by mx.groups.io with SMTP id smtpd.web10.6378.1609205519313787478 for ; Mon, 28 Dec 2020 17:31:59 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@outlook.com header.s=selector1 header.b=NpHiabqP; spf=pass (domain: outlook.com, ip: 40.92.21.80, mailfrom: kun.q@outlook.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RmnxR852aiLBxYLj6HVEiOAmVBdLZ1a1nFVsOOlQ0dfZjo/jc6Yq3789l6ILyHEJrBI55DivH9jQaJwfIyJ/6eHaW1OrvFCl7XucU0TpOrVm8AfFXkzDOZ/79zJC5Jw9mMphVwg5x3sF+ViCjXudiHdihYqcto10gPQGqzyeS/TB2T8kHJqWu6qDTMBTs3mTxlQW1rPFcPS3CjiXdeIJO5J0IvsJELQhtoe002EW0Y4zQgdkGwrfAdjOU9nqJ+btIyYoBPE5BmFwW1SdnEALPPTLl6fU5JVKLZQATLAzwTImyEHZnwJoA/RfQTwGaC12iPH79PB2Ou/Wg3DhwW47jw== 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=DRnq3rPGm2FBarXfgFXOb9xztJ8b44jIyUOvcUVe3Hk=; b=QJUXgCBQY5vzTSKzLpyScFcq9/Fj0f14tsQw6v+Ge803mW7o89cKhT9/A5OKLeVj2ZP7XoGDILYnq/UeK+zQ1oriJXd8GUg5ReJCwveV6B1uhoXcFiV8BJJKeYhHHH2QChJjwlLgvpp9iC3lpV1KCjfcraLOYjuzXY6S+j31Y7E4+XQ/nuF86DGbz03GVkqTW2+vtucJfI/CaeodlkLrqKtwJsWmutRKO0Nbfnueq/VtxZWcqP5I4+jh64tnxTyjMAESbkc0I0csW3W8PtpQQcl31UPxJKURXAkglByBw/lwofHEvaUMaqhkOwvFdrRUy4w25lXOywn9BjEG0OulzA== 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=DRnq3rPGm2FBarXfgFXOb9xztJ8b44jIyUOvcUVe3Hk=; b=NpHiabqPUcD5T0EMCKpodBf3s2uI8hZZi5WqMcN6Si5rR7J19c0YVkeUrvROKiyZuSvnXF0jwkP3mlPgZqhGH6TUjlO3jCA6NQ0rqflJcUCSB6zE4lpYpe+9rqd5HDA/B7s2lvNp6/LUOVCoDR/6dE/djESiFbUN/H2HGnIXdSFvFyB7m5PHaEWo7C3BEz4uMmz+uS++hdGDfF4spQ+WUdD/MZwRmMw3c6s3nywqgv9gUNg6dcGSAs7Wzkax508AqturAu48mfN7BwomrcuE2pc2SbMg3EmgvOjNfGuJBauh3yUBuGxK0nZBRcLYti7S5rR75HExFjECSrbG8VNsJA== Received: from DM6NAM12FT022.eop-nam12.prod.protection.outlook.com (2a01:111:e400:fc64::4b) by DM6NAM12HT129.eop-nam12.prod.protection.outlook.com (2a01:111:e400:fc64::337) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3676.10; Tue, 29 Dec 2020 01:31:57 +0000 Received: from MWHPR06MB3102.namprd06.prod.outlook.com (2a01:111:e400:fc64::41) by DM6NAM12FT022.mail.protection.outlook.com (2a01:111:e400:fc64::408) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3700.20 via Frontend Transport; Tue, 29 Dec 2020 01:31:57 +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.035; Tue, 29 Dec 2020 01:31:57 +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/uqAB3ZrAIAAAbM6 Date: Tue, 29 Dec 2020 01:31:57 +0000 Message-ID: References: <20201218185011.1366-1-kun.q@outlook.com> , ,<00f701d6d997$93d1af10$bb750d30$@byosoft.com.cn> ,<000e01d6dd81$48bca2d0$da35e870$@byosoft.com.cn> In-Reply-To: <000e01d6dd81$48bca2d0$da35e870$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: yes X-Message-Flag: Flag for follow up X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:5EC495D64A6DA18E18E7612A0FD3729869259127D27056719EA2D40D4AA13B12;UpperCasedChecksum:DA0D6FABCB93302FF8CA2D0D5E850DAA7D9478EEFA6CE39B8A3F6DBC3F070029;SizeAsReceived:7709;Count:45 x-tmn: [bBX5v+E47ZgGqgL78Gk8YPZSzsLOVvsa] x-ms-publictraffictype: Email x-incomingheadercount: 45 x-eopattributedmessage: 0 x-ms-office365-filtering-correlation-id: f5efe49e-19bd-49c5-2bc8-08d8ab99883c x-ms-traffictypediagnostic: DM6NAM12HT129: x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: N7cGl+b5m4Mp7C6p6cnxm2DpQWvfnyq4i1M82BvVMuJX7hdW1fWbtwzQPLHIF2cwh6SKm0fGzehOVweWP62C24XtcmgPx1ChWJpBmxHCPiqWApDlwv5UygZM3ly2R7Ve29VX9WK0O+YGZbmVGjkGJuRGfIuU06XbzOBwfjkZJWFLbQXin2K/ve2LAPi0QRFvtes2Ft7QLtGNdCa3loU7fgCSfQN+3gY/KHbHQaE+HHnsgu3p4aERNsnhFCjKZ+A0ec1ii7Bp7XsGreRBwKtbpdCLgkVjNP2Vk1r2x5bHMDM= x-ms-exchange-antispam-messagedata: OYuNOERHPYOHb/zmMR2TRE+olmmR82+FpvF09xdzN5MOTzwzjxEPlmpMkl4Fz1xCJQVG6O0Wftp8T7ECNroDpdE0sfEEHVFoUPB+GCvC7metsgpU8PVsN5S4uJ09QDAXPi/pwtJFHRhqdgOcJUN9iQ== 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: DM6NAM12FT022.eop-nam12.prod.protection.outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: f5efe49e-19bd-49c5-2bc8-08d8ab99883c X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Dec 2020 01:31:57.5966 (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: DM6NAM12HT129 X-Groupsio-MsgNum: 69486 Content-Language: en-US Content-Type: multipart/related; boundary="_004_MWHPR06MB3102C391B154DF8F8E7B462EF3D80MWHPR06MB3102namp_"; type="multipart/alternative" --_004_MWHPR06MB3102C391B154DF8F8E7B462EF3D80MWHPR06MB3102namp_ Content-Type: multipart/alternative; boundary="_000_MWHPR06MB3102C391B154DF8F8E7B462EF3D80MWHPR06MB3102namp_" --_000_MWHPR06MB3102C391B154DF8F8E7B462EF3D80MWHPR06MB3102namp_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SGkgTGltaW5nLA0KDQpOb3RlZCwgSSB3aWxsIGFkZCB0aGUgZHJpdmVyIG9mIFN0YXR1c0NvZGVI YW5kbGVyU3RhbmRhbG9uZU1tIGluIHYyIHBhdGNoZXMuDQoNClJlZ2FyZHMsDQpLdW4NCg0KRnJv bTogZ2FvbGltaW5nPG1haWx0bzpnYW9saW1pbmdAYnlvc29mdC5jb20uY24+DQpTZW50OiBNb25k YXksIERlY2VtYmVyIDI4LCAyMDIwIDE3OjI0DQpUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW88bWFp bHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPjsga3VuLnFAb3V0bG9vay5jb208bWFpbHRvOmt1bi5x QG91dGxvb2suY29tPjsgaGFvLmEud3VAaW50ZWwuY29tPG1haWx0bzpoYW8uYS53dUBpbnRlbC5j b20+OyAnWWFvLCBKaWV3ZW4nPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4NCkNjOiAnV2Fu ZywgSmlhbiBKJzxtYWlsdG86amlhbi5qLndhbmdAaW50ZWwuY29tPjsgJ0JpLCBEYW5kYW4nPG1h aWx0bzpkYW5kYW4uYmlAaW50ZWwuY29tPg0KU3ViamVjdDogu9i4tDogW2VkazItZGV2ZWxdIFtQ QVRDSCB2MSAwNi8xNV0gTWRlTW9kdWxlUGtnOiBTbW1SZXBvcnRTdGF0dXNDb2RlTGliOiBSZXBv cnRTdGF0dXNDb2RlTGliIGluIFN0YW5kYWxvbmVNbQ0KDQpLdW46DQogSSBwcmVmZXIgdG8gaW5j bHVkZSBTdGF0dXNDb2RlSGFuZGxlclNtbSB3aXRoIHRoZSBiYXNpYyBjaGVjay4gSWYgc28sIHRo ZSBjb21wbGV0ZSBzdGF0dXNjb2RlIHNvbHV0aW9uIGNhbiBiZSBwcm92aWRlZC4NCg0KVGhhbmtz DQpMaW1pbmcNCreivP7IyzogYm91bmNlKzI3OTUyKzY5NDQzKzQ5MDU5NTMrODc2MTA0NUBncm91 cHMuaW8gPGJvdW5jZSsyNzk1Mis2OTQ0Mys0OTA1OTUzKzg3NjEwNDVAZ3JvdXBzLmlvPiC0+rHt IEt1biBRaW4NCreiy83KsbzkOiAyMDIwxOoxMtTCMjTI1SAxNzoxMg0KytW8/sjLOiBkZXZlbEBl ZGsyLmdyb3Vwcy5pbzsgZ2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuOyBoYW8uYS53dUBpbnRlbC5j b207ICdZYW8sIEppZXdlbicgPGppZXdlbi55YW9AaW50ZWwuY29tPg0Ks63LzTogJ1dhbmcsIEpp YW4gSicgPGppYW4uai53YW5nQGludGVsLmNvbT47ICdCaSwgRGFuZGFuJyA8ZGFuZGFuLmJpQGlu dGVsLmNvbT4NCtb3zOI6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYxIDA2LzE1XSBNZGVNb2R1 bGVQa2c6IFNtbVJlcG9ydFN0YXR1c0NvZGVMaWI6IFJlcG9ydFN0YXR1c0NvZGVMaWIgaW4gU3Rh bmRhbG9uZU1tDQoNCkxpbWluZywNCg0KSSBoYXZlIG5vdCBoYWQgYSBwbGFuIGZvciBTdGF0dXND b2RlSGFuZGxlclNtbSBiZWNhdXNlIG91ciBwbGF0Zm9ybXMgYXJlIG5vdCB1c2luZyBpdCBjdXJy ZW50bHkgKHdlIHVzZWQgYSBNVSB2ZXJzaW9uIGluc3RlYWQpLiBTbyBpdCB3b3VsZCBiZSBkaWZm aWN1bHQgdG8gZnVsbHkgdmFsaWRhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgYWZ0ZXIgdXBkYXRlcy4g UGxlYXNlIGxldCBtZSBrbm93IGlmIHlvdSBwcmVmZXIgdG8gaGF2ZSB0aGlzIGRyaXZlciB1cGRh dGVkIGluIHRoaXMgcGF0Y2ggc2VyaWVzLCBJIGNhbiB0cnkgdG8gdXBkYXRlIGl0IGxvY2FsbHkg d2l0aCBzb21lIGZ1bmRhbWVudGFsIHNhbml0eSBjaGVja3MuDQoNClJlZ2FyZHMsDQpLdW4NCg0K RnJvbTogZ2FvbGltaW5nPG1haWx0bzpnYW9saW1pbmdAYnlvc29mdC5jb20uY24+DQpTZW50OiBX ZWRuZXNkYXksIERlY2VtYmVyIDIzLCAyMDIwIDE3OjUzDQpUbzogZGV2ZWxAZWRrMi5ncm91cHMu aW88bWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPjsgaGFvLmEud3VAaW50ZWwuY29tPG1haWx0 bzpoYW8uYS53dUBpbnRlbC5jb20+OyBrdW4ucUBvdXRsb29rLmNvbTxtYWlsdG86a3VuLnFAb3V0 bG9vay5jb20+OyAnWWFvLCBKaWV3ZW4nPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4NCkNj OiAnV2FuZywgSmlhbiBKJzxtYWlsdG86amlhbi5qLndhbmdAaW50ZWwuY29tPjsgJ0JpLCBEYW5k YW4nPG1haWx0bzpkYW5kYW4uYmlAaW50ZWwuY29tPg0KU3ViamVjdDogu9i4tDogW2VkazItZGV2 ZWxdIFtQQVRDSCB2MSAwNi8xNV0gTWRlTW9kdWxlUGtnOiBTbW1SZXBvcnRTdGF0dXNDb2RlTGli OiBSZXBvcnRTdGF0dXNDb2RlTGliIGluIFN0YW5kYWxvbmVNbQ0KDQpLdW46DQogSSBhbSBPSyBm b3IgdGhpcyBzb2x1dGlvbi4gSGF2ZSB5b3UgcGxhbiB0byB1cGRhdGUgU3RhdHVzQ29kZUhhbmRs ZXJTbW0/DQoNClRoYW5rcw0KTGltaW5nDQq3orz+yMs6IGJvdW5jZSsyNzk1Mis2OTM5Nys0OTA1 OTUzKzg3NjEwNDVAZ3JvdXBzLmlvPG1haWx0bzpib3VuY2UrMjc5NTIrNjkzOTcrNDkwNTk1Mys4 NzYxMDQ1QGdyb3Vwcy5pbz4gPGJvdW5jZSsyNzk1Mis2OTM5Nys0OTA1OTUzKzg3NjEwNDVAZ3Jv dXBzLmlvPG1haWx0bzpib3VuY2UrMjc5NTIrNjkzOTcrNDkwNTk1Mys4NzYxMDQ1QGdyb3Vwcy5p bz4+ILT6se0gV3UsIEhhbyBBDQq3osvNyrG85DogMjAyMMTqMTLUwjIzyNUgMTQ6MTANCsrVvP7I yzogZGV2ZWxAZWRrMi5ncm91cHMuaW88bWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPjsga3Vu LnFAb3V0bG9vay5jb208bWFpbHRvOmt1bi5xQG91dGxvb2suY29tPjsgTGltaW5nIEdhbyA8Z2Fv bGltaW5nQGJ5b3NvZnQuY29tLmNuPG1haWx0bzpnYW9saW1pbmdAYnlvc29mdC5jb20uY24+Pjsg WWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPG1haWx0bzpqaWV3ZW4ueWFvQGludGVs LmNvbT4+DQqzrcvNOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbTxtYWlsdG86 amlhbi5qLndhbmdAaW50ZWwuY29tPj47IEJpLCBEYW5kYW4gPGRhbmRhbi5iaUBpbnRlbC5jb208 bWFpbHRvOmRhbmRhbi5iaUBpbnRlbC5jb20+Pg0K1vfM4jogUmU6IFtlZGsyLWRldmVsXSBbUEFU Q0ggdjEgMDYvMTVdIE1kZU1vZHVsZVBrZzogU21tUmVwb3J0U3RhdHVzQ29kZUxpYjogUmVwb3J0 U3RhdHVzQ29kZUxpYiBpbiBTdGFuZGFsb25lTW0NCg0KSGVsbG8gS3VuLA0KDQpHb3QgaXQsIHRo YW5rcyBmb3IgdGhlIGV4cGxhbmF0aW9uLiBNeSBwcmVmZXJlbmNlIGlzIHRoZSBzYW1lIHdpdGgg eW91ciBjdXJyZW50IHByb3Bvc2FsIGluIHRoZSBwYXRjaC4NCg0KDQpIZWxsbyBMaW1pbmcgYW5k IEppZXdlbiwNCg0KRG8geW91IGhhdmUgY29tbWVudHMgZm9yIHRoaXMgY2FzZT8gVGhhbmtzIGlu IGFkdmFuY2UuDQoNCkJlc3QgUmVnYXJkcywNCkhhbyBXdQ0KDQpGcm9tOiBkZXZlbEBlZGsyLmdy b3Vwcy5pbzxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IDxkZXZlbEBlZGsyLmdyb3Vwcy5p bzxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+PiBPbiBCZWhhbGYgT2YgS3VuIFFpbg0KU2Vu dDogV2VkbmVzZGF5LCBEZWNlbWJlciAyMywgMjAyMCAzOjE1IEFNDQpUbzogZGV2ZWxAZWRrMi5n cm91cHMuaW88bWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPjsgV3UsIEhhbyBBIDxoYW8uYS53 dUBpbnRlbC5jb208bWFpbHRvOmhhby5hLnd1QGludGVsLmNvbT4+DQpDYzogV2FuZywgSmlhbiBK IDxqaWFuLmoud2FuZ0BpbnRlbC5jb208bWFpbHRvOmppYW4uai53YW5nQGludGVsLmNvbT4+OyBC aSwgRGFuZGFuIDxkYW5kYW4uYmlAaW50ZWwuY29tPG1haWx0bzpkYW5kYW4uYmlAaW50ZWwuY29t Pj47IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbjxtYWlsdG86Z2FvbGltaW5n QGJ5b3NvZnQuY29tLmNuPj47IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbTxtYWls dG86amlld2VuLnlhb0BpbnRlbC5jb20+Pg0KU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFU Q0ggdjEgMDYvMTVdIE1kZU1vZHVsZVBrZzogU21tUmVwb3J0U3RhdHVzQ29kZUxpYjogUmVwb3J0 U3RhdHVzQ29kZUxpYiBpbiBTdGFuZGFsb25lTW0NCg0KSGkgSGFvLA0KDQpUaGF0IHdhcyBteSBv cmlnaW5hbCBwbGFuLCBidXQgZG9pbmcgaXQgbWlnaHQgcmVxdWlyZSBhIE1tU2VydmljZVRhYmxl TGliIGluc3RhbmNlIGZvciBTTU1fQ09SRSB0eXBlIGlmIFBpU21tQ29yZSBsaW5rcyBpbiBSU0Mg bGliIChzaW1pbGFyIHRvIFBpU21tQ29yZVNtbVNlcnZpY2VzVGFibGVMaWIpLiBXZSBjYW4gY3Jl YXRlIHN1Y2ggYW4gaW5zdGFuY2UganVzdCBsaWtlIFBpU21tQ29yZVNtbVNlcnZpY2VzVGFibGVM aWIsIGJ1dCB0aGUgaW1wbGVtZW50YXRpb24gd2lsbCBwdWxsIGluIGdTbW1Db3JlU21zdCBhcyBh biBleHRlcm5hbCB2YXJpYWJsZSBhbmQgY2FzdCBpdCBmcm9tIGBFRklfU01NX1NZU1RFTV9UQUJM RTJgIHRvIGBFRklfTU1fU1lTVEVNX1RBQkxFYCwgd2hpY2ggZG9lcyBub3QgbG9vayBjbGVhbi4g VGh1cyBJIGp1c3QgYWJzdHJhY3QgdGhlIHJvdXRpbmUgdG8gYXZvaWQgaXQuDQoNClBsZWFzZSBs ZXQgbWUga25vdyBpZiB5b3UgaGF2ZSBiZXR0ZXIgaWRlYXMsIEkgY2FuIGFkZCB0aGUgY2hhbmdl IGZvciBuZXh0IHBhdGNoIHNlcmllcy4NCg0KVGhhbmtzLA0KS3VuDQoNCkZyb206IFd1LCBIYW8g QTxtYWlsdG86aGFvLmEud3VAaW50ZWwuY29tPg0KU2VudDogVHVlc2RheSwgRGVjZW1iZXIgMjIs IDIwMjAgMDA6MzUNClRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzxtYWlsdG86ZGV2ZWxAZWRrMi5n cm91cHMuaW8+OyBrdW4ucUBvdXRsb29rLmNvbTxtYWlsdG86a3VuLnFAb3V0bG9vay5jb20+DQpD YzogV2FuZywgSmlhbiBKPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBCaSwgRGFuZGFu PG1haWx0bzpkYW5kYW4uYmlAaW50ZWwuY29tPjsgTGltaW5nIEdhbzxtYWlsdG86Z2FvbGltaW5n QGJ5b3NvZnQuY29tLmNuPjsgWWFvLCBKaWV3ZW48bWFpbHRvOmppZXdlbi55YW9AaW50ZWwuY29t Pg0KU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjEgMDYvMTVdIE1kZU1vZHVsZVBr ZzogU21tUmVwb3J0U3RhdHVzQ29kZUxpYjogUmVwb3J0U3RhdHVzQ29kZUxpYiBpbiBTdGFuZGFs b25lTW0NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbzxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IDxkZXZlbEBlZGsyLmdyb3Vw cy5pbzxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+PiBPbiBCZWhhbGYgT2YgS3VuIFFpbg0K PiBTZW50OiBTYXR1cmRheSwgRGVjZW1iZXIgMTksIDIwMjAgMjo1MCBBTQ0KPiBUbzogZGV2ZWxA ZWRrMi5ncm91cHMuaW88bWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPg0KPiBDYzogV2FuZywg SmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb208bWFpbHRvOmppYW4uai53YW5nQGludGVsLmNv bT4+OyBXdSwgSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbTxtYWlsdG86aGFvLmEud3VAaW50ZWwu Y29tPj47DQo+IEJpLCBEYW5kYW4gPGRhbmRhbi5iaUBpbnRlbC5jb208bWFpbHRvOmRhbmRhbi5i aUBpbnRlbC5jb20+PjsgTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPG1haWx0 bzpnYW9saW1pbmdAYnlvc29mdC5jb20uY24+Pg0KPiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW1BB VENIIHYxIDA2LzE1XSBNZGVNb2R1bGVQa2c6DQo+IFNtbVJlcG9ydFN0YXR1c0NvZGVMaWI6IFJl cG9ydFN0YXR1c0NvZGVMaWIgaW4gU3RhbmRhbG9uZU1tDQo+DQo+IFRoaXMgY2hhbmdlIGFkZGVk IHN1cHBvcnQgb2YgU3RhbmRhbG9uZU1tIGZvciBSZXBvcnRTdGF0dXNDb2RlTGliLiBJdA0KPiBh ZGRzIGEgbmV3IGluc3RhbmNlIG9mIFJlcG9ydFN0YXR1c0NvZGVMaWIgZm9yIE1NX1NUQU5EQUxP TkUgdHlwZSwNCj4gYW5kIGFic3RyYWN0cyB0aGUgcmVmZXJlbmNlcyBvZiBnTW1zdCBhbmQgZ1Nt c3QgZnVuY3Rpb25hbGl0aWVzIGludG8NCj4gc2VwYXJhdGUgZmlsZXMgaW4gb3JkZXIgdG8gbGlu ayBpbiBwcm9wZXIgU2VydmljZSBUYWJsZSBmb3IgU01NIGNvcmUvZHJpdmVycy4NCg0KDQpTb3Jy eSBmb3IgYSBxdWVzdGlvbi4NCg0KRG8geW91IHRoaW5rIGl0IGlzIGZlYXNpYmxlIHRvIHVzZToN CmdNbXN0LT5NbUxvY2F0ZVByb3RvY29sIHRvIGxvY2F0ZSBnRWZpTW1TdGF0dXNDb2RlUHJvdG9j b2xHdWlkDQphbmQgYXZvaWQgaW50cm9kdWNpbmcgMiBzZXBhcmF0ZSBpbXBsZW1lbnRhdGlvbnMg Zm9yIGludGVybmFsIGZ1bmN0aW9uIEludGVybmFsTG9jYXRlUHJvdG9jb2woKT8NCg0KU2luY2Ug SSBmb3VuZCB0aGF0IHRoZSBkZWZpbml0aW9ucyBmb3IgZ0VmaU1tU3RhdHVzQ29kZVByb3RvY29s R3VpZCBhbiBnRWZpU21tU3RhdHVzQ29kZVByb3RvY29sR3VpZCBhcmUgaWRlbnRpY2FsLg0KDQpC ZXN0IFJlZ2FyZHMsDQpIYW8gV3UNCg0KDQo+DQo+IENjOiBKaWFuIEogV2FuZyA8amlhbi5qLndh bmdAaW50ZWwuY29tPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+Pg0KPiBDYzogSGFvIEEg V3UgPGhhby5hLnd1QGludGVsLmNvbTxtYWlsdG86aGFvLmEud3VAaW50ZWwuY29tPj4NCj4gQ2M6 IERhbmRhbiBCaSA8ZGFuZGFuLmJpQGludGVsLmNvbTxtYWlsdG86ZGFuZGFuLmJpQGludGVsLmNv bT4+DQo+IENjOiBMaW1pbmcgR2FvIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY248bWFpbHRvOmdh b2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4+DQo+DQo+IFNpZ25lZC1vZmYtYnk6IEt1biBRaW4gPGt1 bi5xQG91dGxvb2suY29tPG1haWx0bzprdW4ucUBvdXRsb29rLmNvbT4+DQo+IC0tLQ0KPiAgTWRl TW9kdWxlUGtnL0xpYnJhcnkvU21tUmVwb3J0U3RhdHVzQ29kZUxpYi9SZXBvcnRTdGF0dXNDb2Rl TGliLmMNCj4gfCAxNiArKysrLS0tLQ0KPg0KPiBNZGVNb2R1bGVQa2cvTGlicmFyeS9TbW1SZXBv cnRTdGF0dXNDb2RlTGliL1JlcG9ydFN0YXR1c0NvZGVMaWJTdGENCj4gbmRhbG9uZU1tLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzkgKysrKysrKysrKysrKysrKysrKysN Cj4NCj4gTWRlTW9kdWxlUGtnL0xpYnJhcnkvU21tUmVwb3J0U3RhdHVzQ29kZUxpYi9SZXBvcnRT dGF0dXNDb2RlTGliVHJhDQo+IGRpdGlvbmFsLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDM5ICsrKysrKysrKysrKysrKysrKysrDQo+ICBNZGVNb2R1bGVQa2cvTGlicmFy eS9TbW1SZXBvcnRTdGF0dXNDb2RlTGliL1JlcG9ydFN0YXR1c0NvZGVMaWIuaA0KPiB8IDM3ICsr KysrKysrKysrKysrKysrKysNCj4NCj4gTWRlTW9kdWxlUGtnL0xpYnJhcnkvU21tUmVwb3J0U3Rh dHVzQ29kZUxpYi9TbW1SZXBvcnRTdGF0dXNDb2RlTGkNCj4gYi5pbmYgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstDQo+DQo+IE1kZU1vZHVsZVBrZy9MaWJy YXJ5L1NtbVJlcG9ydFN0YXR1c0NvZGVMaWIve1NtbVJlcG9ydFN0YXR1c0NvZGUNCj4gTGliLmlu ZiA9PiBTdGFuZGFsb25lTW1SZXBvcnRTdGF0dXNDb2RlTGliLmluZn0gfCAxNyArKysrKy0tLS0N Cj4gIE1kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZHNjDQo+IHwgIDEgKw0KPiAgNyBmaWxlcyBj aGFuZ2VkLCAxMzcgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pDQo+DQo+IGRpZmYgLS1n aXQNCj4gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9TbW1SZXBvcnRTdGF0dXNDb2RlTGliL1JlcG9y dFN0YXR1c0NvZGVMaWIuYw0KPiBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1NtbVJlcG9ydFN0YXR1 c0NvZGVMaWIvUmVwb3J0U3RhdHVzQ29kZUxpYi4NCj4gYw0KPiBpbmRleCAzYTE3NzI1MzhjZGYu LmZiMTc2OWRiOTIyMyAxMDA2NDQNCj4gLS0tDQo+IGEvTWRlTW9kdWxlUGtnL0xpYnJhcnkvU21t UmVwb3J0U3RhdHVzQ29kZUxpYi9SZXBvcnRTdGF0dXNDb2RlTGliLmMNCj4gKysrDQo+IGIvTWRl TW9kdWxlUGtnL0xpYnJhcnkvU21tUmVwb3J0U3RhdHVzQ29kZUxpYi9SZXBvcnRTdGF0dXNDb2Rl TGliLg0KPiBjDQo+IEBAIC0xLDUgKzEsNSBAQA0KPiAgLyoqIEBmaWxlDQo+IC0gIFJlcG9ydCBT dGF0dXMgQ29kZSBMaWJyYXJ5IGZvciBTTU0gUGhhc2UuDQo+ICsgIFJlcG9ydCBTdGF0dXMgQ29k ZSBMaWJyYXJ5IGZvciBNTSBQaGFzZS4NCj4NCj4gICAgQ29weXJpZ2h0IChjKSAyMDA5IC0gMjAx OCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudCBAQCAtOCw3ICs4LDcgQEAN Cj4NCj4gICNpbmNsdWRlIDxMaWJyYXJ5L1JlcG9ydFN0YXR1c0NvZGVMaWIuaD4gICNpbmNsdWRl IDxMaWJyYXJ5L0RlYnVnTGliLmg+IC0NCj4gI2luY2x1ZGUgPExpYnJhcnkvU21tU2VydmljZXNU YWJsZUxpYi5oPg0KPiArI2luY2x1ZGUgPExpYnJhcnkvTW1TZXJ2aWNlc1RhYmxlTGliLmg+DQo+ ICAjaW5jbHVkZSA8TGlicmFyeS9CYXNlTGliLmg+DQo+ICAjaW5jbHVkZSA8TGlicmFyeS9CYXNl TWVtb3J5TGliLmg+DQo+ICAjaW5jbHVkZSA8TGlicmFyeS9QY2RMaWIuaD4NCj4gQEAgLTE2LDEw ICsxNiwxMiBAQA0KPg0KPiAgI2luY2x1ZGUgPEd1aWQvU3RhdHVzQ29kZURhdGFUeXBlSWQuaD4N Cj4gICNpbmNsdWRlIDxHdWlkL1N0YXR1c0NvZGVEYXRhVHlwZURlYnVnLmg+IC0jaW5jbHVkZQ0K PiA8UHJvdG9jb2wvU21tU3RhdHVzQ29kZS5oPg0KPiArI2luY2x1ZGUgPFByb3RvY29sL01tU3Rh dHVzQ29kZS5oPg0KPg0KPiAtRUZJX1NNTV9SRVBPUlRfU1RBVFVTX0NPREUgICAgIG1SZXBvcnRT dGF0dXNDb2RlID0gTlVMTDsNCj4gLUVGSV9TTU1fU1RBVFVTX0NPREVfUFJPVE9DT0wgICAqbVN0 YXR1c0NvZGVQcm90b2NvbCA9IE5VTEw7DQo+ICsjaW5jbHVkZSAiUmVwb3J0U3RhdHVzQ29kZUxp Yi5oIg0KPiArDQo+ICtFRklfTU1fUkVQT1JUX1NUQVRVU19DT0RFICAgICBtUmVwb3J0U3RhdHVz Q29kZSA9IE5VTEw7DQo+ICtFRklfTU1fU1RBVFVTX0NPREVfUFJPVE9DT0wgICAqbVN0YXR1c0Nv ZGVQcm90b2NvbCA9IE5VTEw7DQo+DQo+DQo+ICAvKioNCj4gQEAgLTI5LDE0ICszMSwxNCBAQCBF RklfU01NX1NUQVRVU19DT0RFX1BST1RPQ09MDQo+ICptU3RhdHVzQ29kZVByb3RvY29sID0gTlVM TDsNCj4gICAgICAgICAgICAgIE5VTEwgaXMgcmV0dXJuZWQgaWYgbm8gc3RhdHVzIGNvZGUgc2Vy dmljZSBpcyBhdmFpbGFibGUuDQo+DQo+ICAqKi8NCj4gLUVGSV9TTU1fUkVQT1JUX1NUQVRVU19D T0RFDQo+ICtFRklfTU1fUkVQT1JUX1NUQVRVU19DT0RFDQo+ICBJbnRlcm5hbEdldFJlcG9ydFN0 YXR1c0NvZGUgKA0KPiAgICBWT0lEDQo+ICAgICkNCj4gIHsNCj4gICAgRUZJX1NUQVRVUyAgICAg ICAgICAgICAgICAgICAgU3RhdHVzOw0KPg0KPiAtICBTdGF0dXMgPSBnU21zdC0+U21tTG9jYXRl UHJvdG9jb2wgKCZnRWZpU21tU3RhdHVzQ29kZVByb3RvY29sR3VpZCwNCj4gTlVMTCwgKFZPSUQq KikmbVN0YXR1c0NvZGVQcm90b2NvbCk7DQo+ICsgIFN0YXR1cyA9IEludGVybmFsTG9jYXRlUHJv dG9jb2wgKCZnRWZpTW1TdGF0dXNDb2RlUHJvdG9jb2xHdWlkLCBOVUxMLA0KPiArIChWT0lEKiop Jm1TdGF0dXNDb2RlUHJvdG9jb2wpOw0KPiAgICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSAmJiBt U3RhdHVzQ29kZVByb3RvY29sICE9IE5VTEwpIHsNCj4gICAgICByZXR1cm4gbVN0YXR1c0NvZGVQ cm90b2NvbC0+UmVwb3J0U3RhdHVzQ29kZTsNCj4gICAgfQ0KPiBkaWZmIC0tZ2l0DQo+IGEvTWRl TW9kdWxlUGtnL0xpYnJhcnkvU21tUmVwb3J0U3RhdHVzQ29kZUxpYi9SZXBvcnRTdGF0dXNDb2Rl TGliUw0KPiB0YW5kYWxvbmVNbS5jDQo+IGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkvU21tUmVwb3J0 U3RhdHVzQ29kZUxpYi9SZXBvcnRTdGF0dXNDb2RlTGliUw0KPiB0YW5kYWxvbmVNbS5jDQo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uZmM0N2RmZmU5ZmZiDQo+ IC0tLSAvZGV2L251bGwNCj4gKysrDQo+IGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkvU21tUmVwb3J0 U3RhdHVzQ29kZUxpYi9SZXBvcnRTdGF0dXNDb2RlTGliUw0KPiB0YQ0KPiArKysgbmRhbG9uZU1t LmMNCj4gQEAgLTAsMCArMSwzOSBAQA0KPiArLyoqIEBmaWxlDQo+ICsgIEFic3RyYWN0aW9uIGxh eWVyIGZvciBNTSBzZXJ2aWNlIHRhYmxlIHVzZWQgYnkgTU0gUmVwb3J0U3RhdHVzQ29kZUxpYi4N Cj4gKw0KPiArICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4NCj4gKyAgU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gKw0KPiArKiovDQo+ ICsNCj4gKyNpbmNsdWRlIDxQaU1tLmg+DQo+ICsNCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L01tU2Vy dmljZXNUYWJsZUxpYi5oPg0KPiArDQo+ICsvKioNCj4gKyAgUmV0dXJucyB0aGUgZmlyc3QgcHJv dG9jb2wgaW5zdGFuY2UgdGhhdCBtYXRjaGVzIHRoZSBnaXZlbiBwcm90b2NvbC4NCj4gKw0KPiAr ICBAcGFyYW1baW5dICBQcm90b2NvbCAgICAgICAgICBQcm92aWRlcyB0aGUgcHJvdG9jb2wgdG8g c2VhcmNoIGZvci4NCj4gKyAgQHBhcmFtW2luXSAgUmVnaXN0cmF0aW9uICAgICAgT3B0aW9uYWwg cmVnaXN0cmF0aW9uIGtleSByZXR1cm5lZCBmcm9tDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJlZ2lzdGVyUHJvdG9jb2xOb3RpZnkoKS4NCj4gKyAgQHBhcmFtW291dF0gIElu dGVyZmFjZSAgICAgICAgT24gcmV0dXJuLCBhIHBvaW50ZXIgdG8gdGhlIGZpcnN0IGludGVyZmFj ZSB0aGF0DQo+IG1hdGNoZXMgUHJvdG9jb2wgYW5kDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJlZ2lzdHJhdGlvbi4NCj4gKw0KPiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAg ICAgICAgICBBIHByb3RvY29sIGluc3RhbmNlIG1hdGNoaW5nIFByb3RvY29sIHdhcw0KPiBmb3Vu ZCBhbmQgcmV0dXJuZWQgaW4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50 ZXJmYWNlLg0KPiArICBAcmV0dmFsIEVGSV9OT1RfRk9VTkQgICAgICAgICBObyBwcm90b2NvbCBp bnN0YW5jZXMgd2VyZSBmb3VuZCB0aGF0DQo+IG1hdGNoIFByb3RvY29sIGFuZA0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RyYXRpb24uDQo+ICsgIEByZXR2YWwgRUZJ X0lOVkFMSURfUEFSQU1FVEVSIEludGVyZmFjZSBpcyBOVUxMLg0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQcm90b2NvbCBpcyBOVUxMLg0KPiArDQo+ICsqKi8NCj4gK0VGSV9T VEFUVVMNCj4gK0VGSUFQSQ0KPiArSW50ZXJuYWxMb2NhdGVQcm90b2NvbCAoDQo+ICsgIElOICBF RklfR1VJRCAgKlByb3RvY29sLA0KPiArICBJTiAgVk9JRCAgICAgICpSZWdpc3RyYXRpb24sIE9Q VElPTkFMDQo+ICsgIE9VVCBWT0lEICAgICAgKipJbnRlcmZhY2UNCj4gKyAgKQ0KPiArew0KPiAr ICByZXR1cm4gZ01tc3QtPk1tTG9jYXRlUHJvdG9jb2wgKFByb3RvY29sLCBSZWdpc3RyYXRpb24s IEludGVyZmFjZSk7IH0NCj4gZGlmZiAtLWdpdA0KPiBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1Nt bVJlcG9ydFN0YXR1c0NvZGVMaWIvUmVwb3J0U3RhdHVzQ29kZUxpYlQNCj4gcmFkaXRpb25hbC5j DQo+IGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkvU21tUmVwb3J0U3RhdHVzQ29kZUxpYi9SZXBvcnRT dGF0dXNDb2RlTGliVA0KPiByYWRpdGlvbmFsLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4g aW5kZXggMDAwMDAwMDAwMDAwLi42YjNhN2M2MDUxYzUNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysN Cj4gYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9TbW1SZXBvcnRTdGF0dXNDb2RlTGliL1JlcG9ydFN0 YXR1c0NvZGVMaWJUDQo+IHJhDQo+ICsrKyBkaXRpb25hbC5jDQo+IEBAIC0wLDAgKzEsMzkgQEAN Cj4gKy8qKiBAZmlsZQ0KPiArICBBYnN0cmFjdGlvbiBsYXllciBmb3IgU01NIHNlcnZpY2UgdGFi bGUgdXNlZCBieSBTTU0NCj4gUmVwb3J0U3RhdHVzQ29kZUxpYi4NCj4gKw0KPiArICBDb3B5cmln aHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4NCj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gKw0KPiArKiovDQo+ICsNCj4gKyNpbmNsdWRlIDxQ aU1tLmg+DQo+ICsNCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L1NtbVNlcnZpY2VzVGFibGVMaWIuaD4N Cj4gKw0KPiArLyoqDQo+ICsgIFJldHVybnMgdGhlIGZpcnN0IHByb3RvY29sIGluc3RhbmNlIHRo YXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gcHJvdG9jb2wuDQo+ICsNCj4gKyAgQHBhcmFtW2luXSAgUHJv dG9jb2wgICAgICAgICAgUHJvdmlkZXMgdGhlIHByb3RvY29sIHRvIHNlYXJjaCBmb3IuDQo+ICsg IEBwYXJhbVtpbl0gIFJlZ2lzdHJhdGlvbiAgICAgIE9wdGlvbmFsIHJlZ2lzdHJhdGlvbiBrZXkg cmV0dXJuZWQgZnJvbQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3Rl clByb3RvY29sTm90aWZ5KCkuDQo+ICsgIEBwYXJhbVtvdXRdICBJbnRlcmZhY2UgICAgICAgIE9u IHJldHVybiwgYSBwb2ludGVyIHRvIHRoZSBmaXJzdCBpbnRlcmZhY2UgdGhhdA0KPiBtYXRjaGVz IFByb3RvY29sIGFuZA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3Ry YXRpb24uDQo+ICsNCj4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgQSBwcm90b2Nv bCBpbnN0YW5jZSBtYXRjaGluZyBQcm90b2NvbCB3YXMNCj4gZm91bmQgYW5kIHJldHVybmVkIGlu DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVyZmFjZS4NCj4gKyAgQHJl dHZhbCBFRklfTk9UX0ZPVU5EICAgICAgICAgTm8gcHJvdG9jb2wgaW5zdGFuY2VzIHdlcmUgZm91 bmQgdGhhdA0KPiBtYXRjaCBQcm90b2NvbCBhbmQNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmVnaXN0cmF0aW9uLg0KPiArICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRF UiBJbnRlcmZhY2UgaXMgTlVMTC4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UHJvdG9jb2wgaXMgTlVMTC4NCj4gKw0KPiArKiovDQo+ICtFRklfU1RBVFVTDQo+ICtFRklBUEkN Cj4gK0ludGVybmFsTG9jYXRlUHJvdG9jb2wgKA0KPiArICBJTiAgRUZJX0dVSUQgICpQcm90b2Nv bCwNCj4gKyAgSU4gIFZPSUQgICAgICAqUmVnaXN0cmF0aW9uLCBPUFRJT05BTA0KPiArICBPVVQg Vk9JRCAgICAgICoqSW50ZXJmYWNlDQo+ICsgICkNCj4gK3sNCj4gKyAgcmV0dXJuIGdTbXN0LT5T bW1Mb2NhdGVQcm90b2NvbCAoUHJvdG9jb2wsIFJlZ2lzdHJhdGlvbiwgSW50ZXJmYWNlKTsNCj4g K30NCj4gZGlmZiAtLWdpdA0KPiBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1NtbVJlcG9ydFN0YXR1 c0NvZGVMaWIvUmVwb3J0U3RhdHVzQ29kZUxpYi4NCj4gaA0KPiBiL01kZU1vZHVsZVBrZy9MaWJy YXJ5L1NtbVJlcG9ydFN0YXR1c0NvZGVMaWIvUmVwb3J0U3RhdHVzQ29kZUxpYi4NCj4gaA0KPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMDAuLjlhMTY3NDFlNjRmNg0K PiAtLS0gL2Rldi9udWxsDQo+ICsrKw0KPiBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1NtbVJlcG9y dFN0YXR1c0NvZGVMaWIvUmVwb3J0U3RhdHVzQ29kZUxpYi4NCj4gaA0KPiBAQCAtMCwwICsxLDM3 IEBADQo+ICsvKiogQGZpbGUNCj4gKyAgUmVwb3J0IFN0YXR1cyBDb2RlIExpYnJhcnkgZm9yIE1N IFBoYXNlLg0KPiArDQo+ICsgIENvcHlyaWdodCAoYykgMjAwOSAtIDIwMTgsIEludGVsIENvcnBv cmF0aW9uLiBBbGwgcmlnaHRzDQo+ICsgcmVzZXJ2ZWQuPEJSPg0KPiArICBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArDQo+ICsqKi8NCj4gKw0KPiArI2lm bmRlZiBfTU1fUlNDX0xJQl9IXw0KPiArI2RlZmluZSBfTU1fUlNDX0xJQl9IXw0KPiArDQo+ICsv KioNCj4gKyAgUmV0dXJucyB0aGUgZmlyc3QgcHJvdG9jb2wgaW5zdGFuY2UgdGhhdCBtYXRjaGVz IHRoZSBnaXZlbiBwcm90b2NvbC4NCj4gKw0KPiArICBAcGFyYW1baW5dICBQcm90b2NvbCAgICAg ICAgICBQcm92aWRlcyB0aGUgcHJvdG9jb2wgdG8gc2VhcmNoIGZvci4NCj4gKyAgQHBhcmFtW2lu XSAgUmVnaXN0cmF0aW9uICAgICAgT3B0aW9uYWwgcmVnaXN0cmF0aW9uIGtleSByZXR1cm5lZCBm cm9tDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyUHJvdG9jb2xO b3RpZnkoKS4NCj4gKyAgQHBhcmFtW291dF0gIEludGVyZmFjZSAgICAgICAgT24gcmV0dXJuLCBh IHBvaW50ZXIgdG8gdGhlIGZpcnN0IGludGVyZmFjZSB0aGF0DQo+IG1hdGNoZXMgUHJvdG9jb2wg YW5kDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdHJhdGlvbi4NCj4g Kw0KPiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICBBIHByb3RvY29sIGluc3RhbmNl IG1hdGNoaW5nIFByb3RvY29sIHdhcw0KPiBmb3VuZCBhbmQgcmV0dXJuZWQgaW4NCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJmYWNlLg0KPiArICBAcmV0dmFsIEVGSV9O T1RfRk9VTkQgICAgICAgICBObyBwcm90b2NvbCBpbnN0YW5jZXMgd2VyZSBmb3VuZCB0aGF0DQo+ IG1hdGNoIFByb3RvY29sIGFuZA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZWdpc3RyYXRpb24uDQo+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSIEludGVyZmFj ZSBpcyBOVUxMLg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm90b2NvbCBp cyBOVUxMLg0KPiArDQo+ICsqKi8NCj4gK0VGSV9TVEFUVVMNCj4gK0VGSUFQSQ0KPiArSW50ZXJu YWxMb2NhdGVQcm90b2NvbCAoDQo+ICsgIElOICBFRklfR1VJRCAgKlByb3RvY29sLA0KPiArICBJ TiAgVk9JRCAgICAgICpSZWdpc3RyYXRpb24sIE9QVElPTkFMDQo+ICsgIE9VVCBWT0lEICAgICAg KipJbnRlcmZhY2UNCj4gKyAgKTsNCj4gKw0KPiArI2VuZGlmIC8vIF9NTV9SU0NfTElCX0hfDQo+ IGRpZmYgLS1naXQNCj4gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9TbW1SZXBvcnRTdGF0dXNDb2Rl TGliL1NtbVJlcG9ydFN0YXR1c0NvZA0KPiBlTGliLmluZg0KPiBiL01kZU1vZHVsZVBrZy9MaWJy YXJ5L1NtbVJlcG9ydFN0YXR1c0NvZGVMaWIvU21tUmVwb3J0U3RhdHVzQ29kDQo+IGVMaWIuaW5m DQo+IGluZGV4IDcyNDk2YmZhYmFiZC4uMDJkY2UwOWExOTlkIDEwMDY0NA0KPiAtLS0NCj4gYS9N ZGVNb2R1bGVQa2cvTGlicmFyeS9TbW1SZXBvcnRTdGF0dXNDb2RlTGliL1NtbVJlcG9ydFN0YXR1 c0NvZA0KPiBlTGliLmluZg0KPiArKysNCj4gYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9TbW1SZXBv cnRTdGF0dXNDb2RlTGliL1NtbVJlcG9ydFN0YXR1c0NvZA0KPiBlTGliDQo+ICsrKyAuaW5mDQo+ IEBAIC0yOCw2ICsyOCw4IEBAIFtEZWZpbmVzXQ0KPg0KPiAgW1NvdXJjZXNdDQo+ICAgIFJlcG9y dFN0YXR1c0NvZGVMaWIuYw0KPiArICBSZXBvcnRTdGF0dXNDb2RlTGliLmgNCj4gKyAgUmVwb3J0 U3RhdHVzQ29kZUxpYlRyYWRpdGlvbmFsLmMNCj4NCj4gIFtQYWNrYWdlc10NCj4gICAgTWRlUGtn L01kZVBrZy5kZWMNCj4gQEAgLTQ1LDcgKzQ3LDcgQEAgW0d1aWRzXQ0KPiAgICBnRWZpU3RhdHVz Q29kZURhdGFUeXBlRGVidWdHdWlkICAgICAgICAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVT DQo+ICMjIFVOREVGSU5FRA0KPg0KPiAgW1Byb3RvY29sc10NCj4gLSAgZ0VmaVNtbVN0YXR1c0Nv ZGVQcm90b2NvbEd1aWQgICAgICAgICAgICAgICAgICMjIENPTlNVTUVTDQo+ICsgIGdFZmlNbVN0 YXR1c0NvZGVQcm90b2NvbEd1aWQgICAgICAgICAgICAgICAgICAjIyBDT05TVU1FUw0KPg0KPiAg W1BjZF0NCj4gICAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFJlcG9ydFN0YXR1c0NvZGVQ cm9wZXJ0eU1hc2sgICMjDQo+IENPTlNVTUVTIGRpZmYgLS1naXQNCj4gYS9NZGVNb2R1bGVQa2cv TGlicmFyeS9TbW1SZXBvcnRTdGF0dXNDb2RlTGliL1NtbVJlcG9ydFN0YXR1c0NvZA0KPiBlTGli LmluZg0KPiBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1NtbVJlcG9ydFN0YXR1c0NvZGVMaWIvU3Rh bmRhbG9uZU1tUmVwb3J0DQo+IFN0YXR1c0NvZGVMaWIuaW5mDQo+IHNpbWlsYXJpdHkgaW5kZXgg NjQlDQo+IGNvcHkgZnJvbQ0KPiBNZGVNb2R1bGVQa2cvTGlicmFyeS9TbW1SZXBvcnRTdGF0dXND b2RlTGliL1NtbVJlcG9ydFN0YXR1c0NvZGVMaQ0KPiBiLmluZg0KPiBjb3B5IHRvDQo+IE1kZU1v ZHVsZVBrZy9MaWJyYXJ5L1NtbVJlcG9ydFN0YXR1c0NvZGVMaWIvU3RhbmRhbG9uZU1tUmVwb3J0 U3QNCj4gYXR1c0NvZGVMaWIuaW5mDQo+IGluZGV4IDcyNDk2YmZhYmFiZC4uMTFlY2M2N2ZjNGZh IDEwMDY0NA0KPiAtLS0NCj4gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9TbW1SZXBvcnRTdGF0dXND b2RlTGliL1NtbVJlcG9ydFN0YXR1c0NvZA0KPiBlTGliLmluZg0KPiArKysNCj4gYi9NZGVNb2R1 bGVQa2cvTGlicmFyeS9TbW1SZXBvcnRTdGF0dXNDb2RlTGliL1N0YW5kYWxvbmVNbVJlcG9ydA0K PiBTdGF0DQo+ICsrKyB1c0NvZGVMaWIuaW5mDQo+IEBAIC0xMiwxMyArMTIsMTIgQEANCj4NCj4g IFtEZWZpbmVzXQ0KPiAgICBJTkZfVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgPSAweDAwMDEw MDA1DQo+IC0gIEJBU0VfTkFNRSAgICAgICAgICAgICAgICAgICAgICA9IFNtbVJlcG9ydFN0YXR1 c0NvZGVMaWINCj4gLSAgTU9EVUxFX1VOSV9GSUxFICAgICAgICAgICAgICAgID0gU21tUmVwb3J0 U3RhdHVzQ29kZUxpYi51bmkNCj4gLSAgRklMRV9HVUlEICAgICAgICAgICAgICAgICAgICAgID0g NjcwODlEMTktQjNENi00ZDllLUEwRUItRkVEQzFGODNBMUVFDQo+IC0gIE1PRFVMRV9UWVBFICAg ICAgICAgICAgICAgICAgICA9IERYRV9TTU1fRFJJVkVSDQo+ICsgIEJBU0VfTkFNRSAgICAgICAg ICAgICAgICAgICAgICA9IFN0YW5kYWxvbmVNbVJlcG9ydFN0YXR1c0NvZGVMaWINCj4gKyAgRklM RV9HVUlEICAgICAgICAgICAgICAgICAgICAgID0gMTdDN0ZDOEMtOEM1RC00OTdFLTlDMEUtQzIx MjU1QjMwRTA0DQo+ICsgIE1PRFVMRV9UWVBFICAgICAgICAgICAgICAgICAgICA9IE1NX1NUQU5E QUxPTkUNCj4gICAgVkVSU0lPTl9TVFJJTkcgICAgICAgICAgICAgICAgID0gMS4wDQo+IC0gIFBJ X1NQRUNJRklDQVRJT05fVkVSU0lPTiAgICAgICA9IDB4MDAwMTAwMEENCj4gLSAgTElCUkFSWV9D TEFTUyAgICAgICAgICAgICAgICAgID0gUmVwb3J0U3RhdHVzQ29kZUxpYnxEWEVfU01NX0RSSVZF Ug0KPiBTTU1fQ09SRQ0KPiArICBQSV9TUEVDSUZJQ0FUSU9OX1ZFUlNJT04gICAgICAgPSAweDAw MDEwMDMyDQo+ICsgIExJQlJBUllfQ0xBU1MgICAgICAgICAgICAgICAgICA9IFJlcG9ydFN0YXR1 c0NvZGVMaWJ8TU1fU1RBTkRBTE9ORQ0KPg0KPiAgIw0KPiAgIyBUaGUgZm9sbG93aW5nIGluZm9y bWF0aW9uIGlzIGZvciByZWZlcmVuY2Ugb25seSBhbmQgbm90IHJlcXVpcmVkIGJ5IHRoZQ0KPiBi dWlsZCB0b29scy4NCj4gQEAgLTI4LDYgKzI3LDggQEAgW0RlZmluZXNdDQo+DQo+ICBbU291cmNl c10NCj4gICAgUmVwb3J0U3RhdHVzQ29kZUxpYi5jDQo+ICsgIFJlcG9ydFN0YXR1c0NvZGVMaWIu aA0KPiArICBSZXBvcnRTdGF0dXNDb2RlTGliU3RhbmRhbG9uZU1tLmMNCj4NCj4gIFtQYWNrYWdl c10NCj4gICAgTWRlUGtnL01kZVBrZy5kZWMNCj4gQEAgLTM2LDcgKzM3LDcgQEAgW1BhY2thZ2Vz XQ0KPiAgW0xpYnJhcnlDbGFzc2VzXQ0KPiAgICBQY2RMaWINCj4gICAgQmFzZU1lbW9yeUxpYg0K PiAtICBTbW1TZXJ2aWNlc1RhYmxlTGliDQo+ICsgIE1tU2VydmljZXNUYWJsZUxpYg0KPiAgICBE ZWJ1Z0xpYg0KPiAgICBNZW1vcnlBbGxvY2F0aW9uTGliDQo+DQo+IEBAIC00NSw3ICs0Niw3IEBA IFtHdWlkc10NCj4gICAgZ0VmaVN0YXR1c0NvZGVEYXRhVHlwZURlYnVnR3VpZCAgICAgICAgICAg ICAgICMjIFNPTUVUSU1FU19DT05TVU1FUw0KPiAjIyBVTkRFRklORUQNCj4NCj4gIFtQcm90b2Nv bHNdDQo+IC0gIGdFZmlTbW1TdGF0dXNDb2RlUHJvdG9jb2xHdWlkICAgICAgICAgICAgICAgICAj IyBDT05TVU1FUw0KPiArICBnRWZpTW1TdGF0dXNDb2RlUHJvdG9jb2xHdWlkICAgICAgICAgICAg ICAgICAgIyMgQ09OU1VNRVMNCj4NCj4gIFtQY2RdDQo+ICAgIGdFZmlNZGVQa2dUb2tlblNwYWNl R3VpZC5QY2RSZXBvcnRTdGF0dXNDb2RlUHJvcGVydHlNYXNrICAjIw0KPiBDT05TVU1FUyBkaWZm IC0tZ2l0IGEvTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kc2MNCj4gYi9NZGVNb2R1bGVQa2cv TWRlTW9kdWxlUGtnLmRzYyBpbmRleCBjZDkxYTcwYjRmZGQuLjA1YmY1ZmUwODA5NA0KPiAxMDA2 NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kc2MNCj4gKysrIGIvTWRlTW9k dWxlUGtnL01kZU1vZHVsZVBrZy5kc2MNCj4gQEAgLTQ3Myw2ICs0NzMsNyBAQCBbQ29tcG9uZW50 cy5JQTMyLCBDb21wb25lbnRzLlg2NF0NCj4gICAgfQ0KPg0KPiBNZGVNb2R1bGVQa2cvVW5pdmVy c2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVTbW1SdW50aW1lRHhlLmkNCj4gbmYNCj4N Cj4gTWRlTW9kdWxlUGtnL0xpYnJhcnkvU21tUmVwb3J0U3RhdHVzQ29kZUxpYi9TbW1SZXBvcnRT dGF0dXNDb2RlTGkNCj4gYi5pbmYNCj4gKw0KPiArDQo+IE1kZU1vZHVsZVBrZy9MaWJyYXJ5L1Nt bVJlcG9ydFN0YXR1c0NvZGVMaWIvU3RhbmRhbG9uZU1tUmVwb3J0U3QNCj4gYXR1c0NvDQo+ICsg ZGVMaWIuaW5mDQo+DQo+IE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvU3RhdHVzQ29kZUhhbmRsZXIv U21tL1N0YXR1c0NvZGVIYW5kbGVyU20NCj4gbS5pbmYNCj4NCj4gTWRlTW9kdWxlUGtnL1VuaXZl cnNhbC9SZXBvcnRTdGF0dXNDb2RlUm91dGVyL1NtbS9SZXBvcnRTdGF0dXNDb2QNCj4gZVJvdXRl clNtbS5pbmYNCj4gICAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9Mb2NrQm94L1NtbUxvY2tCb3gv U21tTG9ja0JveC5pbmYNCj4gLS0NCj4gMi4yOC4wLndpbmRvd3MuMQ0KPg0KPg0KPg0KPg0KPg0K DQoNCg0KDQoNCg0K --_000_MWHPR06MB3102C391B154DF8F8E7B462EF3D80MWHPR06MB3102namp_ Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable

Hi Liming,

 

Noted, I will add the driver of StatusCodeHandlerSt= andaloneMm in v2 patches.

 

Regards,

Kun

 

From: gaoliming
Sent: Monday, December 28, 2020 17:24
To: devel@edk2.groups.io; kun.q@outlook.com; hao.a.wu@inte= l.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 prefer to include StatusCodeHandlerSmm with the basic check. If so, the complete stat= uscode solution can be provided.

 

Thanks

Liming

=B7=A2=BC=FE=C8=CB:<= /span> bounce+27952+69443+4905953+= 8761045@groups.io <bounce+27952+69443+4905953+8761045@groups.io> =B4=FA=B1=ED Kun Qin
=B7=A2=CB=CD=CA=B1=BC=E4: 2020=C4=EA12=D4=C224=C8=D5 17:12
=CA=D5=BC=FE=C8=CB: devel@edk2.groups.i= o; gaoliming@byosoft.com.cn; hao.a.wu@intel.com; 'Yao, Jiewen' <jiewen.y= ao@intel.com>
=B3=AD=CB=CD: 'Wang, Jian J' <jian.j= .wang@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

 

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+279= 52+69397+4905953+8761045@groups.io <bounce+27952+69397+4905953+8761045@groups.i= o> =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.io; kun.q@outlook.com; Liming Gao <= ;gaoliming@byosoft.com.cn&g= t;; Yao, Jiewen <jiewen.yao@inte= l.com>
=B3=AD=CB=CD: Wang, Jian J <jian.j.wang@intel.com>; Bi, Danda= n <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_MWHPR06MB3102C391B154DF8F8E7B462EF3D80MWHPR06MB3102namp_-- --_004_MWHPR06MB3102C391B154DF8F8E7B462EF3D80MWHPR06MB3102namp_ Content-Type: image/png; name="B046D1591A6846FF9FDD441CA8CBB1DE.png" Content-Description: B046D1591A6846FF9FDD441CA8CBB1DE.png Content-Disposition: inline; filename="B046D1591A6846FF9FDD441CA8CBB1DE.png"; size=140; creation-date="Tue, 29 Dec 2020 01:31:56 GMT"; modification-date="Tue, 29 Dec 2020 01:31:56 GMT" Content-ID: Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAsQAAAABCAYAAADZ77itAAAAAXNSR0IArs4c6QAAAARnQU1BAACx jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAhSURBVEhL7cMBDQAACAMg+5cygQkeRoMIG9WT VVXVn7MHYi5moJeByLMAAAAASUVORK5CYII= --_004_MWHPR06MB3102C391B154DF8F8E7B462EF3D80MWHPR06MB3102namp_--