/**/ /***************************************************************************/ /** **/ /** © Copyright 2010, Hewlett-Packard Development Company, L.P. **/ /** **/ /** Confidential computer software. Valid license from HP and/or **/ /** its subsidiaries required for possession, use, or copying. **/ /** **/ /** Consistent with FAR 12.211 and 12.212, Commercial Computer Software, **/ /** Computer Software Documentation, and Technical Data for Commercial **/ /** Items are licensed to the U.S. Government under vendor's standard **/ /** commercial license. **/ /** **/ /** Neither HP nor any of its subsidiaries shall be liable for technical **/ /** or editorial errors or omissions contained herein. The information **/ /** in this document is provided "as is" without warranty of any kind and **/ /** is subject to change without notice. The warranties for HP products **/ /** are set forth in the express limited warranty statements accompanying **/ /** such products. Nothing herein should be construed as constituting an **/ /** additional warranty. **/ /** **/ /***************************************************************************/ /********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:26:36 by OpenVMS SDL EV3-3 */ /* Source: 14-OCT-1999 15:51:51 $1$DGA7274:[LIB_H.SRC]SPIDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $SPIDEF ***/ #ifndef __SPIDEF_LOADED #define __SPIDEF_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 /*+ */ /* $SPIDEF - SCSI CLASS/PORT DRIVER INTERFACE DEFINITIONS. */ /*- */ #define SPI$K_PBCB_STOP_BUSY -1 /* Port is busy */ #define SPI$K_PBCB_STOP_CHECK_CONDITION -2 /* Port has seen a check condition event. */ #define SPI$K_PBCB_STOP_QUEUE_FULL_EVNT -3 /* Port has seen a queue full event. */ #define SPI$K_PBCB_STOP_BUS_RESET -4 /* Port has seen a bus reset */ #define SPI$K_PBCB_STOP_NO_SEND_CREDITS -5 /* Port has run out of send credits. */ #define SPI$K_PBCB_STOP_NO_CMD_BITS -6 /* Port has run out of cmd bits */ #define SPI$K_PBCB_STOP_LINK -7 /* FibreChannel link is unavailable */ #define SPI$K_PBCB_GO_READY 0 /* Port is no longer busy */ #define SPI$K_PBCB_GO_ACA_COMPLETE 1 /* Port has finished the ACA processing. */ #define SPI$K_PBCB_GO_QUEUE_STARTING 2 /* Port is attempting to restart the queue following the queue full event. */ #define SPI$K_PBCB_GO_BUS_FREE 3 /* Port has finished bus reset, bus is free */ #define SPI$K_PBCB_GO_SEND_CREDITS 4 /* Port has send credits available */ #define SPI$K_PBCB_GO_CMD_BITS 5 /* Port has cmd bits available */ #define SPI$K_PBCB_GO_LINK 6 /* FibreChannel link is available */ /* */ /* SPI$K_PCB_CHANGE_AFFINITY has a value of 127, make sure */ /* that the entry you're adding does't conflict with that! */ /* */ #define SPI$K_PCB_AFFINITY 127 /* Port has set affinity to a new CPU */ /* Structure used by SPI$GET_CONNECTION_CHAR and SPI$SET_CONNECTION_CHAR */ #define SPI$K_CC_NUM_ARGS 10 /* Current required count */ #define SPI$K_CC_QNUM_ARGS 12 /* TCQ adds 2 longword arguments */ #define SPI$M_CC_ENA_DISCON 0x1 #define SPI$M_CC_DIS_RETRY 0x2 #define SPI$M_CC_CLASS_REQ_SDTR 0x8 #define SPI$M_CC_SUPPRESS_SDTR 0x10 #define SPI$K_CC_DEF_FLAGS 0 /* Default connection flags */ #define SPI$K_CC_DEF_SYNCH 0 /* Default synch xfer support */ #define SPI$K_CC_DEF_XFERPERIOD 64 /* Default REQ/ACK tick count */ #define SPI$K_CC_DEF_REQACKOFF 3 /* Default REQs before ACK */ #define SPI$K_CC_DEF_BSYRTY 2000 /* Default bus free retry cnt */ #define SPI$K_CC_DEF_ARBRTY 5 /* Default arb retry count */ #define SPI$K_CC_DEF_SELRTY 3 /* Default sel retry count */ #define SPI$K_CC_DEF_CMDRTY 3 /* Default cmd retry count */ #define SPI$K_CC_DEF_DMATMO 4 /* Default DMA/Phase timeout */ #define SPI$K_CC_DEF_DISCTMO 4 /* Default Disconnect timeout */ #define SPI$M_CC_CMDQ 0x1 #define SPI$M_CC_FLUSHQ 0x2 #define SPI$M_CC_FREEZEQ 0x4 #define SPI$M_CC_SCSI_2 0x8 #define SPI$M_CC_SCSI_3 0x10 #define SPI$M_CC_CLS_DRVR_ACA 0x20 #define SPI$K_CC_DEF_MAX_QDEPTH 1 /* Default maximum queue depth */ #define SPI$K_CC_LENGTH 52 /* Length of SPI_CC structure */ #define SPI$S_SPI_CC_DEF 52 /* Old size name, synonym for SPI$S_SPI */ #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 _spi { #pragma __nomember_alignment int spi$il_cc_count; /* Count of longword arguments */ __union { unsigned int spi$il_cc_con_flags; /* Connection flags */ __struct { unsigned spi$v_cc_ena_discon : 1; /* Discon/Resel enabled */ unsigned spi$v_cc_dis_retry : 1; /* Disable command retry */ unsigned spi$v_cc_target_mode : 1; /* Target Mode (reserved) */ unsigned spi$v_cc_class_req_sdtr : 1; /* Class driver is requesting SDTR */ unsigned spi$v_cc_suppress_sdtr : 1; /* Class driver is suppressing SDTR */ unsigned spi$v_fill_4_ : 3; } spi$r_fill_1_; } spi$r_fill_0_; int spi$il_cc_synchronous; /* Sychronous transfer support */ int spi$il_cc_transfer_period; /* Ticks between REQ & ACK */ int spi$il_cc_reqack_offset; /* REQs before ACK */ int spi$il_cc_busy_retry_cnt; /* Retries before bus free */ int spi$il_cc_arb_retry_cnt; /* Retries before arbitration */ int spi$il_cc_sel_retry_cnt; /* Retries on selections */ int spi$il_cc_cmd_retry_cnt; /* Retries on command send */ int spi$il_cc_dma_timeout; /* DMA/Phase timeout */ int spi$il_cc_disc_timeout; /* Disconnect timeout */ __union { unsigned int spi$il_cc_scsi_flags; /* SCSI flags, including TCQ */ __struct { unsigned spi$v_cc_cmdq : 1; /* Device supports TCQ */ unsigned spi$v_cc_flushq : 1; /* Flush queue on error */ /* MBZ, reserved for SCSI-3 */ unsigned spi$v_cc_freezeq : 1; /* Freeze queue on error */ /* MBZ, reserved for SCSI-3 */ unsigned spi$v_cc_scsi_2 : 1; /* Device is SCSI-2 conformant */ unsigned spi$v_cc_scsi_3 : 1; /* Device is SCSI-3 conformant */ unsigned spi$v_cc_cls_drvr_aca : 1; /* Class Driver needs ACA */ unsigned spi$v_fill_5_ : 2; } spi$r_fill_3_; } spi$r_fill_2_; int spi$il_cc_max_qdepth; /* Maximum queue depth if TCQ */ char spi$b_fill_6_ [4]; } SPI; #if !defined(__VAXC) #define spi$il_cc_con_flags spi$r_fill_0_.spi$il_cc_con_flags #define spi$v_cc_ena_discon spi$r_fill_0_.spi$r_fill_1_.spi$v_cc_ena_discon #define spi$v_cc_dis_retry spi$r_fill_0_.spi$r_fill_1_.spi$v_cc_dis_retry #define spi$v_cc_class_req_sdtr spi$r_fill_0_.spi$r_fill_1_.spi$v_cc_class_req_sdtr #define spi$v_cc_suppress_sdtr spi$r_fill_0_.spi$r_fill_1_.spi$v_cc_suppress_sdtr #define spi$il_cc_scsi_flags spi$r_fill_2_.spi$il_cc_scsi_flags #define spi$v_cc_cmdq spi$r_fill_2_.spi$r_fill_3_.spi$v_cc_cmdq #define spi$v_cc_flushq spi$r_fill_2_.spi$r_fill_3_.spi$v_cc_flushq #define spi$v_cc_freezeq spi$r_fill_2_.spi$r_fill_3_.spi$v_cc_freezeq #define spi$v_cc_scsi_2 spi$r_fill_2_.spi$r_fill_3_.spi$v_cc_scsi_2 #define spi$v_cc_scsi_3 spi$r_fill_2_.spi$r_fill_3_.spi$v_cc_scsi_3 #define spi$v_cc_cls_drvr_aca spi$r_fill_2_.spi$r_fill_3_.spi$v_cc_cls_drvr_aca #endif /* #if !defined(__VAXC) */ #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 /* __SPIDEF_LOADED */