]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Universal/Network/Snp32_64/Dxe/snp.c
Partially make EdkModulePkg pass intel IPF compiler with /W4 /WX switched on.
[mirror_edk2.git] / EdkModulePkg / Universal / Network / Snp32_64 / Dxe / snp.c
index c83ca377ab67ba40feb9c9f0fc6b5688ccb58420..7146e462c7ae6c0ecfbe2b88ded5bbb1d2a0c2a5 100644 (file)
@@ -18,72 +18,6 @@ Abstract:
 \r
 #include "Snp.h"\r
 \r
-EFI_STATUS\r
-pxe_start (\r
-  SNP_DRIVER *snp\r
-  );\r
-EFI_STATUS\r
-pxe_stop (\r
-  SNP_DRIVER *snp\r
-  );\r
-EFI_STATUS\r
-pxe_init (\r
-  SNP_DRIVER *snp,\r
-  UINT16     OpFlags\r
-  );\r
-EFI_STATUS\r
-pxe_shutdown (\r
-  SNP_DRIVER *snp\r
-  );\r
-EFI_STATUS\r
-pxe_get_stn_addr (\r
-  SNP_DRIVER *snp\r
-  );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-InitializeSnpNiiDriver (\r
-  IN EFI_HANDLE       image_handle,\r
-  IN EFI_SYSTEM_TABLE *system_table\r
-  );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-SimpleNetworkDriverSupported (\r
-  IN EFI_DRIVER_BINDING_PROTOCOL    *This,\r
-  IN EFI_HANDLE                     Controller,\r
-  IN EFI_DEVICE_PATH_PROTOCOL       *RemainingDevicePath\r
-  );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-SimpleNetworkDriverStart (\r
-  IN EFI_DRIVER_BINDING_PROTOCOL    *This,\r
-  IN EFI_HANDLE                     Controller,\r
-  IN EFI_DEVICE_PATH_PROTOCOL       *RemainingDevicePath\r
-  );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-SimpleNetworkDriverStop (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL    *This,\r
-  IN  EFI_HANDLE                     Controller,\r
-  IN  UINTN                          NumberOfChildren,\r
-  IN  EFI_HANDLE                     *ChildHandleBuffer\r
-  );\r
-\r
-//\r
-// Simple Network Protocol Driver Global Variables\r
-//\r
-EFI_DRIVER_BINDING_PROTOCOL mSimpleNetworkDriverBinding = {\r
-  SimpleNetworkDriverSupported,\r
-  SimpleNetworkDriverStart,\r
-  SimpleNetworkDriverStop,\r
-  0xa,\r
-  NULL,\r
-  NULL\r
-};\r
-\r
 //\r
 //  Module global variables needed to support undi 3.0 interface\r
 //\r
@@ -91,202 +25,6 @@ EFI_PCI_IO_PROTOCOL         *mPciIoFncs;
 struct s_v2p                *_v2p = NULL; // undi3.0 map_list head\r
 // End Global variables\r
 //\r
