{ { Module: INQUIRYDEF { { Version: X-3 { { Copyright © Digital Equipment Corporation, 1991, 1995 All Rights Reserved. { Unpublished rights reserved under the copyright laws of the United States. { { The software contained on this media is proprietary to and embodies the { confidential technology of Digital Equipment Corporation. Possession, use, { duplication or dissemination of the software and media is authorized only { pursuant to a valid written license from Digital Equipment Corporation. { { RESTRICTED RIGHTS LEGEND Use, duplication, or disclosure by the U.S. { Government is subject to restrictions as set forth in Subparagraph { (c)(1)(ii) of DFARS 252.227-7013, or in FAR 52.227-19, as applicable. { {++ { { FACILITY: IOGEN { { ABSTRACT: { { This module defines the format of a SCSI INQUIRY packet. { { AUTHOR: Richard W. Critz, Jr. CREATION DATE: 10-Dec-1991 { { MODIFIED BY: { { X-3 RWC149 Richard W. Critz, Jr. 17-Feb-1995 { Rework the INQUIRY structure to match SCSI-2. Add a LUN { field to the SPTB. { { X-2 RWC079 Richard W. Critz, Jr. 16-Mar-1992 { Add definition of SCSI Poll Thread Block (SPTB). { { X-1 RWC057 Richard W. Critz, Jr. 10-Dec-1991 { Original. { {-- module $INQUIRYDEF; aggregate INQUIRY structure prefix INQUIRY$ typedef; HW_ID_OVERLAY union fill; HW_ID longword unsigned; HW_ID_FIELDS structure fill; DEV_TYPE structure byte unsigned; /* device type DEV_TYPE bitfield mask length 5; QUALIFIER bitfield mask length 3; end DEV_TYPE; constant (DISK ,TAPE ,PRINTER ,CPU ,WORM ,CDROM ,SCANNER ,OPTICAL ,CHANGER ,COMM ) equals 0 increment 1 prefix SCSI$ tag K; MEDIA_OVERLAY union fill; MEDIA byte unsigned; /* media type MEDIA_BITS structure fill; SPARE1 bitfield length 7 fill; /* unused REMOVABLE bitfield mask; /* media is removable end MEDIA_BITS; end MEDIA_OVERLAY; VERSION_OVERLAY union fill; VERSION byte unsigned; /* ANSI version VERSION_BITS structure fill; ANSI_VERSION bitfield mask length 3; end VERSION_BITS; end VERSION_OVERLAY; FORMAT_OVERLAY union fill; FORMAT byte unsigned; /* data format FORMAT_BITS structure fill; RD_FORMAT bitfield mask length 4; /* response data format end FORMAT_BITS; end FORMAT_OVERLAY; end HW_ID_FIELDS; end HW_ID_OVERLAY; ADD_LENGTH byte unsigned; /* additional length RESERVED1 byte dimension 2 fill; CAPABILITIES byte unsigned; /* things this device can do VENDOR_ID character length 8; /* DEC vendor id PRODUCT_ID character length 16; /* DEC product id REV_LEVEL character length 4; /* OEM vendor id THISSN character length 10; /* HSZ "this controller sn" OTHRSN character length 10; /* HSZ other controller sn HSZRES character length 40; /* HSZ reserved HSZSTAT character length 1; /* HSZ status /* In HSZSTAT, /* bits 0-3 are failover controller target number, bit 4 is "other stat", /* and bit 7 is 32 LUN support bit LUNMSK character length 4; /* HSZ luns owned mask HSZALC character length 2; /* HSZ device alloc class constant "LENGTH" equals . prefix INQUIRY$ tag K counter #inquirybuflen; end INQUIRY; end_module $INQUIRYDEF; module $SPTBDEF; aggregate SPTBDEF structure prefix SPTB$; SIZE longword unsigned; /* actual size allocated LKID longword unsigned; /* thread's SCSIPOLL lock id CHANNEL longword unsigned; /* thread's channel to the SCSI port RETRIES longword; /* number of retries left on this port IOSB_OVERLAY union fill; IOSB quadword; /* IOSB for polling operation IOSB_FIELDS structure fill; STATUS word unsigned; /* completion status RETLEN word unsigned; /* bytes read from port end IOSB_FIELDS; end IOSB_OVERLAY; SCSI_ID longword unsigned; /* current SCSI ID to poll in thread LUN longword unsigned; /* current LUN to poll in thread BUSARRAY pointer; /* address of CRB's busarray entry list SPARE longword fill; {pad to quadword boundary INQUIRYBUF character length #inquirybuflen; /* buffer for SCSI INQUIRY command constant "LENGTH" equals . prefix SPTB$ tag K; end SPTBDEF; end_module $SPTBDEF;