Short: Snoop accesses to SCSI devices + others Author: thorfdbg@alumni.tu-berlin.de (Thomas Richter) Uploader: thorfdbg alumni tu-berlin de (Thomas Richter) Type: disk/moni Version: 1.08 Architecture: m68k-amigaos >= 2.0.4 This tiny program snoops accesses to devices and prints the device commands as well as the answers of the device over the serial port. Its outputs can be made visible either by an external terminal, connected to the serial port at 9600 baud, 8 bit, 1 stop bit, or by the standard tool Sushi or its re- placement Sashimi. SCSISnoop mainly useful to debug hardware drivers and filing systems; it is mainly intended to make SCSI device commands visible, even though it knows all standard scsi.device and the TD64 and NSD commands as well. If a SCSI command is issued, SCSISnoop prints the full command name if available, even though it does not yet attempt to make its parameters readable. _____________________________________________________________________________ Changes made for 1.08: - Many SCSI commands are now decoded by name. - For read type commands, it prints now the number of received bytes, not the number of requested bytes. - In case the output is truncated, SCSISnoop prints now the total number of bytes received. _____________________________________________________________________________ Changes made for 1.05: - Added the ADRMASK, LENMASK and MINLEN options to filter out only interesting IO transfers. - Added the PLAINIO switch to disable snooping all enhanced device features like SCSI direct IO. - SCSISnoop does no longer print the IO data in case MAXDUMP is set to zero. - SCSISnoop forgot to print the IO data for some commands as TD_READ64. - SCSISnoop haven't kept NSD apart from TD64, and printed both as TD64 commands. - SCSISnoop did not snoop some of the 64 bit read commands. Thanks to Niels for the suggestions! _____________________________________________________________________________ Changes made for 1.01: - The maximal size of the dumped data is now adjustable by the MAXDUMP option. - SCSISnoop prints now an ellipsis "..." in case the data is longer than the size selected by MAXDUMP and SCSISnoop cut the data size down. _____________________________________________________________________________ Synopsis: SCSISnoop SCSIONLY/S,FILTERRW/S,DEVICE/A,UNIT/A/N,FLAGS/N,MAXDUMP/K/N ADRMASK/K/N,LENMASK/K/N,MINLEN/K/N,PLAINIO/S SCSIONLY If this switch is given, SCSISnoop prints only HD_SCSICMDs and the device replies; standard exec commands are not snooped. FILTERRW If set, SCSISnoop filters the SCSI READ(6/10), WRITE(6/10) WRITE_AND_VERIFY(6/10) commands out, they are not snooped. DEVICE This specifies the name of the exec device to be snooped, e.g. "gvpscsi.device","scsi.device","cybscsi.device". UNIT The unit number to snoop. This is in most cases the SCSI ID of the device to be snooped. FLAGS A flags value for opening the device. This defaults to zero and should be left alone in most cases. MAXDUMP The maximal number of bytes SCSISnoop dumps over the line, defaults to 64. ADRMASK Dumps the IO transfer only if the base address of the buffer and-ed with this mask is non-null. Hence, you may log transfers to odd addresses only by setting this mask to 1. Defaults to -1, i.e. log all addresses. LENMASK Dumps the IO transfer only if the transfer lenght of the request and-ed with this mask is non-null. Defaults to -1. MINLEN Dumps the IO transfer only if the lenght of the request is larger than this size. Defaults to 0, i.e. dump everything. PLAINIO Dump only standard IO request and leave all extensions like SCSI DIRECT alone. Only exec requests like READ and WRITE and their 64 bit extensions are logged. MOTOR or SEEK commands, and SCSI DIRECT commands are ignored. _____________________________________________________________________________ The THOR-Software Licence (v2, 24th June 1998) This License applies to the computer programs known as "SCSISnoop". The "Program", below, refers to such program. The "Archive" refers to the package of distribution, as prepared by the author of the Program, Thomas Richter. Each licensee is addressed as "you". The Program and the data in the archive are freely distributable under the restrictions stated below, but are also Copyright (c) Thomas Richter. Distribution of the Program, the Archive and the data in the Archive by a commercial organization without written permission from the author to any third party is prohibited if any payment is made in connection with such distribution, whether directly (as in payment for a copy of the Program) or indirectly (as in payment for some service related to the Program, or payment for some product or service that includes a copy of the Program "without charge"; these are only examples, and not an exhaustive enumeration of prohibited activities). However, the following methods of distribution involving payment shall not in and of themselves be a violation of this restriction: (i) Posting the Program on a public access information storage and retrieval service for which a fee is received for retrieving information (such as an on-line service), provided that the fee is not content-dependent (i.e., the fee would be the same for retrieving the same volume of information consisting of random data). (ii) Distributing the Program on a CD-ROM, provided that a) the Archive is reproduced entirely and verbatim on such CD-ROM, including especially this licence agreement; b) the CD-ROM is made available to the public for a nominal fee only, c) a copy of the CD is made available to the author for free except for shipment costs, and d) provided further that all information on such CD-ROM is redistributable for non-commercial purposes without charge. Redistribution of a modified version of the Archive, the Program or the contents of the Archive is prohibited in any way, by any organization, regardless whether commercial or non-commercial. Everything must be kept together, in original and unmodified form. Limitations. THE PROGRAM IS PROVIDED TO YOU "AS IS", WITHOUT WARRANTY. THERE IS NO WARRANTY FOR THE PROGRAM, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. IF YOU DO NOT ACCEPT THIS LICENCE, YOU MUST DELETE THE PROGRAM, THE ARCHIVE AND ALL DATA OF THIS ARCHIVE FROM YOUR STORAGE SYSTEM. YOU ACCEPT THIS LICENCE BY USING OR REDISTRIBUTING THE PROGRAM. Thomas Richter _____________________________________________________________________________ So long, Thomas Richter (April 2018)