From nobody Tue Apr 30 18:17:53 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+60976+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+60976+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1591710231; cv=none; d=zohomail.com; s=zohoarc; b=KvckQJyw2E4SY7e76Vt4A9WAQ5eo+maPoInnW8dsMHzMm3TQzmi39lzHNKAmO6hs1rqfkdzdpZC3PvFMBW/glaHlzJfSxsG7LKFGqjR7fp+94/PTLJ4+kP4WHStb5GY6/I/+Aah5h7Iw9p/eNI1U4kuvx3xS0chXAjJ/bqOnI2U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591710231; h=Content-Type:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=q/a1xQF7NLyuO4WUnRIWkfKNCV0DJ4Aml4NhC3UV1uI=; b=fHachL8Hq89bme1HTajhrOg9xoRzOu2kN1Z7rF2u+9BNv4Psuvh0Q17y3yNXjViSuH6pT5rx6Aj60Zx/gRvH6HQs/96j3GjGBmpLz4votzJGwFIIgpdf4GQKz9hHN1sJWUqeFyEypH/DH9a6dq21hayzeq4sCfadD/hikzOVC38= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+60976+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1591710231538174.6258053373349; Tue, 9 Jun 2020 06:43:51 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id ubYNYY1788612xR0EhZyXp3Y; Tue, 09 Jun 2020 06:43:51 -0700 X-Received: from huawei.com (huawei.com [45.249.212.191]) by mx.groups.io with SMTP id smtpd.web10.7559.1591710230126462688 for ; Tue, 09 Jun 2020 06:43:50 -0700 X-Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 948E2115E616011CE1E6; Tue, 9 Jun 2020 21:43:44 +0800 (CST) X-Received: from HGH1000039998.huawei.com (10.184.68.188) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.487.0; Tue, 9 Jun 2020 21:43:34 +0800 From: "Ming Huang" To: , , CC: , , , , , , Subject: [edk2-devel] [PATCH edk2-platforms v2 1/2] Silicon/Hisilicon/Smbios: correct coding style issue in type 9 Date: Tue, 9 Jun 2020 21:41:07 +0800 Message-ID: <1591710068-49992-2-git-send-email-huangming23@huawei.com> In-Reply-To: <1591710068-49992-1-git-send-email-huangming23@huawei.com> References: <1591710068-49992-1-git-send-email-huangming23@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.184.68.188] X-CFilter-Loop: Reflected Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,huangming23@huawei.com X-Gm-Message-State: LWSZ0LeCdiclVJMsUTvqWPFzx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1591710231; bh=s5w4MMVnXNG4RDJvDqMMVOhCaF5SGvj/WSPhWOVUY9A=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=virBZU7mvnhG27e2hOUjYsmJRVWNv3Pxva66poiStrFmJSbqelJ0lom4+cZKjk9uV1M S251YAbaFZi0gLz7wEFRYsxL5AKkjuKmEqK2A5RCD8pWIsuD22eIZ8ZmYPkFGhm9sEO1L T+AHwzU3LwqVETShTfQ9dy3dWlQOJ6gGEsk= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The main changes are whitespace/indentation fixing and wrapping of long lines and changing some macros from EFI_D_ERROR to DEBUG_ERROR. This patch is prepare for optimizing Smbios type 9. Signed-off-by: Ming Huang Reviewed-by: Leif Lindholm --- Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c | 286 +++= +++++++---------- 1 file changed, 146 insertions(+), 140 deletions(-) diff --git a/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9= .c b/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c index 87a06a2..2398c6b 100644 --- a/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c +++ b/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c @@ -1,6 +1,6 @@ /** @file * -* Copyright (c) 2015, Hisilicon Limited. All rights reserved. +* Copyright (c) 2015 - 2020, Hisilicon Limited. All rights reserved. * Copyright (c) 2015, Linaro Limited. All rights reserved. * * SPDX-License-Identifier: BSD-2-Clause-Patent @@ -14,178 +14,184 @@ extern UINT8 OemGetPcieSlotNumber (); =20 VOID EFIAPI -UpdateSmbiosType9Info( +UpdateSmbiosType9Info ( IN OUT SMBIOS_TABLE_TYPE9 *Type9Record ) { - EFI_STATUS Status; - UINTN HandleIndex; - EFI_HANDLE *HandleBuffer; - UINTN HandleCount; - EFI_PCI_IO_PROTOCOL *PciIo; - UINTN SegmentNumber; - UINTN BusNumber; - UINTN DeviceNumber; - UINTN FunctionNumber; - UINTN Index; - REPORT_PCIEDIDVID2BMC ReportPcieDidVid[PCIEDEVICE_REPORT_= MAX]; - - GetPciDidVid ((VOID *) ReportPcieDidVid); - - Status =3D gBS->LocateHandleBuffer ( - ByProtocol, - &gEfiPciIoProtocolGuid, - NULL, - &HandleCount, - &HandleBuffer - ); - if(EFI_ERROR(Status)) { - DEBUG((EFI_D_ERROR, " Locate gEfiPciIoProtocol Failed.\n")); - gBS->FreePool ((VOID *)HandleBuffer); - return; + EFI_STATUS Status; + UINTN HandleIndex; + EFI_HANDLE *HandleBuffer; + UINTN HandleCount; + EFI_PCI_IO_PROTOCOL *PciIo; + UINTN SegmentNumber; + UINTN BusNumber; + UINTN DeviceNumber; + UINTN FunctionNumber; + UINTN Index; + REPORT_PCIEDIDVID2BMC ReportPcieDidVid[PCIEDEVICE_REPORT_MA= X]; + + GetPciDidVid ((VOID *)ReportPcieDidVid); + + Status =3D gBS->LocateHandleBuffer ( + ByProtocol, + &gEfiPciIoProtocolGuid, + NULL, + &HandleCount, + &HandleBuffer + ); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, " Locate gEfiPciIoProtocol Failed.\n")); + gBS->FreePool ((VOID *)HandleBuffer); + return; + } + + for (HandleIndex =3D 0; HandleIndex < HandleCount; HandleIndex++) { + Status =3D gBS->HandleProtocol ( + HandleBuffer[HandleIndex], + &gEfiPciIoProtocolGuid, + (VOID **)&PciIo + ); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Status : %r\n", __FUNCTION__, __LIN= E__, Status)); + continue; } - for (HandleIndex =3D 0; HandleIndex < HandleCount; HandleIndex++) { - Status =3D gBS->HandleProtocol ( - HandleBuffer[HandleIndex], - &gEfiPciIoProtocolGuid, - (VOID **)&PciIo - ); - if (EFI_ERROR (Status)) { - DEBUG((EFI_D_ERROR, "[%a]:[%dL] Status : %r\n", __FUNCTION__, = __LINE__, Status)); - continue; - } - (VOID)PciIo->GetLocation(PciIo, &SegmentNumber, &BusNumber, &Devic= eNumber, &FunctionNumber); - for(Index =3D 0; Index < sizeof(ReportPcieDidVid) / sizeof(REPORT_= PCIEDIDVID2BMC); Index++){ - if (Type9Record->SlotID =3D=3D ReportPcieDidVid[Index].Slot + = 1) { - if((BusNumber =3D=3D ReportPcieDidVid[Index].Bus) && (Devi= ceNumber =3D=3D ReportPcieDidVid[Index].Device)) { - DEBUG((EFI_D_ERROR,"PCIe device plot in slot Seg %d b= df %d %d %d\r\n",SegmentNumber,BusNumber,DeviceNumber,FunctionNumber)); - Type9Record->SegmentGroupNum =3D SegmentNumber; - Type9Record->BusNum =3D BusNumber; - Type9Record->DevFuncNum =3D (DeviceNumber << 3)= | FunctionNumber; - Type9Record->CurrentUsage =3D SlotUsageInUse; - break; - } - } + (VOID)PciIo->GetLocation (PciIo, &SegmentNumber, &BusNumber, &DeviceNu= mber, &FunctionNumber); + for (Index =3D 0; Index < sizeof(ReportPcieDidVid) / sizeof(REPORT_PCI= EDIDVID2BMC); Index++) { + if (Type9Record->SlotID =3D=3D ReportPcieDidVid[Index].Slot + 1) { + if ((BusNumber =3D=3D ReportPcieDidVid[Index].Bus) && (DeviceNumbe= r =3D=3D ReportPcieDidVid[Index].Device)) { + DEBUG ((DEBUG_ERROR, "PCIe device plot in slot Seg %d bdf %d %d= %d\r\n", + SegmentNumber, BusNumber, DeviceNumber, FunctionNumber)); + Type9Record->SegmentGroupNum =3D SegmentNumber; + Type9Record->BusNum =3D BusNumber; + Type9Record->DevFuncNum =3D (DeviceNumber << 3) | Functio= nNumber; + Type9Record->CurrentUsage =3D SlotUsageInUse; + break; } + } } - gBS->FreePool ((VOID *)HandleBuffer); - return; + } + + gBS->FreePool ((VOID *)HandleBuffer); + return; } + EFI_STATUS EFIAPI AddSmbiosType9Entry ( IN EFI_HANDLE ImageHandle, - IN EFI_SYSTEM_TABLE *SystemTable + IN EFI_SYSTEM_TABLE *SystemTable ) { - EFI_STATUS Status; - EFI_SMBIOS_TYPE SmbiosType; - EFI_SMBIOS_HANDLE SmbiosHandle; - EFI_SMBIOS_PROTOCOL *Smbios; - EFI_SMBIOS_TABLE_HEADER *Record; - SMBIOS_TABLE_TYPE9 *Type9Record; - SMBIOS_TABLE_TYPE9 *SmbiosRecord =3D NULL; - CHAR8 *OptionalStrStart; - - UINT8 SmbiosAddType9Number; - UINT8 Index; - - CHAR16 *SlotDesignation =3D NULL; - UINTN SlotDesignationStrLen; - - Status =3D gBS->LocateProtocol ( + EFI_STATUS Status; + EFI_SMBIOS_TYPE SmbiosType; + EFI_SMBIOS_HANDLE SmbiosHandle; + EFI_SMBIOS_PROTOCOL *Smbios; + EFI_SMBIOS_TABLE_HEADER *Record; + SMBIOS_TABLE_TYPE9 *Type9Record; + SMBIOS_TABLE_TYPE9 *SmbiosRecord =3D NULL; + CHAR8 *OptionalStrStart; + + UINT8 SmbiosAddType9Number; + UINT8 Index; + + CHAR16 *SlotDesignation =3D NULL; + UINTN SlotDesignationStrLen; + + Status =3D gBS->LocateProtocol ( &gEfiSmbiosProtocolGuid, NULL, (VOID **) &Smbios ); - if (EFI_ERROR (Status)) { - DEBUG((EFI_D_ERROR, "[%a]:[%dL] LocateProtocol Failed. Status : %r= \n", __FUNCTION__, __LINE__, Status)); - return Status; + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] LocateProtocol Failed. Status : %r\= n", + __FUNCTION__, __LINE__, Status)); + return Status; + } + + do { + SmbiosHandle =3D SMBIOS_HANDLE_PI_RESERVED; + SmbiosType =3D EFI_SMBIOS_TYPE_SYSTEM_SLOTS; + Status =3D Smbios->GetNext (Smbios, &SmbiosHandle, &SmbiosType, &Recor= d, NULL); + if (!EFI_ERROR (Status)) { + Status =3D Smbios->Remove (Smbios, SmbiosHandle); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Remove System Slot Failed. Status= : %r\n", + __FUNCTION__, __LINE__, Status)); + break; + } } + } while (SmbiosHandle !=3D SMBIOS_HANDLE_PI_RESERVED); =20 - do { - SmbiosHandle =3D SMBIOS_HANDLE_PI_RESERVED; - SmbiosType =3D EFI_SMBIOS_TYPE_SYSTEM_SLOTS; - Status =3D Smbios->GetNext (Smbios, &SmbiosHandle, &SmbiosType, &R= ecord, NULL); - if (!EFI_ERROR(Status)) { - Status =3D Smbios->Remove (Smbios, SmbiosHandle); - if (EFI_ERROR(Status)) { - DEBUG((EFI_D_ERROR, "[%a]:[%dL] Remove System Slot Failed.= Status : %r\n", __FUNCTION__, __LINE__, Status)); - break; - } - } - } while (SmbiosHandle !=3D SMBIOS_HANDLE_PI_RESERVED); - - SmbiosAddType9Number =3D OemGetPcieSlotNumber(); + SmbiosAddType9Number =3D OemGetPcieSlotNumber (); =20 - for (Index =3D 0; Index < SmbiosAddType9Number; Index++) - { - if (gPcieSlotInfo[Index].Hdr.Type !=3D EFI_SMBIOS_TYPE_SYSTEM_SLOT= S) - { - continue; - } - - Type9Record =3D &gPcieSlotInfo[Index]; - - UpdateSmbiosType9Info (Type9Record); - SlotDesignation =3D AllocateZeroPool ((sizeof (CHAR16)) * SMBIOS_S= TRING_MAX_LENGTH); - if (NULL =3D=3D SlotDesignation) - { - Status =3D EFI_OUT_OF_RESOURCES; - DEBUG((EFI_D_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Statu= s : %r\n", __FUNCTION__, __LINE__, Status)); - - goto Exit; - } + for (Index =3D 0; Index < SmbiosAddType9Number; Index++) { + if (gPcieSlotInfo[Index].Hdr.Type !=3D EFI_SMBIOS_TYPE_SYSTEM_SLOTS) { + continue; + } =20 - SlotDesignationStrLen =3D UnicodeSPrint (SlotDesignation, SMBIOS_S= TRING_MAX_LENGTH - 1, L"PCIE Slot%d", Type9Record->SlotID); + Type9Record =3D &gPcieSlotInfo[Index]; =20 - // - // Two zeros following the last string. - // - SmbiosRecord =3D AllocateZeroPool(sizeof (SMBIOS_TABLE_TYPE9) + Sl= otDesignationStrLen + 1 + 1); - if(NULL =3D=3D SmbiosRecord) - { - Status =3D EFI_OUT_OF_RESOURCES; - DEBUG((EFI_D_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Statu= s : %r\n", __FUNCTION__, __LINE__, Status)); + UpdateSmbiosType9Info (Type9Record); + SlotDesignation =3D AllocateZeroPool ((sizeof (CHAR16)) * SMBIOS_STRIN= G_MAX_LENGTH); + if (SlotDesignation =3D=3D NULL) { + Status =3D EFI_OUT_OF_RESOURCES; + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %= r\n", + __FUNCTION__, __LINE__, Status)); =20 - goto Exit; - } + goto Exit; + } =20 - (VOID)CopyMem(SmbiosRecord, Type9Record, sizeof (SMBIOS_TABLE_TYPE= 9)); + SlotDesignationStrLen =3D UnicodeSPrint ( + SlotDesignation, + SMBIOS_STRING_MAX_LENGTH - 1, + L"PCIE Slot%d", + Type9Record->SlotID); + + // + // Two zeros following the last string. + // + SmbiosRecord =3D AllocateZeroPool (sizeof (SMBIOS_TABLE_TYPE9) + SlotD= esignationStrLen + 1 + 1); + if (SmbiosRecord =3D=3D NULL) { + Status =3D EFI_OUT_OF_RESOURCES; + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %= r\n", + __FUNCTION__, __LINE__, Status)); + + goto Exit; + } =20 - SmbiosRecord->Hdr.Length =3D sizeof (SMBIOS_TABLE_TYPE9); + (VOID)CopyMem (SmbiosRecord, Type9Record, sizeof (SMBIOS_TABLE_TYPE9)); =20 - OptionalStrStart =3D (CHAR8 *)(SmbiosRecord + 1); - UnicodeStrToAsciiStr(SlotDesignation, OptionalStrStart); + SmbiosRecord->Hdr.Length =3D sizeof (SMBIOS_TABLE_TYPE9); =20 - // - // Now we have got the full smbios record, call smbios protocol to= add this record. - // - SmbiosHandle =3D SMBIOS_HANDLE_PI_RESERVED; - Status =3D Smbios->Add (Smbios, NULL, &SmbiosHandle, (EFI_SMBIOS_T= ABLE_HEADER *)SmbiosRecord); - if(EFI_ERROR(Status)) - { - DEBUG((EFI_D_ERROR, "[%a]:[%dL] Smbios Type09 Table Log Failed= ! %r \n", __FUNCTION__, __LINE__, Status)); - goto Exit; - } + OptionalStrStart =3D (CHAR8 *)(SmbiosRecord + 1); + UnicodeStrToAsciiStr (SlotDesignation, OptionalStrStart); =20 - FreePool(SmbiosRecord); - FreePool(SlotDesignation); + // + // Now we have got the full smbios record, call smbios protocol to add= this record. + // + SmbiosHandle =3D SMBIOS_HANDLE_PI_RESERVED; + Status =3D Smbios->Add (Smbios, NULL, &SmbiosHandle, (EFI_SMBIOS_TABLE= _HEADER *)SmbiosRecord); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Smbios Type09 Table Log Failed! %r = \n", + __FUNCTION__, __LINE__, Status)); + goto Exit; } =20 - return EFI_SUCCESS; + FreePool (SmbiosRecord); + FreePool (SlotDesignation); + } + + return EFI_SUCCESS; =20 Exit: - if(SmbiosRecord !=3D NULL) - { - FreePool(SmbiosRecord); - } + if(SmbiosRecord !=3D NULL) { + FreePool (SmbiosRecord); + } =20 - if(SlotDesignation !=3D NULL) - { - FreePool(SlotDesignation); - } + if(SlotDesignation !=3D NULL) { + FreePool (SlotDesignation); + } =20 - return Status; + return Status; } =20 --=20 2.8.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#60976): https://edk2.groups.io/g/devel/message/60976 Mute This Topic: https://groups.io/mt/74774167/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Tue Apr 30 18:17:53 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+60975+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+60975+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1591710230; cv=none; d=zohomail.com; s=zohoarc; b=dgqhLsGKrMa9Lh4fTtlI2klx5koT4X+kRjEA/IgGRnvE7n00nCmMnYymWb474+lCr+yspLsOE9CpyUsU7eTpz6OBCbUiXeweMePYjZVRp8smWxs6i04csojwXbs0ZHucjEbgMtcgjCgCQk/7aaHCZEjoShCzGeMJ+6AcUCfp45A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591710230; h=Content-Type:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=j2bNQMBq5nv8pf3X+cpD8Gx6YBiqjCrdnf3ZO5LR2Q4=; b=PoB/S2bib+MW+XzQjyZ5G7G9qKSBwqi9SHfqhH5hFIvhSvjIBo/FBFhYQwVSdsqpMCjXAWCHJtmImEmgh7UWX7vKTjbd9qYcr4I8SHG6Aez+rcc2K0X++wohpEjJqwkj5mzWma4tR0bCkAGCmJAZxqA1QLpYCZgSC201QiwRZyg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+60975+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1591710230554568.4914083517841; Tue, 9 Jun 2020 06:43:50 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id sqYdYY1788612xtVXP0tKHGA; Tue, 09 Jun 2020 06:43:50 -0700 X-Received: from huawei.com (huawei.com [45.249.212.191]) by mx.groups.io with SMTP id smtpd.web12.7519.1591710229169825572 for ; Tue, 09 Jun 2020 06:43:49 -0700 X-Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 9AC1BC1A6E506A7CEC53; Tue, 9 Jun 2020 21:43:44 +0800 (CST) X-Received: from HGH1000039998.huawei.com (10.184.68.188) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.487.0; Tue, 9 Jun 2020 21:43:34 +0800 From: "Ming Huang" To: , , CC: , , , , , , Subject: [edk2-devel] [PATCH edk2-platforms v2 2/2] Silicon/Hisilicon/Smbios: Optimize type 9 Date: Tue, 9 Jun 2020 21:41:08 +0800 Message-ID: <1591710068-49992-3-git-send-email-huangming23@huawei.com> In-Reply-To: <1591710068-49992-1-git-send-email-huangming23@huawei.com> References: <1591710068-49992-1-git-send-email-huangming23@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.184.68.188] X-CFilter-Loop: Reflected Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,huangming23@huawei.com X-Gm-Message-State: bxftspbjSPraxh0U6oRGwrMYx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1591710230; bh=o34Q/2wnRszv2ZI4Bx/qEBkkNWxs0pL1rY2iFTgooKc=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=MseoaFYk1org3gna47oSGuWC2wc9miGscUCNSCm8YRjWZ7sqxvob4nV2WbVqxh/RciC vi/W7UUFFWfFrgNW6WqiHpbrJ97xLodOpAY7xpPrvzzA3LyBilleTH7Z77ttktyfqIMUe s9a+NV5YJdFAdacPHZd3GYA+pRGwjq+rL94= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Break down AddSmbiosType9Entry to three funtions for optimizing Smbios type 9. Signed-off-by: Ming Huang Reviewed-by: Leif Lindholm --- Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c | 173 +++= ++++++++--------- 1 file changed, 95 insertions(+), 78 deletions(-) diff --git a/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9= .c b/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c index 2398c6b..57e049a 100644 --- a/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c +++ b/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c @@ -75,38 +75,16 @@ UpdateSmbiosType9Info ( return; } =20 -EFI_STATUS -EFIAPI -AddSmbiosType9Entry ( - IN EFI_HANDLE ImageHandle, - IN EFI_SYSTEM_TABLE *SystemTable +STATIC +VOID +EmptySmbiosType9 ( + EFI_SMBIOS_PROTOCOL *Smbios ) { EFI_STATUS Status; EFI_SMBIOS_TYPE SmbiosType; EFI_SMBIOS_HANDLE SmbiosHandle; - EFI_SMBIOS_PROTOCOL *Smbios; EFI_SMBIOS_TABLE_HEADER *Record; - SMBIOS_TABLE_TYPE9 *Type9Record; - SMBIOS_TABLE_TYPE9 *SmbiosRecord =3D NULL; - CHAR8 *OptionalStrStart; - - UINT8 SmbiosAddType9Number; - UINT8 Index; - - CHAR16 *SlotDesignation =3D NULL; - UINTN SlotDesignationStrLen; - - Status =3D gBS->LocateProtocol ( - &gEfiSmbiosProtocolGuid, - NULL, - (VOID **) &Smbios - ); - if (EFI_ERROR (Status)) { - DEBUG ((DEBUG_ERROR, "[%a]:[%dL] LocateProtocol Failed. Status : %r\= n", - __FUNCTION__, __LINE__, Status)); - return Status; - } =20 do { SmbiosHandle =3D SMBIOS_HANDLE_PI_RESERVED; @@ -122,76 +100,115 @@ AddSmbiosType9Entry ( } } while (SmbiosHandle !=3D SMBIOS_HANDLE_PI_RESERVED); =20 - SmbiosAddType9Number =3D OemGetPcieSlotNumber (); + return; +} =20 - for (Index =3D 0; Index < SmbiosAddType9Number; Index++) { - if (gPcieSlotInfo[Index].Hdr.Type !=3D EFI_SMBIOS_TYPE_SYSTEM_SLOTS) { - continue; - } +STATIC +EFI_STATUS +AddSmbiosType9Record ( + EFI_SMBIOS_PROTOCOL *Smbios, + SMBIOS_TABLE_TYPE9 *Type9Record + ) +{ + EFI_STATUS Status; + EFI_SMBIOS_HANDLE SmbiosHandle; + SMBIOS_TABLE_TYPE9 *SmbiosRecord; + CHAR8 *OptionalStrStart; + CHAR16 SlotDesignation[SMBIOS_STRING_MAX_LE= NGTH]; + UINTN SlotStrLen; + + SlotStrLen =3D UnicodeSPrint ( + SlotDesignation, + SMBIOS_STRING_MAX_LENGTH * 2, + L"PCIE Slot%d", + Type9Record->SlotID); + + // + // Two zeros following the last string. + // + SmbiosRecord =3D AllocateZeroPool (sizeof (SMBIOS_TABLE_TYPE9) + SlotStr= Len + 1 + 1); + if (SmbiosRecord =3D=3D NULL) { + DEBUG ((DEBUG_ERROR, "AllocateZeroPool Failed for SmbiosRecord.\n")); + return EFI_OUT_OF_RESOURCES; + } =20 - Type9Record =3D &gPcieSlotInfo[Index]; + (VOID)CopyMem (SmbiosRecord, Type9Record, sizeof (SMBIOS_TABLE_TYPE9)); + SmbiosRecord->Hdr.Length =3D sizeof (SMBIOS_TABLE_TYPE9); + OptionalStrStart =3D (CHAR8 *)(SmbiosRecord + 1); + (VOID)UnicodeStrToAsciiStr (SlotDesignation, OptionalStrStart); =20 - UpdateSmbiosType9Info (Type9Record); - SlotDesignation =3D AllocateZeroPool ((sizeof (CHAR16)) * SMBIOS_STRIN= G_MAX_LENGTH); - if (SlotDesignation =3D=3D NULL) { - Status =3D EFI_OUT_OF_RESOURCES; - DEBUG ((DEBUG_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %= r\n", - __FUNCTION__, __LINE__, Status)); + // + // Now we have got the full smbios record, call smbios protocol to add t= his record. + // + SmbiosHandle =3D SMBIOS_HANDLE_PI_RESERVED; + Status =3D Smbios->Add (Smbios, NULL, &SmbiosHandle, (EFI_SMBIOS_TABLE_H= EADER *)SmbiosRecord); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "Add Smbios Type09 Failed! %r\n", Status)); + } =20 - goto Exit; - } + FreePool (SmbiosRecord); + return Status; +} =20 - SlotDesignationStrLen =3D UnicodeSPrint ( - SlotDesignation, - SMBIOS_STRING_MAX_LENGTH - 1, - L"PCIE Slot%d", - Type9Record->SlotID); - - // - // Two zeros following the last string. - // - SmbiosRecord =3D AllocateZeroPool (sizeof (SMBIOS_TABLE_TYPE9) + SlotD= esignationStrLen + 1 + 1); - if (SmbiosRecord =3D=3D NULL) { - Status =3D EFI_OUT_OF_RESOURCES; - DEBUG ((DEBUG_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %= r\n", - __FUNCTION__, __LINE__, Status)); +STATIC +VOID +HandleSmbiosType9 ( + EFI_SMBIOS_PROTOCOL *Smbios + ) +{ + EFI_STATUS Status; + SMBIOS_TABLE_TYPE9 *Type9Record; + UINT8 RecordCount; + UINT8 Index; =20 - goto Exit; - } + RecordCount =3D OemGetPcieSlotNumber (); + if (RecordCount =3D=3D 0) { + return; + } =20 - (VOID)CopyMem (SmbiosRecord, Type9Record, sizeof (SMBIOS_TABLE_TYPE9)); + EmptySmbiosType9 (Smbios); + Status =3D EFI_SUCCESS; + for (Index =3D 0; Index < RecordCount; Index++) { + if (gPcieSlotInfo[Index].Hdr.Type !=3D EFI_SMBIOS_TYPE_SYSTEM_SLOTS) { + continue; + } =20 - SmbiosRecord->Hdr.Length =3D sizeof (SMBIOS_TABLE_TYPE9); + Type9Record =3D &gPcieSlotInfo[Index]; =20 - OptionalStrStart =3D (CHAR8 *)(SmbiosRecord + 1); - UnicodeStrToAsciiStr (SlotDesignation, OptionalStrStart); + UpdateSmbiosType9Info (Type9Record); =20 - // - // Now we have got the full smbios record, call smbios protocol to add= this record. - // - SmbiosHandle =3D SMBIOS_HANDLE_PI_RESERVED; - Status =3D Smbios->Add (Smbios, NULL, &SmbiosHandle, (EFI_SMBIOS_TABLE= _HEADER *)SmbiosRecord); + Status =3D AddSmbiosType9Record (Smbios, Type9Record); if (EFI_ERROR (Status)) { - DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Smbios Type09 Table Log Failed! %r = \n", - __FUNCTION__, __LINE__, Status)); - goto Exit; + break; } - - FreePool (SmbiosRecord); - FreePool (SlotDesignation); } =20 - return EFI_SUCCESS; + return; +} =20 -Exit: - if(SmbiosRecord !=3D NULL) { - FreePool (SmbiosRecord); - } +EFI_STATUS +EFIAPI +AddSmbiosType9Entry ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + EFI_STATUS Status; + EFI_SMBIOS_PROTOCOL *Smbios; =20 - if(SlotDesignation !=3D NULL) { - FreePool (SlotDesignation); + Status =3D gBS->LocateProtocol ( + &gEfiSmbiosProtocolGuid, + NULL, + (VOID **) &Smbios + ); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] LocateProtocol Failed. Status : %r\= n", + __FUNCTION__, __LINE__, Status)); + return Status; } =20 + HandleSmbiosType9 (Smbios); + return Status; } =20 --=20 2.8.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#60975): https://edk2.groups.io/g/devel/message/60975 Mute This Topic: https://groups.io/mt/74774166/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-