code: 9ferno

ref: 6bb619c8db2867ddd9cd19c0aec05065f5ee0cae
dir: /module/scsiio.m/

View raw version
#
# adapted from /sys/include/disk.h on Plan 9: subject to the Lucent Public License 1.02
#
ScsiIO: module
{
	PATH: con "/dis/lib/scsiio.dis";

	# SCSI interface
	Scsi: adt {
		lock:	chan of int;
		inquire:	string;
		rawfd:	ref Sys->FD;
		nchange:	int;
		changetime:	int;

		open:	fn(f: string): ref Scsi;
		rawcmd:	fn(s: self ref Scsi, c: array of byte, d: array of byte, io: int): int;
		cmd:		fn(s: self ref Scsi, c: array of byte, d: array of byte, io: int): int;
		ready:	fn(s: self ref Scsi): int;
	};

	Sread, Swrite, Snone: con iota;

	scsierror:	fn(asc: int, ascq: int): string;

	init:	fn(verbose: int);
};