/********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:29:54 by OpenVMS SDL EV3-3 */ /* Source: 30-MAR-2010 17:29:22 $1$DGA7274:[STARLET_H.SRC]STARDEFQZ.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $S2DGBDEF ***/ #ifndef __S2DGBDEF_LOADED #define __S2DGBDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif #define s2dgb S2DGB #define S2DGB$K_OP_XCDB32 1 /* Diagnose opcode for 32-bit buffers */ #define S2DGB$K_OP_XCDB64 2 /* Diagnose opcode for 64-bit buffers */ #define S2DGB$M_READ 0x1 #define S2DGB$M_DISCPRIV 0x2 #define S2DGB$M_SYNCHRONOUS 0x4 #define S2DGB$M_OBSOLETE1 0x8 #define S2DGB$M_TAGGED_REQ 0x10 #define S2DGB$M_TAG 0xE0 #define S2DGB$K_TAG_POSITION 5 /* Bit offset of TAG bitfield */ #define S2DGB$K_SIMPLE 0 /* Simple queue tag */ #define S2DGB$K_ORDERED 1 /* Ordered queue tag */ #define S2DGB$K_EXPRESS 2 /* Head of Queue queue tag */ #define S2DGB$M_AUTOSENSE 0x100 #define S2DGB$M_EXT_LUN 0x200 #define S2DGB$K_XCDB32_LENGTH 60 /* Diagnose buffer length, 32-bit buffers */ #define S2DGB$K_XCDB64_LENGTH 60 /* Diagnose buffer length, 64-bit buffers */ #define S2DGB$K_XCDB_MIN_LENGTH 60 /* Minimum s2gdb length */ #define S2DGB$K_EXT_XCDB_MIN_LENGTH 68 /* Length w/external LUN */ #ifdef __NEW_STARLET #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _s2dgb { #pragma __nomember_alignment unsigned int s2dgb$l_opcode; /* Diagnose opcode */ __union { __union { unsigned int s2dgb$l_flags; __struct { unsigned s2dgb$v_read : 1; /* Read operation */ unsigned s2dgb$v_discpriv : 1; /* DiscPriv val in Identigy msg */ unsigned s2dgb$v_synchronous : 1; /* Synchronous xfers permitted */ unsigned s2dgb$v_obsolete1 : 1; /* (Ignored) */ unsigned s2dgb$v_tagged_req : 1; /* Use TCQ */ unsigned s2dgb$v_tag : 3; /* Queue tag value type */ unsigned s2dgb$v_autosense : 1; /* Return Autosense data */ unsigned s2dgb$v_ext_lun : 1; /* Use externally-supplied LUN */ unsigned s2dgb$v_fill_15_ : 6; } s2dgb$r_fill_14_; } s2dgb$r_fill_13_; } s2dgb$r_flags_overlay; __union { __struct { /* Fields in this structure are valid if and */ /* only if s2dgb$l_opcode = S2DGB$K_OP_XCDB32 */ void *s2dgb$l_32cdbaddr; /* 32-bit addr of Cmd Desc Blk */ unsigned int s2dgb$l_32cdblen; /* Length of CDB in bytes */ void *s2dgb$l_32dataddr; /* 32-bit addr of DATAIN or DATAOUT address */ unsigned int s2dgb$l_32datlen; /* Length of DATAIN or DATAOUT buffer in bytes */ unsigned int s2dgb$l_32padcnt; /* Number of pad bytes required. */ unsigned int s2dgb$l_32phstmo; /* Phase timeout value in seconds */ unsigned int s2dgb$l_32dsctmo; /* Disconnect timeout value in seconds */ void *s2dgb$l_32senseaddr; /* 32-bit addr of Autosense buffer */ unsigned int s2dgb$l_32senselen; /* Length of Autosense buffer in bytes */ unsigned int s2dgb$l_reserved1; /* Reserved field */ unsigned int s2dgb$l_reserved2; /* Reserved field */ unsigned int s2dgb$l_reserved3; /* Reserved field */ unsigned int s2dgb$l_reserved4; /* Reserved field */ } s2dgb$r_layout_32bit; __struct { /* Fields in this structure are valid if and */ /* only if s2dgb$l_opcode = S2DGB$K_OP_XCDB64 */ #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *s2dgb$pq_64cdbaddr; /* 64-bit addr of Cmd Desc Blk */ #else unsigned __int64 s2dgb$pq_64cdbaddr; #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *s2dgb$pq_64dataddr; /* 64-bit addr of DATAIN or DATAOUT address */ #else unsigned __int64 s2dgb$pq_64dataddr; #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *s2dgb$pq_64senseaddr; /* 64-bit addr of Autosense buffer */ #else unsigned __int64 s2dgb$pq_64senseaddr; #endif unsigned int s2dgb$l_64cdblen; /* Length of CDB in bytes */ unsigned int s2dgb$l_64datlen; /* Length of DATAIN or DATAOUT buffer in bytes */ unsigned int s2dgb$l_64senselen; /* Length of Autosense buffer in bytes */ unsigned int s2dgb$l_64padcnt; /* Number of pad bytes required. */ unsigned int s2dgb$l_64phstmo; /* Phase timeout value in seconds */ unsigned int s2dgb$l_64dsctmo; /* Disconnect timeout value in seconds */ unsigned int s2dgb$l_reserved_1; /* Reserved field */ } s2dgb$r_layout_64bit; } s2dgb$r_remaining_overlay; unsigned __int64 s2dgb$q_ext_lun; /* External LUN */ char s2dgb$b_fill_16_ [4]; } S2DGB; #if !defined(__VAXC) #define s2dgb$l_flags s2dgb$r_flags_overlay.s2dgb$r_fill_13_.s2dgb$l_flags #define s2dgb$v_read s2dgb$r_flags_overlay.s2dgb$r_fill_13_.s2dgb$r_fill_14_.s2dgb$v_read #define s2dgb$v_discpriv s2dgb$r_flags_overlay.s2dgb$r_fill_13_.s2dgb$r_fill_14_.s2dgb$v_discpriv #define s2dgb$v_synchronous s2dgb$r_flags_overlay.s2dgb$r_fill_13_.s2dgb$r_fill_14_.s2dgb$v_synchronous #define s2dgb$v_obsolete1 s2dgb$r_flags_overlay.s2dgb$r_fill_13_.s2dgb$r_fill_14_.s2dgb$v_obsolete1 #define s2dgb$v_tagged_req s2dgb$r_flags_overlay.s2dgb$r_fill_13_.s2dgb$r_fill_14_.s2dgb$v_tagged_req #define s2dgb$v_tag s2dgb$r_flags_overlay.s2dgb$r_fill_13_.s2dgb$r_fill_14_.s2dgb$v_tag #define s2dgb$v_autosense s2dgb$r_flags_overlay.s2dgb$r_fill_13_.s2dgb$r_fill_14_.s2dgb$v_autosense #define s2dgb$v_ext_lun s2dgb$r_flags_overlay.s2dgb$r_fill_13_.s2dgb$r_fill_14_.s2dgb$v_ext_lun #define s2dgb$l_32cdbaddr s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_32cdbaddr #define s2dgb$l_32cdblen s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_32cdblen #define s2dgb$l_32dataddr s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_32dataddr #define s2dgb$l_32datlen s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_32datlen #define s2dgb$l_32padcnt s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_32padcnt #define s2dgb$l_32phstmo s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_32phstmo #define s2dgb$l_32dsctmo s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_32dsctmo #define s2dgb$l_32senseaddr s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_32senseaddr #define s2dgb$l_32senselen s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_32senselen #define s2dgb$l_reserved1 s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_reserved1 #define s2dgb$l_reserved2 s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_reserved2 #define s2dgb$l_reserved3 s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_reserved3 #define s2dgb$l_reserved4 s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_reserved4 #define s2dgb$pq_64cdbaddr s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$pq_64cdbaddr #define s2dgb$pq_64dataddr s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$pq_64dataddr #define s2dgb$pq_64senseaddr s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$pq_64senseaddr #define s2dgb$l_64cdblen s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$l_64cdblen #define s2dgb$l_64datlen s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$l_64datlen #define s2dgb$l_64senselen s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$l_64senselen #define s2dgb$l_64padcnt s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$l_64padcnt #define s2dgb$l_64phstmo s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$l_64phstmo #define s2dgb$l_64dsctmo s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$l_64dsctmo #define s2dgb$l_reserved_1 s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$l_reserved_1 #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _s2dgb { #pragma __nomember_alignment unsigned int s2dgb$l_opcode; /* Diagnose opcode */ __union { __union { unsigned int s2dgb$l_flags; __struct { unsigned s2dgb$v_read : 1; /* Read operation */ unsigned s2dgb$v_discpriv : 1; /* DiscPriv val in Identigy msg */ unsigned s2dgb$v_synchronous : 1; /* Synchronous xfers permitted */ unsigned s2dgb$v_obsolete1 : 1; /* (Ignored) */ unsigned s2dgb$v_tagged_req : 1; /* Use TCQ */ unsigned s2dgb$v_tag : 3; /* Queue tag value type */ unsigned s2dgb$v_autosense : 1; /* Return Autosense data */ unsigned s2dgb$v_ext_lun : 1; /* Use externally-supplied LUN */ unsigned s2dgb$v_fill_15_ : 6; } s2dgb$r_fill_14_; } s2dgb$r_fill_13_; } s2dgb$r_flags_overlay; __union { __struct { /* Fields in this structure are valid if and */ /* only if s2dgb$l_opcode = S2DGB$K_OP_XCDB32 */ int s2dgb$l_32cdbaddr; /* 32-bit addr of Cmd Desc Blk */ unsigned int s2dgb$l_32cdblen; /* Length of CDB in bytes */ int s2dgb$l_32dataddr; /* 32-bit addr of DATAIN or DATAOUT address */ unsigned int s2dgb$l_32datlen; /* Length of DATAIN or DATAOUT buffer in bytes */ unsigned int s2dgb$l_32padcnt; /* Number of pad bytes required. */ unsigned int s2dgb$l_32phstmo; /* Phase timeout value in seconds */ unsigned int s2dgb$l_32dsctmo; /* Disconnect timeout value in seconds */ int s2dgb$l_32senseaddr; /* 32-bit addr of Autosense buffer */ unsigned int s2dgb$l_32senselen; /* Length of Autosense buffer in bytes */ unsigned int s2dgb$l_reserved1; /* Reserved field */ unsigned int s2dgb$l_reserved2; /* Reserved field */ unsigned int s2dgb$l_reserved3; /* Reserved field */ unsigned int s2dgb$l_reserved4; /* Reserved field */ } s2dgb$r_layout_32bit; __struct { /* Fields in this structure are valid if and */ /* only if s2dgb$l_opcode = S2DGB$K_OP_XCDB64 */ unsigned __int64 s2dgb$pq_64cdbaddr; /* 64-bit addr of Cmd Desc Blk */ unsigned __int64 s2dgb$pq_64dataddr; /* 64-bit addr of DATAIN or DATAOUT address */ unsigned __int64 s2dgb$pq_64senseaddr; /* 64-bit addr of Autosense buffer */ unsigned int s2dgb$l_64cdblen; /* Length of CDB in bytes */ unsigned int s2dgb$l_64datlen; /* Length of DATAIN or DATAOUT buffer in bytes */ unsigned int s2dgb$l_64senselen; /* Length of Autosense buffer in bytes */ unsigned int s2dgb$l_64padcnt; /* Number of pad bytes required. */ unsigned int s2dgb$l_64phstmo; /* Phase timeout value in seconds */ unsigned int s2dgb$l_64dsctmo; /* Disconnect timeout value in seconds */ unsigned int s2dgb$l_reserved_1; /* Reserved field */ } s2dgb$r_layout_64bit; } s2dgb$r_remaining_overlay; unsigned int s2dgb$q_ext_lun [2]; /* External LUN */ char s2dgb$b_fill_16_ [4]; } s2dgb; #if !defined(__VAXC) #define s2dgb$l_flags s2dgb$r_flags_overlay.s2dgb$r_fill_13_.s2dgb$l_flags #define s2dgb$v_read s2dgb$r_flags_overlay.s2dgb$r_fill_13_.s2dgb$r_fill_14_.s2dgb$v_read #define s2dgb$v_discpriv s2dgb$r_flags_overlay.s2dgb$r_fill_13_.s2dgb$r_fill_14_.s2dgb$v_discpriv #define s2dgb$v_synchronous s2dgb$r_flags_overlay.s2dgb$r_fill_13_.s2dgb$r_fill_14_.s2dgb$v_synchronous #define s2dgb$v_obsolete1 s2dgb$r_flags_overlay.s2dgb$r_fill_13_.s2dgb$r_fill_14_.s2dgb$v_obsolete1 #define s2dgb$v_tagged_req s2dgb$r_flags_overlay.s2dgb$r_fill_13_.s2dgb$r_fill_14_.s2dgb$v_tagged_req #define s2dgb$v_tag s2dgb$r_flags_overlay.s2dgb$r_fill_13_.s2dgb$r_fill_14_.s2dgb$v_tag #define s2dgb$v_autosense s2dgb$r_flags_overlay.s2dgb$r_fill_13_.s2dgb$r_fill_14_.s2dgb$v_autosense #define s2dgb$v_ext_lun s2dgb$r_flags_overlay.s2dgb$r_fill_13_.s2dgb$r_fill_14_.s2dgb$v_ext_lun #define s2dgb$l_32cdbaddr s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_32cdbaddr #define s2dgb$l_32cdblen s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_32cdblen #define s2dgb$l_32dataddr s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_32dataddr #define s2dgb$l_32datlen s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_32datlen #define s2dgb$l_32padcnt s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_32padcnt #define s2dgb$l_32phstmo s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_32phstmo #define s2dgb$l_32dsctmo s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_32dsctmo #define s2dgb$l_32senseaddr s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_32senseaddr #define s2dgb$l_32senselen s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_32senselen #define s2dgb$l_reserved1 s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_reserved1 #define s2dgb$l_reserved2 s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_reserved2 #define s2dgb$l_reserved3 s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_reserved3 #define s2dgb$l_reserved4 s2dgb$r_remaining_overlay.s2dgb$r_layout_32bit.s2dgb$l_reserved4 #define s2dgb$pq_64cdbaddr s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$pq_64cdbaddr #define s2dgb$pq_64dataddr s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$pq_64dataddr #define s2dgb$pq_64senseaddr s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$pq_64senseaddr #define s2dgb$l_64cdblen s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$l_64cdblen #define s2dgb$l_64datlen s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$l_64datlen #define s2dgb$l_64senselen s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$l_64senselen #define s2dgb$l_64padcnt s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$l_64padcnt #define s2dgb$l_64phstmo s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$l_64phstmo #define s2dgb$l_64dsctmo s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$l_64dsctmo #define s2dgb$l_reserved_1 s2dgb$r_remaining_overlay.s2dgb$r_layout_64bit.s2dgb$l_reserved_1 #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #ifdef __INITIAL_POINTER_SIZE /* If compiler supports 64-bit pointers... */ #pragma __required_pointer_size __save /* Save current pointer size */ #pragma __required_pointer_size __long /* Pointers are 64-bit */ typedef struct _s2dgb * S2DGB_PQ; /* 64-bit pointer to a S2DGB structure. */ #pragma __required_pointer_size __restore /* Return to previous pointer size */ #else /* If compiler supports only 32-bit pointers... */ typedef unsigned __int64 S2DGB_PQ; /* S2DGB type must be a 64-bit wide integer. */ #endif /* __INITIAL_POINTER_SIZE */ #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __S2DGBDEF_LOADED */