!*** MODULE $S2DGBDEF *** !DEC$ OPTIONS/ALIGN=(RECORDS=PACKED,COMMONS=PACKED)/NOWARN PARAMETER S2DGB$K_OP_XCDB32 = '00000001'X ! Diagnose opcode for 32-bit buffers PARAMETER S2DGB$K_OP_XCDB64 = '00000002'X ! Diagnose opcode for 64-bit buffers PARAMETER S2DGB$M_READ = '00000001'X PARAMETER S2DGB$M_DISCPRIV = '00000002'X PARAMETER S2DGB$M_SYNCHRONOUS = '00000004'X PARAMETER S2DGB$M_OBSOLETE1 = '00000008'X PARAMETER S2DGB$M_TAGGED_REQ = '00000010'X PARAMETER S2DGB$M_TAG = '000000E0'X PARAMETER S2DGB$K_TAG_POSITION = '00000005'X ! Bit offset of TAG bitfield PARAMETER S2DGB$K_SIMPLE = '00000000'X ! Simple queue tag PARAMETER S2DGB$K_ORDERED = '00000001'X ! Ordered queue tag PARAMETER S2DGB$K_EXPRESS = '00000002'X ! Head of Queue queue tag PARAMETER S2DGB$M_AUTOSENSE = '00000100'X PARAMETER S2DGB$M_EXT_LUN = '00000200'X PARAMETER S2DGB$K_XCDB32_LENGTH = '0000003C'X ! Diagnose buffer length, 32-bit buffers PARAMETER S2DGB$K_XCDB64_LENGTH = '0000003C'X ! Diagnose buffer length, 64-bit buffers PARAMETER S2DGB$K_XCDB_MIN_LENGTH = '0000003C'X ! Minimum s2gdb length PARAMETER S2DGB$K_EXT_XCDB_MIN_LENGTH = '00000044'X ! Length w/external LUN STRUCTURE /S2DGB/ INTEGER*4 S2DGB$L_OPCODE ! Diagnose opcode UNION MAP UNION MAP INTEGER*4 S2DGB$L_FLAGS END MAP MAP PARAMETER S2DGB$S_READ = 1 PARAMETER S2DGB$V_READ = 0 ! Read operation PARAMETER S2DGB$S_DISCPRIV = 1 PARAMETER S2DGB$V_DISCPRIV = 1 ! DiscPriv val in Identigy msg PARAMETER S2DGB$S_SYNCHRONOUS = 1 PARAMETER S2DGB$V_SYNCHRONOUS = 2 ! Synchronous xfers permitted PARAMETER S2DGB$S_OBSOLETE1 = 1 PARAMETER S2DGB$V_OBSOLETE1 = 3 ! (Ignored) PARAMETER S2DGB$S_TAGGED_REQ = 1 PARAMETER S2DGB$V_TAGGED_REQ = 4 ! Use TCQ PARAMETER S2DGB$S_TAG = 3 PARAMETER S2DGB$V_TAG = 5 ! Queue tag value type PARAMETER S2DGB$S_AUTOSENSE = 1 PARAMETER S2DGB$V_AUTOSENSE = 8 ! Return Autosense data PARAMETER S2DGB$S_EXT_LUN = 1 PARAMETER S2DGB$V_EXT_LUN = 9 ! Use externally-supplied LUN BYTE %FILL (2) END MAP END UNION END MAP END UNION UNION MAP ! Fields in this structure are valid if and ! only if s2dgb$l_opcode = S2DGB$K_OP_XCDB32 INTEGER*4 S2DGB$L_32CDBADDR ! 32-bit addr of Cmd Desc Blk INTEGER*4 S2DGB$L_32CDBLEN ! Length of CDB in bytes INTEGER*4 S2DGB$L_32DATADDR ! 32-bit addr of DATAIN or DATAOUT address INTEGER*4 S2DGB$L_32DATLEN ! Length of DATAIN or DATAOUT buffer in bytes INTEGER*4 S2DGB$L_32PADCNT ! Number of pad bytes required. INTEGER*4 S2DGB$L_32PHSTMO ! Phase timeout value in seconds INTEGER*4 S2DGB$L_32DSCTMO ! Disconnect timeout value in seconds INTEGER*4 S2DGB$L_32SENSEADDR ! 32-bit addr of Autosense buffer INTEGER*4 S2DGB$L_32SENSELEN ! Length of Autosense buffer in bytes INTEGER*4 S2DGB$L_RESERVED1 ! Reserved field INTEGER*4 S2DGB$L_RESERVED2 ! Reserved field INTEGER*4 S2DGB$L_RESERVED3 ! Reserved field INTEGER*4 S2DGB$L_RESERVED4 ! Reserved field END MAP MAP ! Fields in this structure are valid if and ! only if s2dgb$l_opcode = S2DGB$K_OP_XCDB64 INTEGER*8 S2DGB$PQ_64CDBADDR ! 64-bit addr of Cmd Desc Blk INTEGER*8 S2DGB$PQ_64DATADDR ! 64-bit addr of DATAIN or DATAOUT address INTEGER*8 S2DGB$PQ_64SENSEADDR ! 64-bit addr of Autosense buffer INTEGER*4 S2DGB$L_64CDBLEN ! Length of CDB in bytes INTEGER*4 S2DGB$L_64DATLEN ! Length of DATAIN or DATAOUT buffer in bytes INTEGER*4 S2DGB$L_64SENSELEN ! Length of Autosense buffer in bytes INTEGER*4 S2DGB$L_64PADCNT ! Number of pad bytes required. INTEGER*4 S2DGB$L_64PHSTMO ! Phase timeout value in seconds INTEGER*4 S2DGB$L_64DSCTMO ! Disconnect timeout value in seconds INTEGER*4 S2DGB$L_RESERVED_1 ! Reserved field END MAP END UNION INTEGER*4 S2DGB$Q_EXT_LUN(2) ! External LUN BYTE %FILL(0:3) END STRUCTURE ! S2DGB !DEC$ END OPTIONS