*** UNIX MANUAL PAGE BROWSER ***

A Nergahak database for man pages research.

Navigation

Directory Browser

1Browse 4.4BSD4.4BSD
1Browse Digital UNIXDigital UNIX 4.0e
1Browse FreeBSDFreeBSD 14.3
1Browse MINIXMINIX 3.4.0rc6-d5e4fc0
1Browse NetBSDNetBSD 10.1
1Browse OpenBSDOpenBSD 7.7
1Browse UNIX v7Version 7 UNIX
1Browse UNIX v10Version 10 UNIX

Manual Page Search

Manual Page Result

0 Command: scsi | Section: 4 | Source: UNIX v10 | File: scsi.4
SCSI(4) Kernel Interfaces Manual SCSI(4) NAME scsi - SCSI interface SYNOPSIS #include <scsi.h> DESCRIPTION The special file provides a low level interface to a SCSI bus. Com- mands are transmitted to the bus by write; the response to each command is received with read(2). The format of a command is unsigned long tran_id; /* transaction id */ unsigned char target; /* SCSI id of target device */ unsigned char flags; /* flags for this transaction */ unsigned long nreturn; /* number of bytes to be read back */ char cmd[10]; /* SCSI command */ char data[]; /* optional data */ Thus, to send n bytes of data, the byte count for write should be n+20. Possible flags are SCSI_WR (data goes from host to SCSI), SCSI_RD (data goes from SCSI to host), SCSI_BRESET (reset the SCSI bus), SCSI_RESET (reset the controller), and SCSI_SENSE (return extended sense data on error). For most controllers, SCSI_BRESET implies SCSI_RESET. Flags are OR'ed together, and there must be exactly one of SCSI_WR and SCSI_RD. The SCSI command should terminate within a small time (cur- rently 10 seconds); a longer limit (300 seconds) can be specified by using SCSI_LTMOUT. The data read is structured as unsigned long tran_id; /* transaction id */ unsigned char status; /* scsi status byte */ unsigned char message; /* scsi message byte */ unsigned char flags; /* flags for this transaction */ unsigned char c_type; /* 1=td 2=us */ unsigned short c_reg1; /* td=sa, us=csr */ unsigned short c_reg2; /* td=mscp, us=per */ unsigned char sense[22]; /* extended sense data */ char pad[2]; char data[]; /* any data */ Thus, to read n bytes of data. the byte count to read should be n+36. If flags has the SCSI_CERR bit set, there was a controller error, which is described by the c_ fields. The values of csr (or sa) and per (or mscp) are documented in the interface manual for the U.S. Design 1158 Unibus controller (or T.D. Systems Viking controller). If the SCSI_SENSE bit was set in the write, and the status byte shows a check condition, an attempt is made to get extended sense information. If the attempt succeeds the SCSI_SENSE is set in flags. Otherwise, the status and message bytes for the failed attempt are placed in sense[0] and sense[1] respectively. The transaction id identifies which write caused the results for this read. This will become more important when multiple simultaneous transactions are allowed. FILES SEE ALSO scsish(8) SCSI(4)

Navigation Options