[plain text]
AppleUSBIrDA Change Log
5/1/01
initial checkin
version ??
submitted to puma, radar ????
IrDAComm - added command gate to prevent concurrent execution
Debugging, added/changed logging in
IrDADebugging.h, IrEvent, IrStream, CBufferSegment, CDynamicArray
Commented out some cleanup attempt code in irevent
(was panic'ing, might put back now)
Misc cleanup (cosmetic)
CIrDevice, IrLAP, IrLAPConn, IrLMP, CIrLSAP
5/15/01 - guyton
added statistics call to user client interfaces, cleaned up the stats implementation a little
6/28/01 - russw/guyton
added AppleSCCIrDA - first pass at a serial driver
moved things around to build both USB and SCC kexts
USB code changed to allow AppleIrDA.h superclass.
7/1/01 - guyton
moved the AppleUSBIrDA code to be a driver again, renamed it to
be AppleUSBIrDADriver. New glue class called AppleUSBIrDA that
lives under AppleIrDA (and thus under IOSerialStreamSync). The problem
was that IOSerialStreamSync requires a driver (IOSerialDriverSync) when
it's attached, and the SCC stuff needs to live on the client side, so
the USB code has to live on both sides of the driver/client fence.
also reworked the way the nub and resources were allocated in the usb
side, so we can use the stub class as our nub when letting the BSD stuff
attach to us, and we need the nub around to let the user-client code
connect and start/stop irda.
7/2/01 moved the newUserClient code to a small nub called AppleIrDA so that client
code can have a single, simple name to connect with.
merged in kdp code into dumplog. use requires an arp entry and the hex address
of the info block of irda (logged to system.log at irda start time).
7/24/01
lots of changes to usb code to recover from broken hardware
changes to usb code to create bsd device at start, and start irda when bsd open or user client starts
changes to irglue to send async messages to inform clients of irda state changes
8/6/01
new scc code. has new start/stop logic, safter keylargo register access,
better pseudo-tty code, adaptive serial driver rx timeouts, uses thread
calls to let serial driver workloop run properly.
9/18/01
turned debugging on in the checked-in code. be sure and turn off before production.
added sanity checks to keep from issuing multiple usb bulk-in reads
call new keylargo enablescc routine to turn on (and off) the irda clocks
fix bug in 'wait in open' in usb acquire port. wasn't waiting if usb resume works
connect to hp netbeamir if debug build and no ircomm device in range
allow to run on tibooks and pismos. 101 doesn't have PE support yet.
10/4/01
fixed secondary mode
AppleSCCIrDA/AppleSCCIrDA.cpp
tx_thread: comment about not needed a delay for speed changing, code still there
speed_change_thread: added 20ms delay to let tx fifo empty before changing speed
speed_change_thread: call irda speed-change-complete after setting speed
AppleUSBIrDA/AppleUSBIrDA.h
port's readActive moved and renamed to fReadActive.
fWriteActive added.
AppleUSBIrDA/AppleUSBIrDA.cpp
SetSpeed: calls StartTransmit w/empty buffer to change speed.
start: init fReadActive, fWriteActive to false.
interruptReadComplete: new sanity checks, new name for read complete flag.
dataReadComplete: new name for read complete flag
dataWriteComplete: check/update fWriteActive.
dataWriteComplete: if single byte, call SetSpeedComplete and return.
startPipes: new name for fReadActive.
StartTransmit: check/update fWriteActive.
SetStructureDefaults: read active not in the port structure anymore.
IrDA/IAS/IrIASServer.cpp
NextState: questionable change of XASSERT to require (&fRequestEvent)
IrDA/IO/CIrDevice.h
SetSpeedComplete(Boolean worked) -- added
IrDA/IO/CIrDevice.cpp
moved call to IrDA's set speed compete from ChangeSpeed to SetSpeedComplete
IrDA/IrComm/IrComm.h
Listen() added
IrDA/IrComm/IrComm.cpp
Init: change class to be IrDA:IrCOMM so client can be server tinytp too
Listen: new
TTPConnectIndication: new listen complete code
TTPAcceptDoneIndication: new accept complete code
IrDA/IrGlue.h
SetSpeedComplete - new
IrDA/IrGlue.cpp
Init: calls fNameServer->ListenStart() to get the IAS server started
SetSpeedComplete: glue to IrDevice SetSpeedComplete.
IrDA/Stack/IrLAP.cpp
disconnected listen request: no longer do 5 second timer and abort i/o
replyStateEvent: no longer do 5 second timer and abort i/o
IrDA/Streams/CIrLSAP.cpp
DiscoverComplete - debugging added
ListenComplete - debugging added
IrDAComm.h
new states: listening, stopping listen
new SetSpeedComplete for driver to call
updated comments
IrDAComm.cpp
new SetSpeedCompete, calls IrDA through the command gate
ConnectionStatus: seriously more complex, lots of work now.
TimerRoutine: state connecting -> timing out so go to stopping listen
TimerRoutine: state listening -> stop listen
TimerRoutine: stopping listen: stuck? note 40 second timeout on irda!
DoSomething: added SetSpeedComplete, call runqueue afterwards too.
Added clean disconnect state and hooked up to power management
IrDAComm.cpp
new state engine routine to combine the state logic and make
it a lot easier to follow.
CIrLSAP.cpp
removed duplicate DebugLog definition
IrDADebug.h
new var-args style of DebugLog
IrDAComm.h, .cpp
new stop thread and states to do quick disconnect on stop
added IrDA: and filename to assert messages.
IrLapConn.h, .cpp
DoIdleDisconnect added to stop idle disconnect timer and fire
off the disconnect if idle w/out waiting another second.
IrGlue.h, .cpp
pass through call for DoIdleDisconnect so IrDAComm can call it.
AppleSCCIrDA.cpp
moved three thread_call alloc's to start routine.
added three tread_call free's to stop routine
new routines/calls to link into power manager
AppleUSBIrDA.cpp, .h
new routines/calls to link into power manager and do sleep/wakeup
10/26/01
IrDADebugging.h
turned off debugging for production builds
fixed DebugLog macro when debugging is off to be varargs style
6/24/02
AppleSCCIrDA.cpp
added IOSleeps after sending PD_E_ACTIVE (false) to serial driver.
was getting crash in AppleSCCSerial when read completed after release.
added upper limit to how long to wait for initial connect during open.
IrLAP.cpp.h, IrGlue.*
init myQOS and peerQOS at init time. was crashing with NULL in passive connect.
don't double-enqueue pending discover request on connection complete (double free)
IrEvent.cpp
avoid panic if double-release on event block
CTimer.cpp
stop timer if restarted without an explicit cancel timer first.
Generated by GNU enscript 1.6.4.