summaryrefslogtreecommitdiffstats
path: root/sys/scsi/scsiconf.h
diff options
context:
space:
mode:
authorrgrimes <rgrimes@FreeBSD.org>1993-06-12 14:58:17 +0000
committerrgrimes <rgrimes@FreeBSD.org>1993-06-12 14:58:17 +0000
commit25062ba061871945759b3baa833fe64969383e40 (patch)
tree2d1c31051ed0dbaad984013c9fe695b1a01e1c39 /sys/scsi/scsiconf.h
parentf078b88a160c467761b3f3641f05dfd0aa3f7753 (diff)
downloadFreeBSD-src-25062ba061871945759b3baa833fe64969383e40.zip
FreeBSD-src-25062ba061871945759b3baa833fe64969383e40.tar.gz
Initial import, 0.1 + pk 0.2.4-B1
Diffstat (limited to 'sys/scsi/scsiconf.h')
-rw-r--r--sys/scsi/scsiconf.h113
1 files changed, 113 insertions, 0 deletions
diff --git a/sys/scsi/scsiconf.h b/sys/scsi/scsiconf.h
new file mode 100644
index 0000000..c36efde
--- /dev/null
+++ b/sys/scsi/scsiconf.h
@@ -0,0 +1,113 @@
+/*
+ * Written by Julian Elischer (julian@tfs.com)
+ * for TRW Financial Systems for use under the MACH(2.5) operating system.
+ *
+ * TRW Financial Systems, in accordance with their agreement with Carnegie
+ * Mellon University, makes this software available to CMU to distribute
+ * or use in any manner that they see fit as long as this message is kept with
+ * the software. For this reason TFS also grants any other persons or
+ * organisations permission to use or modify this software.
+ *
+ * TFS supplies this software to be publicly redistributed
+ * on the understanding that TFS is not responsible for the correct
+ * functioning of this software in any circumstances.
+ *
+ * PATCHES MAGIC LEVEL PATCH THAT GOT US HERE
+ * -------------------- ----- ----------------------
+ * CURRENT PATCH LEVEL: 1 00098
+ * -------------------- ----- ----------------------
+ *
+ * 16 Feb 93 Julian Elischer ADDED for SCSI system
+ *
+ */
+
+/*
+ * Ported to run under 386BSD by Julian Elischer (julian@tfs.com) Sept 1992
+ */
+
+/***********************************************\
+* these calls are called by the high-end *
+* drivers to get services from whatever low-end *
+* drivers they are attached to *
+\***********************************************/
+struct scsi_switch
+{
+ int (*scsi_cmd)();
+ void (*scsi_minphys)();
+ int (*open_target_lu)();
+ int (*close_target_lu)();
+ long int (*adapter_info)(); /* see definitions below */
+ u_long spare[3];
+};
+#define AD_INF_MAX_CMDS 0x000000FF /* maximum number of entries
+ queuable to a device by
+ the adapter */
+/* 24 bits of other adapter charcteristics go here */
+
+/***********************************************\
+* The scsi debug control bits *
+\***********************************************/
+extern int scsi_debug;
+#define PRINTROUTINES 0x01
+#define TRACEOPENS 0x02
+#define TRACEINTERRUPTS 0x04
+#define SHOWREQUESTS 0x08
+#define SHOWSCATGATH 0x10
+#define SHOWINQUIRY 0x20
+#define SHOWCOMMANDS 0x40
+
+
+/********************************/
+/* return values for scsi_cmd() */
+/********************************/
+#define SUCCESSFULLY_QUEUED 0
+#define TRY_AGAIN_LATER 1
+#define COMPLETE 2
+#define HAD_ERROR 3
+
+struct scsi_xfer
+{
+ struct scsi_xfer *next; /* when free */
+ int flags;
+ u_char adapter;
+ u_char targ;
+ u_char lu;
+ u_char retries; /* the number of times to retry */
+ long int timeout; /* in miliseconds */
+ struct scsi_generic *cmd;
+ int cmdlen;
+ u_char *data; /* either the dma address OR a uio address */
+ int datalen; /* data len (blank if uio) */
+ int resid;
+ int (*when_done)();
+ int done_arg;
+ int done_arg2;
+ int error;
+ struct buf *bp;
+ struct scsi_sense_data sense;
+};
+/********************************/
+/* Flag values */
+/********************************/
+#define SCSI_NOSLEEP 0x01 /* Not a user... don't sleep */
+#define SCSI_NOMASK 0x02 /* dont allow interrupts.. booting */
+#define SCSI_NOSTART 0x04 /* left over from ancient history */
+#define ITSDONE 0x10 /* the transfer is as done as it gets */
+#define INUSE 0x20 /* The scsi_xfer block is in use */
+#define SCSI_SILENT 0x40 /* Don't report errors to console */
+#define SCSI_ERR_OK 0x80 /* An error on this operation is OK. */
+#define SCSI_RESET 0x100 /* Reset the device in question */
+#define SCSI_DATA_UIO 0x200 /* The data address refers to a UIO */
+#define SCSI_DATA_IN 0x400 /* expect data to come INTO memory */
+#define SCSI_DATA_OUT 0x800 /* expect data to flow OUT of memory */
+#define SCSI_TARGET 0x1000 /* This defines a TARGET mode op. */
+/********************************/
+/* Error values */
+/********************************/
+#define XS_NOERROR 0x0 /* there is no error, (sense is invalid) */
+#define XS_SENSE 0x1 /* Check the returned sense for the error */
+#define XS_DRIVER_STUFFUP 0x2 /* Driver failed to perform operation */
+#define XS_TIMEOUT 0x03 /* The device timed out.. turned off? */
+#define XS_SWTIMEOUT 0x04 /* The Timeout reported was caught by SW */
+#define XS_BUSY 0x08 /* The device busy, try again later? */
+
OpenPOWER on IntegriCloud