--*/\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
\r
--*/\r
{\r
- CdbPtr->StatFlags |= AdapterInfo->State;\r
+ CdbPtr->StatFlags = (PXE_STATFLAGS) (CdbPtr->StatFlags | AdapterInfo->State);\r
return ;\r
}\r
\r
--*/\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
}\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
\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
\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
// 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
// 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
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
\r
--*/\r
{\r
- PXE_CPB_RECEIVE *cpbptr;\r
\r
//\r
// check if RU has started...\r
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
return ;\r
}\r
\r
+STATIC\r
UINT8\r
ChkSum (\r
IN VOID *Buffer,\r
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