Changeset 927 in vbox
- Timestamp:
- Feb 15, 2007 3:52:58 PM (18 years ago)
- svn:sync-xref-src-repo-rev:
- 18660
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Network/DevPCNet.cpp
r813 r927 130 130 #if HC_ARCH_BITS == 64 131 131 uint32_t Alignment; 132 #endif 132 #endif 133 133 /** The virtual address of the frame (copied or direct pointer) */ 134 134 RTR3PTR pvBuf; … … 219 219 #if HC_ARCH_BITS == 64 || GC_ARCH_BITS == 64 220 220 RTUINT Alignment; 221 #endif 221 #endif 222 222 /** The configured MAC address. */ 223 223 PDMMAC MacConfigured; … … 2082 2082 } 2083 2083 } 2084 else if (cb == 4096) 2085 { 2086 /* The Windows NT4 pcnet driver sometimes marks the first 2087 * unused descriptor as owned by us. Ignore that (by 2088 * passing it back). Do not update the ring counter in this 2089 * case (otherwise that driver becomes even more confused, 2090 * which causes transmit to stall for about 10 seconds). 2091 * This is just a workaround, not a final solution. */ 2092 LogRel(("PCNET: pcnetAsyncTransmit: illegal 4kb frame -> ignoring\n")); 2093 pcnetTmdStorePassHost(pData, &tmd, PHYSADDR(pData, CSR_CXDA(pData))); 2094 break; 2095 } 2084 2096 else 2085 2097 { … … 2107 2119 * Read TMDs until end-of-packet or tdte poll fails (underflow). 2108 2120 */ 2109 const unsigned cbMaxFrame = 4096;2121 const unsigned cbMaxFrame = 1536; 2110 2122 bool fDropFrame = false; 2111 2123 unsigned cb = 4096 - tmd.tmd1.bcnt; … … 2219 2231 } while (CSR_TXON(pData)); /* transfer on */ 2220 2232 2221 if (cFlushIrq) 2233 if (cFlushIrq) 2222 2234 { 2223 2235 STAM_COUNTER_INC(&pData->aStatXmitFlush[RT_MIN(cFlushIrq, ELEMENTS(pData->aStatXmitFlush)) - 1]); … … 4260 4272 PDMDevHlpSTAMRegisterF(pDevIns, &pData->StatTmdStoreGC, STAMTYPE_PROFILE, STAMVISIBILITY_ALWAYS, STAMUNIT_TICKS_PER_CALL, "Profiling PCNet TmdStore in GC", "/Devices/PCNet%d/TmdStoreGC", iInstance); 4261 4273 PDMDevHlpSTAMRegisterF(pDevIns, &pData->StatTmdStoreHC, STAMTYPE_PROFILE, STAMVISIBILITY_ALWAYS, STAMUNIT_TICKS_PER_CALL, "Profiling PCNet TmdStore in HC", "/Devices/PCNet%d/TmdStoreHC", iInstance); 4262 4274 4263 4275 unsigned i; 4264 4276 for (i = 0; i < ELEMENTS(pData->aStatXmitFlush) - 1; i++) … … 4271 4283 4272 4284 PDMDevHlpSTAMRegisterF(pDevIns, &pData->StatXmitSkipCurrent, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_OCCURENCES, "", "/Devices/PCNet%d/Xmit/Skipped", iInstance, i + 1); 4273 4285 4274 4286 PDMDevHlpSTAMRegisterF(pDevIns, &pData->StatInterrupt, STAMTYPE_PROFILE, STAMVISIBILITY_ALWAYS, STAMUNIT_TICKS_PER_CALL, "Profiling PCNet interrupt checks", "/Devices/PCNet%d/Interrupt", iInstance); 4275 4287 PDMDevHlpSTAMRegisterF(pDevIns, &pData->StatPollTimer, STAMTYPE_PROFILE, STAMVISIBILITY_ALWAYS, STAMUNIT_TICKS_PER_CALL, "Profiling PCNet poll timer", "/Devices/PCNet%d/PollTimer", iInstance);
Note:
See TracChangeset
for help on using the changeset viewer.