/**/ /***************************************************************************/ /** **/ /** © 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:13 by OpenVMS SDL EV3-3 */ /* Source: 02-APR-2003 12:24:36 $1$DGA7274:[LIB_H.SRC]DDTDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $DDTDEF ***/ #ifndef __DDTDEF_LOADED #define __DDTDEF_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 /*+ */ /* DDT - DRIVER DISPATCH TABLE */ /* */ /* EACH DEVICE DRIVER HAS A DRIVER DISPATCH TABLE. */ /*- */ #define DDT$M_DIAGBUF64 32768 /*Use 64-bit BUFIO for diag buffer if set in DDT$W_DIAGBUF */ #define DDT$K_ITCLVL_DRVR 0 /* "Native" Driver */ #define DDT$K_ITCLVL_MPDEV 4096 /* Multipath */ #define DDT$K_ITCLVL_HSM 24576 /* Hierarchical Storage Manager */ #define DDT$K_ITCLVL_TOP 32767 /* Top, with intercepts in place */ #define DDT$K_LENGTH_MIN 120 /*Minimum DDT length since V7.0 */ #ifdef __cplusplus /* Define structure prototypes */ struct _fdt; #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 _ddt { #pragma __nomember_alignment struct _ddt *ddt$ps_next_intercept_ddt; /*Pointer to next intercept DDT */ int ddt$l_reserved_lw2; __union { unsigned short int ddt$w_size; /*Structure size */ __struct { unsigned short int ddt$iw_size; /*Structure size */ } ddt$r_fill_1_; } ddt$r_fill_0_; unsigned char ddt$b_type; /* Nonpaged pool packet type, DYN$C_MISC */ unsigned char ddt$b_subtype; /* Nonpaged pool packet subtype, DYN$C_DDT */ __union { unsigned short int ddt$w_diagbuf; /*Size of diagnostic buffer in bytes (low 15-bits) */ __struct { unsigned short int ddt$iw_diagbuf; /*Size of diagnostic buffer in bytes (low 15-bits) */ } ddt$r_fill_3_; } ddt$r_fill_2_; __union { unsigned short int ddt$w_errorbuf; /*SIZE OF ERROR LOG BUFFER IN BYTES */ __struct { unsigned short int ddt$iw_errorbuf; /*SIZE OF ERROR LOG BUFFER IN BYTES */ } ddt$r_fill_5_; } ddt$r_fill_4_; __union { unsigned short int ddt$w_fdtsize; /*SIZE OF FDT IN BYTES */ __struct { unsigned short int ddt$iw_fdtsize; /*SIZE OF FDT IN BYTES */ } ddt$r_fill_7_; } ddt$r_fill_6_; short int ddt$w_intercept_level; /*Intercept level */ void (*ddt$ps_start_2)(); /*STEP 2 DRIVER START I/O ROUTINE */ void (*ddt$ps_start_jsb)(); /*STEP 2 DRIVER JSB_START I/O ROUTINE */ int (*ddt$ps_ctrlinit_2)(); /*STEP 2 CONTROLLER INITIALIZATION ROUTINE */ int (*ddt$ps_unitinit_2)(); /*STEP 2 UNIT INITIALIZATION ROUTINE */ int (*ddt$ps_cloneducb_2)(); /*STEP 2 CLONED UCB ROUTINE */ struct _fdt *ddt$ps_fdt_2; /*ADDR OF STEP 2 FUNCTION DECISION TABLE */ void (*ddt$ps_cancel_2)(); /*STEP 2 CANCEL I/O ROUTINE */ void (*ddt$ps_regdump_2)(); /*STEP 2 DEVICE REGISTER DUMP ROUTINE */ void (*ddt$ps_altstart_2)(); /*STEP 2 ALTERNATE START I/O ROUTINE */ void (*ddt$ps_altstart_jsb)(); /*STEP 2 JSB ALTERNATE START I/O ROUTINE */ void (*ddt$ps_mntver_2)(); /*STEP 2 MOUNT VERIFICATION ROUTINE */ __union { int ddt$l_mntv_sssc; /*ADDRESS OF SHADOW SET STATE CHANGE MV ENTRY */ __struct { int (*ddt$ps_mntv_sssc)(); /*ADDRESS OF SHADOW SET STATE CHANGE MV ENTRY */ } ddt$r_fill_9_; } ddt$r_fill_8_; __union { int ddt$l_mntv_for; /*ADDRESS OF FOREIGN DEVICE MV ENTRY */ __struct { int (*ddt$ps_mntv_for)(); /*ADDRESS OF FOREIGN DEVICE MV ENTRY */ } ddt$r_fill_11_; } ddt$r_fill_10_; __union { int ddt$l_mntv_sqd; /*ADDRESS OF SEQUENTIAL DEVICE MV ENTRY */ __struct { int (*ddt$ps_mntv_sqd)(); /*ADDRESS OF SEQUENTIAL DEVICE MV ENTRY */ } ddt$r_fill_13_; } ddt$r_fill_12_; __union { int ddt$l_aux_storage; /*ADDRESS OF AUXILIARY STORAGE AREA */ __struct { void *ddt$ps_aux_storage; /*ADDRESS OF AUXILIARY STORAGE AREA */ } ddt$r_fill_15_; } ddt$r_fill_14_; __union { int ddt$l_aux_routine; /*ADDRESS OF AUXILIARY ROUTINE */ __struct { int (*ddt$ps_aux_routine)(); /*ADDRESS OF AUXILIARY ROUTINE */ } ddt$r_fill_17_; } ddt$r_fill_16_; void (*ddt$ps_channel_assign_2)(); /*STEP 2 ROUTINE TO CALL FROM $ASSIGN */ int (*ddt$ps_cancel_selective_2)(); /*STEP 2 SELECTIVE CANCEL I/O ROUTINE */ unsigned int ddt$is_stack_bcnt; /*BYTES OF KP STACK REQUIRED */ unsigned int ddt$is_reg_mask; /*KP REGISTER SAVE MASK */ void (*ddt$ps_kp_startio)(); /*ADDRESS OF KERNEL PROCESS START I/O ROUTINE */ int (*ddt$ps_csr_mapping)(); /*ADDRESS OF CSR MAPPING ROUTINE */ int (*ddt$ps_fast_fdt)(); /* Address of Fast-IO fast-FDT routine */ int (*ddt$ps_pending_io)(); /*Address of Pending I/O routine */ void *ddt$ps_customer; /*Reserved_to_customer pointer */ int (*ddt$ps_make_devpath)(); /*Address of create path infor. routine */ int (*ddt$ps_setprfpath)(); /* Address of fastpath FDT routine */ int (*ddt$ps_change_preferred)(); /* Address of fastpath upcall routine */ unsigned int ddt$l_mpdev_spare_1; /* Old QIOserver cell */ unsigned int ddt$l_mpdev_spare_2; /* Old QIOserver cell */ __union { /* USB entry point overlays AMDS registration routine */ int (*ddt$ps_mgt_register)(); /* Address of RMdriver Object registration routine */ int (*ddt$ps_configure)(); /* Address of USB configure routine */ } ddt$r_config_overlay; __union { /* USB entry point overlays AMDS deregistration routine */ int (*ddt$ps_mgt_deregister)(); /* Address of RMdriver Object deregistration routine */ int (*ddt$ps_deconfigure)(); /* Address of USB deconfigure routine */ } ddt$r_deconfig_overlay; int (*ddt$ps_mpdev_path_swtch)(); /* Address of mpdev_path_swtch routine */ } DDT; #if !defined(__VAXC) #define ddt$w_size ddt$r_fill_0_.ddt$w_size #define ddt$iw_size ddt$r_fill_0_.ddt$r_fill_1_.ddt$iw_size #define ddt$w_diagbuf ddt$r_fill_2_.ddt$w_diagbuf #define ddt$iw_diagbuf ddt$r_fill_2_.ddt$r_fill_3_.ddt$iw_diagbuf #define ddt$w_errorbuf ddt$r_fill_4_.ddt$w_errorbuf #define ddt$iw_errorbuf ddt$r_fill_4_.ddt$r_fill_5_.ddt$iw_errorbuf #define ddt$w_fdtsize ddt$r_fill_6_.ddt$w_fdtsize #define ddt$iw_fdtsize ddt$r_fill_6_.ddt$r_fill_7_.ddt$iw_fdtsize #define ddt$l_mntv_sssc ddt$r_fill_8_.ddt$l_mntv_sssc #define ddt$ps_mntv_sssc ddt$r_fill_8_.ddt$r_fill_9_.ddt$ps_mntv_sssc #define ddt$l_mntv_for ddt$r_fill_10_.ddt$l_mntv_for #define ddt$ps_mntv_for ddt$r_fill_10_.ddt$r_fill_11_.ddt$ps_mntv_for #define ddt$l_mntv_sqd ddt$r_fill_12_.ddt$l_mntv_sqd #define ddt$ps_mntv_sqd ddt$r_fill_12_.ddt$r_fill_13_.ddt$ps_mntv_sqd #define ddt$l_aux_storage ddt$r_fill_14_.ddt$l_aux_storage #define ddt$ps_aux_storage ddt$r_fill_14_.ddt$r_fill_15_.ddt$ps_aux_storage #define ddt$l_aux_routine ddt$r_fill_16_.ddt$l_aux_routine #define ddt$ps_aux_routine ddt$r_fill_16_.ddt$r_fill_17_.ddt$ps_aux_routine #define ddt$ps_mgt_register ddt$r_config_overlay.ddt$ps_mgt_register #define ddt$ps_configure ddt$r_config_overlay.ddt$ps_configure #define ddt$ps_mgt_deregister ddt$r_deconfig_overlay.ddt$ps_mgt_deregister #define ddt$ps_deconfigure ddt$r_deconfig_overlay.ddt$ps_deconfigure #endif /* #if !defined(__VAXC) */ #define DDT$K_LENGTH 152 /*LENGTH OF DDT */ #define DDT$C_LENGTH 152 /*LENGTH OF DDT */ #define DDT$S_DDTDEF 152 /*OLD DDT LENGTH 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 /* __DDTDEF_LOADED */