Siyuan,

Sorry for the delay in answering this.

No the condition is correct:


+  Status = EfiGetSystemConfigurationTable (&gEfiSmbios3TableGuid, (VOID **) 
&Smbios30Table);

+ if (!(EFI_ERROR (Status) || Smbios30Table == NULL)) {

I guess you could use this it to be easier to read:


+  Status = EfiGetSystemConfigurationTable (&gEfiSmbios3TableGuid, (VOID **) 
&Smbios30Table);

+ if (!(EFI_ERROR (Status)) &&  Smbios30Table != NULL)) {






From: Fu, Siyuan [mailto:siyuan...@intel.com]
Sent: Thursday, September 17, 2015 2:43 AM
To: El-Haj-Mahmoud, Samer <samer.el-haj-mahm...@hpe.com>; 
edk2-devel@lists.01.org
Cc: Tian, Feng <feng.t...@intel.com>
Subject: RE: [edk2] [PATCH 1/1] MdeModulePkg: Add SMBIOS 3.0 support in 
NetLibGetSystemGuid


Hi, Samer



Should below if condition

    +  if (!(EFI_ERROR (Status) || Smbios30Table == NULL)) {

to be

   if (!(EFI_ERROR (Status) && Smbios30Table != NULL))



Siyuan



-----Original Message-----
From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Samer 
El-Haj-Mahmoud
Sent: Thursday, September 17, 2015 2:00 AM
To: edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>
Cc: Tian, Feng <feng.t...@intel.com<mailto:feng.t...@intel.com>>; Samer 
El-Haj-Mahmoud <samer.el-haj-mahm...@hp.com<mailto:samer.el-haj-mahm...@hp.com>>
Subject: [edk2] [PATCH 1/1] MdeModulePkg: Add SMBIOS 3.0 support in 
NetLibGetSystemGuid



NetLibGetSystemGuid gets the UUID from SMBIOS table to use as the System GUID 
(in DHCP and other network use cases). This change adds support to get the UUID 
from either SMBIOS 2.x or 3.0, since SMBIOS 3.0 uses a different GUID in the 
System Configuration Table.



Contributed-under: TianoCore Contribution Agreement 1.0

Signed-off-by: Samer El-Haj-Mahmoud 
<samer.el-haj-mahm...@hpe.com<mailto:samer.el-haj-mahm...@hpe.com>>

---

MdeModulePkg/Library/DxeNetLib/DxeNetLib.c   | 33 ++++++++++++++++++----------

MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf |  2 ++

2 files changed, 24 insertions(+), 11 deletions(-)



diff --git a/MdeModulePkg/Library/DxeNetLib/DxeNetLib.c 
b/MdeModulePkg/Library/DxeNetLib/DxeNetLib.c

index 57e8f9f..1f7f043 100644

--- a/MdeModulePkg/Library/DxeNetLib/DxeNetLib.c

+++ b/MdeModulePkg/Library/DxeNetLib/DxeNetLib.c

@@ -2,6 +2,8 @@

   Network library.



 Copyright (c) 2005 - 2015, Intel Corporation. All rights reserved.<BR>

+(C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>

+

This program and the accompanying materials  are licensed and made available 
under the terms and conditions of the BSD License  which accompanies this 
distribution.  The full text of the license may be found at @@ -3254,21 
+3256,30 @@ NetLibGetSystemGuid (

   OUT EFI_GUID              *SystemGuid

   )

{

-  EFI_STATUS                Status;

-  SMBIOS_TABLE_ENTRY_POINT  *SmbiosTable;

-  SMBIOS_STRUCTURE_POINTER  Smbios;

-  SMBIOS_STRUCTURE_POINTER  SmbiosEnd;

-  CHAR8                     *String;

-

+  EFI_STATUS                    Status;

+  SMBIOS_TABLE_ENTRY_POINT      *SmbiosTable;

+  SMBIOS_TABLE_3_0_ENTRY_POINT  *Smbios30Table;

+  SMBIOS_STRUCTURE_POINTER      Smbios;

+  SMBIOS_STRUCTURE_POINTER      SmbiosEnd;

+  CHAR8                         *String;

+

   SmbiosTable = NULL;

-  Status      = EfiGetSystemConfigurationTable (&gEfiSmbiosTableGuid, (VOID 
**) &SmbiosTable);



-  if (EFI_ERROR (Status) || SmbiosTable == NULL) {

-    return EFI_NOT_FOUND;

+  Status = EfiGetSystemConfigurationTable (&gEfiSmbios3TableGuid, (VOID

+ **) &Smbios30Table);  if (!(EFI_ERROR (Status) || Smbios30Table == NULL)) {

+    Smbios.Hdr = (SMBIOS_STRUCTURE *) (UINTN) Smbios30Table->TableAddress;

+    SmbiosEnd.Raw = (UINT8 *) (UINTN) (Smbios30Table->TableAddress +

+ Smbios30Table->TableMaximumSize);  } else {

+    Status      = EfiGetSystemConfigurationTable (&gEfiSmbiosTableGuid, (VOID 
**) &SmbiosTable);

+

+    if (EFI_ERROR (Status) || SmbiosTable == NULL) {

+      return EFI_NOT_FOUND;

+    }

+

+    Smbios.Hdr    = (SMBIOS_STRUCTURE *) (UINTN) SmbiosTable->TableAddress;

+    SmbiosEnd.Raw = (UINT8 *) (UINTN) (SmbiosTable->TableAddress +

+ SmbiosTable->TableLength);

   }



-  Smbios.Hdr    = (SMBIOS_STRUCTURE *) (UINTN) SmbiosTable->TableAddress;

-  SmbiosEnd.Raw = (UINT8 *) (UINTN) (SmbiosTable->TableAddress + 
SmbiosTable->TableLength);



   do {

     if (Smbios.Hdr->Type == 1) {

diff --git a/MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf 
b/MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf

index 50fbcc2..1ff3a4f 100644

--- a/MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf

+++ b/MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf

@@ -2,6 +2,7 @@

#  This library instance provides the basic network services.

#

#  Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>

+#  (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>

#  This program and the accompanying materials  #  are licensed and made 
available under the terms and conditions of the BSD License  #  which 
accompanies this distribution.  The full text of the license may be found at @@ 
-52,6 +53,7 @@



 [Guids]

   gEfiSmbiosTableGuid                           ## SOMETIMES_CONSUMES  ## 
SystemTable

+  gEfiSmbios3TableGuid                          ## SOMETIMES_CONSUMES  ## 
SystemTable





 [Protocols]

--

1.9.5.msysgit.1



_______________________________________________

edk2-devel mailing list

edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>

https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to