Annotation of researchv10dc/man/adm/man4/scsi.4, revision 1.1.1.1

1.1       root        1: .TH SCSI 4
                      2: .CT 2 sa
                      3: .SH NAME
                      4: scsi \- SCSI interface
                      5: .SH SYNOPSIS
                      6: .B "#include <scsi.h>"
                      7: .SH DESCRIPTION
                      8: The special file
                      9: .F /dev/scsi
                     10: provides a low level interface to a SCSI bus.
                     11: Commands are transmitted to the bus by
                     12: .IR write ;
                     13: the response to each command is received with
                     14: .IR read (2).
                     15: The format of a command is
                     16: .IP
                     17: .EX
                     18: .ta \w'unsigned char scsistatus;  'u
                     19: unsigned long tran_id; /* transaction id */
                     20: unsigned char target;  /* SCSI id of target device */
                     21: unsigned char flags;   /* flags for this transaction */
                     22: char cmd[10];  /* SCSI command */
                     23: char data[];   /* optional data */
                     24: .EE
                     25: .LP
                     26: Thus, to send 
                     27: .I n
                     28: bytes of data, the byte count for
                     29: .I write
                     30: should be
                     31: .IR n +16.
                     32: Possible flags are
                     33: .B SCSI_WR
                     34: (data goes from host to SCSI),
                     35: .B SCSI_RD
                     36: (data goes from SCSI to host),
                     37: .B SCSI_BRESET
                     38: (reset the SCSI bus),
                     39: .B SCSI_RESET
                     40: (reset the controller),
                     41: and
                     42: .B SCSI_SENSE
                     43: (return extended sense data on error).
                     44: For most controllers, 
                     45: .B SCSI_BRESET
                     46: implies
                     47: .BR SCSI_RESET .
                     48: Flags are OR'ed together, and there must be exactly one of
                     49: .B SCSI_WR
                     50: and
                     51: .BR SCSI_RD .
                     52: .LP
                     53: The data read is structured as
                     54: .IP
                     55: .EX
                     56: unsigned long tran_id; /* transaction id */
                     57: unsigned char status;  /* scsi status byte */
                     58: unsigned char message; /* scsi message byte */
                     59: unsigned char flags;   /* flags for this transaction */
                     60: unsigned char c_type;  /* 1=td 2=us */
                     61: unsigned short c_reg1; /* td=sa, us=csr */
                     62: unsigned short c_reg2; /* td=mscp, us=per */
                     63: unsigned char sense[22];       /* extended sense data */
                     64: char data[];   /* any data */
                     65: .EE
                     66: .LP
                     67: Thus, to read 
                     68: .I n
                     69: bytes of data. the byte count to
                     70: .I read
                     71: should be
                     72: .IR n +34.
                     73: If
                     74: .I flags
                     75: has the
                     76: .B SCSI_CERR
                     77: bit set,
                     78: there was a controller error, which is described by the
                     79: .B c_
                     80: fields.
                     81: The values of
                     82: .B csr
                     83: (or
                     84: .BR sa )
                     85: and
                     86: .B per
                     87: (or
                     88: .BR mscp )
                     89: are documented in the interface manual for the U.S. Design 1158
                     90: Unibus controller (or T.D. Systems Viking controller).
                     91: If the
                     92: .B SCSI_SENSE
                     93: bit was set in the 
                     94: .I write,
                     95: and the status byte shows a check condition,
                     96: an attempt is made to get extended sense information.
                     97: If the attempt succeeds the
                     98: .B SCSI_SENSE
                     99: is set in
                    100: .I flags.
                    101: Otherwise, the status and message bytes for the failed
                    102: attempt are placed in
                    103: .B sense[0]
                    104: and
                    105: .B sense[1]
                    106: respectively.
                    107: .PP
                    108: The transaction id identifies which
                    109: .I write
                    110: caused the results for this
                    111: .IR read .
                    112: This will become more important when multiple simultaneous transactions
                    113: are allowed.
                    114: .SH FILES
                    115: .F /dev/scsi
                    116: .SH "SEE ALSO"
                    117: .IR scsish (8)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.