]> git.proxmox.com Git - mirror_edk2.git/commitdiff
NetworkPkg: Update Api from NetLibDetectMedia to NetLibDetectMediaWaitTimeout.
authorfanwang2 <fan.wang@intel.com>
Mon, 18 Dec 2017 01:20:26 +0000 (09:20 +0800)
committerFu Siyuan <siyuan.fu@intel.com>
Mon, 18 Dec 2017 08:38:24 +0000 (16:38 +0800)
Since new Api NetLibDetectMediaWaitTimeout was involved to support connecting
state handling, and it is forward compatible. So apply this Api in NetworkPkg.

V2:
   *Define time period in a macro instead of hard code.

Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Cc: Wu Jiaxin <jiaxin.wu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wang Fan <fan.wang@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
Signed-off-by: fanwang2 <fan.wang@intel.com>
12 files changed:
NetworkPkg/Dhcp6Dxe/Dhcp6Impl.c
NetworkPkg/Dhcp6Dxe/Dhcp6Impl.h
NetworkPkg/DnsDxe/DnsDhcp.c
NetworkPkg/DnsDxe/DnsDhcp.h
NetworkPkg/HttpBootDxe/HttpBootImpl.c
NetworkPkg/HttpBootDxe/HttpBootImpl.h
NetworkPkg/IScsiDxe/IScsiDhcp.c
NetworkPkg/IScsiDxe/IScsiDhcp6.c
NetworkPkg/IScsiDxe/IScsiProto.c
NetworkPkg/IScsiDxe/IScsiProto.h
NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
NetworkPkg/UefiPxeBcDxe/PxeBcImpl.h

