/**/ /***************************************************************************/ /** **/ /** © 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:38:00 by OpenVMS SDL EV3-3 */ /* Source: 24-FEB-2009 08:30:34 $1$DGA7274:[LIB_H.SRC]LANIDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $LANDEF ***/ #ifndef __LANDEF_LOADED #define __LANDEF_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 /*++ */ /* This structure represents the LAN entity. There are medium-specific */ /* portions for CSMA/CD, FDDI, Token Ring and ATM. */ /*-- */ #define LAN$M_REG_VCI 0x1 #define LAN$M_DAT_LOCK 0x2 #define LAN$M_LAN_INIT 0x4 #define LAN$M_CNM_INIT 0x8 #define LAN$M_FNM_INIT 0x10 #define LAN$M_TNM_INIT 0x20 #define LAN$M_ANM_INIT 0x40 #define LAN$M_HOT_REPLACE_DRVR 0x80 #define LAN$M_C_REG_EMAA 0x1 #define LAN$M_C_CREATED 0x2 #define LAN$M_C_WAIT 0x4 #define LAN$M_F_REG_EMAA 0x1 #define LAN$M_F_CREATED 0x2 #define LAN$M_F_WAIT 0x4 #define LAN$M_F_L_WAIT 0x8 #define LAN$M_F_H_WAIT 0x10 #define LAN$M_T_REG_EMAA 0x1 #define LAN$M_T_CREATED 0x2 #define LAN$M_A_REG_EMAA 0x1 #define LAN$M_A_CREATED 0x2 #define LAN$C_TIMEOUT 1 /* 1 Device timeout */ #define LAN$C_XMTTMO 3 /* 3 Transmit timeout */ #define LAN$C_RCVLOCK 5 /* 5 Receiver Lockup */ #define LAN$C_POWERFAIL 7 /* 7 Device powerfail */ #define LAN$C_HARDWARE 9 /* 9 Device hardware error */ #define LAN$C_CONSRUNT 11 /* 11 Device Runt error (DEQNA) */ #define LAN$C_MISS 13 /* 13 MISS error (LANCE) */ #define LAN$C_INIT_FAILURE 15 /* 15 Initialization Failure (DEUNA/LUA) */ #define LAN$C_PORT_UNDEFINED 17 /* 17 Port Undefined (DEBNA/DEBNT) */ #define LAN$C_PORT_DISABLED 19 /* 19 Port Disabled (DEBNA/DEBNT) */ #define LAN$C_CCAFAILED 21 /* 21 Can Change Address attempt failed */ #define LAN$C_NM_DISABLED 23 /* 23 Network management disabled */ #define LAN$C_UPDATE 25 /* 25 Firmware update */ #define LAN$C_RESET 27 /* 27 Forced reset */ #define LAN$C_DEAD 29 /* 29 Forced dead */ /* Timer constant for the LAN one second timer. */ #define LAN$C_TQE_DELTA 10000000 /* Define the common LAN driver function codes */ #define LAN$C_FC_INIT 0 /* S-Initialize LAN device */ #define LAN$C_FC_XMIT 1 /* S-Transmit request */ #define LAN$C_FC_RECV 2 /* S-Receive request */ #define LAN$C_FC_STOP 3 /* S-Stop port */ #define LAN$C_FC_RDCNTS 4 /* S-Read counters */ #define LAN$C_FC_RCCNTS 5 /* S-Read and clear counters */ #define LAN$C_FC_CHNGPRO 6 /* S-Change channel */ #define LAN$C_FC_STRTPRO 7 /* S-Start channel */ #define LAN$C_FC_STRTPROPHA 8 /* S-Start channel with a new PHA */ #define LAN$C_FC_STOPPRO 9 /* S-Stop channel */ #define LAN$C_FC_DIAG 10 /* S-Diagnostic function */ #define LAN$C_FC_SENSE_MAC 11 /* S-Sense Medium specific parameters */ #define LAN$C_FC_SET_MAC 12 /* S-Set Medium specific parameters */ #define LAN$C_FC_SET_FA 13 /* S-Set Functional Address mask */ #define LAN$C_FC_XMIT_CM 14 /* Internal (ATM) connection mgr packet */ #define LAN$C_FC_XMIT_PAD 15 /* Transmit packet that needs to be padded (ATM) */ #define LAN$C_FC_ENDDRVRI 16 /* End of driver independent func codes */ /* Define the common LAN diagnostic function codes */ #define LAN$M_DIAG_STARTUP 64 #define LAN$M_DIAG_SET_TRACE 128 #define LAN$M_DIAG_READ_TRACE 256 #define LAN$M_DIAG_READ_REV 512 #define LAN$M_DIAG_ERASE 1024 #define LAN$M_DIAG_READ_COUNTERS 2048 #define LAN$M_DIAG_READ_UCBS 4096 #define LAN$M_DIAG_RESET 8192 #define LAN$M_DIAG_DEBUG 16384 /* */ #define LAN$V_DIAG_STARTUP 6 /* Startup a new driver (Update/driver) (used with IO$M_STARTUP) */ #define LAN$V_DIAG_SET_TRACE 7 /* Set trace parameters (used with IO$M_NOWAIT) */ #define LAN$V_DIAG_READ_TRACE 8 /* Read trace data (used with IO$M_NOCLEANUP) */ #define LAN$V_DIAG_READ_REV 9 /* Read revision data (used with IO$M_NOBLOCK ) */ #define LAN$V_DIAG_ERASE 10 /* Clean up after error (Update/driver) */ #define LAN$V_DIAG_READ_COUNTERS 11 /* Read counters data (used with IO$V_REMOUNT) */ #define LAN$V_DIAG_READ_UCBS 12 /* Read UCB data (used with IO$M_CYCLE) */ #define LAN$V_DIAG_RESET 13 /* Issue a forced reset (used with IO$M_RESET) */ #define LAN$V_DIAG_DEBUG 14 /* Issue a device-specific debug function */ #define LAN$V_DIAG_TRACE_ENTRY 15 /* Make a trace entry */ #define LAN$V_DIAG_TRACE_MERGE 16 /* Merge interrupt trace data */ /* from now on we pass codes in irp$l_qio_p3 */ #define LAN$V_DIAG_FCARP_TABLE 17 /* FC address resolution Protocol Table from now on we pass then in irp$l_qio_p3 */ #define LAN$V_DIAG_VLAN_TABLE 18 /* Retrive the VLAN table */ /* */ #define LAN$K_LENGTH 832 /* Size of the LAN */ #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 _lan { /* First get to the end of the user-visible LAN section. Then we will */ /* extend the LAN block for use by just the LAN drivers. */ #pragma __nomember_alignment char lan$b_filler [24]; /* There are multiple sections to the LAN block. The first section is */ /* the section that is shared by all instances of the LAN module. This */ /* first section is device and medium independent. The subsequent sections */ /* are specific to a particular medium. */ /************************************************************************* */ /* LAN DRIVER COMMON SECTION */ /************************************************************************* */ char lan$t_tqe [64]; /* S-TQE for the one second timer */ __union { unsigned int lan$l_flags; __struct { unsigned lan$v_reg_vci : 1; /* S-LAN is registered with VCI */ unsigned lan$v_dat_lock : 1; /* S-A Duplicate Address Test is in */ /* progress on one of this machine's */ /* LAN devices */ unsigned lan$v_lan_init : 1; /* S-The LAN module has initialized */ /* its portion of the LAN block */ unsigned lan$v_cnm_init : 1; /* S-The CSMACD module has initialized */ /* its portion of the LAN block */ unsigned lan$v_fnm_init : 1; /* S-The FDDI module has initialized */ /* its portion of the LAN block */ unsigned lan$v_tnm_init : 1; /* S-The TR module has initialized */ /* its portion of the LAN block */ unsigned lan$v_anm_init : 1; /* S-The ATM module has initialized */ /* its portion of the LAN block */ unsigned lan$v_hot_replace_drvr : 1; /* A port driver is unloading */ } lan$r_fill_1_; } lan$r_fill_0_; unsigned int lan$l_lsb; /* S-Linked list of LAN Station Blocks */ unsigned int lan$l_stactr; /* S-Number of stations */ unsigned int lan$l_lanudef_ver; /* S-LANUDEF version */ unsigned int lan$l_lanidef_ver; /* S-LANIDEF version */ /* PTE information - PTES are used for chained transmits */ /********* The PTE info is not needed anymore ********** */ /* */ /* Rename SVAPTE -> COM_PORTLOCK, PTECNT -> RESERVED3 and SVA -> RESERVED4 */ void *lan$a_com_portlock; /* S-Address of LAN's common code lock */ unsigned int lan$l_reserved3; /* S-Reserved for future use */ unsigned int lan$l_reserved4; /* S-Reserved for future use */ /* Common network management fields */ void *lan$a_findlsb; /* Find LSB; given Local Entity Name */ void *lan$a_new_eib; /* Latest EIB address */ __int64 lan$q_desc; /* A descriptor */ char lan$t_mca_item [12]; /* Storage area for a MCA set item */ /* Synchronization field */ unsigned int lan$l_sequence; /* S-Sequence number (used for DAT) */ /************************************************************************* */ /* CSMACD SECTION */ /************************************************************************* */ /* Versions */ unsigned __int64 lan$q_c_nm_m_ver; /* NM MACRO version */ unsigned int lan$l_c_nm_c_ver0; /* NM C version */ unsigned int lan$l_c_nm_c_ver1; /* NM C version */ unsigned __int64 lan$q_c_nm_ev_ver; /* NM Event version */ /* Flags */ __union { unsigned int lan$l_c_flags; __struct { unsigned lan$v_c_reg_emaa : 1; /* S-Module is registered with EMAA */ unsigned lan$v_c_created : 1; /* S-Module entity is CREATED */ unsigned lan$v_c_wait : 1; /* S-Module is waiting for the device */ unsigned lan$v_fill_10_ : 5; } lan$r_fill_3_; } lan$r_fill_2_; int lan$l_extra_l_1; /* Preserve quadword alignment */ /* Time stamp fields (all values stored from ABSTIMTICS) */ unsigned int lan$l_c_cretim; /* S-Time the module was last created */ unsigned int lan$l_c_deltim; /* S-Time the module was last deleted */ /* Counters (all counters are wrap) */ unsigned int lan$l_c_crectr; /* S-Number of times module was created */ unsigned int lan$l_c_delctr; /* S-Number of times module was deleted */ /* Routines in the CSMACD module that are called by the drivers. All names */ /* must begin with the letter C. These routines are accessed through the */ /* $CJSB macro. */ void *lan$a_cvalcnm; /* Client name validation routine */ void *lan$a_csetcnm; /* Client name set routine */ void *lan$a_ccreate_port; /* Create a port entity */ void *lan$a_csetpha; /* Set the PHA to default */ void *lan$a_csense; /* Return additional parameters */ void *lan$a_cdelete_port; /* Delete a port entity */ void *lan$a_ctimer; /* Timer routine */ void *lan$a_cirpdone; /* To return an IRP request */ /* Station events */ void *lan$a_cevexc; /* To declare an event */ void *lan$a_cevccf; /* To declare an event */ void *lan$a_cevlat; /* To declare an event */ void *lan$a_cevfce; /* To declare an event */ void *lan$a_cevali; /* To declare an event */ void *lan$a_cevdor; /* To declare an event */ void *lan$a_cevusb; /* To declare an event */ void *lan$a_cevuub; /* To declare an event */ void *lan$a_cevuid; /* To declare an event */ void *lan$a_cevumd; /* To declare an event */ void *lan$a_cevftl; /* To declare an event */ void *lan$a_cevrdl; /* To declare an event */ /* CSMACD module fields */ void *lan$a_csmacd_eab; /* S-CSMACD entity EAB address */ void *lan$a_csmacd_port_eab; /* S-Port entity EAB address */ void *lan$a_csmacd_station_eab; /* S-Station entity EAB address */ void *lan$a_csmacd_eib; /* S-Module EIB */ /************************************************************************* */ /* FDDI SECTION */ /************************************************************************* */ /* Versions */ unsigned __int64 lan$q_f_nm_m_ver; /* NM MACRO version */ unsigned int lan$l_f_nm_c_ver0; /* NM C version */ unsigned int lan$l_f_nm_c_ver1; /* NM C version */ unsigned __int64 lan$q_f_nm_ev_ver; /* NM Event version */ /* Flags */ __union { unsigned int lan$l_f_flags; __struct { unsigned lan$v_f_reg_emaa : 1; /* S-Module is registered with EMAA */ unsigned lan$v_f_created : 1; /* S-Module entity is CREATED */ unsigned lan$v_f_wait : 1; /* S-Module is waiting for the device */ unsigned lan$v_f_l_wait : 1; /* S-Link is waiting for the device */ unsigned lan$v_f_h_wait : 1; /* S-PhyPort is waiting for the device */ unsigned lan$v_fill_11_ : 3; } lan$r_fill_5_; } lan$r_fill_4_; int lan$l_extra_l_2; /* Preserve quadword alignment */ /* Time stamp fields (all values stored from ABSTIMTICS) */ unsigned int lan$l_f_cretim; /* S-Time the module was last created */ unsigned int lan$l_f_deltim; /* S-Time the module was last deleted */ /* Counters (all counters are wrap) */ unsigned int lan$l_f_crectr; /* S-Number of times module was created */ unsigned int lan$l_f_delctr; /* S-Number of times module was deleted */ /* Routines in the FDDI module that are called by the drivers. These */ /* are not accessed through the FJSB routine, so it doesn't have to */ /* begin with F. */ void *lan$a_smt_response; /* SMT responses for NM are passed */ /* to this routine */ /* Routines in the FDDI module that are called by the drivers. All names */ /* must begin with the letter F. These routines are accessed through the */ /* $FJSB macro. */ void *lan$a_fvalcnm; /* Client name validation routine */ void *lan$a_fsetcnm; /* Client name set routine */ void *lan$a_fcreate_port; /* Create a port entity */ void *lan$a_fsense; /* Return additional parameters */ void *lan$a_fdelete_port; /* Delete a port entity */ void *lan$a_ftimer; /* Timer routine */ void *lan$a_firpdone; /* To return an IRP request */ /* Station events */ void *lan$a_fevstf; /* Self-Test Failure */ void *lan$a_fevtrr; /* TRace Received */ void *lan$a_fevcch; /* Configuration Change */ /* Link events */ void *lan$a_fevtur; /* Transmit Underrun */ void *lan$a_fevtfl; /* Transmit Failure */ void *lan$a_fevfce; /* Frame Check Error */ void *lan$a_fevfse; /* Frame Status Error */ void *lan$a_fevrdl; /* Receive Data Length error */ void *lan$a_fevuid; /* Unrecognized Individual Dest. */ void *lan$a_fevumd; /* Unrecognized Multicast Dest. */ void *lan$a_fevdor; /* Receive Data Overrun */ void *lan$a_fevlbu; /* Link Buffer Unavailable */ void *lan$a_fevusb; /* System Buffer Unavailable */ void *lan$a_fevuub; /* User Buffer Unavailable */ void *lan$a_fevrii; /* Ring Initialization Initiated */ void *lan$a_fevrir; /* Ring Initialization Received */ void *lan$a_fevrbi; /* Ring Beacon Initiated */ void *lan$a_fevdaf; /* Duplicate Address Failure */ void *lan$a_fevdtd; /* Duplicate Token Detected */ void *lan$a_fevrpe; /* Ring Purge Error */ void *lan$a_fevfci; /* Frame Content Independent strip error */ void *lan$a_fevtri; /* TRace Initiated */ void *lan$a_fevdbr; /* Directed Beacon Received */ /* PHY PORT events */ void *lan$a_fevlem; /* Link Error Monitor */ void *lan$a_fevebe; /* Elasticity Buffer Error */ void *lan$a_fevlct; /* Link Confidence Test reject */ /* FDDI module fields */ void *lan$a_fddi_eab; /* S-FDDI entity EAB address */ void *lan$a_fddi_port_eab; /* S-Port entity EAB address */ void *lan$a_fddi_station_eab; /* S-Station entity EAB address */ void *lan$a_fddi_link_eab; /* S-Link entity EAB address */ void *lan$a_fddi_phyport_eab; /* S-PHY port entity EAB address */ void *lan$a_fddi_eib; /* S-Module EIB */ /************************************************************************* */ /* TOKEN RING SECTION */ /************************************************************************* */ /* Versions */ unsigned __int64 lan$q_t_nm_m_ver; /* NM MACRO version */ unsigned int lan$l_t_nm_c_ver0; /* NM C version */ unsigned int lan$l_t_nm_c_ver1; /* NM C version */ unsigned __int64 lan$q_t_nm_ev_ver; /* NM Event version */ /* Flags */ __union { unsigned int lan$l_t_flags; __struct { unsigned lan$v_t_reg_emaa : 1; /* Module is registered with EMAA */ unsigned lan$v_t_created : 1; /* Module entity is CREATED */ unsigned lan$v_fill_12_ : 6; } lan$r_fill_7_; } lan$r_fill_6_; int lan$l_extra_l_3; /* Preserve quadword alignment */ /* Time stamp fields (all values stored from ABSTIMTICS) */ unsigned int lan$l_t_cretim; /* Time the module was last created */ unsigned int lan$l_t_deltim; /* Time the module was last deleted */ /* Counters (all counters are wrap) */ unsigned int lan$l_t_crectr; /* Number of times module was created */ unsigned int lan$l_t_delctr; /* Number of times module was deleted */ /* Routines in the Token Ring module that are called by the drivers. All */ /* names must begin with the letter T. These routines are accessed through */ /* the $TJSB macro. */ void *lan$a_tvalcnm; /* Client name validation routine */ void *lan$a_tsetcnm; /* Client name set routine */ void *lan$a_tcreate_port; /* Create a port entity */ void *lan$a_tsense; /* Return additional parameters */ void *lan$a_tdelete_port; /* Delete a port entity */ void *lan$a_ttimer; /* Timer routine */ void *lan$a_tirpdone; /* To return an IRP request */ /* Token Ring module fields */ void *lan$a_tr_eab; /* TR entity EAB address */ void *lan$a_tr_port_eab; /* Port entity EAB address */ void *lan$a_tr_station_eab; /* Station entity EAB address */ void *lan$a_tr_sr_eab; /* Station's Source Routing EAB address */ void *lan$a_tr_eib; /* Module EIB */ /************************************************************************* */ /* ATM SECTION */ /************************************************************************* */ /* Versions */ unsigned __int64 lan$q_a_nm_m_ver; /* NM MACRO version */ unsigned int lan$l_a_nm_c_ver0; /* NM C version */ unsigned int lan$l_a_nm_c_ver1; /* NM C version */ unsigned __int64 lan$q_a_nm_ev_ver; /* NM Event version */ /* Flags */ __union { unsigned int lan$l_a_flags; __struct { unsigned lan$v_a_reg_emaa : 1; /* Module is registered with EMAA */ unsigned lan$v_a_created : 1; /* Module entity is CREATED */ unsigned lan$v_fill_13_ : 6; } lan$r_fill_9_; } lan$r_fill_8_; /* ATM common PORT lock */ void *lan$a_atm_portlock; /* PORT lock */ /* Time stamp fields (all values stored from ABSTIMTICS) */ unsigned int lan$l_a_cretim; /* Time the module was last created */ unsigned int lan$l_a_deltim; /* Time the module was last deleted */ /* Counters (all counters are wrap) */ unsigned int lan$l_a_crectr; /* Number of times module was created */ unsigned int lan$l_a_delctr; /* Number of times module was deleted */ /* Routines in the ATM module that are called by the drivers. All */ /* names must begin with the letter A. These routines are accessed through */ /* the $AJSB macro. */ void *lan$a_avalcnm; /* Client name validation routine */ void *lan$a_asetcnm; /* Client name set routine */ void *lan$a_acreate_port; /* Create a port entity */ void *lan$a_asense; /* Return additional parameters */ void *lan$a_adelete_port; /* Delete a port entity */ void *lan$a_atimer; /* Timer routine */ void *lan$a_airpdone; /* To return an IRP request */ /* ATM module fields */ void *lan$a_atm_eab; /* ATM entity EAB address */ void *lan$a_atm_port_eab; /* Port entity EAB address */ void *lan$a_atm_station_eab; /* Station entity EAB address */ void *lan$a_atm_eib; /* Module EIB */ /************************************************************************* */ /* End of medium specific sections */ /************************************************************************* */ /*++ */ /* Miscellaneous constants */ /*-- */ /* LAN device driver fork routine status definitions. These values are used */ /* by the driver to indicate the type of error event that has occurred, if */ /* any. If an error has occurred, the value contained in the low word of R3 */ /* (fork routine conventions) will contain one of the following values. */ /* */ /* NOTE: if R3 = Hardware, then the upper word of R3 contains the device's */ /* CSR contents at the time of the error. */ /* Notes on adding more LAN diagnostic function codes. */ /* Some LAN diag. codes comes with an associated QIO function modifier for $qio */ /* calls, for example: to read the internal counters we call $qio with */ /* IO$_DIAGNOSE | IO$M_REMOUNT (it beats the heck out of me why we don't use */ /* IO$_DIAGNOSE | LAN$M_DIAG_READ_COUNTERS !) Furthermore, we do not use the */ /* high 16-bits modifiers in irp$l_func, and therefore to add codes beyond 16, */ /* we are going to pass the LAN diagnostic function (i.e. LAN$V_DIAG_whatever) */ /* code in irp$l_qio_p3 with QIO function code set IO$_DIAGNOSE and no $QIO */ /* modifier bits. Drivers then will have to check for LAN diag. function code */ /* (the first argument in lsb$a_diag routine) set to 32 ( meaning no modifiers */ /* set in $qio function code) and get the diagnostic fucntion code from */ /* ipr$l_qio_p3. */ /* */ /* The next four entries are used for IPL8 code to communicate with LANCP by sending QASTs. */ /* The main communication needs is for drivers to send OPCOM messages, but the mechanism is */ /* not limited to that. To queue an AST to LANACP we need 2 items and a message. The 2 items */ /* are the LANACP pid and the LANACP (user mode) routine that the AST suppose to call when it */ /* fires (these are UPID and UASTADR). The message is a piece of non-paged pool, generally a */ /* VCRP, that is put in the LACP_QUEUE. This queue is interlock and its size matches the */ /* cache size boundary since since memory is locked in whole cache sizes and boundaries */ /* */ /* LANACP_RTN is the routine that LANACP calls ( forks) to pass its information */ /* (pid and ast routine) to IPL8 code */ /* */ unsigned int lan$l_upid; /* LANACP PID */ void (*lan$ps_uastadr)(); /* LANACP AST routine address */ char lan$b_fill_14_ [4]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif void (*lan$a_lanacp_rtn)(); /* LANACP/LAN init routine */ #pragma __nomember_alignment char lan$b_fill_15_ [60]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #else #pragma __nomember_alignment #endif __union { /* LAN COMMON to LANACP interlock QUEUE */ #pragma __nomember_alignment __struct { void *lan$ps_lanacp_flink; /* Normally a queue of VCRPs, but we can't do it explicitly */ void *lan$ps_lanacp_blink; /* here because of dependencies with [BOOTDRIVER] */ } lan$r_k2uq; char lan$b_k_qbytes [64]; } lan$r_lacp_queue; } LAN; #if !defined(__VAXC) #define lan$l_flags lan$r_fill_0_.lan$l_flags #define lan$v_reg_vci lan$r_fill_0_.lan$r_fill_1_.lan$v_reg_vci #define lan$v_dat_lock lan$r_fill_0_.lan$r_fill_1_.lan$v_dat_lock #define lan$v_lan_init lan$r_fill_0_.lan$r_fill_1_.lan$v_lan_init #define lan$v_cnm_init lan$r_fill_0_.lan$r_fill_1_.lan$v_cnm_init #define lan$v_fnm_init lan$r_fill_0_.lan$r_fill_1_.lan$v_fnm_init #define lan$v_tnm_init lan$r_fill_0_.lan$r_fill_1_.lan$v_tnm_init #define lan$v_anm_init lan$r_fill_0_.lan$r_fill_1_.lan$v_anm_init #define lan$v_hot_replace_drvr lan$r_fill_0_.lan$r_fill_1_.lan$v_hot_replace_drvr #define lan$l_c_flags lan$r_fill_2_.lan$l_c_flags #define lan$v_c_reg_emaa lan$r_fill_2_.lan$r_fill_3_.lan$v_c_reg_emaa #define lan$v_c_created lan$r_fill_2_.lan$r_fill_3_.lan$v_c_created #define lan$v_c_wait lan$r_fill_2_.lan$r_fill_3_.lan$v_c_wait #define lan$l_f_flags lan$r_fill_4_.lan$l_f_flags #define lan$v_f_reg_emaa lan$r_fill_4_.lan$r_fill_5_.lan$v_f_reg_emaa #define lan$v_f_created lan$r_fill_4_.lan$r_fill_5_.lan$v_f_created #define lan$v_f_wait lan$r_fill_4_.lan$r_fill_5_.lan$v_f_wait #define lan$v_f_l_wait lan$r_fill_4_.lan$r_fill_5_.lan$v_f_l_wait #define lan$v_f_h_wait lan$r_fill_4_.lan$r_fill_5_.lan$v_f_h_wait #define lan$l_t_flags lan$r_fill_6_.lan$l_t_flags #define lan$v_t_reg_emaa lan$r_fill_6_.lan$r_fill_7_.lan$v_t_reg_emaa #define lan$v_t_created lan$r_fill_6_.lan$r_fill_7_.lan$v_t_created #define lan$l_a_flags lan$r_fill_8_.lan$l_a_flags #define lan$v_a_reg_emaa lan$r_fill_8_.lan$r_fill_9_.lan$v_a_reg_emaa #define lan$v_a_created lan$r_fill_8_.lan$r_fill_9_.lan$v_a_created #define lan$r_k2uq lan$r_lacp_queue.lan$r_k2uq #define lan$ps_lanacp_flink lan$r_k2uq.lan$ps_lanacp_flink #define lan$ps_lanacp_blink lan$r_k2uq.lan$ps_lanacp_blink #define lan$b_k_qbytes lan$r_lacp_queue.lan$b_k_qbytes #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 /* __LANDEF_LOADED */