TODO : ------ - Rewrite handler_set to allow sub regions, minimums, etc without having to register 100 callbacks for 100 quad reads. - Use handler_set (with NULL cb) to create a higher level _unreg. - Move all mbuf code to if_fw.c. Make if_fw use the generic read/write/inreg and then it can translate the packets into the appropriate mbuf's. - Need a tlabel alloc routine within fwohci and a way to use 64 tlabel's per node (rather than a global set of 64 as it's used now). - Flesh out the documentation of the high level API in fwohci.c (fwlynx will need to implement the same thing so this should be more than just comments in fwohci.c). - Track down issues where multiple hosts plugged into a firewire hub don't init/see all devices on resets sometimes. - Should do topology maps, speed maps, the various bus managers, etc. - Implement a real fwscsi scsibus, with each attached device as a new target/lun. Not a new scsibus per device. - Implement proper handlers with either 1 main thread, or timeouts and callbacks. ============================================================================== DONE : ------ - Move SBP2 routines into their own file. - Rewrite ROM parsing/validation. Unroll all recursion, add ref counting, path elimination, etc. - Move rom routines into their own files to allow easier cross usage. - Write sub match setup for fwnode/fwscsi so matching devices listed in the ROM can be done via autoconf. - Remove all of the devcap stuff. - SBP2 needs a complete API written up: logins, ORB management/allocation, etc. (basic routines have been implemented). - Add locator detection/usage into fwohci code. - Change all FW_DEBUG wrapped printf's to DPRINTF macro's. - Ack errors from a TX complete should get passed up to any registered callbacks. - Make fwohci detach correctly (for cardbus/etc type interfaces).