From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (NAM12-DM6-obe.outbound.protection.outlook.com [40.107.243.47]) by mx.groups.io with SMTP id smtpd.web11.28288.1683627942419628842 for ; Tue, 09 May 2023 03:25:42 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=f2qYQhhe; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.243.47, mailfrom: abdullateef.attar@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VpPadki9IfngfZfB5v9EZGODLQbTCKcjmKIUy6vedEHyJXnXIOm/ynZTqUXdVM+Jqr0u/1wW3KYhH4QhK8SpjPV2tH/BfyTD6YpVjaBde4ZtYZyeG89EFgpgc0UUJ8x6RPUvfkDbH45y16lUpgYkMLeabumHmbHxoupDkIto8xHN93ISmmuaLtmUIciUxyi6GT8u/gdoy2E2101oyyxi2CtAY+ADe5G65e/B6aDDy5318uk1Vkw6NYusKPdFubnK7YWAYGtiIpu+MzDpNTZThvbz+jJo2/7jxeK1sJ5fDvohYiftxK5/WoNRoctQw0lBO+XVvuzTZcxQUJLU/XFKOQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ILggqRPIdcY0yd7sJ0PDRB087RdPdqOijbZrl2BKQn8=; b=a/8cHjqSSA6i1hDSvyMpAFe/HyHA2IgyEgudJddEunegAnRLXWaZjPY6pvfnzhpX9XGfBXEvjVLQycnKnDqsWiTjMBmBBS117zuMUr4Z67rPJQXOmmQgJwSc/HfqcJrgbYdSeFXgaRUdXsQ1SSgzmoBy0jzZZfG98dEnEXfQ/36jRGglmIoziXJ7aroQKfZRGd3OldNcdmkQe0Ak1il44i1w8Vd/3SjbtSx2kgPlJJYkAULUxHpjTQFxJvrjuHNfEzYhzO/koJHm5NCuTiJ+OoJDocBkibOu0R/tvdHSQDuKJ2i+yzy8MjKTBDaM7ekvdtxsVKXOHFIEcnFAh3nNSQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ILggqRPIdcY0yd7sJ0PDRB087RdPdqOijbZrl2BKQn8=; b=f2qYQhhewyE/KY9wYEUkUDKC1JIWfXXyfdUVl/LSvbzAHWFd4VTjBVB2jqh0S3S6/gF5vHyI/HAsaaT3rk6pst6sYeve5IHV6LwFMBQT09H4CPsOSOiBTFpuL3k7lRIUXA86AsMxsg6QG3Gu013rZ5m1DpWiaxld+0R4qqdeDiA= Received: from PH7PR12MB6466.namprd12.prod.outlook.com (2603:10b6:510:1f6::22) by MN2PR12MB4128.namprd12.prod.outlook.com (2603:10b6:208:1dd::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.32; Tue, 9 May 2023 10:25:37 +0000 Received: from PH7PR12MB6466.namprd12.prod.outlook.com ([fe80::9837:e9ae:f203:bb7f]) by PH7PR12MB6466.namprd12.prod.outlook.com ([fe80::9837:e9ae:f203:bb7f%7]) with mapi id 15.20.6340.030; Tue, 9 May 2023 10:25:37 +0000 From: "Attar, AbdulLateef (Abdul Lateef)" To: "Chang, Abner" , "devel@edk2.groups.io" CC: Isaac Oram , Nickle Wang , Tinh Nguyen Subject: Re: [edk2-platforms][PATCH 1/2] ManageabilityPkg: Add Manageability IPMI helper Library Thread-Topic: [edk2-platforms][PATCH 1/2] ManageabilityPkg: Add Manageability IPMI helper Library Thread-Index: AQHZgkvSKlco/4VH1Uqmven357owBK9RvFow Date: Tue, 9 May 2023 10:25:37 +0000 Message-ID: References: <20230509075602.342-1-abner.chang@amd.com> In-Reply-To: <20230509075602.342-1-abner.chang@amd.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=b5d3e71e-1059-4459-860d-18387730c503;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=0;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2023-05-09T10:24:44Z;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH7PR12MB6466:EE_|MN2PR12MB4128:EE_ x-ms-office365-filtering-correlation-id: fcd55f86-1d82-4e4a-7c3d-08db5077bb62 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: WRx6qAzz3Wre0lPygZbnebv1ripFz2AEcxQM5W1CotE9yLzyQ/+WYZDcFegKe1ohaQEaiX+pltnFUVWVFvJ7kdawaEY/SqH86cPs16u32Rs075PgRS6btduT9yybOG1Z0jddBXJRs69HyHMNn1SJxsLkED2FJ/2yVw1Tzj54M3ZQ7OjPz/xLDKmF52NScXsQtvdh2UkxydPw+l9gbi9JjjzzGRRzOq2L3pOwRKMknhCaeiSWSpEpYUSol2Hr2AdB5WHqdYmPAdsAWNk13X9CyL27LbZkT9Ps93zgaSZioBG/iZOyuiV/PXHvsszTbhkhR7k4JpiL64nGyWh1zMdoe05x4TETBjKb41+UbqNw8VQjmYsj4kuHpdZWNLf5dr5cJu0DfsPpxIOp7dQbr3Ka+LhwbG8veTa+N4KtL7vYdMNZT3o4wrWZsCIBm+0vi/TR/9y9TsBR4Yis1B7Eb1hIR44KzLwK1JtyPTkx/wJs5f40ZRV2/JXXYaMRGWcZdG6UZEt1jH7e6ld/Nrp/5H3VTbktn3IpULsiHoolbrTMLqKwQ8boQM6ovvZNAlozYnkJeF4Z7rmR3heLX2M0tZtD8k+K6YZRioWsa4KcAcQsewnPVVwNRm3zXjxvBJBemfe6 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR12MB6466.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(346002)(376002)(39860400002)(366004)(396003)(136003)(451199021)(83380400001)(6506007)(38070700005)(38100700002)(41300700001)(4326008)(33656002)(8936002)(76116006)(122000001)(8676002)(316002)(71200400001)(478600001)(53546011)(110136005)(26005)(64756008)(66946007)(66446008)(66556008)(66476007)(7696005)(86362001)(52536014)(9686003)(186003)(54906003)(5660300002)(2906002)(55016003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?Z7xYXUNnd7i3uwTokF8o48U8xCbmYAUYLnoqWxoTjugpYxEBRg1sxnPWocGv?= =?us-ascii?Q?TQz/WG6Bg3YxD6ZR+hEvCbv+cWwvr+1twNpF0PvNmRESCJRJPuyNvEzlVfuN?= =?us-ascii?Q?K7GHpNBjDFJ/LuI/f64JIAldz+K7tCL2CQC3Jm62rJoFahpy1xsto8VJMLGW?= =?us-ascii?Q?mf7enbiv+KNcBz00BfU+2ufco3yk/kCzyY6Jrb4wC7fYBCacbk0QpNT2o2VT?= =?us-ascii?Q?o/7SatyaehFxN0gswJRe/tbiwMfhRkx0zBsP63+ixYSPUneHeDdt63qp5fpg?= =?us-ascii?Q?LSETdgrUCQqwccFs0G7K8VwQBVjb9qNgNZV1t8GOdy/gRpzNusJGuKTVtlb2?= =?us-ascii?Q?49WgsjqzITcf3JWjXIN5mBdVyrNZeSPitsgfPyHqFAw/PpC5/CCOC7XXkSDw?= =?us-ascii?Q?wFeXRq6nIuc4CjmibO/Kk/Wj7Mxyc3fj8MEQ2tDDBfS/mix+59l5Lmt+yyeA?= =?us-ascii?Q?ykHPqayHuy1R2t8a1DAja6fEJQWByObMYAWylQgv6WX7mm0JvdZh/gv2ZGAI?= =?us-ascii?Q?ei4Eb60yvFqLEFmC6bv368Yg9UZCWk6GJP/Eyn1XcVFfEhJgR7R1QzGif5Cs?= =?us-ascii?Q?3PoXTBqjMxOCAx0PASPm85kIQQaPEGdYqj57On6hBntSJIwEl/BBV+xDC8Ev?= =?us-ascii?Q?SaagokhTW6fCJ71SvXvnsCbvbifmVFxDDMC0P3UMR6VJz1BLizbO9qTjJ3JV?= =?us-ascii?Q?S2zQUFX8uhHkcQc3gLmyHyYnJnHxA6UFuLMUzIl8+zpY0YE/L2gdr8EktyH1?= =?us-ascii?Q?5192jf6fkmusALzFX/jZEY1CMHZeHV2vpBZY63GVZi5CdHfQFy6qLDetHlnZ?= =?us-ascii?Q?21FLV8B5fNiBFRbnAhvlF0dWvQPKSM36wHnCW4taHv1cy7tXP/gUNPQW7CrC?= =?us-ascii?Q?xQrz/a9W0WRie7qI5snlh5KN8PY83cMfqvxLVvILkHmHNUJIG4bg2hzhWkSS?= =?us-ascii?Q?qnBSvu51CszvUboVWWu/zTH7JbqXFUrOQ2sLvFDLtZWRPbBAf7GIjCAv7acK?= =?us-ascii?Q?83GdfRVNpgDs9z+egTJUa749oKBkxuidnQRATc8u3oPcAWwT794pNoG5dor1?= =?us-ascii?Q?7XrhuS4tPTY2SfuTf7XQw/Q95zDfEQgYNCgPklw2eXsk1CWK9cl0mNfoBOio?= =?us-ascii?Q?wzkOuWQIiSexiT8eL1vVWvDX4pu8VRSU8xNE9eoTZ7meItnqkbyhFGOjvVT6?= =?us-ascii?Q?J3pPJJJsEdKvRB3uEO8bsdsI+vn+1p1R+8tmApX0+UsV6YgGvTOtTC/gmJjm?= =?us-ascii?Q?7k6OH+fnETo8rZLqDv6iq+JMwOCtFUm1bWnwNScq9/rqSCxDNQ76m0clsaV8?= =?us-ascii?Q?mnis9lMW19shpOlzrm34HUKV9lH6waUWLA03oF+Lx83DjiX1+D2PhYhbp3X5?= =?us-ascii?Q?PGE23KjmkbPrFK7veHHATGtJyu2icwye4UUq9+8DNXvgQAUjufSCJ19jcV0M?= =?us-ascii?Q?7ZNtzqB4LDVMnLdWQ86nTAZqm0jcshPwBL5nAY/Sj0MimWbAXdolhIJhxhzK?= =?us-ascii?Q?Q0Ejw9byaUZQ24+WYLaQycM1ZuRqGsvW8Z109cfInqFJ1lS7SN8rlwk24Inl?= =?us-ascii?Q?DOQjE6k6NjEQUj3tuwk=3D?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH7PR12MB6466.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fcd55f86-1d82-4e4a-7c3d-08db5077bb62 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 May 2023 10:25:37.7685 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: YOuffULUDJT80KiAZpux/TZUfVOsPQXiOrgRLYwg9W/oIvhJDcBtqzxKqV0zKFWnVjJtRagFdJ5VS/7Nalx+GQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4128 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - General] Reviewed-by: Abdul Lateef Attar -----Original Message----- From: Chang, Abner Sent: 09 May 2023 13:26 To: devel@edk2.groups.io Cc: Isaac Oram ; Attar, AbdulLateef (Abdul Lateef) = ; Nickle Wang ; Tinh Nguyen = Subject: [edk2-platforms][PATCH 1/2] ManageabilityPkg: Add Manageability IP= MI helper Library From: Abner Chang Add IPMI helper library to print debug message of IPMI Completion Code in h= uman readable string and return the transport interface additional status. Signed-off-by: Abner Chang Cc: Isaac Oram Cc: Abdul Lateef Attar Cc: Nickle Wang Cc: Tinh Nguyen --- .../BaseManageabilityTransportHelper.inf | 1 + .../Library/ManageabilityTransportHelperLib.h | 24 +++++++ .../Library/ManageabilityTransportIpmiLib.h | 13 +++- .../Library/ManageabilityTransportLib.h | 11 +-- .../BaseManageabilityTransportIpmiHelper.c | 70 +++++++++++++++++++ 5 files changed, 112 insertions(+), 7 deletions(-) create mode 100644 Fea= tures/ManageabilityPkg/Library/BaseManageabilityTransportHelperLib/BaseMana= geabilityTransportIpmiHelper.c diff --git a/Features/ManageabilityPkg/Library/BaseManageabilityTransportHe= lperLib/BaseManageabilityTransportHelper.inf b/Features/ManageabilityPkg/Li= brary/BaseManageabilityTransportHelperLib/BaseManageabilityTransportHelper.= inf index c9e5eaef60..0936449fda 100644 --- a/Features/ManageabilityPkg/Library/BaseManageabilityTransportHelperLib= /BaseManageabilityTransportHelper.inf +++ b/Features/ManageabilityPkg/Library/BaseManageabilityTransportHelper +++ Lib/BaseManageabilityTransportHelper.inf @@ -21,6 +21,7 @@ [Sources] BaseManageabilityTransportHelper.c + BaseManageabilityTransportIpmiHelper.c [LibraryClasses] BaseMemoryLib diff --git a/Features/ManageabilityPkg/Include/Library/ManageabilityTranspo= rtHelperLib.h b/Features/ManageabilityPkg/Include/Library/ManageabilityTran= sportHelperLib.h index c2c98d6c2d..11a1bd0521 100644 --- a/Features/ManageabilityPkg/Include/Library/ManageabilityTransportHelpe= rLib.h +++ b/Features/ManageabilityPkg/Include/Library/ManageabilityTransportHe +++ lperLib.h @@ -187,4 +187,28 @@ HelperManageabilityDebugPrint ( ... ); +/// +/// IPMI Helper Functions. +/// + +/** + This function returns a human readable string of IPMI KCS Completion +Code + and returns the corresponding additional status of transport interface. + + @param [in] CompletionCode The Completion Code returned from KCS. + @param [out] CompletionCodeStr Human readable string of IPMI Completion= Code. + @param [out] AdditionalStatus Return the addtional status. + + @retval EFI_SUCCESS The information of Completion Code is re= turned. + @retval EFI_NOT_FOUND No information of Completion Code is ret= urned. + @retval EFI_INVALID_PARAMETER The given parameter is incorrect. + +**/ +EFI_STATUS +IpmiHelperCheckCompletionCode ( + IN UINT8 CompletionCode, + OUT CHAR16 **CompletionCodeStr, + OUT MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS *AdditionalStatus + ); + #endif diff --git a/Features/ManageabilityPkg/Include/Library/ManageabilityTranspo= rtIpmiLib.h b/Features/ManageabilityPkg/Include/Library/ManageabilityTransp= ortIpmiLib.h index 1628255a6a..6d136e460f 100644 --- a/Features/ManageabilityPkg/Include/Library/ManageabilityTransportIpmiL= ib.h +++ b/Features/ManageabilityPkg/Include/Library/ManageabilityTransportIp +++ miLib.h @@ -16,9 +16,18 @@ /// the payload. /// typedef struct { - UINT8 Lun:2; - UINT8 NetFn:6; + UINT8 Lun : 2; + UINT8 NetFn : 6; UINT8 Command; } MANAGEABILITY_IPMI_TRANSPORT_HEADER; +/// +/// The IPMI Completion Code mapping. +/// +typedef struct { + UINT8 CompletionCode; + CHAR16 *CompletionCodeString; + MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS AdditionalStatus; +} MANAGEABILITY_IPMI_COMPLETTION_CODE_MAPPING; + #endif diff --git a/Features/ManageabilityPkg/Include/Library/ManageabilityTranspo= rtLib.h b/Features/ManageabilityPkg/Include/Library/ManageabilityTransportL= ib.h index 04072aee89..f423a1ed44 100644 --- a/Features/ManageabilityPkg/Include/Library/ManageabilityTransportLib.h +++ b/Features/ManageabilityPkg/Include/Library/ManageabilityTransportLi +++ b.h @@ -61,11 +61,12 @@ typedef union { /// Additional transport interface status. /// typedef UINT32 MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS; -#define MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS_NO_ERRORS 0x0000000= 0 -#define MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS_ERROR 0x0000000= 1 -#define MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS_BUSY_IN_READ 0x0000000= 2 -#define MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS_BUSY_IN_WRITE 0x0000000= 4 -#define MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS_NOT_AVAILABLE 0xfffff= fff +#define MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS_NO_ERRORS 0x00000= 000 +#define MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS_ERROR 0x00000= 001 +#define MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS_BUSY_IN_READ 0x00000= 002 +#define MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS_BUSY_IN_WRITE 0x00000= 004 +#define MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS_INVALID_COMMAND 0x00000= 008 +#define MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS_NOT_AVAILABLE 0xfffff= fff /// /// Additional transport interface features. diff --git a/Features/ManageabilityPkg/Library/BaseManageabilityTransportHe= lperLib/BaseManageabilityTransportIpmiHelper.c b/Features/ManageabilityPkg/= Library/BaseManageabilityTransportHelperLib/BaseManageabilityTransportIpmiH= elper.c new file mode 100644 index 0000000000..8710cafc99 --- /dev/null +++ b/Features/ManageabilityPkg/Library/BaseManageabilityTransportHelper +++ Lib/BaseManageabilityTransportIpmiHelper.c @@ -0,0 +1,70 @@ +/** @file + Null instance of Manageability IPMI Helper Library + + Copyright (C) 2023 Advanced Micro Devices, Inc. All rights +reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent **/ + +#include +#include +#include + +#include + +// +// BaseManageabilityTransportHelper is used by PEI, DXE and SMM. +// Make sure the global variables added here should be unchangeable. +// +MANAGEABILITY_IPMI_COMPLETTION_CODE_MAPPING IpmiCompletionCodeMapping[] = =3D { + { IPMI_COMP_CODE_NORMAL, L"IPMI Completion Code - Normal", = MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS_NO_ERRORS }, + { IPMI_COMP_CODE_NODE_BUSY, L"IPMI Completion Code - Busy", = MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS_BUSY_IN_READ }, + { IPMI_COMP_CODE_INVALID_COMMAND, L"IPMI Completion Code - Invalid +command", MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS_INVALID_COMMAND } +}; + +UINT8 IpmiCompletionCodeMappingEntries =3D sizeof +(IpmiCompletionCodeMapping) / sizeof +(MANAGEABILITY_IPMI_COMPLETTION_CODE_MAPPING); + +/// +/// IPMI Helper Functions. +/// + +/** + This function returns a human readable string of IPMI KCS Completion +Code + and returns the corresponding additional status of transport interface. + + @param [in] CompletionCode The Completion Code returned from KCS. + @param [out] CompletionCodeStr Human readable string of IPMI Completion= Code. + @param [out] AdditionalStatus Return the addtional status. + + @retval EFI_SUCCESS The information of Completion Code is re= turned. + @retval EFI_NOT_FOUND No information of Completion Code is ret= urned. + @retval EFI_INVALID_PARAMETER The given parameter is incorrect. + +**/ +EFI_STATUS +IpmiHelperCheckCompletionCode ( + IN UINT8 CompletionCode, + OUT CHAR16 **CompletionCodeStr, + OUT MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS *AdditionalStatus + ) +{ + UINT8 Index; + MANAGEABILITY_IPMI_COMPLETTION_CODE_MAPPING *ThisCcMapping; + + if ((CompletionCodeStr =3D=3D NULL) || (AdditionalStatus =3D=3D NULL)) { + return EFI_INVALID_PARAMETER; + } + + *AdditionalStatus =3D 0; + ThisCcMapping =3D IpmiCompletionCodeMapping; + for (Index =3D 0; Index < IpmiCompletionCodeMappingEntries; Index++) { + if (ThisCcMapping->CompletionCode =3D=3D CompletionCode) { + *CompletionCodeStr =3D ThisCcMapping->CompletionCodeString; + *AdditionalStatus =3D ThisCcMapping->AdditionalStatus; + return EFI_SUCCESS; + } + + ThisCcMapping++; + } + + return EFI_NOT_FOUND; +} -- 2.37.1.windows.1