index 1107865f4227aa9ec345823c20f60007ee643d2e..b479421f83c9b0b6dd90ce0530ef12b51ab8a1cb 100644 (file)
@@ -76,7 +76,7 @@ EfiDhcp6Start (
   EFI_TPL                      OldTpl;\r
   DHCP6_INSTANCE               *Instance;\r
   DHCP6_SERVICE                *Service;\r
-  BOOLEAN                      MediaPresent;\r
+  EFI_STATUS                   MediaStatus;\r
 \r
   if (This == NULL) {\r
     return EFI_INVALID_PARAMETER;\r
@@ -106,9 +106,9 @@ EfiDhcp6Start (
   //\r
   // Check Media Satus.\r
   //\r
-  MediaPresent = TRUE;\r
-  NetLibDetectMedia (Service->Controller, &MediaPresent);\r
-  if (!MediaPresent) {\r
+  MediaStatus = EFI_SUCCESS;\r
+  NetLibDetectMediaWaitTimeout (Service->Controller, DHCP_CHECK_MEDIA_WAITING_TIME, &MediaStatus);\r
+  if (MediaStatus != EFI_SUCCESS) {\r
     Status = EFI_NO_MEDIA;\r
     goto ON_ERROR;\r
   }\r
index 06780b678a434d67226314d07f5be098495c77a8..7110bf88de3d91ac55c296285e5ee0b6144d0c77 100644 (file)
@@ -62,6 +62,8 @@ typedef struct _DHCP6_INSTANCE DHCP6_INSTANCE;
 #define DHCP6_PORT_CLIENT         546\r
 #define DHCP6_PORT_SERVER         547\r
 \r
+#define DHCP_CHECK_MEDIA_WAITING_TIME    EFI_TIMER_PERIOD_SECONDS(20)\r
+\r
 #define DHCP6_INSTANCE_FROM_THIS(Instance) CR ((Instance), DHCP6_INSTANCE, Dhcp6, DHCP6_INSTANCE_SIGNATURE)\r
 #define DHCP6_SERVICE_FROM_THIS(Service)   CR ((Service), DHCP6_SERVICE, ServiceBinding, DHCP6_SERVICE_SIGNATURE)\r
 \r
index 93779befa77d2c79b5a6ae3be8e6f9353d904ca8..951477b78c9e7a6199b1074b31674e9ae35b6460 100644 (file)
@@ -269,7 +269,7 @@ GetDns4ServerFromDhcp4 (
   EFI_STATUS                          Status;\r
   EFI_HANDLE                          Image;\r
   EFI_HANDLE                          Controller;\r
-  BOOLEAN                             MediaPresent;\r
+  EFI_STATUS                          MediaStatus;\r
   EFI_HANDLE                          MnpChildHandle;  \r
   EFI_MANAGED_NETWORK_PROTOCOL        *Mnp;\r
   EFI_MANAGED_NETWORK_CONFIG_DATA     MnpConfigData;\r
@@ -316,9 +316,9 @@ GetDns4ServerFromDhcp4 (
   //\r
   // Check media.\r
   //\r
-  MediaPresent = TRUE;\r
-  NetLibDetectMedia (Controller, &MediaPresent);\r
-  if (!MediaPresent) {\r
+  MediaStatus = EFI_SUCCESS;\r
+  NetLibDetectMediaWaitTimeout (Controller, DNS_CHECK_MEDIA_GET_DHCP_WAITING_TIME, &MediaStatus);\r
+  if (MediaStatus != EFI_SUCCESS) {\r
     return EFI_NO_MEDIA;\r
   }\r
 \r
@@ -620,7 +620,7 @@ GetDns6ServerFromDhcp6 (
   EFI_DHCP6_PACKET_OPTION   *Oro;\r
   EFI_DHCP6_RETRANSMISSION  InfoReqReXmit;\r
   EFI_EVENT                 Timer;\r
-  BOOLEAN                   MediaPresent;\r
+  EFI_STATUS                MediaStatus;\r
   DNS6_SERVER_INFOR         DnsServerInfor;\r
 \r
   Dhcp6Handle = NULL;\r
@@ -635,9 +635,9 @@ GetDns6ServerFromDhcp6 (
   //\r
   // Check media status before doing DHCP.\r
   //\r
-  MediaPresent = TRUE;\r
-  NetLibDetectMedia (Controller, &MediaPresent);\r
-  if (!MediaPresent) {\r
+  MediaStatus = EFI_SUCCESS;\r
+  NetLibDetectMediaWaitTimeout (Controller, DNS_CHECK_MEDIA_GET_DHCP_WAITING_TIME, &MediaStatus);\r
+  if (MediaStatus != EFI_SUCCESS) {\r
     return EFI_NO_MEDIA;\r
   }\r
 \r
index 62bf7174e15ac65add433519fa367cd99d0996b2..9c61f84c5c34f352c3407517149f5cc7e2989e73 100644 (file)
@@ -37,6 +37,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #define DHCP6_TAG_DNS_REQUEST        6\r
 #define DHCP6_TAG_DNS_SERVER         23\r
 \r
+#define DNS_CHECK_MEDIA_GET_DHCP_WAITING_TIME    EFI_TIMER_PERIOD_SECONDS(20)\r
+\r
 //\r
 // The required Dns4 server information.\r
 //\r
index d591db5bd421ddec250f988480e1c48777b039c7..7f0616dafc065dd2db0b131078ee976848612c86 100644 (file)
@@ -548,7 +548,7 @@ HttpBootDxeLoadFile (
 {\r
   HTTP_BOOT_PRIVATE_DATA        *Private;\r
   HTTP_BOOT_VIRTUAL_NIC         *VirtualNic;\r
-  BOOLEAN                       MediaPresent;\r
+  EFI_STATUS                    MediaStatus;\r
   BOOLEAN                       UsingIpv6;\r
   EFI_STATUS                    Status;\r
   HTTP_BOOT_IMAGE_TYPE          ImageType;\r
@@ -570,9 +570,9 @@ HttpBootDxeLoadFile (
   //\r
   // Check media status before HTTP boot start\r
   //\r
-  MediaPresent = TRUE;\r
-  NetLibDetectMedia (Private->Controller, &MediaPresent);\r
-  if (!MediaPresent) {\r
+  MediaStatus = EFI_SUCCESS;\r
+  NetLibDetectMediaWaitTimeout (Private->Controller, HTTP_BOOT_CHECK_MEDIA_WAITING_TIME, &MediaStatus);\r
+  if (MediaStatus != EFI_SUCCESS) {\r
     AsciiPrint ("\n  Error: Could not detect network connection.\n");\r
     return EFI_NO_MEDIA;\r
   }\r
index da58bb65830cf76dfb40a6717023993f011e6f07..53160359f3d8b3ac6b13f983b486db2054596a8b 100644 (file)
@@ -14,6 +14,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __EFI_HTTP_BOOT_IMPL_H__\r
 #define __EFI_HTTP_BOOT_IMPL_H__\r
 \r
+#define HTTP_BOOT_CHECK_MEDIA_WAITING_TIME          EFI_TIMER_PERIOD_SECONDS(20)\r
+\r
 /**\r
   Attempt to complete a DHCPv4 D.O.R.A or DHCPv6 S.R.A.A sequence to retrieve the boot resource information.\r
 \r
index 309ce0daf2a6ebdce2fce05e9a3ef60660ef9469..e6f6972ebd1bc7768449a2ac9559a5fb6d64db0a 100644 (file)
@@ -443,7 +443,7 @@ IScsiDoDhcp (
   EFI_DHCP4_PACKET_OPTION       *ParaList;\r
   EFI_DHCP4_CONFIG_DATA         Dhcp4ConfigData;\r
   ISCSI_SESSION_CONFIG_NVDATA   *NvData;\r
-  BOOLEAN                       MediaPresent;\r
+  EFI_STATUS                    MediaStatus;\r
 \r
   Dhcp4Handle = NULL;\r
   Ip4Config2  = NULL;\r
@@ -453,9 +453,10 @@ IScsiDoDhcp (
   //\r
   // Check media status before doing DHCP.\r
   //\r
-  MediaPresent = TRUE;\r
-  NetLibDetectMedia (Controller, &MediaPresent);\r
-  if (!MediaPresent) {\r
+  MediaStatus = EFI_SUCCESS;\r
+  NetLibDetectMediaWaitTimeout (Controller, ISCSI_CHECK_MEDIA_GET_DHCP_WAITING_TIME, &MediaStatus);\r
+  if (MediaStatus!= EFI_SUCCESS) {\r
+    AsciiPrint ("\n  Error: Could not detect network connection.\n");\r
     return EFI_NO_MEDIA;\r
   }\r
 \r
index 06c634c3cda4f6dbe28442535bf6ca09714b836c..90acb94e0ed11b335bc1fdb18d6dc4109c8c475f 100644 (file)
@@ -401,14 +401,15 @@ IScsiDoDhcp6 (
   EFI_DHCP6_PACKET_OPTION   *Oro;\r
   EFI_DHCP6_RETRANSMISSION  InfoReqReXmit;\r
   EFI_EVENT                 Timer;\r
-  BOOLEAN                   MediaPresent;\r
+  EFI_STATUS                MediaStatus;\r
 \r
   //\r
   // Check media status before doing DHCP.\r
   //\r
-  MediaPresent = TRUE;\r
-  NetLibDetectMedia (Controller, &MediaPresent);\r
-  if (!MediaPresent) {\r
+  MediaStatus = EFI_SUCCESS;\r
+  NetLibDetectMediaWaitTimeout (Controller, ISCSI_CHECK_MEDIA_GET_DHCP_WAITING_TIME, &MediaStatus);\r
+  if (MediaStatus != EFI_SUCCESS) {\r
+    AsciiPrint ("\n  Error: Could not detect network connection.\n");\r
     return EFI_NO_MEDIA;\r
   }\r
 \r
index 1602a26132a90bdafcb46db2073152079bb43556..38e4af26bcf8f227fc78fea42b959b23548dbad3 100644 (file)
@@ -444,14 +444,14 @@ IScsiSessionLogin (
   VOID              *Tcp;\r
   EFI_GUID          *ProtocolGuid;\r
   UINT8             RetryCount;\r
-  BOOLEAN           MediaPresent;\r
+  EFI_STATUS        MediaStatus;\r
 \r
   //\r
   // Check media status before session login.\r
   //\r
-  MediaPresent = TRUE;\r
-  NetLibDetectMedia (Session->Private->Controller, &MediaPresent);\r
-  if (!MediaPresent) {\r
+  MediaStatus = EFI_SUCCESS;\r
+  NetLibDetectMediaWaitTimeout (Session->Private->Controller, ISCSI_CHECK_MEDIA_LOGIN_WAITING_TIME, &MediaStatus);\r
+  if (MediaStatus != EFI_SUCCESS) {\r
     return EFI_NO_MEDIA;\r
   }\r
 \r
index 367914d4776c33b426ea7547b1b294af68d1d79d..d57bda590917350914655f2a7572f795362721be 100644 (file)
@@ -40,6 +40,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #define ISCSI_VERSION_MAX                       0x00\r
 #define ISCSI_VERSION_MIN                       0x00\r
 \r
+#define ISCSI_CHECK_MEDIA_LOGIN_WAITING_TIME       EFI_TIMER_PERIOD_SECONDS(20)\r
+#define ISCSI_CHECK_MEDIA_GET_DHCP_WAITING_TIME    EFI_TIMER_PERIOD_SECONDS(20)\r
+\r
 #define ISCSI_REDIRECT_ADDR_START_DELIMITER     '['\r
 #define ISCSI_REDIRECT_ADDR_END_DELIMITER       ']'\r
 \r
index 1fc26c55daca1da9d2af4e32062a641c3467b84b..dc77d256f8e97afdfe82e7ea06e9d0f9b952d600 100644 (file)
@@ -2347,7 +2347,7 @@ EfiPxeLoadFile (
   EFI_PXE_BASE_CODE_PROTOCOL  *PxeBc;\r
   BOOLEAN                     UsingIpv6;\r
   EFI_STATUS                  Status;\r
-  BOOLEAN                     MediaPresent;\r
+  EFI_STATUS                  MediaStatus;\r
 \r
   if (FilePath == NULL || !IsDevicePathEnd (FilePath)) {\r
     return EFI_INVALID_PARAMETER;\r
@@ -2373,9 +2373,9 @@ EfiPxeLoadFile (
   //\r
   // Check media status before PXE start\r
   //\r
-  MediaPresent = TRUE;\r
-  NetLibDetectMedia (Private->Controller, &MediaPresent);\r
-  if (!MediaPresent) {\r
+  MediaStatus = EFI_SUCCESS;\r
+  NetLibDetectMediaWaitTimeout (Private->Controller, PXEBC_CHECK_MEDIA_WAITING_TIME, &MediaStatus);\r
+  if (MediaStatus != EFI_SUCCESS) {\r
     return EFI_NO_MEDIA;\r
   }\r
 \r
index 2cdc8bf58921b264d1da60af84ab86e4edeec142..7f1ecfbe6bcbc2b049b064b29ad0eeefbe67f9a9 100644 (file)
@@ -76,6 +76,8 @@ typedef struct _PXEBC_VIRTUAL_NIC   PXEBC_VIRTUAL_NIC;
 #define PXEBC_MENU_MAX_NUM            24\r
 #define PXEBC_OFFER_MAX_NUM           16\r
 \r
+#define PXEBC_CHECK_MEDIA_WAITING_TIME        EFI_TIMER_PERIOD_SECONDS(20)\r
+\r
 #define PXEBC_PRIVATE_DATA_SIGNATURE          SIGNATURE_32 ('P', 'X', 'E', 'P')\r
 #define PXEBC_VIRTUAL_NIC_SIGNATURE           SIGNATURE_32 ('P', 'X', 'E', 'V')\r
 #define PXEBC_PRIVATE_DATA_FROM_PXEBC(a)      CR (a, PXEBC_PRIVATE_DATA, PxeBc, PXEBC_PRIVATE_DATA_SIGNATURE)\r