[plain text]
? .DS_Store
? diff
? AppleBMacEthernet.pbproj/local.mode1
Index: BMacEnet.cpp
===================================================================
RCS file: /cvs/root/IO/Drivers/Ethernet/AppleBMacEthernet/BMacEnet.cpp,v
retrieving revision 1.7
diff -u -d -b -w -r1.7 BMacEnet.cpp
--- BMacEnet.cpp 2003/11/21 18:06:53 1.7
+++ BMacEnet.cpp 2004/10/15 20:25:01
@@ -278,7 +278,6 @@
{ IOLog( "BMacEnet::start: Couldn't allocate KDB buffer\n" );
return false;
}
- txDebuggerPkt->m_next = 0;
#if 0
// Enable the interrupt event sources. The hardware interrupts
@@ -497,7 +496,7 @@
*
*-------------------------------------------------------------------------*/
-UInt32 BMacEnet::outputPacket(struct mbuf * pkt, void * param)
+UInt32 BMacEnet::outputPacket( mbuf_t pkt, void *param )
{
u_int32_t i;
UInt32 ret = kIOReturnOutputSuccess;
Index: BMacEnet.h
===================================================================
RCS file: /cvs/root/IO/Drivers/Ethernet/AppleBMacEthernet/BMacEnet.h,v
retrieving revision 1.6
diff -u -d -b -w -r1.6 BMacEnet.h
--- BMacEnet.h 2003/11/21 18:06:53 1.6
+++ BMacEnet.h 2004/10/15 20:25:01
@@ -33,17 +33,21 @@
#ifndef _BMACENET_H
#define _BMACENET_H
+#define __MBUF_TRANSITION_
+
#include <IOKit/network/IOEthernetController.h>
#include <IOKit/network/IOEthernetInterface.h>
#include <IOKit/network/IOGatedOutputQueue.h>
#include <IOKit/IOInterruptEventSource.h>
#include <IOKit/IOTimerEventSource.h>
+#include <IOKit/IOBufferMemoryDescriptor.h>
#include <IOKit/network/IOMbufMemoryCursor.h>
#include <IOKit/IODeviceMemory.h>
#include <IOKit/ppc/IODBDMA.h>
#include <string.h> /* bcopy */
#include "BMacEnetRegisters.h"
+
extern "C" {
#include <sys/param.h>
#include <sys/mbuf.h>
@@ -113,9 +117,9 @@
OSDictionary * mediumDict;
- struct mbuf * txMbuf[TX_RING_LENGTH];
- struct mbuf * rxMbuf[RX_RING_LENGTH];
- struct mbuf * txDebuggerPkt;
+ mbuf_t txMbuf[ TX_RING_LENGTH ];
+ mbuf_t rxMbuf[ RX_RING_LENGTH ];
+ mbuf_t txDebuggerPkt;
unsigned int txCommandHead; // TX ring descriptor index
unsigned int txCommandTail;
@@ -127,7 +131,7 @@
UInt8* dmaCommands;
UInt32 dmaCommandsPhys;
UInt32 dmaCommandsSize;
- IOMemoryDescriptor* dmaCommandsDesc;
+ IOBufferMemoryDescriptor* dmaCommandsDesc;
enet_txdma_cmd_t * txDMACommands; // TX descriptor ring ptr
unsigned int txDMACommandsPhys;
@@ -156,17 +160,16 @@
void _enableAdapterInterrupts();
void _setDuplexMode(bool duplexMode);
void _startChip();
- bool _updateDescriptorFromMbuf(struct mbuf * m, enet_dma_cmd_t * desc,
- bool isReceive);
+ bool _updateDescriptorFromMbuf( mbuf_t m, enet_dma_cmd_t *desc, bool isReceive );
void _restartTransmitter();
void _stopTransmitDMA();
- bool _transmitPacket(struct mbuf * packet);
+ bool _transmitPacket( mbuf_t packet );
bool _transmitInterruptOccurred();
bool _debugTransmitInterruptOccurred();
bool _receiveInterruptOccurred();
bool _rejectBadUnicastPacket(struct ether_header * etherHeader);
bool _receivePackets(bool fDebugger);
- void _packetToDebugger(struct mbuf * packet, u_int size);
+ void _packetToDebugger( mbuf_t packet, u_int size );
void _restartReceiver();
void _stopReceiveDMA();
bool _resetAndEnable( bool enable );
@@ -206,7 +209,7 @@
bool miiFindPHY(unsigned char * phy_num);
bool miiInitializePHY(unsigned char phy);
- UInt32 outputPacket(struct mbuf * m, void * param);
+ UInt32 outputPacket( mbuf_t m, void *param );
static void interruptOccurred( OSObject *me, IOInterruptEventSource *src, int count );
static void timerPopped( OSObject *me, IOTimerEventSource* timer );
Index: BMacEnetPrivate.cpp
===================================================================
RCS file: /cvs/root/IO/Drivers/Ethernet/AppleBMacEthernet/BMacEnetPrivate.cpp,v
retrieving revision 1.6
diff -u -d -b -w -r1.6 BMacEnetPrivate.cpp
--- BMacEnetPrivate.cpp 2003/11/21 18:06:53 1.6
+++ BMacEnetPrivate.cpp 2004/10/15 20:25:03
@@ -83,9 +83,6 @@
bool BMacEnet::_allocateMemory()
{
- IOReturn ior;
-
-
/* Calculate total space for DMA channel commands: */
dmaCommandsSize = round_page(
@@ -93,25 +90,24 @@
+ TX_RING_LENGTH * sizeof (enet_txdma_cmd_t )
+ 2 * sizeof( IODBDMADescriptor ) );
- dmaCommands = (UInt8*)IOMallocContiguous( dmaCommandsSize, PAGE_SIZE, 0 );
+ dmaCommandsDesc = IOBufferMemoryDescriptor::withOptions( kIOMemoryPhysicallyContiguous,
+ dmaCommandsSize,
+ PAGE_SIZE );
- if ( dmaCommands == NULL )
+ if ( dmaCommandsDesc == NULL )
{
IOLog( "BMacEnet::_allocateMemory: Cannot allocate channel DBDMA commands\n" );
return false;
}
+ dmaCommandsDesc->prepare( kIODirectionOutIn );
- dmaCommandsDesc = IOMemoryDescriptor::withAddress( (vm_address_t)dmaCommands,
- dmaCommandsSize,
- kIODirectionOutIn,
- kernel_task );
- dmaCommandsPhys = dmaCommandsDesc->getPhysicalAddress();
+ dmaCommands = (UInt8*)dmaCommandsDesc->getBytesNoCopy(); // get virtual address
+ dmaCommandsPhys = dmaCommandsDesc->getPhysicalAddress(); // may be DART address
if ( dmaCommandsPhys == 0 )
{
IOLog( "BMacEnet::_allocateMemory - Cannot get DBDMA commands physical address.\n" );
return false;
}
- ior = dmaCommandsDesc->prepare( kIODirectionOutIn );
/*
* Setup the receive ring pointers
@@ -707,7 +703,7 @@
*
*-------------------------------------------------------------------------*/
-bool BMacEnet::_transmitPacket(struct mbuf *packet)
+bool BMacEnet::_transmitPacket( mbuf_t packet )
{
enet_dma_cmd_t tmpCommand;
u_int32_t i;
@@ -725,8 +721,7 @@
i = txCommandTail + 1;
if ( i >= txMaxCommand ) i = 0;
- if ( (i == txCommandHead) ||
- !_updateDescriptorFromMbuf(packet, &tmpCommand, false) )
+ if ( (i == txCommandHead) || !_updateDescriptorFromMbuf( packet, &tmpCommand, false ) )
{
IOLog( "BMacEnet::_transmitPacket: Freeing transmit packet eh?\n" );
if (packet != txDebuggerPkt)
@@ -811,11 +806,13 @@
* It also sets the var debuggerPktSize which will break the polling loop.
*-------------------------------------------------------------------------*/
-void BMacEnet::_packetToDebugger(struct mbuf * packet, u_int size)
+void BMacEnet::_packetToDebugger( mbuf_t packet, u_int size )
{
debuggerPktSize = size;
- bcopy( mtod(packet, char *), debuggerPkt, size );
-}
+ bcopy( (char*)mbuf_data( packet ), debuggerPkt, size );
+ return;
+}/* end _packetToDebugger */
+
/*-------------------------------------------------------------------------
* _sendPacket
@@ -849,14 +846,15 @@
if ( txCommandHead != txCommandTail )
{
- IOLog( "BMacEnet::_sendPacket: Polled tranmit timeout - 1\n" );
+ IOLog( "BMacEnet::_sendPacket: Polled transmit timeout - 1\n" );
return;
}
/* Recycle the same buffer dedicated to KDB transmit. */
- bcopy( pkt, txDebuggerPkt->m_data, pkt_len );
- txDebuggerPkt->m_pkthdr.len = txDebuggerPkt->m_len = pkt_len;
+ bcopy( pkt, (char*)mbuf_data( txDebuggerPkt ), pkt_len );
+ mbuf_setlen( txDebuggerPkt, pkt_len );
+ mbuf_pkthdr_setlen( txDebuggerPkt, pkt_len );
/*
* Send the debugger packet. txDebuggerPkt must not be freed by
@@ -878,7 +876,7 @@
if ( txCommandHead != txCommandTail )
{
- IOLog( "BMacEnet::_sendPacket: Polled tranmit timeout - 2\n" );
+ IOLog( "BMacEnet::_sendPacket: Polled transmit timeout - 2\n" );
}
return;
@@ -955,9 +953,9 @@
bool BMacEnet::_receivePackets(bool fDebugger)
{
enet_dma_cmd_t tmpCommand;
- struct mbuf * packet;
+ mbuf_t packet;
u_int32_t i, j, last;
- int receivedFrameSize = 0;
+ long unsigned int receivedFrameSize = 0;
u_int32_t dmaCount[2], dmaResid[2], dmaStatus[2];
u_int32_t dmaChnlStatus;
u_int16_t rxPktStatus = 0;
@@ -1017,8 +1015,7 @@
/*
* Get the receive frame size as reported by the BMac controller
*/
- rxPktStatus = *(u_int16_t *)(mtod(rxMbuf[i], u_int32_t) +
- receivedFrameSize - 2);
+ rxPktStatus = *(u_int16_t*)((char*)mbuf_data( rxMbuf[i] ) + receivedFrameSize - 2);
receivedFrameSize = rxPktStatus & kRxLengthMask;
}
@@ -1028,7 +1025,7 @@
if ( receivedFrameSize < (kIOEthernetMinPacketSize - kIOEthernetCRCSize) ||
receivedFrameSize > (kIOEthernetMaxPacketSize) ||
rxPktStatus & kRxAbortBit ||
- _rejectBadUnicastPacket(mtod(rxMbuf[i], struct ether_header *))
+ _rejectBadUnicastPacket( (struct ether_header*)mbuf_data( rxMbuf[i] ) )
)
{
if (useNetif) netStats->inputErrors++;
@@ -1420,20 +1417,17 @@
*
*-------------------------------------------------------------------------*/
-bool
-BMacEnet::_updateDescriptorFromMbuf(struct mbuf * m, enet_dma_cmd_t *desc,
- bool isReceive)
+bool BMacEnet::_updateDescriptorFromMbuf( mbuf_t m, enet_dma_cmd_t *desc, bool isReceive )
{
u_int32_t nextDesc = 0;
u_int32_t waitMask = 0;
- int segments;
+ UInt32 segments;
struct IOPhysicalSegment segVector[2];
segments = mbufCursor->getPhysicalSegmentsWithCoalesce(m, segVector);
if ((!segments) || (segments > 2)) {
- IOLog( "BMac:_updateDescriptorFromMbuf error, %d segments\n",
- segments);
+ IOLog( "BMac:_updateDescriptorFromMbuf error, %d segments\n", (int)segments );
return false;
}
Index: AppleBMacEthernet.pbproj/project.pbxproj
===================================================================
RCS file: /cvs/root/IO/Drivers/Ethernet/AppleBMacEthernet/AppleBMacEthernet.pbproj/project.pbxproj,v
retrieving revision 1.11
diff -u -d -b -w -r1.11 project.pbxproj
--- project.pbxproj 2003/11/21 19:19:03 1.11
+++ project.pbxproj 2004/10/15 20:25:03
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 38;
+ objectVersion = 39;
objects = {
01833DA1FFD2F31611CA2B4D = {
fileRef = 020A3990FFB0FA9711CA2B4D;
@@ -12,25 +12,30 @@
};
};
01EE1BD3FFC9F1AA11CA2B4D = {
- isa = PBXBundleReference;
+ explicitFileType = wrapper.cfbundle;
+ isa = PBXFileReference;
path = AppleBMacEthernet.kext;
refType = 3;
+ sourceTree = BUILT_PRODUCTS_DIR;
};
01FC073DFFB0F85611CA2B4D = {
- buildRules = (
- );
buildSettings = {
COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
OPTIMIZATION_CFLAGS = "-O0";
+ ZERO_LINK = YES;
};
isa = PBXBuildStyle;
name = Development;
};
01FC073EFFB0F85611CA2B4D = {
- buildRules = (
- );
buildSettings = {
COPY_PHASE_STRIP = YES;
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ ZERO_LINK = NO;
};
isa = PBXBuildStyle;
name = Deployment;
@@ -48,50 +53,66 @@
020A398BFFB0FA9711CA2B4D = {
fileEncoding = 30;
isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
path = BMacEnetPrivate.h;
refType = 4;
+ sourceTree = "<group>";
};
020A398CFFB0FA9711CA2B4D = {
fileEncoding = 30;
isa = PBXFileReference;
+ lastKnownFileType = sourcecode.cpp.cpp;
path = BMacEnetPrivate.cpp;
refType = 4;
+ sourceTree = "<group>";
};
020A398DFFB0FA9711CA2B4D = {
fileEncoding = 30;
isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
path = BMacEnetMII.h;
refType = 4;
+ sourceTree = "<group>";
};
020A398EFFB0FA9711CA2B4D = {
fileEncoding = 30;
isa = PBXFileReference;
+ lastKnownFileType = sourcecode.cpp.cpp;
path = BMacEnetMII.cpp;
refType = 4;
+ sourceTree = "<group>";
};
020A398FFFB0FA9711CA2B4D = {
fileEncoding = 30;
isa = PBXFileReference;
+ lastKnownFileType = sourcecode.cpp.cpp;
path = BMacEnetHW.cpp;
refType = 4;
+ sourceTree = "<group>";
};
020A3990FFB0FA9711CA2B4D = {
fileEncoding = 30;
isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
path = BMacEnet.h;
refType = 4;
+ sourceTree = "<group>";
};
020A3991FFB0FA9711CA2B4D = {
fileEncoding = 30;
isa = PBXFileReference;
+ lastKnownFileType = sourcecode.cpp.cpp;
path = BMacEnet.cpp;
refType = 4;
+ sourceTree = "<group>";
};
020A3992FFB0FA9711CA2B4D = {
fileEncoding = 30;
isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
path = BMacEnetRegisters.h;
refType = 4;
+ sourceTree = "<group>";
};
020A3993FFB0FA9711CA2B4D = {
fileRef = 020A3992FFB0FA9711CA2B4D;
@@ -154,6 +175,8 @@
//083
//084
089C1669FE841209C02AAC07 = {
+ buildSettings = {
+ };
buildStyles = (
01FC073DFFB0F85611CA2B4D,
01FC073EFFB0F85611CA2B4D,
@@ -176,6 +199,7 @@
isa = PBXGroup;
name = AppleBMacEthernet;
refType = 4;
+ sourceTree = "<group>";
};
089C1673FE841209C02AAC07 = {
buildPhases = (
@@ -194,7 +218,7 @@
LIBRARY_SEARCH_PATHS = "";
MODULE_IOKIT = YES;
MODULE_NAME = com.apple.driver.AppleBMacEthernet;
- MODULE_VERSION = "\U00011.2.0f1";
+ MODULE_VERSION = "\U00011.3.0f1";
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
OTHER_REZFLAGS = "";
@@ -228,11 +252,11 @@
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
- <string>1.2.0</string>
+ <string>1.3.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1.2.0f1</string>
+ <string>1.3.0f1</string>
<key>IOKitPersonalities</key>
<dict>
<key>Name Matching</key>
@@ -253,15 +277,17 @@
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.iokit.IONetworkingFamily</key>
- <string>1.1</string>
+ <string>1.4.3</string>
<key>com.apple.kernel.bsd</key>
- <string>1.1</string>
+ <string>6.9.9</string>
<key>com.apple.kernel.iokit</key>
- <string>1.1</string>
+ <string>6.9.9</string>
<key>com.apple.kernel.libkern</key>
- <string>1.1</string>
+ <string>6.9.9</string>
<key>com.apple.kernel.mach</key>
- <string>1.1</string>
+ <string>6.9.9</string>
+ <key>com.apple.kpi.bsd</key>
+ <string>8.0.0b2</string>
</dict>
<key>OSBundleRequired</key>
<string>Network-Root</string>
@@ -320,6 +346,7 @@
isa = PBXGroup;
name = Resources;
refType = 4;
+ sourceTree = "<group>";
};
089C167DFE841241C02AAC07 = {
children = (
@@ -328,13 +355,16 @@
isa = PBXVariantGroup;
name = InfoPlist.strings;
refType = 4;
+ sourceTree = "<group>";
};
089C167EFE841241C02AAC07 = {
fileEncoding = 10;
isa = PBXFileReference;
+ lastKnownFileType = text.plist.strings;
name = English;
path = English.lproj/InfoPlist.strings;
refType = 4;
+ sourceTree = "<group>";
};
089C1680FE841241C02AAC07 = {
fileRef = 089C167DFE841241C02AAC07;
@@ -359,6 +389,7 @@
isa = PBXGroup;
name = Products;
refType = 4;
+ sourceTree = "<group>";
};
//190
//191
@@ -385,6 +416,7 @@
name = Source;
path = "";
refType = 4;
+ sourceTree = "<group>";
};
//240
//241
@@ -416,9 +448,6 @@
name = "bmac-installer";
passBuildSettingsInEnvironment = 1;
productName = "bmac-installer";
- settingsToExpand = 6;
- settingsToPassInEnvironment = 287;
- settingsToPassOnCommandLine = 280;
};
};
rootObject = 089C1669FE841209C02AAC07;
Index: English.lproj/InfoPlist.strings
===================================================================
RCS file: /cvs/root/IO/Drivers/Ethernet/AppleBMacEthernet/English.lproj/InfoPlist.strings,v
retrieving revision 1.5
diff -u -d -b -w -r1.5 InfoPlist.strings
Binary files /tmp/cvsXBdeBU and InfoPlist.strings differ
Generated by GNU enscript 1.6.4.