/**/ /***************************************************************************/ /** **/ /** © 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: 30-SEP-1999 14:42:18 $1$DGA7274:[LIB_H.SRC]LDBDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $LDBDEF ***/ #ifndef __LDBDEF_LOADED #define __LDBDEF_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 /* */ /* $LOAD_DRIVER Data Block */ /* */ #define LDB$M_DDB 0x1 #define LDB$M_CRB 0x2 #define LDB$M_IDB 0x4 #define LDB$M_UCB 0x8 #define LDB$M_LINKED_UCB 0x10 #define LDB$M_NOADAP 0x20 #define LDB$M_CRBBLT 0x40 #define LDB$M_SCBVEC 0x80 #define LDB$M_REMOTE 0x100 #define LDB$M_SCS 0x200 #define LDB$M_SCSI_PORT 0x400 #define LDB$M_ADD_UNIT 0x800 #define LDB$M_SUD 0x1000 #define LDB$K_MAXVEC 32 /* maximum # of interrupt vectors per device */ #define LDB$K_LENGTH 532 #define LDB$C_LENGTH 532 #define LDB$S_LDBDEF 532 /* Old size name - synonym */ #ifdef __cplusplus /* Define structure prototypes */ struct _adp; struct _dpt; struct _sb; struct _ddb; struct _crb; struct _idb; struct _ucb; struct _fkb; #endif /* #ifdef __cplusplus */ typedef struct _ldb { struct _ldb *ldb$ps_flink; /* Link to next LDB */ struct _ldb *ldb$ps_blink; /* Link to previous LDB */ unsigned short int ldb$w_size; /* size of this structure */ unsigned char ldb$b_type; /* structure type */ unsigned char ldb$b_subtype; /* structure subtype */ /* Status information */ __union { unsigned int ldb$l_flags; /* control and status flags */ __struct { unsigned ldb$v_ddb : 1; /* built a DDB */ unsigned ldb$v_crb : 1; /* built a CRB */ unsigned ldb$v_idb : 1; /* built an IDB */ unsigned ldb$v_ucb : 1; /* built a UCB */ unsigned ldb$v_linked_ucb : 1; /* UCB has been linked into DDB chain */ unsigned ldb$v_noadap : 1; /* connect to NULL adapter */ unsigned ldb$v_crbblt : 1; /* SYSLOA_CRB item was specified */ unsigned ldb$v_scbvec : 1; /* VECTOR is offset into SCB */ unsigned ldb$v_remote : 1; /* device is on a remote system */ unsigned ldb$v_scs : 1; /* associated driver requires SCS */ unsigned ldb$v_scsi_port : 1; /* device is a SCSI port */ unsigned ldb$v_add_unit : 1; /* may be an "add unit" request */ unsigned ldb$v_sud : 1; /* built a SUD */ unsigned ldb$v_fill_0_ : 3; } ldb$r_flags_bits; } ldb$r_flags_overlay; /* Input items */ unsigned int ldb$l_unit; /* unit number to connect */ unsigned __int64 ldb$q_csr; /* CSR "magic number" */ unsigned __int64 ldb$q_sysid; /* SCS SYSID of controller */ unsigned int ldb$l_vector [32]; /* byte offset into SCB/vector table */ unsigned int ldb$l_numvec; /* number of interrupt vectors */ unsigned int ldb$l_maxunits; /* maximum number of units allowed */ /* Input/Output items */ unsigned __int64 ldb$q_dlvr_data; /* working copy of deliver data */ void *ldb$ps_user_dlvr; /* address of caller's deliver data */ int ldb$l_numunits; /* number of units to connect now */ /* Output items */ struct _adp *ldb$ps_adp; /* address of ADaPter control block */ struct _dpt *ldb$ps_dpt; /* address of Driver Prologue Table */ struct _sb *ldb$ps_sb; /* address of System Block */ struct _ddb *ldb$ps_ddb; /* address of Device Data Block */ struct _crb *ldb$ps_crb; /* address of Channel Request Block */ struct _idb *ldb$ps_idb; /* address of Interrupt Dispatch Block */ struct _ucb *ldb$ps_ucb; /* address of Unit Control Block */ struct _fkb *ldb$ps_fork; /* address of associated fork block */ /* Working data */ struct _ddb *ldb$ps_lastddb; /* DDB address returned by IOC$SEARCHALL */ int ldb$il_dpt_maxunits; /* DPT's view of MAXUNITS */ __union { /* name used when searching DPTLIST */ char ldb$t_dpt_name [16]; /* name stored in ASCIC format */ __struct { unsigned char ldb$ib_dpt_namelen; /* character count in DPT_NAME */ char ldb$t_dpt_namestr [15]; /* actual string */ } ldb$r_ascic_name; } ldb$r_name_overlay; int ldb$il_devlen; /* length of device name in DEVNAM */ void *ldb$ps_searchname; /* name used for IOC$SEARCHALL */ int ldb$il_ddb_namelen; /* length of DEVNAM copied to DDB */ void *ldb$ps_ddb_name; /* beginning of name to copy to DDB */ char ldb$t_devnam [16]; /* name of device being connected */ __union { /* name of device driver to load */ char ldb$t_drvnam [256]; /* name stored in ASCIC format */ __struct { unsigned char ldb$ib_drvnamlen; /* character count in DRVNAM */ char ldb$t_drvnamstr [255]; /* actual string */ } ldb$r_ascic_drvnam; } ldb$r_drvnam_overlay; } LDB; #if !defined(__VAXC) #define ldb$l_flags ldb$r_flags_overlay.ldb$l_flags #define ldb$v_ddb ldb$r_flags_overlay.ldb$r_flags_bits.ldb$v_ddb #define ldb$v_crb ldb$r_flags_overlay.ldb$r_flags_bits.ldb$v_crb #define ldb$v_idb ldb$r_flags_overlay.ldb$r_flags_bits.ldb$v_idb #define ldb$v_ucb ldb$r_flags_overlay.ldb$r_flags_bits.ldb$v_ucb #define ldb$v_linked_ucb ldb$r_flags_overlay.ldb$r_flags_bits.ldb$v_linked_ucb #define ldb$v_noadap ldb$r_flags_overlay.ldb$r_flags_bits.ldb$v_noadap #define ldb$v_crbblt ldb$r_flags_overlay.ldb$r_flags_bits.ldb$v_crbblt #define ldb$v_scbvec ldb$r_flags_overlay.ldb$r_flags_bits.ldb$v_scbvec #define ldb$v_remote ldb$r_flags_overlay.ldb$r_flags_bits.ldb$v_remote #define ldb$v_scs ldb$r_flags_overlay.ldb$r_flags_bits.ldb$v_scs #define ldb$v_scsi_port ldb$r_flags_overlay.ldb$r_flags_bits.ldb$v_scsi_port #define ldb$v_add_unit ldb$r_flags_overlay.ldb$r_flags_bits.ldb$v_add_unit #define ldb$v_sud ldb$r_flags_overlay.ldb$r_flags_bits.ldb$v_sud #define ldb$t_dpt_name ldb$r_name_overlay.ldb$t_dpt_name #define ldb$ib_dpt_namelen ldb$r_name_overlay.ldb$r_ascic_name.ldb$ib_dpt_namelen #define ldb$t_dpt_namestr ldb$r_name_overlay.ldb$r_ascic_name.ldb$t_dpt_namestr #define ldb$t_drvnam ldb$r_drvnam_overlay.ldb$t_drvnam #define ldb$ib_drvnamlen ldb$r_drvnam_overlay.ldb$r_ascic_drvnam.ldb$ib_drvnamlen #define ldb$t_drvnamstr ldb$r_drvnam_overlay.ldb$r_ascic_drvnam.ldb$t_drvnamstr #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 /* __LDBDEF_LOADED */