-EFI_STATUS\r
-add_v2p (\r
-  IN OUT struct s_v2p           **v2p,\r
-  EFI_PCI_IO_PROTOCOL_OPERATION type,\r
-  VOID                          *vaddr,\r
-  UINTN                         bsize\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
- This routine maps the given CPU address to a Device address. It creates a\r
- an entry in the map list with the virtual and physical addresses and the \r
- un map cookie.\r
-\r
-Arguments:\r
- v2p - pointer to return a map list node pointer.\r
- type - the direction in which the data flows from the given virtual address\r
-        device->cpu or cpu->device or both ways.\r
- vaddr - virtual address (or CPU address) to be mapped\r
- bsize - size of the buffer to be mapped.\r
-\r
-Returns:\r
-\r
-  EFI_SUCEESS - routine has completed the mapping\r
-  other - error as indicated.\r
-\r
---*/\r
-{\r
-  EFI_STATUS  Status;\r
-\r
-  if ((v2p == NULL) || (vaddr == NULL) || (bsize == 0)) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  Status = gBS->AllocatePool (\r
-                  EfiBootServicesData,\r
-                  sizeof (struct s_v2p),\r
-                  (VOID **) v2p\r
-                  );\r
-\r
-  if (Status != EFI_SUCCESS) {\r
-    return Status;\r
-  }\r
-\r
-  Status = mPciIoFncs->Map (\r
-                        mPciIoFncs,\r
-                        type,\r
-                        vaddr,\r
-                        &bsize,\r
-                        &(*v2p)->paddr,\r
-                        &(*v2p)->unmap\r
-                        );\r
-  if (Status != EFI_SUCCESS) {\r
-    gBS->FreePool (*v2p);\r
-    return Status;\r
-  }\r
-  (*v2p)->vaddr = vaddr;\r
-  (*v2p)->bsize = bsize;\r
-  (*v2p)->next  = _v2p;\r
-  _v2p          = *v2p;\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-find_v2p (\r
-  struct s_v2p **v2p,\r
-  VOID         *vaddr\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
- This routine searches the linked list of mapped address nodes (for undi3.0 \r
- interface) to find the node that corresponds to the given virtual address and\r
- returns a pointer to that node.\r
-\r
-Arguments:\r
- v2p - pointer to return a map list node pointer.\r
- vaddr - virtual address (or CPU address) to be searched in the map list\r
-\r
-Returns:\r
-\r
-  EFI_SUCEESS - if a match found!\r
-  Other       - match not found\r
-\r
---*/\r
-{\r
-  struct s_v2p  *v;\r
-\r
-  if (v2p == NULL || vaddr == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  for (v = _v2p; v != NULL; v = v->next) {\r
-    if (v->vaddr == vaddr) {\r
-      *v2p = v;\r
-      return EFI_SUCCESS;\r
-    }\r
-  }\r
-\r
-  return EFI_NOT_FOUND;\r
-}\r
-\r
-EFI_STATUS\r
-del_v2p (\r
-  VOID *vaddr\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
- This routine unmaps the given virtual address and frees the memory allocated \r
- for the map list node corresponding to that address.\r
\r
-Arguments:\r
- vaddr - virtual address (or CPU address) to be unmapped\r
-\r
-Returns:\r
- EFI_SUCEESS -  if successfully unmapped\r
- Other - as indicated by the error\r
-\r
-\r
---*/\r
-{\r
-  struct s_v2p  *v;\r
-  struct s_v2p  *t;\r
-  EFI_STATUS    Status;\r
-\r
-  if (vaddr == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  if (_v2p == NULL) {\r
-    return EFI_NOT_FOUND;\r
-  }\r
-  //\r
-  // Is our node at the head of the list??\r
-  //\r
-  if ((v = _v2p)->vaddr == vaddr) {\r
-    _v2p    = _v2p->next;\r
-\r
-    Status  = mPciIoFncs->Unmap (mPciIoFncs, v->unmap);\r
-\r
-    gBS->FreePool (v);\r
-\r
-#if SNP_DEBUG\r
-    if (Status) {\r
-      Print (L"Unmap failed with status = %x\n", Status);\r
-    }\r
-#endif\r
-    return Status;\r
-  }\r
-\r
-  for (; v->next != NULL; v = t) {\r
-    if ((t = v->next)->vaddr == vaddr) {\r
-      v->next = t->next;\r
-      Status  = mPciIoFncs->Unmap (mPciIoFncs, t->unmap);\r
-      gBS->FreePool (t);\r
-#if SNP_DEBUG\r
-      if (Status) {\r
-        Print (L"Unmap failed with status = %x\n", Status);\r
-      }\r
-#endif\r
-      return Status;\r
-    }\r
-  }\r
-\r
-  return EFI_NOT_FOUND;\r
-}\r
-\r
-#if SNP_DEBUG\r
-VOID\r
-snp_wait_for_key (\r
-  VOID\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
- Wait for a key stroke, used for debugging purposes\r
-\r
-Arguments:\r
- none\r
-\r
-Returns:\r
- none\r
-\r
---*/\r
-{\r
-  EFI_INPUT_KEY key;\r
-\r
-  Aprint ("\nPress any key to continue\n");\r
-\r
-  while (gST->ConIn->ReadKeyStroke (gST->ConIn, &key) == EFI_NOT_READY) {\r
-    ;\r
-  }\r
-}\r
-#endif\r
 \r
 STATIC\r
 EFI_STATUS\r
@@ -355,6 +93,7 @@ Returns:
   return cksum;\r
 }\r
 \r
+STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 SimpleNetworkDriverSupported (\r
@@ -531,6 +270,7 @@ Done:
   return Status;\r
 }\r
 \r
+STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 SimpleNetworkDriverStart (\r
@@ -1190,6 +930,7 @@ NiiError:
   return Status;\r
 }\r
 \r
+STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 SimpleNetworkDriverStop (\r
@@ -1313,3 +1054,211 @@ Returns:
   return Status;\r
 }\r
 \r
+//\r
+// Simple Network Protocol Driver Global Variables\r
+//\r
+EFI_DRIVER_BINDING_PROTOCOL mSimpleNetworkDriverBinding = {\r
+  SimpleNetworkDriverSupported,\r
+  SimpleNetworkDriverStart,\r
+  SimpleNetworkDriverStop,\r
+  0xa,\r
+  NULL,\r
+  NULL\r
+};\r
+\r
+EFI_STATUS\r
+add_v2p (\r
+  IN OUT struct s_v2p           **v2p,\r
+  EFI_PCI_IO_PROTOCOL_OPERATION type,\r
+  VOID                          *vaddr,\r
+  UINTN                         bsize\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+ This routine maps the given CPU address to a Device address. It creates a\r
+ an entry in the map list with the virtual and physical addresses and the \r
+ un map cookie.\r
+\r
+Arguments:\r
+ v2p - pointer to return a map list node pointer.\r
+ type - the direction in which the data flows from the given virtual address\r
+        device->cpu or cpu->device or both ways.\r
+ vaddr - virtual address (or CPU address) to be mapped\r
+ bsize - size of the buffer to be mapped.\r
+\r
+Returns:\r
+\r
+  EFI_SUCEESS - routine has completed the mapping\r
+  other - error as indicated.\r
+\r
+--*/\r
+{\r
+  EFI_STATUS  Status;\r
+\r
+  if ((v2p == NULL) || (vaddr == NULL) || (bsize == 0)) {\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
+\r
+  Status = gBS->AllocatePool (\r
+                  EfiBootServicesData,\r
+                  sizeof (struct s_v2p),\r
+                  (VOID **) v2p\r
+                  );\r
+\r
+  if (Status != EFI_SUCCESS) {\r
+    return Status;\r
+  }\r
+\r
+  Status = mPciIoFncs->Map (\r
+                        mPciIoFncs,\r
+                        type,\r
+                        vaddr,\r
+                        &bsize,\r
+                        &(*v2p)->paddr,\r
+                        &(*v2p)->unmap\r
+                        );\r
+  if (Status != EFI_SUCCESS) {\r
+    gBS->FreePool (*v2p);\r
+    return Status;\r
+  }\r
+  (*v2p)->vaddr = vaddr;\r
+  (*v2p)->bsize = bsize;\r
+  (*v2p)->next  = _v2p;\r
+  _v2p          = *v2p;\r
+\r
+  return EFI_SUCCESS;\r
+}\r
+\r
+EFI_STATUS\r
+find_v2p (\r
+  struct s_v2p **v2p,\r
+  VOID         *vaddr\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+ This routine searches the linked list of mapped address nodes (for undi3.0 \r
+ interface) to find the node that corresponds to the given virtual address and\r
+ returns a pointer to that node.\r
+\r
+Arguments:\r
+ v2p - pointer to return a map list node pointer.\r
+ vaddr - virtual address (or CPU address) to be searched in the map list\r
+\r
+Returns:\r
+\r
+  EFI_SUCEESS - if a match found!\r
+  Other       - match not found\r
+\r
+--*/\r
+{\r
+  struct s_v2p  *v;\r
+\r
+  if (v2p == NULL || vaddr == NULL) {\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
+\r
+  for (v = _v2p; v != NULL; v = v->next) {\r
+    if (v->vaddr == vaddr) {\r
+      *v2p = v;\r
+      return EFI_SUCCESS;\r
+    }\r
+  }\r
+\r
+  return EFI_NOT_FOUND;\r
+}\r
+\r
+EFI_STATUS\r
+del_v2p (\r
+  VOID *vaddr\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+ This routine unmaps the given virtual address and frees the memory allocated \r
+ for the map list node corresponding to that address.\r
\r
+Arguments:\r
+ vaddr - virtual address (or CPU address) to be unmapped\r
+\r
+Returns:\r
+ EFI_SUCEESS -  if successfully unmapped\r
+ Other - as indicated by the error\r
+\r
+\r
+--*/\r
+{\r
+  struct s_v2p  *v;\r
+  struct s_v2p  *t;\r
+  EFI_STATUS    Status;\r
+\r
+  if (vaddr == NULL) {\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
+\r
+  if (_v2p == NULL) {\r
+    return EFI_NOT_FOUND;\r
+  }\r
+  //\r
+  // Is our node at the head of the list??\r
+  //\r
+  if ((v = _v2p)->vaddr == vaddr) {\r
+    _v2p    = _v2p->next;\r
+\r
+    Status  = mPciIoFncs->Unmap (mPciIoFncs, v->unmap);\r
+\r
+    gBS->FreePool (v);\r
+\r
+#if SNP_DEBUG\r
+    if (Status) {\r
+      Print (L"Unmap failed with status = %x\n", Status);\r
+    }\r
+#endif\r
+    return Status;\r
+  }\r
+\r
+  for (; v->next != NULL; v = t) {\r
+    if ((t = v->next)->vaddr == vaddr) {\r
+      v->next = t->next;\r
+      Status  = mPciIoFncs->Unmap (mPciIoFncs, t->unmap);\r
+      gBS->FreePool (t);\r
+#if SNP_DEBUG\r
+      if (Status) {\r
+        Print (L"Unmap failed with status = %x\n", Status);\r
+      }\r
+#endif\r
+      return Status;\r
+    }\r
+  }\r
+\r
+  return EFI_NOT_FOUND;\r
+}\r
+\r
+#if SNP_DEBUG\r
+VOID\r
+snp_wait_for_key (\r
+  VOID\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+ Wait for a key stroke, used for debugging purposes\r
+\r
+Arguments:\r
+ none\r
+\r
+Returns:\r
+ none\r
+\r
+--*/\r
+{\r
+  EFI_INPUT_KEY key;\r
+\r
+  Aprint ("\nPress any key to continue\n");\r
+\r
+  while (gST->ConIn->ReadKeyStroke (gST->ConIn, &key) == EFI_NOT_READY) {\r
+    ;\r
+  }\r
+}\r
+#endif\r