/**/ /***************************************************************************/ /** **/ /** © 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:55 by OpenVMS SDL EV3-3 */ /* Source: 19-MAY-2009 09:46:58 $1$DGA7274:[LIB_H.SRC]IOGENDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $IOGENDEF ***/ #ifndef __IOGENDEF_LOADED #define __IOGENDEF_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 /* */ /* Function codes and modifiers for the $LOAD_DRIVER server. */ /* */ #define IOGEN$_LOAD 1 /* LOAD a device driver */ #define IOGEN$_RELOAD 2 /* RELOAD a device driver */ #define IOGEN$_CONNECT 3 /* CONNECT unit(s) */ #define IOGEN$_INIT_CTRL 4 /* call driver ctrl init routine */ #define IOGEN$_INIT_UNIT 5 /* call driver unit init routine */ #define IOGEN$_DELIVER 6 /* perform unit delivery */ #define IOGEN$K_MINFCODE 1 #define IOGEN$K_MAXFCODE 6 #define IOGEN$M_NOWAIT 0x10000 #define IOGEN$M_LDDB 0x20000 #define IOGEN$M_SYSDEVICE 0x40000 #define IOGEN$M_NOINIT 0x80000 #define IOGEN$S_IOGENDEF 4 /* Old size name, synonym for IOGEN$S_IOGEN */ typedef struct _iogen { __union { __struct { unsigned short int iogen$w_fcode; /* function codes in range 1-65535 */ unsigned short int iogen$w_modifiers; /* 16 modifier bits reserved */ } iogen$r_fcode_structure; __struct { unsigned iogen$v_fcode_fill : 16; /* must match FCODE size above */ unsigned iogen$v_nowait : 1; /* asynchronous operation requested */ unsigned iogen$v_lddb : 1; /* preparsed LDDB provided */ unsigned iogen$v_sysdevice : 1; /* this is the sysdevice device */ unsigned iogen$v_noinit : 1; /* don't call init bros (for ordering) */ unsigned iogen$v_fill_0_ : 4; } iogen$r_modifier_bits; } iogen$r_iogen_overlay; } IOGEN; #if !defined(__VAXC) #define iogen$w_fcode iogen$r_iogen_overlay.iogen$r_fcode_structure.iogen$w_fcode #define iogen$w_modifiers iogen$r_iogen_overlay.iogen$r_fcode_structure.iogen$w_modifiers #define iogen$v_nowait iogen$r_iogen_overlay.iogen$r_modifier_bits.iogen$v_nowait #define iogen$v_lddb iogen$r_iogen_overlay.iogen$r_modifier_bits.iogen$v_lddb #define iogen$v_sysdevice iogen$r_iogen_overlay.iogen$r_modifier_bits.iogen$v_sysdevice #define iogen$v_noinit iogen$r_iogen_overlay.iogen$r_modifier_bits.iogen$v_noinit #endif /* #if !defined(__VAXC) */ #define IOGEN$_ADAPTER 16 /* ADAPTER TR number */ #define IOGEN$_NOADAPTER 17 /* connect to the NULL adapter */ #define IOGEN$_CSR 18 /* magic number for CSR accesses */ #define IOGEN$_VECTOR 19 /* byte offset into SCB/ADP vector table */ #define IOGEN$_MAXUNITS 20 /* maximum # of units for this controller */ #define IOGEN$_SYSID 21 /* SCS system id of controller */ #define IOGEN$_SYSLOA_CRB 22 /* address of preexisting CRB */ #define IOGEN$_UNIT 23 /* unit number for this device */ #define IOGEN$_NUMUNITS 24 /* number of consecutive units to create */ #define IOGEN$_DELIVER_DATA 25 /* scratch space for unit delivery rtn */ #define IOGEN$_DDB 26 /* return the address of the DDB */ #define IOGEN$_CRB 27 /* return the address of the CRB */ #define IOGEN$_IDB 28 /* return the address of the IDB */ #define IOGEN$_UCB 29 /* return the address of the UCB */ #define IOGEN$_SB 30 /* return the address of the SB */ #define IOGEN$_NODE 31 /* set CRB$L_NODE field */ #define IOGEN$_ALLOCLS 32 /* Allocation class for DDB -- treated as port allocation class! */ #define IOGEN$_WWID 33 /* WWID value */ #define IOGEN$_DEVPATH 34 /* path information */ #define IOGEN$_DNP 35 /* Device Name Prefix; */ #define IOGEN$_SASADDRESS 36 /* SAS Address */ #define IOGEN$_SATA_END_DEVICE 37 /* SATA end device */ #define IOGEN$_IR_VOLUME 38 /* Integrated RAID volume */ #define IOGEN$_CISS_EXT_LUN 39 /* CISS external Lun */ #define IOGEN$K_MINITEM 16 #define IOGEN$K_MAXITEM 39 #define IOGEN$M_AC_LOG 0x1 #define IOGEN$M_AC_SCA 0x2 #define IOGEN$M_AC_LAN 0x4 #define IOGEN$M_AC_LOG_ALL 0x8 #define IOGEN$M_AC_VERIFY 0x10 #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif typedef struct _autocfg { #pragma __nomember_alignment __union { unsigned int iogen$l_autocfg_flags; /* flags for IOGEN$AUTOCONFIGURE */ __struct { unsigned iogen$v_ac_log : 1; /* log progress of configuration */ unsigned iogen$v_ac_sca : 1; /* configure all SCA ports and friends */ unsigned iogen$v_ac_lan : 1; /* configure all LAN devices */ unsigned iogen$v_ac_log_all : 1; /* log even the "noisy" messages */ unsigned iogen$v_ac_verify : 1; /* Verify a REBUILD command (done with AUTOCONFIG code) */ unsigned iogen$v_fill_1_ : 3; } iogen$r_ac_flags_bits; } iogen$r_autoconfig; } AUTOCFG; #if !defined(__VAXC) #define iogen$l_autocfg_flags iogen$r_autoconfig.iogen$l_autocfg_flags #define iogen$v_ac_log iogen$r_autoconfig.iogen$r_ac_flags_bits.iogen$v_ac_log #define iogen$v_ac_sca iogen$r_autoconfig.iogen$r_ac_flags_bits.iogen$v_ac_sca #define iogen$v_ac_lan iogen$r_autoconfig.iogen$r_ac_flags_bits.iogen$v_ac_lan #define iogen$v_ac_log_all iogen$r_autoconfig.iogen$r_ac_flags_bits.iogen$v_ac_log_all #define iogen$v_ac_verify iogen$r_autoconfig.iogen$r_ac_flags_bits.iogen$v_ac_verify #endif /* #if !defined(__VAXC) */ #define IOGEN$S_ABMDEF 8 /* Old size name, synonym for IOGEN$S_ABM */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif typedef struct _abm { #pragma __nomember_alignment int iogen$il_abm_adp; /* ADP type code */ int (*iogen$ps_abm_bsr)(); /* pointer to BSR's PD */ } ABM; #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 /* __IOGENDEF_LOADED */