On Wed, Mar 30, 2011 at 05:20:24PM -0700, Dan Williams wrote: > I think we were already on this path, but now just need to formally > acknowledge and accelerate in this direction. Let me outline where I > think we are and a rough outline of how to get to the removal of the > wrapper. > > 1/ Complete the removal of all OS agnostic indirections in the core. > We have done quite a bit here to call kernel and lldd facilities > directly, but still need to get rid of intel_{sas|sata|scsi}.h and > duplicated utilities before this step is complete. > > 2/ Make the core data structures member position independent (so we > can start adding / removing fields at will). That means getting rid > of unnecessary casting (already started), the base_ structures (you > started this) and the _{get|set}_association macros. > > 3/ Unify the data structures so they have the same lifetimes. Where > the lldd has a member that duplicates a core member teach it to use > the core version. Quick example isci_phy.aif and > scic_sds_phy.sas.identify_address_frame_buffer. > > 4/ Remove the lldd/core data structure distinction. > > Probably missing some sub-steps between three and four, but that is > the general idea. Yes, that's about the required stepts. In general I'd try to do as much as possible of the data structures before the procedural part, as that's the design that really matters. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html