]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/MnpDxe/MnpConfig.c
Fixed GCC 4.4 build issues due to EFIAPI not being used when required.
[mirror_edk2.git] / MdeModulePkg / Universal / Network / MnpDxe / MnpConfig.c
index af642a50d9ff4092c206e6255214e7fe83e7c13e..7e475cd133d8aeb60ba2a27b4346bc0a65ef632d 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Implementation of Managed Network Protocol private services.\r
 \r
-Copyright (c) 2005 - 2009, Intel Corporation.<BR>\r
+Copyright (c) 2005 - 2010, Intel Corporation.<BR>\r
 All rights reserved. This program and the accompanying materials\r
 are licensed and made available under the terms and conditions\r
 of the BSD License which accompanies this distribution.  The full\r
@@ -355,6 +355,22 @@ MnpInitializeDeviceData (
     goto ERROR;\r
   }\r
 \r
+  //\r
+  // Create the timer for media detection.\r
+  //\r
+  Status = gBS->CreateEvent (\r
+                  EVT_NOTIFY_SIGNAL | EVT_TIMER,\r
+                  TPL_CALLBACK,\r
+                  MnpCheckMediaStatus,\r
+                  MnpDeviceData,\r
+                  &MnpDeviceData->MediaDetectTimer\r
+                  );\r
+  if (EFI_ERROR (Status)) {\r
+    DEBUG ((EFI_D_ERROR, "MnpInitializeDeviceData: CreateEvent for media detection failed.\n"));\r
+\r
+    goto ERROR;\r
+  }\r
+\r
   //\r
   // Create the timer for tx timeout check.\r
   //\r
@@ -382,6 +398,10 @@ ERROR:
       gBS->CloseEvent (MnpDeviceData->TimeoutCheckTimer);\r
     }\r
 \r
+    if (MnpDeviceData->MediaDetectTimer != NULL) {\r
+      gBS->CloseEvent (MnpDeviceData->MediaDetectTimer);\r
+    }\r
+\r
     if (MnpDeviceData->PollTimer != NULL) {\r
       gBS->CloseEvent (MnpDeviceData->PollTimer);\r
     }\r
@@ -443,9 +463,10 @@ MnpDestroyDeviceData (
   //\r
   // Close the event.\r
   //\r
-  gBS->CloseEvent (&MnpDeviceData->TxTimeoutEvent);\r
-  gBS->CloseEvent (&MnpDeviceData->TimeoutCheckTimer);\r
-  gBS->CloseEvent (&MnpDeviceData->PollTimer);\r
+  gBS->CloseEvent (MnpDeviceData->TxTimeoutEvent);\r
+  gBS->CloseEvent (MnpDeviceData->TimeoutCheckTimer);\r
+  gBS->CloseEvent (MnpDeviceData->MediaDetectTimer);\r
+  gBS->CloseEvent (MnpDeviceData->PollTimer);\r
 \r
   //\r
   // Free the tx buffer.\r
@@ -801,6 +822,7 @@ MnpInitializeInstanceData (
 \r
 **/\r
 EFI_STATUS\r
+EFIAPI\r
 MnpTokenExist (\r
   IN NET_MAP         *Map,\r
   IN NET_MAP_ITEM    *Item,\r
@@ -840,6 +862,7 @@ MnpTokenExist (
 \r
 **/\r
 EFI_STATUS\r
+EFIAPI\r
 MnpCancelTokens (\r
   IN OUT NET_MAP         *Map,\r
   IN OUT NET_MAP_ITEM    *Item,\r
@@ -1010,6 +1033,24 @@ MnpStart (
 \r
         goto ErrorExit;\r
       }\r
+\r
+      //\r
+      // Start the media detection timer.\r
+      //\r
+      Status = gBS->SetTimer (\r
+                      MnpDeviceData->MediaDetectTimer,\r
+                      TimerPeriodic,\r
+                      MNP_MEDIA_DETECT_INTERVAL\r
+                      );\r
+      if (EFI_ERROR (Status)) {\r
+        DEBUG (\r
+          (EFI_D_ERROR,\r
+          "MnpStart, gBS->SetTimer for MediaDetectTimer %r.\n",\r
+          Status)\r
+          );\r
+\r
+        goto ErrorExit;\r
+      }\r
     }\r
   }\r
 \r
@@ -1095,6 +1136,11 @@ MnpStop (
   //\r
   Status = gBS->SetTimer (MnpDeviceData->TimeoutCheckTimer, TimerCancel, 0);\r
 \r
+  //\r
+  // Cancel the media detect timer.\r
+  //\r
+  Status = gBS->SetTimer (MnpDeviceData->MediaDetectTimer, TimerCancel, 0);\r
+\r
   //\r
   // Stop the simple network.\r
   //\r