From mboxrd@z Thu Jan 1 00:00:00 1970 From: Douglas Gilbert Subject: [PATCH] scsi_mid_low_api.txt in lk 2.5.72+ Date: Wed, 18 Jun 2003 22:37:42 +1000 Sender: linux-scsi-owner@vger.kernel.org Message-ID: <3EF05D16.1060101@torque.net> Reply-To: dougg@torque.net Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------030503020207060300040505" Return-path: Received: from bunyip.cc.uq.edu.au ([130.102.2.1]:22535 "EHLO bunyip.cc.uq.edu.au") by vger.kernel.org with ESMTP id S265208AbTFRMYS (ORCPT ); Wed, 18 Jun 2003 08:24:18 -0400 Received: from torque.net (d-242-38.stlucia.uq.net.au [203.101.242.38]) by bunyip.cc.uq.edu.au (8.12.9/8.12.9) with ESMTP id h5ICbvhp017119 for ; Wed, 18 Jun 2003 22:37:57 +1000 (GMT+1000) List-Id: linux-scsi@vger.kernel.org To: linux-scsi@vger.kernel.org This is a multi-part message in MIME format. --------------030503020207060300040505 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit The scsi_mid_low_api.txt file describes the interface between the SCSI mid level and a low level driver, seen from the latter's perspective. It is found in the kernel source in the Documentation/scsi directory. The attachment incorporates a patch sent to me by Christoph and ideas in Mike Anderson's refcounting document (url?). It anticipates various patches that Christoph has sent to this list being accepted. These include: - addition of scsi_host_alloc() - renaming of struct SHT to struct scsi_host_template The attachment (gzipped due to its size) is a diff against lk 2.5.72 . A gzipped version of the document can be found at: http://www.torque.net/scsi/scsi_mid_low_api.txt.gz Idea: perhaps scsi_add_host() could have an extra argument to inhibit the scsi device scan (or alternatively a new field in struct scsi_host_template and struct Scsi_Host). Then LLDs that know about their devices hot (un)plugging can use scsi_add_device() and scsi_remove_device() at their leisure. [Actually ieee1394/sbp2.c is already doing this ...] Comments and corrections welcome. Doug Gilbert --------------030503020207060300040505 Content-Type: application/x-gzip; name="scsi_mid_low_api.txt2572dg.diff.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="scsi_mid_low_api.txt2572dg.diff.gz" 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 tZ3usfrFnxfK6qD//z+E0Enai+wAAA== --------------030503020207060300040505--