site_archiver@lists.apple.com Delivered-To: darwin-kernel@lists.apple.com Godfrey On Dec 15, , at 23:30, Yogesh P wrote: Hi, _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-kernel mailing list (Darwin-kernel@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-kernel/site_archiver%40lists.a... You probably want to go over the the ata-scsi list as they have the domain expertise. However I can only answer your question with a question of my own. The correct answer depends on what you want to do with the API. We already have a common way of talking to all of these devices through the IOMedia/IOBlockStorage APIs. So maybe your work has already been done for you. Finally an observation. If this code is intended for a single application then it is FAR, FAR better to write your 'independant' layer out in user land rather than the kernel, using native APIs. This is a whole lot better to debug and you don't tie up kernel resources unnecessarily. I am working on the code which will provide a common way of communicating with mass storage devices(SCSI, SATA, USB, FireWire etc.). I am trying to implement this module in device service layer, as the document "Writing Drivers for Mass Storage Devices" by Apple specify that the device service layer provides generic block storage driver irrespective of transport layer and storage device underneath. Can any one guide me whether device service layer is the correct place for achieving the common way of communicating with all types of mass storage devices? This email sent to site_archiver@lists.apple.com