/**/ /***************************************************************************/ /** **/ /** © 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:27:15 by OpenVMS SDL EV3-3 */ /* Source: 23-MAR-2004 08:24:35 $1$DGA7274:[LIB_H.SRC]DPTDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $DPTDEF ***/ #ifndef __DPTDEF_LOADED #define __DPTDEF_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 /*+ */ /* DPT - DRIVER PROLOGUE TABLE */ /* */ /* EACH DEVICE DRIVER HAS A DRIVER PROLOGUE TABLE. */ /*- */ #define DPT$K_STEP_1 1 /*A STEP 1 DRIVER */ #define DPT$K_STEP_2 2 /*A STEP 2 DRIVER */ #define DPT$K_STEP1_V1 1 /*STEP 1 VERSION 1 */ #define DPT$K_STEP1_V2 2 /*STEP 1 VERSION 2 */ #define DPT$K_STEP2_V1 1 /*STEP 2 VERSION 1 */ #define DPT$K_STEP2_V2 2 /*STEP 2 VERSION 2 (CSR mapping) */ #define DPT$K_STEP2_V3 3 /*STEP 2 VERSION 3 (early Theta, pre-IFT) */ #define DPT$K_STEP2_V4 4 /*STEP 2 VERSION 4 (Theta IFT: 64-bits, Fast I/O) */ #define DPT$K_STEP2_V5 5 /*STEP 2 VERSION 5 (Theta EFT: DDT, UCB changes) */ #define DPT$K_IOGEN_REQ_STEP2VER 5 #define DPT$M_SUBCNTRL 0x1 #define DPT$M_SVP 0x2 #define DPT$M_NOUNLOAD 0x4 #define DPT$M_SCS 0x8 #define DPT$M_DUSHADOW 0x10 #define DPT$M_SCSCI 0x20 #define DPT$M_BVPSUBS 0x40 #define DPT$M_UCODE 0x80 #define DPT$M_SMPMOD 0x100 #define DPT$M_DECW_DECODE 0x200 #define DPT$M_TPALLOC 0x400 #define DPT$M_SNAPSHOT 0x800 #define DPT$M_NO_IDB_DISPATCH 0x1000 #define DPT$M_SCSI_PORT 0x2000 #define DPT$M_ATM 0x4000 #define DPT$M_CSMACD 0x8000 #define DPT$M_FDDI 0x10000 #define DPT$M_TR 0x20000 #define DPT$M_SHARED_INT 0x40000 #define DPT$M_DEVPATH_SUP 0x80000 #define DPT$M_MULTIPATH_SUP 0x100000 #define DPT$M_ATM_FORE 0x400000 #define DPT$M_USB_SUP 0x800000 #define DPT$M_HOTSWAP_SUP 0x1000000 #define DPT$M_MAX_UNIT 0x2000000 #define DPT$K_BASE_LEN 160 /*LENGTH OF PRE IMAGE NAME DRIVER PROLOGUE */ #define DPT$C_BASE_LEN 160 /*LENGTH OF PRE IMAGE NAME DRIVER PROLOGUE */ #ifdef __cplusplus /* Define structure prototypes */ struct _ddt; struct _ddb; #endif /* #ifdef __cplusplus */ #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 _dpt { #pragma __nomember_alignment __union { int dpt$l_flink; /*FORWARD LINK TO NEXT DPT */ __struct { struct _dpt *dpt$ps_flink; /*FORWARD LINK TO NEXT DPT */ } dpt$r_fill_1_; } dpt$r_fill_0_; __union { int dpt$l_blink; /*BACKWARD LINK TO PREVIOUS DPT */ __struct { struct _dpt *dpt$ps_blink; /*BACKWARD LINK TO PREVIOUS DPT */ } dpt$r_fill_3_; } dpt$r_fill_2_; __union { unsigned short int dpt$w_size; /*SIZE OF DRIVER */ __struct { unsigned short int dpt$iw_size; /*SIZE OF DRIVER */ } dpt$r_fill_5_; } dpt$r_fill_4_; __union { unsigned char dpt$b_type; /*STRUCTURE TYPE */ __struct { unsigned char dpt$ib_type; /*STRUCTURE TYPE */ } dpt$r_fill_7_; } dpt$r_fill_6_; char dptdef$$_fill_1; unsigned short int dpt$iw_step; /*DRIVER STEP NUMBER */ unsigned short int dpt$iw_stepver; /*VERSION WITHIN A DRIVER STEP */ __union { unsigned short int dpt$w_defunits; /*DEFAULT NUMBER OF UNITS */ __struct { unsigned short int dpt$iw_defunits; /*DEFAULT NUMBER OF UNITS */ } dpt$r_fill_9_; } dpt$r_fill_8_; __union { unsigned short int dpt$w_maxunits; /*MAXIMUM UNITS THAT CAN BE CONNECTED */ __struct { unsigned short int dpt$iw_maxunits; /*MAXIMUM UNITS THAT CAN BE CONNECTED */ } dpt$r_fill_11_; } dpt$r_fill_10_; __union { unsigned short int dpt$w_ucbsize; /*SIZE OF UCB */ __struct { unsigned short int dpt$iw_ucbsize; /*SIZE OF UCB */ } dpt$r_fill_13_; } dpt$r_fill_12_; unsigned short int dpt$iw_iohandles; /*Number of IOHANDLES that driver needs */ unsigned short int dpt$iw_idb_crams; /*Number of CRAMS to allocate for the IDB */ unsigned short int dpt$iw_ucb_crams; /*Number of CRAMS to allocate for the UCB */ __union { unsigned int dpt$l_flags; /*DRIVER LOADER FLAGS */ unsigned int dpt$il_flags; /*DRIVER LOADER FLAGS */ unsigned char dpt$b_flags; /*an old-world synonym for the above */ __struct { unsigned dpt$v_subcntrl : 1; /*DEVICE IS A SUB-CONTROLLER */ unsigned dpt$v_svp : 1; /*DEVICE REQUIRES A SYSTEM PAGE */ unsigned dpt$v_nounload : 1; /*DRIVER IS NOT TO BE UNLOADED */ unsigned dpt$v_scs : 1; /*Load common SCS code with driver */ unsigned dpt$v_dushadow : 1; /*SHADOWING DISK CLASS DRIVER */ unsigned dpt$v_scsci : 1; /*Load common SCS/CI subroutines with driver */ unsigned dpt$v_bvpsubs : 1; /*Load common BVP subroutines with driver */ unsigned dpt$v_ucode : 1; /*Driver has associated microcode image */ unsigned dpt$v_smpmod : 1; /*Driver has been modified for SMP */ unsigned dpt$v_decw_decode : 1; /*DECwindows decoder (class) driver */ unsigned dpt$v_tpalloc : 1; /*Use tape allocation class parameter */ unsigned dpt$v_snapshot : 1; /*Driver has been certified for system snapshot */ unsigned dpt$v_no_idb_dispatch : 1; /*Don't use IDB$L_UCBLST for UCB vectors */ unsigned dpt$v_scsi_port : 1; /*Driver is an SCSI port driver */ unsigned dpt$v_atm : 1; /*Driver is an LAN ATM port driver */ unsigned dpt$v_csmacd : 1; /*Driver is an LAN CSMAD port driver */ unsigned dpt$v_fddi : 1; /*Driver is an LAN FDDI port driver */ unsigned dpt$v_tr : 1; /*Driver is an LAN TR port driver */ unsigned dpt$v_shared_int : 1; /*Driver supports Shared Interrupts */ unsigned dpt$v_devpath_sup : 1; /*Driver supports device path information */ unsigned dpt$v_multipath_sup : 1; /*Driver supports multipath */ unsigned dpt$v_filler_21 : 1; /*Preserve alignment */ unsigned dpt$v_atm_fore : 1; /*Driver is a LAN FORE ATM port driver */ unsigned dpt$v_usb_sup : 1; /*Driver supports USB */ unsigned dpt$v_hotswap_sup : 1; /*Driver supports PCI I/O hotswap */ unsigned dpt$v_max_unit : 1; /*Driver has specified a MAX_UNIT value */ unsigned dpt$v_fill_22_ : 6; } dpt$r_flags_bits; } dpt$r_flags_overlay; unsigned int dpt$il_adptype; /*ADAPTER TYPE CODE */ unsigned int dpt$il_refc; /*COUNT OF DDB'S THAT REFERENCE DRIVER */ void (*dpt$ps_init_pd)(); /*STRUCTURE INIT ROUTINE DESC ADDRESS */ void (*dpt$ps_reinit_pd)(); /*STRUCTURE RE-INIT ROUTINE DESC ADDRESS */ int (*dpt$ps_deliver_2)(); /*STEP 2 UNIT DELIVERY ROUTINE DESC ADDRESS */ int (*dpt$ps_unload)(); /*UNLOAD ROUTINE DESC ADDRESS */ struct _ddt *dpt$ps_ddt; /*POINTER TO DRIVER'S DDT ADDRESS */ struct _ddb *dpt$ps_ddb_list; /*POINTER TO FIRST DDB IN LIST FOR THIS DRIVER */ int dpt$is_btorder; /*BOOTTIME INIT CALL ORDERING NUMBER */ __union { int dpt$l_vector; /*POINTER TO VECTOR TABLE (IN TTDRIVER) */ __struct { void *dpt$ps_vector; /*POINTER TO VECTOR TABLE (IN TTDRIVER) */ } dpt$r_fill_15_; } dpt$r_fill_14_; __union { char dpt$t_name [16]; /*AUTHOR'S NAME FOR THE DRIVER */ __struct { __union { unsigned char dpt$b_name_len; /* CHARACTER COUNT */ __struct { unsigned char dpt$ib_name_len; /* CHARACTER COUNT */ } dpt$r_fill_17_; } dpt$r_fill_16_; char dpt$t_name_str [15]; /* CHARACTER STRING */ } dpt$r_name_ascic; } dpt$r_name_overlay; __union { unsigned int dpt$l_ecolevel; /*ECO LEVEL FROM IMAGE HEADER */ __struct { unsigned int dpt$il_ecolevel; /*ECO LEVEL FROM IMAGE HEADER */ } dpt$r_fill_19_; } dpt$r_fill_18_; unsigned int dpt$l_ucode; /*ASSOCIATED MICROCODE IMAGE */ unsigned __int64 dpt$q_linktime; /*LINK DATE AND TIME FROM IMAGE HEADER */ __union { unsigned __int64 dpt$iq_image_name; /*STRING DESCRIPTOR FOR DRIVER'S IMAGE NAME */ __struct { unsigned short int dpt$iw_iname_len; /*-- IMAGE NAME LENGTH */ unsigned char dpt$ib_iname_type; /*-- IMAGE NAME DESC TYPE */ unsigned char dpt$ib_iname_class; /*-- IMAGE NAME DESC TYPE */ void *dpt$ps_iname_ptr; /*-- IMAGE NAME DESC POINTER */ } dpt$r_iname_stuff; } dpt$r_image_name_stuff; unsigned int dpt$il_loader_handle [4]; /*EXECLET LOADER HANDLE */ __union { int dpt$l_decw_sname; /*POINTER TO COUNTED ASCII STRING */ __struct { void *dpt$ps_decw_sname; /*POINTER TO COUNTED ASCII STRING */ } dpt$r_fill_21_; } dpt$r_fill_20_; void *dpt$ps_customer; /*Reserved_to_customer */ unsigned int dpt$il_devpath_size; /*SIZE OF THE PATH INFORMATION BLOCK WITHIN UCB */ unsigned int dpt$il_devpath_ucb_ofs; /*OFFSET OF THE PATH INFORMATION BLOCK WITHIN UCB */ unsigned int dpt$il_dsplypath_size; /*MAX. SIZE OF THE DISPLAY PATH STRING WITHIN UCB */ unsigned int dpt$il_dsplypath_ucb_ofs; /*OFFSET OF THE DISPLAY PATH STRING WITHIN UCB */ unsigned int dpt$l_max_unit; /*Number of maximum device units */ unsigned int dpt$l_spare_1; unsigned char dpt$t_image_name; char dpt$b_fill_23_ [7]; } DPT; #if !defined(__VAXC) #define dpt$l_flink dpt$r_fill_0_.dpt$l_flink #define dpt$ps_flink dpt$r_fill_0_.dpt$r_fill_1_.dpt$ps_flink #define dpt$l_blink dpt$r_fill_2_.dpt$l_blink #define dpt$ps_blink dpt$r_fill_2_.dpt$r_fill_3_.dpt$ps_blink #define dpt$w_size dpt$r_fill_4_.dpt$w_size #define dpt$iw_size dpt$r_fill_4_.dpt$r_fill_5_.dpt$iw_size #define dpt$b_type dpt$r_fill_6_.dpt$b_type #define dpt$ib_type dpt$r_fill_6_.dpt$r_fill_7_.dpt$ib_type #define dpt$w_defunits dpt$r_fill_8_.dpt$w_defunits #define dpt$iw_defunits dpt$r_fill_8_.dpt$r_fill_9_.dpt$iw_defunits #define dpt$w_maxunits dpt$r_fill_10_.dpt$w_maxunits #define dpt$iw_maxunits dpt$r_fill_10_.dpt$r_fill_11_.dpt$iw_maxunits #define dpt$w_ucbsize dpt$r_fill_12_.dpt$w_ucbsize #define dpt$iw_ucbsize dpt$r_fill_12_.dpt$r_fill_13_.dpt$iw_ucbsize #define dpt$l_flags dpt$r_flags_overlay.dpt$l_flags #define dpt$il_flags dpt$r_flags_overlay.dpt$il_flags #define dpt$b_flags dpt$r_flags_overlay.dpt$b_flags #define dpt$v_subcntrl dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_subcntrl #define dpt$v_svp dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_svp #define dpt$v_nounload dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_nounload #define dpt$v_scs dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_scs #define dpt$v_dushadow dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_dushadow #define dpt$v_scsci dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_scsci #define dpt$v_bvpsubs dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_bvpsubs #define dpt$v_ucode dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_ucode #define dpt$v_smpmod dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_smpmod #define dpt$v_decw_decode dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_decw_decode #define dpt$v_tpalloc dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_tpalloc #define dpt$v_snapshot dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_snapshot #define dpt$v_no_idb_dispatch dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_no_idb_dispatch #define dpt$v_scsi_port dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_scsi_port #define dpt$v_atm dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_atm #define dpt$v_csmacd dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_csmacd #define dpt$v_fddi dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_fddi #define dpt$v_tr dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_tr #define dpt$v_shared_int dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_shared_int #define dpt$v_devpath_sup dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_devpath_sup #define dpt$v_multipath_sup dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_multipath_sup #define dpt$v_atm_fore dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_atm_fore #define dpt$v_usb_sup dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_usb_sup #define dpt$v_hotswap_sup dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_hotswap_sup #define dpt$v_max_unit dpt$r_flags_overlay.dpt$r_flags_bits.dpt$v_max_unit #define dpt$l_vector dpt$r_fill_14_.dpt$l_vector #define dpt$ps_vector dpt$r_fill_14_.dpt$r_fill_15_.dpt$ps_vector #define dpt$t_name dpt$r_name_overlay.dpt$t_name #define dpt$b_name_len dpt$r_name_overlay.dpt$r_name_ascic.dpt$r_fill_16_.dpt$b_name_len #define dpt$ib_name_len dpt$r_name_overlay.dpt$r_name_ascic.dpt$r_fill_16_.dpt$r_fill_17_.dpt$ib_name_len #define dpt$t_name_str dpt$r_name_overlay.dpt$r_name_ascic.dpt$t_name_str #define dpt$l_ecolevel dpt$r_fill_18_.dpt$l_ecolevel #define dpt$il_ecolevel dpt$r_fill_18_.dpt$r_fill_19_.dpt$il_ecolevel #define dpt$iq_image_name dpt$r_image_name_stuff.dpt$iq_image_name #define dpt$iw_iname_len dpt$r_image_name_stuff.dpt$r_iname_stuff.dpt$iw_iname_len #define dpt$ib_iname_type dpt$r_image_name_stuff.dpt$r_iname_stuff.dpt$ib_iname_type #define dpt$ib_iname_class dpt$r_image_name_stuff.dpt$r_iname_stuff.dpt$ib_iname_class #define dpt$ps_iname_ptr dpt$r_image_name_stuff.dpt$r_iname_stuff.dpt$ps_iname_ptr #define dpt$l_decw_sname dpt$r_fill_20_.dpt$l_decw_sname #define dpt$ps_decw_sname dpt$r_fill_20_.dpt$r_fill_21_.dpt$ps_decw_sname #endif /* #if !defined(__VAXC) */ #define DPT$S_DPTDEF 168 /*OLD DPT SIZE NAME FOR COMPATIBILITY */ #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 /* __DPTDEF_LOADED */