]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Bus/Pci/Undi/RuntimeDxe/Decode.c
Removed EFI_SIZE_REDUCTION_APPLIED and SIZE_REDUCTION_ISA_COMBINED because one PCD...
[mirror_edk2.git] / EdkModulePkg / Bus / Pci / Undi / RuntimeDxe / Decode.c
index f851b9b961c78d0bc95083f5345bd2327e8c1747..c42865612ac9d988e1c92ec6cc835234dd6103c7 100644 (file)
@@ -19,17 +19,17 @@ Revision history:
 --*/\r
 \r
 // TODO: fix comment to add: Module Name: DECODE.C\r
-#include "undi32.h"\r
+#include "Undi32.h"\r
 \r
 \r
-#pragma data_seg("rtdata")\r
-\r
 //\r
-// Global variables defined outside this file\r
+// #pragma data_seg("rtdata") is only recognized by MSFT C compiler.\r
+// But EBC compiler "Intel(R) C Compiler for EFI Byte Code, Version 1.2 Build 20040123"\r
+// does not recognize this pragma.\r
 //\r
-extern PXE_SW_UNDI  *pxe;     // !pxe structure\r
-extern PXE_SW_UNDI  *pxe_31;  // !pxe structure for 3.1 drivers\r
-extern UNDI32_DEV   *UNDI32DeviceList[MAX_NIC_INTERFACES];\r
+#if defined(_MSC_EXTENSIONS) && !defined(MDE_CPU_EBC)\r
+#pragma data_seg("rtdata")\r
+#endif\r
 \r
 //\r
 // Global variables defined in this file\r
@@ -89,7 +89,7 @@ Returns:
 \r
 --*/\r
 {\r
-  CdbPtr->StatFlags |= AdapterInfo->State;\r
+  CdbPtr->StatFlags = (PXE_STATFLAGS) (CdbPtr->StatFlags | AdapterInfo->State);\r
   return ;\r
 }\r
 \r
@@ -377,7 +377,6 @@ Returns:
 --*/\r
 {\r
   PXE_CPB_INITIALIZE  *CpbPtr;\r
-  PXE_DB_INITIALIZE   *DbPtr;\r
 \r
   if ((CdbPtr->OpFlags != PXE_OPFLAGS_INITIALIZE_DETECT_CABLE) &&\r
       (CdbPtr->OpFlags != PXE_OPFLAGS_INITIALIZE_DO_NOT_DETECT_CABLE)) {\r
@@ -396,7 +395,6 @@ Returns:
   }\r
 \r
   CpbPtr  = (PXE_CPB_INITIALIZE *) (UINTN) CdbPtr->CPBaddr;\r
-  DbPtr   = (PXE_DB_INITIALIZE *) (UINTN) CdbPtr->DBaddr;\r
 \r
   if (CpbPtr->MemoryLength < (UINT32) MEMORY_NEEDED) {\r
     CdbPtr->StatFlags = PXE_STATFLAGS_COMMAND_FAILED;\r
@@ -553,7 +551,7 @@ Returns:
 \r
   case PXE_OPFLAGS_INTERRUPT_DISABLE:\r
     if (IntMask != 0) {\r
-      AdapterInfo->int_mask &= ~(IntMask);\r
+      AdapterInfo->int_mask = (UINT16) (AdapterInfo->int_mask & ~(IntMask));\r
       E100bSetInterruptState (AdapterInfo);\r
       break;\r
     }\r
@@ -633,7 +631,7 @@ Returns:
 \r
     }\r
 \r
-    NewFilter |= AdapterInfo->Rx_Filter;\r
+    NewFilter = (UINT16) (NewFilter | AdapterInfo->Rx_Filter);\r
     //\r
     // all other flags are ignored except mcast_reset\r
     //\r
@@ -695,7 +693,7 @@ Returns:
     // if you want to enable anything, you got to have unicast\r
     // and you have what you already enabled!\r
     //\r
-    NewFilter |= (PXE_OPFLAGS_RECEIVE_FILTER_UNICAST | AdapterInfo->Rx_Filter);\r
+    NewFilter = (UINT16) (NewFilter | (PXE_OPFLAGS_RECEIVE_FILTER_UNICAST | AdapterInfo->Rx_Filter));\r
 \r
     break;\r
 \r
@@ -754,7 +752,7 @@ JustRead:
   // give the stat flags here\r
   //\r
   if (AdapterInfo->Receive_Started) {\r
-    CdbPtr->StatFlags |= AdapterInfo->Rx_Filter;\r
+    CdbPtr->StatFlags = (PXE_STATFLAGS) (CdbPtr->StatFlags | AdapterInfo->Rx_Filter);\r
 \r
   }\r
 \r
@@ -1112,7 +1110,7 @@ Returns:
   if ((CdbPtr->OpFlags & PXE_OPFLAGS_GET_INTERRUPT_STATUS) != 0) {\r
 \r
     Status = InWord (AdapterInfo, AdapterInfo->ioaddr + SCBStatus);\r
-    AdapterInfo->Int_Status |= Status;\r
+    AdapterInfo->Int_Status = (UINT16) (AdapterInfo->Int_Status | Status);\r
 \r
     //\r
     // acknoledge the interrupts\r
@@ -1282,7 +1280,6 @@ Returns:
 \r
 --*/\r
 {\r
-  PXE_CPB_RECEIVE *cpbptr;\r
 \r
   //\r
   // check if RU has started...\r
@@ -1293,7 +1290,6 @@ Returns:
     return ;\r
   }\r
 \r
-  cpbptr            = (PXE_CPB_RECEIVE *) (UINTN) CdbPtr->CPBaddr;\r
 \r
   CdbPtr->StatCode  = (UINT16) E100bReceive (AdapterInfo, CdbPtr->CPBaddr, CdbPtr->DBaddr);\r
   if (CdbPtr->StatCode != PXE_STATCODE_SUCCESS) {\r
@@ -1513,6 +1509,7 @@ badcdb:
   return ;\r
 }\r
 \r
+STATIC\r
 UINT8\r
 ChkSum (\r
   IN  VOID   *Buffer,\r
@@ -1658,4 +1655,11 @@ Returns:
   PxePtr->Fudge         = (UINT8) (PxePtr->Fudge - ChkSum ((VOID *) PxePtr, PxePtr->Len));\r
 }\r
 \r
+//\r
+// #pragma data_seg("rtdata") is only recognized by MSFT C compiler.\r
+// But EBC compiler "Intel(R) C Compiler for EFI Byte Code, Version 1.2 Build 20040123"\r
+// does not recognize this pragma.\r
+//\r
+#if defined(_MSC_EXTENSIONS) && !defined(MDE_CPU_EBC)\r
 #pragma data_seg()\r
+#endif\r