/**/ /***************************************************************************/ /** **/ /** © 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:37:59 by OpenVMS SDL EV3-3 */ /* Source: 16-MAR-2004 09:30:01 $1$DGA7274:[LIB_H.SRC]TTYUCBDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $TTYUCBDEF ***/ #ifndef __TTYUCBDEF_LOADED #define __TTYUCBDEF_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 /* */ /* $TTYUCBDEF follows here only because there is no way to get the */ /* UCB$K_LENGTH symbol into another module. TTYUCBDEF was formerly */ /* included in TTYDEF.MAR. */ /* */ /* TERMINAL DRIVER DEFINITIONS */ /* */ /* These definitions define the device dependent extensions of the UCB. */ /* Certain portions of the ucb are assumed to be contiguous and must not */ /* be split. These areas are documented in the following definitions. */ /* */ #include #ifdef __cplusplus /* Define structure prototypes */ struct _ucb$r_fr3_overlay; #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 _ltrm_ucb { #pragma __nomember_alignment UCB ucb$r_ucb; /* */ /* Logical terminal UCB extension */ /* */ struct _acb *ucb$l_tl_ctrly; /* CONTROL Y AST BLOCK LIST HEAD */ struct _acb *ucb$l_tl_ctrlc; /* CONTROL C AST BLOCK LIST HEAD */ unsigned int ucb$l_tl_outband; /* OUT OF BAND CHARACTER MASK */ int ucb$l_tl_bandque; /* OUT OF BAND AST QUEUE */ struct _ucb *ucb$l_tl_phyucb; /* THE PHYSICAL UCB ADDRESS */ unsigned int ucb$l_tl_ctlpid; /* CONTROLING PID (USED WITH SPAWN) */ unsigned __int64 ucb$q_tl_brkthru; /* FACILITY BROADCAST BITMASK */ void *ucb$l_tl_posix_data; /* POSIX PTC POINTER */ void *ucb$l_tl_asian_data; /* ASIAN DATA POINTER */ __union { unsigned char ucb$b_tl_a_mode; /* CURRENT ASIAN MODES */ unsigned int ucb$l_tl_a_charset; /* CHARACTER SET BITMASK */ } ucb$r_tl_a_mode_overlay; void *ucb$l_tl_a_fi_ucb; /* POINTER TO ASIAN INPUT SERVER */ /* */ /* Terminal class driver dependant region */ /* Split here between local and remote terminal UCB's, each of */ /* which has it's own type. */ /* */ } LTRM_UCB; #if !defined(__VAXC) #define ucb$b_tl_a_mode ucb$r_tl_a_mode_overlay.ucb$b_tl_a_mode #define ucb$l_tl_a_charset ucb$r_tl_a_mode_overlay.ucb$l_tl_a_charset #endif /* #if !defined(__VAXC) */ #define UCB$C_TL_LENGTH 400 #define UCB$K_TL_LENGTH 400 #define ucb$r_ltrm_ucb ucb$r_ucb #define TTY$M_ST_POWER 0x1 #define TTY$M_ST_CTRLS 0x2 #define TTY$M_ST_LOSTCTS 0x4 #define TTY$M_ST_MODEM_OFF 0x8 #define TTY$M_ST_POSIXSTALL 0x10 #define TTY$M_ST_FILL 0x20 #define TTY$M_ST_CURSOR 0x40 #define TTY$M_ST_SENDLF 0x80 #define TTY$M_ST_BACKSPACE 0x100 #define TTY$M_ST_MULTI 0x200 #define TTY$M_ST_WRITE 0x400 #define TTY$M_ST_POSIXWRITE 0x800 #define TTY$M_ST_EOL 0x1000 #define TTY$M_ST_EDITREAD 0x2000 #define TTY$M_ST_RDVERIFY 0x4000 #define TTY$M_ST_RECALL 0x8000 #define TTY$M_ST_READ 0x10000 #define TTY$M_ST_POSIXREAD 0x20000 #define TTY$M_ST_CTRLO 0x1 #define TTY$M_ST_DEL 0x2 #define TTY$M_ST_PASALL 0x4 #define TTY$M_ST_NOECHO 0x8 #define TTY$M_ST_WRTALL 0x10 #define TTY$M_ST_PROMPT 0x20 #define TTY$M_ST_NOFLTR 0x40 #define TTY$M_ST_ESC 0x80 #define TTY$M_ST_BADESC 0x100 #define TTY$M_ST_NL 0x200 #define TTY$M_ST_REFRSH 0x400 #define TTY$M_ST_ESCAPE 0x800 #define TTY$M_ST_TYPFUL 0x1000 #define TTY$M_ST_SKIPLF 0x2000 #define TTY$M_ST_ESC_O 0x4000 #define TTY$M_ST_WRAP 0x8000 #define TTY$M_ST_OVRFLO 0x10000 #define TTY$M_ST_AUTOP 0x20000 #define TTY$M_ST_CTRLR 0x40000 #define TTY$M_ST_SKIPCRLF 0x80000 #define TTY$M_ST_EDITING 0x100000 #define TTY$M_ST_TABEXPAND 0x200000 #define TTY$M_ST_QUOTING 0x400000 #define TTY$M_ST_OVERSTRIKE 0x800000 #define TTY$M_ST_TERMNORM 0x1000000 #define TTY$M_ST_ECHAES 0x2000000 #define TTY$M_ST_PRE 0x4000000 #define TTY$M_ST_NINTMULTI 0x8000000 #define TTY$M_ST_RECONNECT 0x10000000 #define TTY$M_ST_CTSLOW 0x20000000 #define TTY$M_ST_TABRIGHT 0x40000000 #define UCB$M_TT_XXPARITY 0x1 #define UCB$M_TT_DISPARERR 0x2 #define UCB$M_TT_USERFRAME 0x4 #define UCB$M_TT_LEN 0x18 #define UCB$M_TT_STOP 0x20 #define UCB$M_TT_PARTY 0x40 #define UCB$M_TT_ODD 0x80 #define TTY$M_TANK_PREMPT 0x100 #define TTY$M_TANK_STOP 0x200 #define TTY$M_TANK_HOLD 0x400 #define TTY$M_TANK_BURST 0x800 #define TTY$M_TANK_DMA 0x1000 #define TTY$M_PC_NOTIME 0x1 #define TTY$M_PC_DMAENA 0x2 #define TTY$M_PC_DMAAVL 0x4 #define TTY$M_PC_PRMMAP 0x8 #define TTY$M_PC_MAPAVL 0x10 #define TTY$M_PC_XOFAVL 0x20 #define TTY$M_PC_XOFENA 0x40 #define TTY$M_PC_NOCRLF 0x80 #define TTY$M_PC_BREAK 0x100 #define TTY$M_PC_PORTFDT 0x200 #define TTY$M_PC_NOMODEM 0x400 #define TTY$M_PC_NODISCONNECT 0x800 #define TTY$M_PC_SMART_READ 0x1000 #define TTY$M_PC_ACCPORNAM 0x2000 #define TTY$M_PC_FRAME 0x4000 #define TTY$M_PC_MULTISESSION 0x8000 #define UCB$M_TT_DSBL 0x80 #ifdef __cplusplus /* Define structure prototypes */ struct _twp; #endif /* #ifdef __cplusplus */ #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 _tty_ucb { #pragma __nomember_alignment LTRM_UCB ucb$r_ltrmucb; /* READ TIMEOUT CONTROL */ unsigned int ucb$l_tt_rdue; /* ABSTIME WHEN READ TIMEOUT DUE */ void (*ucb$l_tt_rtimou)(); /* ADDRESS OF READ TIMEOUT ROUTINE */ /* TERMINAL DRIVER STATE TABLE */ /* (NOTE: Any changes made to this state table must also be made to */ /* the SX state table.) */ __union { unsigned __int64 ucb$q_tt_state; /* CURRENT UNIT STATE VECTOR */ __struct { __union { unsigned int ucb$l_tt_state1; __struct { unsigned tty$v_st_power : 1; /* */ unsigned tty$v_st_ctrls : 1; /* */ unsigned tty$v_st_lostcts : 1; /* Reserved for future work */ unsigned tty$v_st_modem_off : 1; /* */ unsigned tty$v_st_posixstall : 1; /* POSIX timed output wait */ unsigned tty$v_st_fill : 1; /* */ unsigned tty$v_st_cursor : 1; /* */ unsigned tty$v_st_sendlf : 1; /* */ unsigned tty$v_st_backspace : 1; /* */ unsigned tty$v_st_multi : 1; /* */ unsigned tty$v_st_write : 1; unsigned tty$v_st_posixwrite : 1; /* POSIX special case write */ unsigned tty$v_st_eol : 1; /* */ unsigned tty$v_st_editread : 1; /* */ unsigned tty$v_st_rdverify : 1; /* */ unsigned tty$v_st_recall : 1; /* */ unsigned tty$v_st_read : 1; /* */ unsigned tty$v_st_posixread : 1; /* */ unsigned tty$v_fill_0_ : 6; } ucb$r_tt_state1_fields; } ucb$r_tt_state1_overlay; __union { unsigned int ucb$l_tt_state2; __struct { unsigned tty$v_st_ctrlo : 1; /* */ unsigned tty$v_st_del : 1; /* */ unsigned tty$v_st_pasall : 1; /* */ unsigned tty$v_st_noecho : 1; /* */ unsigned tty$v_st_wrtall : 1; /* */ unsigned tty$v_st_prompt : 1; /* */ unsigned tty$v_st_nofltr : 1; /* */ unsigned tty$v_st_esc : 1; /* */ unsigned tty$v_st_badesc : 1; /* */ unsigned tty$v_st_nl : 1; /* */ unsigned tty$v_st_refrsh : 1; /* */ unsigned tty$v_st_escape : 1; /* */ unsigned tty$v_st_typful : 1; /* */ unsigned tty$v_st_skiplf : 1; /* */ unsigned tty$v_st_esc_o : 1; /* */ unsigned tty$v_st_wrap : 1; /* */ unsigned tty$v_st_ovrflo : 1; /* */ unsigned tty$v_st_autop : 1; /* */ unsigned tty$v_st_ctrlr : 1; /* */ unsigned tty$v_st_skipcrlf : 1; /* */ unsigned tty$v_st_editing : 1; /* */ unsigned tty$v_st_tabexpand : 1; /* */ unsigned tty$v_st_quoting : 1; /* */ unsigned tty$v_st_overstrike : 1; /* */ unsigned tty$v_st_termnorm : 1; /* */ unsigned tty$v_st_echaes : 1; /* */ unsigned tty$v_st_pre : 1; /* */ unsigned tty$v_st_nintmulti : 1; /* */ unsigned tty$v_st_reconnect : 1; /* */ unsigned tty$v_st_ctslow : 1; /* */ unsigned tty$v_st_tabright : 1; /* */ unsigned tty$v_fill_1_ : 1; } ucb$r_tt_state2_fields; } ucb$r_tt_state2_overlay; } ucb$r_tt_state_q_block; } ucb$r_tt_state_overlay; struct _ucb *ucb$l_tt_logucb; /* ADDRESS OF THE LOGICAL UCB */ /* DEFAULT CHARACTERISTICS */ unsigned int ucb$l_tt_dechar; /* DEFAULT DEVICE CHARACTERISTICS */ unsigned int ucb$l_tt_decha1; /* DEFAULT DEVICE CHAR EXTENSIONS */ unsigned int ucb$l_tt_decha2; /* MORE DEVICE CHARACTERISTICS */ unsigned int ucb$l_tt_decha3; /* ANOTHER DEVICE CHAR EXTENSIONS */ /* WRITE QUEUE POINTERS */ char ucb$b_fill_2_ [4]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif struct _twp *ucb$l_tt_wflink; /* Write queue forward link. */ #pragma __nomember_alignment struct _twp *ucb$l_tt_wblink; /* Write queue backward link. */ struct _twp *ucb$l_tt_wrtbuf; /* Current write buffer block. */ /* ADDRESS AND LENGTH OF MULTI-ECHO STRING */ void *ucb$l_tt_multi; /* CURRENT MULTIECHO BUFFER ADDRESS */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned short int ucb$w_tt_multilen; /* LENGTH OF STRING TO OUTPUT */ #pragma __nomember_alignment char ucb$b_fill_3_ [2]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned short int ucb$w_tt_smltlen; /* SAVED MULTI LENGTH */ #pragma __nomember_alignment char ucb$b_fill_4_ [2]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif void *ucb$l_tt_smlt; /* AND THE SAVED ADDRESS */ /*-- ********************************************************************** */ /* DEFAULT SPEED, FILL ,PARITY (MUST BE CONTIGUOUS) */ /*++ ******************************************************************* */ #pragma __nomember_alignment unsigned short int ucb$w_tt_despee; /* DEFAULT SPEED */ unsigned char ucb$b_tt_decrf; /* DEFAULT CR FILL */ unsigned char ucb$b_tt_delff; /* DEFAULT LF FILL */ unsigned char ucb$b_tt_depari; /* DEFAULT PARITY/CHAR SIZE */ unsigned char ucb$b_tt_defspe_spare1; unsigned short int ucb$w_tt_defspe_spare2; /*-- ********************************************************************** */ /* */ /* DEFAULT TERMINAL TYPE AND SIZE */ /* */ /*++ *********************************************************************** */ unsigned short int ucb$w_tt_desize; /* DEFAULT LINE SIZE */ unsigned char ucb$b_tt_detype; /* DEFAULT TERMINAL TYPE */ unsigned char ucb$b_tt_spare1; /* SPARE BYTE MUST FOLLOW */ /*-- ********************************************************************** */ /* SPEED, FILL, PARITY (MUST BE CONTIGUOUS) */ /*++ ***************************************************************** */ __union { unsigned short int ucb$w_tt_speed; /* SPEED CODES (SPLIT SPEED) */ __struct { unsigned char ucb$b_tt_tspeed; /* TRANSMIT SPEED */ unsigned char ucb$b_tt_rspeed; /* RECEIVE SPEED */ } ucb$r_tt_speed_fields; } ucb$r_tt_speed_overlay; unsigned char ucb$b_tt_crfill; /* NUMBER FILLS TO OUTPUT ON CR */ unsigned char ucb$b_tt_lffill; /* NUMBER FILLS TO OUTPUT ON LF */ __union { unsigned char ucb$b_tt_parity; /* PARITY AND CHARACTER SIZE DEFINITIONS */ __struct { unsigned ucb$v_tt_xxparity : 1; /* UNUSED ?? */ unsigned ucb$v_tt_disparerr : 1; /* SPECIFY DISREGARD PARITY ERRORS */ unsigned ucb$v_tt_userframe : 1; /* SPECIFY USER FRAME SETUP */ unsigned ucb$v_tt_len : 2; /* CHARACTER LENGTH */ unsigned ucb$v_tt_stop : 1; /* STOP BITS */ unsigned ucb$v_tt_party : 1; /* PARITY ENABLED */ unsigned ucb$v_tt_odd : 1; /* ODD PARITY */ } ucb$r_tt_parity_bits; } ucb$r_parity_overlay; unsigned char ucb$b_tt_par_spare1; unsigned short int ucb$w_tt_par_spare2; /*-- ****************************************************************** */ /* Typeahead buffer address */ void *ucb$l_tt_typahd; /* TYPEAHEAD BUFFER ADDRESS */ /* CURRENT CURSOR AND LINE POSITION FOR FORMATTED OPERATIONS */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned short int ucb$w_tt_cursor; /* CURRENT CURSOR POSITION */ #pragma __nomember_alignment char ucb$b_fill_5_ [2]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned char ucb$b_tt_line; /* CURRENT LINE ON PAGE */ #pragma __nomember_alignment char ucb$b_fill_6_ [3]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned char ucb$b_tt_lastc; /* LAST FORMATTED OUTPUT CHARACTER */ /* Number of back spaces to output for non-ansi terminals */ #pragma __nomember_alignment char ucb$b_fill_7_ [3]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned short int ucb$w_tt_bsplen; /* NUMBER OF BACKSPACES */ /* FILL HANDLING */ #pragma __nomember_alignment char ucb$b_fill_8_ [2]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned char ucb$b_tt_fill; /* CURRENT FILL COUNT */ /* ESCAPE SYNTAX RULE STATE. */ #pragma __nomember_alignment char ucb$b_fill_9_ [3]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned char ucb$b_tt_esc; /* CURRENT READ ESCAPE SYNTAX STATE */ #pragma __nomember_alignment char ucb$b_fill_10_ [3]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned char ucb$b_tt_esc_o; /* OUPUT ESCAPE STATE */ /* Count of characters in interrupt string */ #pragma __nomember_alignment char ucb$b_fill_11_ [3]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned char ucb$b_tt_intcnt; /* Bit used for modem control */ #pragma __nomember_alignment char ucb$b_fill_12_ [3]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned short int ucb$w_tt_unitbit; /* BIT USED TO ENABLE AND DISABLE MODEM CONTROL. */ /* PORT SPECIFIC OUTPUT CONTROL */ #pragma __nomember_alignment char ucb$b_fill_13_ [2]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment unsigned short int ucb$w_tt_hold; /* UNIT HOLDING TANK AND PORT DISPATCH */ __struct { unsigned char tty$b_tank_char; /* CHARACTER */ unsigned tty$v_tank_prempt : 1; /* SEND PREMPT CHARACTER */ unsigned tty$v_tank_stop : 1; /* STOP OUTPUT */ unsigned tty$v_tank_hold : 1; /* CHAR IN TANK */ unsigned tty$v_tank_burst : 1; /* BURST ACTIVE */ unsigned tty$v_tank_dma : 1; /* DMA ACTIVE **** SHOULD MOVE BEFORE BURST **** */ unsigned tty$v_fill_14_ : 3; } ucb$r_tt_hold_bits; } ucb$r_tt_hold_overlay; char ucb$b_fill_15_ [2]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned char ucb$b_tt_prempt; /* THE BYTE USED TO PREMPT INPUT */ #pragma __nomember_alignment char ucb$b_fill_16_ [3]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif char ucb$b_tt_outype; /* TYPE OF OUTPUT THAT THIS CALL */ /* CLASS & PORT VECTOR POINTERS */ #pragma __nomember_alignment char ucb$b_fill_17_ [3]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned char (*ucb$l_tt_getnxt)(); /* ADDRESS OF CLASS INPUT ROUTINE */ #pragma __nomember_alignment unsigned char (*ucb$l_tt_putnxt)(); /* ADDRESS OF CLASS OUTPUT ROUTINE */ int ucb$l_tt_class; /* ADDRESS OF CLASS VECTOR */ int ucb$l_tt_port; /* ADDRESS OF PORT VECTOR */ void *ucb$l_tt_outadr; /* ADDRESS OF OUTPUT CURRENT STREAM */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned short int ucb$w_tt_outlen; /* LENGTH OF OUTPUT STREAM */ #pragma __nomember_alignment char ucb$b_fill_18_ [2]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment unsigned int ucb$l_tt_prtctl; unsigned short int ucb$w_tt_prtctl; /* THE PORT DRIVER CONTROL WORD */ __struct { unsigned tty$v_pc_notime : 1; /* IF SET NO TIMEOUT WILL BE CALCULATED */ unsigned tty$v_pc_dmaena : 1; /* DMA CURRENTLY ENABLED */ unsigned tty$v_pc_dmaavl : 1; /* DMA SUPPORTED ON THIS PORT */ unsigned tty$v_pc_prmmap : 1; /* UNIT CAN HAVE PERMANENT MAP REGISTERS */ unsigned tty$v_pc_mapavl : 1; /* MAP REGISTER CURRENTLY ALLOCATED */ unsigned tty$v_pc_xofavl : 1; /* AUTO XOFF SUPPORTED ON THIS PORT */ unsigned tty$v_pc_xofena : 1; /* AUTO XOFF CURRENTLY ENABLED */ unsigned tty$v_pc_nocrlf : 1; /* don't do free linefeed after creturn */ unsigned tty$v_pc_break : 1; /* TURN ON OR OFF BREAK */ unsigned tty$v_pc_portfdt : 1; /* PORT CONTAINS FDT ROUTINE */ unsigned tty$v_pc_nomodem : 1; /* Port cannot support modem operations */ unsigned tty$v_pc_nodisconnect : 1; /* Device cannot support virtual terminal operations */ unsigned tty$v_pc_smart_read : 1; /* Port contains additional read capabilities */ unsigned tty$v_pc_accpornam : 1; /* Port supports access port name */ unsigned tty$v_pc_frame : 1; /* GETNXT and PUTNXT use frame */ unsigned tty$v_pc_multisession : 1; /* part of multi-session terminal */ } ucb$r_tt_prtctl_bits; } ucb$r_tt_prtctl_overlay; /* MODEM CONTROL DEFINITIONS */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned int ucb$l_tt_ds_st; /* CURRENT MODEM STATE */ unsigned char ucb$b_tt_ds_rcv; /* CURRENT RECEIVE MODEM */ #pragma __nomember_alignment char ucb$b_fill_19_ [3]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned char ucb$b_tt_ds_tx; /* CURRENT TRANSMIT MODEM */ #pragma __nomember_alignment char ucb$b_fill_20_ [3]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned short int ucb$w_tt_ds_tim; /* CURRENT MODEM TIMEOUT */ #pragma __nomember_alignment char ucb$b_fill_21_ [2]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment unsigned char ucb$b_tt_maint; /* MAINTENANCE PARAMETERS */ __struct { unsigned ucb$v_tt_maint_fill : 7; unsigned ucb$v_tt_dsbl : 1; /* LINE DISABLED */ } ucb$r_tt_maint_bits; } ucb$r_tt_maint_overlay; char ucb$b_fill_22_ [3]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned char ucb$b_tt_oldcpzorg; /* Old cursor position */ #pragma __nomember_alignment char ucb$b_fill_23_ [3]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif unsigned short int ucb$w_tt_fillrup; /* FILL to align next */ #pragma __nomember_alignment char ucb$b_fill_24_ [2]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif void *ucb$l_tt_fbk; /* PTR TO FALLBACK BLOCK */ #pragma __nomember_alignment void *ucb$l_tt_rdverify; /* PTR TO READ/VERIFY TABLE */ unsigned int ucb$l_tt_class1; /* CLASS DRIVER LONGWORD */ unsigned int ucb$l_tt_class2; /* AND ANOTHER ONE */ void *ucb$l_tt_accpornam; /* Address of counted string describing the port */ /* typicall LAT server name / and port name or number */ /****************************************************************************** */ /* */ /* Asian VMS extension */ /* */ /*++ ************************************************************************** */ void *ucb$l_tt_a_gcbadr; /* Glyph Control Block address */ unsigned short int ucb$w_tt_a_edsts; /* Multi-byte line edit states */ unsigned char ucb$b_tt_a_state; /* On-demand loading states */ unsigned char ucb$b_tt_a_parse; /* ODL parse states */ unsigned char ucb$b_tt_a_trans; /* JIS conversion states */ unsigned char ucb$b_tt_a_xedsts; /* Extended line edit states */ unsigned short int ucb$w_tt_a_resrv1; /* Reserved */ __union { unsigned char ucb$b_tt_a_char; /* Default Asian modes */ unsigned int ucb$l_tt_a_dechset; /* Default char set bitmask */ } ucb$r_tt_a_char_overlay; } TTY_UCB; #if !defined(__VAXC) #define ucb$q_tt_state ucb$r_tt_state_overlay.ucb$q_tt_state #define ucb$l_tt_state1 ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$l_tt_state1 #define tty$v_st_power ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$r_tt_state1_fields.tty$v_st_power #define tty$v_st_ctrls ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$r_tt_state1_fields.tty$v_st_ctrls #define tty$v_st_lostcts ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$r_tt_state1_fields.tty$v_st_lost\ cts #define tty$v_st_modem_off ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$r_tt_state1_fields.tty$v_st_mo\ dem_off #define tty$v_st_posixstall ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$r_tt_state1_fields.tty$v_st_p\ osixstall #define tty$v_st_fill ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$r_tt_state1_fields.tty$v_st_fill #define tty$v_st_cursor ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$r_tt_state1_fields.tty$v_st_cursor #define tty$v_st_sendlf ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$r_tt_state1_fields.tty$v_st_sendlf #define tty$v_st_backspace ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$r_tt_state1_fields.tty$v_st_ba\ ckspace #define tty$v_st_multi ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$r_tt_state1_fields.tty$v_st_multi #define tty$v_st_write ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$r_tt_state1_fields.tty$v_st_write #define tty$v_st_posixwrite ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$r_tt_state1_fields.tty$v_st_p\ osixwrite #define tty$v_st_eol ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$r_tt_state1_fields.tty$v_st_eol #define tty$v_st_editread ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$r_tt_state1_fields.tty$v_st_edi\ tread #define tty$v_st_rdverify ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$r_tt_state1_fields.tty$v_st_rdv\ erify #define tty$v_st_recall ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$r_tt_state1_fields.tty$v_st_recall #define tty$v_st_read ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$r_tt_state1_fields.tty$v_st_read #define tty$v_st_posixread ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state1_overlay.ucb$r_tt_state1_fields.tty$v_st_po\ sixread #define ucb$l_tt_state2 ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$l_tt_state2 #define tty$v_st_ctrlo ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_ctrlo #define tty$v_st_del ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_del #define tty$v_st_pasall ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_pasall #define tty$v_st_noecho ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_noecho #define tty$v_st_wrtall ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_wrtall #define tty$v_st_prompt ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_prompt #define tty$v_st_nofltr ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_nofltr #define tty$v_st_esc ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_esc #define tty$v_st_badesc ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_badesc #define tty$v_st_nl ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_nl #define tty$v_st_refrsh ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_refrsh #define tty$v_st_escape ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_escape #define tty$v_st_typful ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_typful #define tty$v_st_skiplf ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_skiplf #define tty$v_st_esc_o ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_esc_o #define tty$v_st_wrap ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_wrap #define tty$v_st_ovrflo ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_ovrflo #define tty$v_st_autop ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_autop #define tty$v_st_ctrlr ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_ctrlr #define tty$v_st_skipcrlf ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_ski\ pcrlf #define tty$v_st_editing ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_edit\ ing #define tty$v_st_tabexpand ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_ta\ bexpand #define tty$v_st_quoting ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_quot\ ing #define tty$v_st_overstrike ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_o\ verstrike #define tty$v_st_termnorm ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_ter\ mnorm #define tty$v_st_echaes ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_echaes #define tty$v_st_pre ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_pre #define tty$v_st_nintmulti ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_ni\ ntmulti #define tty$v_st_reconnect ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_re\ connect #define tty$v_st_ctslow ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_ctslow #define tty$v_st_tabright ucb$r_tt_state_overlay.ucb$r_tt_state_q_block.ucb$r_tt_state2_overlay.ucb$r_tt_state2_fields.tty$v_st_tab\ right #define ucb$w_tt_speed ucb$r_tt_speed_overlay.ucb$w_tt_speed #define ucb$b_tt_tspeed ucb$r_tt_speed_overlay.ucb$r_tt_speed_fields.ucb$b_tt_tspeed #define ucb$b_tt_rspeed ucb$r_tt_speed_overlay.ucb$r_tt_speed_fields.ucb$b_tt_rspeed #define ucb$b_tt_parity ucb$r_parity_overlay.ucb$b_tt_parity #define ucb$v_tt_xxparity ucb$r_parity_overlay.ucb$r_tt_parity_bits.ucb$v_tt_xxparity #define ucb$v_tt_disparerr ucb$r_parity_overlay.ucb$r_tt_parity_bits.ucb$v_tt_disparerr #define ucb$v_tt_userframe ucb$r_parity_overlay.ucb$r_tt_parity_bits.ucb$v_tt_userframe #define ucb$v_tt_len ucb$r_parity_overlay.ucb$r_tt_parity_bits.ucb$v_tt_len #define ucb$v_tt_stop ucb$r_parity_overlay.ucb$r_tt_parity_bits.ucb$v_tt_stop #define ucb$v_tt_party ucb$r_parity_overlay.ucb$r_tt_parity_bits.ucb$v_tt_party #define ucb$v_tt_odd ucb$r_parity_overlay.ucb$r_tt_parity_bits.ucb$v_tt_odd #define ucb$w_tt_hold ucb$r_tt_hold_overlay.ucb$w_tt_hold #define tty$b_tank_char ucb$r_tt_hold_overlay.ucb$r_tt_hold_bits.tty$b_tank_char #define tty$v_tank_prempt ucb$r_tt_hold_overlay.ucb$r_tt_hold_bits.tty$v_tank_prempt #define tty$v_tank_stop ucb$r_tt_hold_overlay.ucb$r_tt_hold_bits.tty$v_tank_stop #define tty$v_tank_hold ucb$r_tt_hold_overlay.ucb$r_tt_hold_bits.tty$v_tank_hold #define tty$v_tank_burst ucb$r_tt_hold_overlay.ucb$r_tt_hold_bits.tty$v_tank_burst #define tty$v_tank_dma ucb$r_tt_hold_overlay.ucb$r_tt_hold_bits.tty$v_tank_dma #define ucb$l_tt_prtctl ucb$r_tt_prtctl_overlay.ucb$l_tt_prtctl #define ucb$w_tt_prtctl ucb$r_tt_prtctl_overlay.ucb$w_tt_prtctl #define tty$v_pc_notime ucb$r_tt_prtctl_overlay.ucb$r_tt_prtctl_bits.tty$v_pc_notime #define tty$v_pc_dmaena ucb$r_tt_prtctl_overlay.ucb$r_tt_prtctl_bits.tty$v_pc_dmaena #define tty$v_pc_dmaavl ucb$r_tt_prtctl_overlay.ucb$r_tt_prtctl_bits.tty$v_pc_dmaavl #define tty$v_pc_prmmap ucb$r_tt_prtctl_overlay.ucb$r_tt_prtctl_bits.tty$v_pc_prmmap #define tty$v_pc_mapavl ucb$r_tt_prtctl_overlay.ucb$r_tt_prtctl_bits.tty$v_pc_mapavl #define tty$v_pc_xofavl ucb$r_tt_prtctl_overlay.ucb$r_tt_prtctl_bits.tty$v_pc_xofavl #define tty$v_pc_xofena ucb$r_tt_prtctl_overlay.ucb$r_tt_prtctl_bits.tty$v_pc_xofena #define tty$v_pc_nocrlf ucb$r_tt_prtctl_overlay.ucb$r_tt_prtctl_bits.tty$v_pc_nocrlf #define tty$v_pc_break ucb$r_tt_prtctl_overlay.ucb$r_tt_prtctl_bits.tty$v_pc_break #define tty$v_pc_portfdt ucb$r_tt_prtctl_overlay.ucb$r_tt_prtctl_bits.tty$v_pc_portfdt #define tty$v_pc_nomodem ucb$r_tt_prtctl_overlay.ucb$r_tt_prtctl_bits.tty$v_pc_nomodem #define tty$v_pc_nodisconnect ucb$r_tt_prtctl_overlay.ucb$r_tt_prtctl_bits.tty$v_pc_nodisconnect #define tty$v_pc_smart_read ucb$r_tt_prtctl_overlay.ucb$r_tt_prtctl_bits.tty$v_pc_smart_read #define tty$v_pc_accpornam ucb$r_tt_prtctl_overlay.ucb$r_tt_prtctl_bits.tty$v_pc_accpornam #define tty$v_pc_frame ucb$r_tt_prtctl_overlay.ucb$r_tt_prtctl_bits.tty$v_pc_frame #define tty$v_pc_multisession ucb$r_tt_prtctl_overlay.ucb$r_tt_prtctl_bits.tty$v_pc_multisession #define ucb$b_tt_maint ucb$r_tt_maint_overlay.ucb$b_tt_maint #define ucb$v_tt_maint_fill ucb$r_tt_maint_overlay.ucb$r_tt_maint_bits.ucb$v_tt_maint_fill #define ucb$v_tt_dsbl ucb$r_tt_maint_overlay.ucb$r_tt_maint_bits.ucb$v_tt_dsbl #define ucb$b_tt_a_char ucb$r_tt_a_char_overlay.ucb$b_tt_a_char #define ucb$l_tt_a_dechset ucb$r_tt_a_char_overlay.ucb$l_tt_a_dechset #endif /* #if !defined(__VAXC) */ #define UCB$C_TT_CLSLEN 632 #define UCB$K_TT_CLSLEN 632 #define ucb$r_tty_ucb ucb$r_ltrmucb.ucb$r_ucb #define ucb$r_tty_ltrm ucb$r_ltrmucb #define TTY$M_TP_ABORT 0x1 #define TTY$M_TP_ALLOC 0x2 #define TTY$M_TP_DLLOC 0x4 #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 _tpd_ucb { /* */ /* */ /* Terminal Port driver dependant extension region */ /* */ /* */ #pragma __nomember_alignment TTY_UCB ucb$r_ttyucb; int ucb$l_tp_map; /* UNIBUS MAP REGISTERS */ __union { unsigned char ucb$b_tp_stat; /* DMA PORT SPECIFIC STATUS */ __struct { /* BITS DEFINED IN THE DMA STATUS WORD */ unsigned tty$v_tp_abort : 1; /* DMA ABORT REQUESTED ON THIS LINE */ unsigned tty$v_tp_alloc : 1; /* ALLOC MAP FORK IN PROGRESS */ unsigned tty$v_tp_dlloc : 1; /* DEALLOCATE MAP FORK IN PROGRESS */ unsigned tty$v_fill_25_ : 5; } ucb$r_tp_stat_bits; } ucb$r_tp_stat_overlay; unsigned char ucb$b_tp_spare1; unsigned short int ucb$w_tp_spare2; } TPD_UCB; #if !defined(__VAXC) #define ucb$b_tp_stat ucb$r_tp_stat_overlay.ucb$b_tp_stat #define tty$v_tp_abort ucb$r_tp_stat_overlay.ucb$r_tp_stat_bits.tty$v_tp_abort #define tty$v_tp_alloc ucb$r_tp_stat_overlay.ucb$r_tp_stat_bits.tty$v_tp_alloc #define tty$v_tp_dlloc ucb$r_tp_stat_overlay.ucb$r_tp_stat_bits.tty$v_tp_dlloc #endif /* #if !defined(__VAXC) */ #define UCB$C_TP_LENGTH 640 #define UCB$K_TP_LENGTH 640 #define UCB$C_TT_LENGTH 640 #define UCB$K_TT_LENGTH 640 #define ucb$r_tpd_ucb ucb$r_ttyucb.ucb$r_ltrmucb.ucb$r_ucb #define ucb$r_tpd_ltrm ucb$r_ttyucb.ucb$r_ltrm #define ucb$r_tpd_tty ucb$r_ttyucb /* TERMINAL DRIVER SX STATE TABLE */ /* (NOTE: Any changes made to this state table must also be made to */ /* the ST state table.) */ #define TTY$M_SX_LOSTCTS 0x4 #define TTY$M_SX_POSIXSTALL 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 _sx_state { #pragma __nomember_alignment TPD_UCB tty$r_tpducb; __struct { unsigned tty$v_sx_power : 1; /* */ unsigned tty$v_sx_ctrls : 1; /* */ unsigned tty$v_sx_lostcts : 1; /* Reserved for future work */ unsigned tty$v_sx_modem_off : 1; /* */ unsigned tty$v_sx_posixstall : 1; /* POSIX timed output wait */ unsigned tty$v_sx_fill : 1; /* */ unsigned tty$v_sx_cursor : 1; /* */ unsigned tty$v_sx_sendlf : 1; /* */ unsigned tty$v_sx_backspace : 1; /* OUTPUT BACKSPACES FOR SEVERAL LOOPS */ unsigned tty$v_sx_multi : 1; /* */ unsigned tty$v_sx_write : 1; /* Write state */ unsigned tty$v_sx_posixwrite : 1; /* POSIX Write state */ unsigned tty$v_sx_eol : 1; /* */ unsigned tty$v_sx_editread : 1; /* */ unsigned tty$v_sx_rdverify : 1; /* */ unsigned tty$v_sx_recall : 1; /* */ unsigned tty$v_sx_read : 1; /* */ unsigned tty$v_sx_posixread : 1; /* */ unsigned tty$v_sx_fillbits : 14; /* END OF FIRST LONGWORD */ unsigned tty$v_sx_ctrlo : 1; /* */ unsigned tty$v_sx_del : 1; /* */ unsigned tty$v_sx_pasall : 1; /* */ unsigned tty$v_sx_noecho : 1; /* */ unsigned tty$v_sx_wrtall : 1; /* */ unsigned tty$v_sx_prompt : 1; /* */ unsigned tty$v_sx_nofltr : 1; /* */ unsigned tty$v_sx_esc : 1; /* */ unsigned tty$v_sx_badesc : 1; /* */ unsigned tty$v_sx_nl : 1; /* New line must directly precede */ unsigned tty$v_sx_refrsh : 1; /* refresh, or all breaks. */ unsigned tty$v_sx_escape : 1; /* */ unsigned tty$v_sx_typful : 1; /* */ unsigned tty$v_sx_skiplf : 1; /* */ unsigned tty$v_sx_esc_o : 1; /* */ unsigned tty$v_sx_wrap : 1; /* */ unsigned tty$v_sx_ovrflo : 1; /* */ unsigned tty$v_sx_autop : 1; /* */ unsigned tty$v_sx_ctrlr : 1; /* */ unsigned tty$v_sx_skipcrlf : 1; /* */ unsigned tty$v_sx_editing : 1; /* */ unsigned tty$v_sx_tabexpand : 1; /* */ unsigned tty$v_sx_quoting : 1; /* */ unsigned tty$v_sx_overstrike : 1; /* */ unsigned tty$v_sx_termnorm : 1; /* */ unsigned tty$v_sx_echaes : 1; /* */ unsigned tty$v_sx_pre : 1; /* */ unsigned tty$v_sx_nintmulti : 1; /* */ unsigned tty$v_sx_reconnect : 1; /* */ unsigned tty$v_sx_ctslow : 1; /* */ unsigned tty$v_sx_tabright : 1; /* */ unsigned tty$v_fill_26_ : 1; } tty$r_tt_state_sx; } SX_STATE; #if !defined(__VAXC) #define tty$v_sx_power tty$r_tt_state_sx.tty$v_sx_power #define tty$v_sx_ctrls tty$r_tt_state_sx.tty$v_sx_ctrls #define tty$v_sx_lostcts tty$r_tt_state_sx.tty$v_sx_lostcts #define tty$v_sx_modem_off tty$r_tt_state_sx.tty$v_sx_modem_off #define tty$v_sx_posixstall tty$r_tt_state_sx.tty$v_sx_posixstall #define tty$v_sx_fill tty$r_tt_state_sx.tty$v_sx_fill #define tty$v_sx_cursor tty$r_tt_state_sx.tty$v_sx_cursor #define tty$v_sx_sendlf tty$r_tt_state_sx.tty$v_sx_sendlf #define tty$v_sx_backspace tty$r_tt_state_sx.tty$v_sx_backspace #define tty$v_sx_multi tty$r_tt_state_sx.tty$v_sx_multi #define tty$v_sx_write tty$r_tt_state_sx.tty$v_sx_write #define tty$v_sx_posixwrite tty$r_tt_state_sx.tty$v_sx_posixwrite #define tty$v_sx_eol tty$r_tt_state_sx.tty$v_sx_eol #define tty$v_sx_editread tty$r_tt_state_sx.tty$v_sx_editread #define tty$v_sx_rdverify tty$r_tt_state_sx.tty$v_sx_rdverify #define tty$v_sx_recall tty$r_tt_state_sx.tty$v_sx_recall #define tty$v_sx_read tty$r_tt_state_sx.tty$v_sx_read #define tty$v_sx_posixread tty$r_tt_state_sx.tty$v_sx_posixread #define tty$v_sx_fillbits tty$r_tt_state_sx.tty$v_sx_fillbits #define tty$v_sx_ctrlo tty$r_tt_state_sx.tty$v_sx_ctrlo #define tty$v_sx_del tty$r_tt_state_sx.tty$v_sx_del #define tty$v_sx_pasall tty$r_tt_state_sx.tty$v_sx_pasall #define tty$v_sx_noecho tty$r_tt_state_sx.tty$v_sx_noecho #define tty$v_sx_wrtall tty$r_tt_state_sx.tty$v_sx_wrtall #define tty$v_sx_prompt tty$r_tt_state_sx.tty$v_sx_prompt #define tty$v_sx_nofltr tty$r_tt_state_sx.tty$v_sx_nofltr #define tty$v_sx_esc tty$r_tt_state_sx.tty$v_sx_esc #define tty$v_sx_badesc tty$r_tt_state_sx.tty$v_sx_badesc #define tty$v_sx_nl tty$r_tt_state_sx.tty$v_sx_nl #define tty$v_sx_refrsh tty$r_tt_state_sx.tty$v_sx_refrsh #define tty$v_sx_escape tty$r_tt_state_sx.tty$v_sx_escape #define tty$v_sx_typful tty$r_tt_state_sx.tty$v_sx_typful #define tty$v_sx_skiplf tty$r_tt_state_sx.tty$v_sx_skiplf #define tty$v_sx_esc_o tty$r_tt_state_sx.tty$v_sx_esc_o #define tty$v_sx_wrap tty$r_tt_state_sx.tty$v_sx_wrap #define tty$v_sx_ovrflo tty$r_tt_state_sx.tty$v_sx_ovrflo #define tty$v_sx_autop tty$r_tt_state_sx.tty$v_sx_autop #define tty$v_sx_ctrlr tty$r_tt_state_sx.tty$v_sx_ctrlr #define tty$v_sx_skipcrlf tty$r_tt_state_sx.tty$v_sx_skipcrlf #define tty$v_sx_editing tty$r_tt_state_sx.tty$v_sx_editing #define tty$v_sx_tabexpand tty$r_tt_state_sx.tty$v_sx_tabexpand #define tty$v_sx_quoting tty$r_tt_state_sx.tty$v_sx_quoting #define tty$v_sx_overstrike tty$r_tt_state_sx.tty$v_sx_overstrike #define tty$v_sx_termnorm tty$r_tt_state_sx.tty$v_sx_termnorm #define tty$v_sx_echaes tty$r_tt_state_sx.tty$v_sx_echaes #define tty$v_sx_pre tty$r_tt_state_sx.tty$v_sx_pre #define tty$v_sx_nintmulti tty$r_tt_state_sx.tty$v_sx_nintmulti #define tty$v_sx_reconnect tty$r_tt_state_sx.tty$v_sx_reconnect #define tty$v_sx_ctslow tty$r_tt_state_sx.tty$v_sx_ctslow #define tty$v_sx_tabright tty$r_tt_state_sx.tty$v_sx_tabright #endif /* #if !defined(__VAXC) */ #define TTY$S_TTYUCB 248 /* Old size name */ #define TTY$S_TTYRTTUCB 248 /* Old size name */ #define TTY$S_TTYUCBDEF 648 /* Old size name, synonym for TTYUCB$S_TTYUCB */ #define ucb$r_sx_state_ucb ucb$r_tpducb.ucb$r_ttyucb.ucb$r_ltrmucb.ucb$r_ucb #define ucb$r_sx_state_ltrm ucb$r_tpducb.ucb$r_ttyucb.ucb$r_ltrm #define ucb$r_sx_state_tty ucb$r_tpducb.ucb$r_ttyucb #define ucb$r_sx_state_tpd ucb$r_tpducb #define FLG$M_CTRLO 0x1 #define FLG$M_CANCTRLO 0x2 #define FLG$M_VAXTOVAX 0x4 #define FLG$M_CTRLC 0x8 #define FLG$M_INIT 0x10 #define FLG$M_RESET_TIMER 0x20 #define FLG$M_DECNET_BUSY 0x40 #define FLG$M_OUTPUT_BUSY 0x80 #define FLG$M_READ_BUSY 0x100 #define FLG$M_SENSE_BUSY 0x200 #define FLG$M_OOB_CHAR 0x400 #define FLG$M_FLUSH_OUTPUT 0x800 #define FLG$M_CLR_NOBRDCST 0x1000 #define FLG$M_READ_ABORT 0x2000 #define FLG$M_READ_ABORTED 0x4000 #define FLG$M_ISUPPORT 0x8000 #define FLG$M_PARTIAL_READ 0x10000 #ifdef __cplusplus /* Define structure prototypes */ struct _wcb; struct _irp; struct _dcb; #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 _rtt_ucb { /* */ /* remote terminal extension */ /* */ #pragma __nomember_alignment LTRM_UCB ucb$r_ltrmucb; __struct { struct _ucb *ucb$l_rtt_netucb; /* NET DEVICE UCB */ struct _wcb *ucb$l_rtt_netwind; /* NET DEVICE WCB */ struct _irp *ucb$l_rtt_irpfl; /* IRP QUEUE */ struct _irp *ucb$l_rtt_irpbl; /* IRP QUEUE */ struct _irp *ucb$l_rtt_netirp; /* READ NET IIRP */ int ucb$l_rtt_bandincl; /* OUT OF BAND INCLUDES */ unsigned int ucb$l_rtt_bandinmsk; /* OUT OF BAND INCLUDE MASK */ unsigned int ucb$l_rtt_bandexcl; /* out of band exclude mask */ unsigned int ucb$l_rtt_bandexmsk; /* out of band exclude */ unsigned char ucb$b_rtt_provrs; /* PROTOCOL VERSION */ unsigned char ucb$b_rtt_proeco; /* PROTOCOL ECO */ unsigned short int ucb$w_rtt_link; /* LINK NUMBER (for LOGINOUT) */ unsigned char ucb$b_rtt_obj; /* OBJECT NUMBER CONNECTED */ unsigned short int ucb$w_rtt_systype; /* SYSTEM TYPE (VMS=7) */ unsigned char ucb$b_rtt_fillbyte; /* fill - use when convenient */ /* CTERM driver only */ __union { unsigned int ucb$l_ct_flags; /* MISC FLAGS */ __struct { unsigned flg$v_ctrlo : 1; /* CTRLO IN PROGRESS */ unsigned flg$v_canctrlo : 1; /* CANCEL CTRLO ON WRITE */ unsigned flg$v_vaxtovax : 1; /* VAX TO VAX */ unsigned flg$v_ctrlc : 1; /* CTRL/C DELIVERED */ unsigned flg$v_init : 1; /* AWAITING FIRST WRITE */ unsigned flg$v_reset_timer : 1; /* Restart timer due to write. */ unsigned flg$v_decnet_busy : 1; /* DECnet Output task busy. */ unsigned flg$v_output_busy : 1; /* Output task busy. */ unsigned flg$v_read_busy : 1; /* Read task busy. */ unsigned flg$v_sense_busy : 1; /* Sense task busy. */ unsigned flg$v_oob_char : 1; /* Process OOB character later. */ unsigned flg$v_flush_output : 1; /* Flush output for out-of-band abort. */ unsigned flg$v_clr_nobrdcst : 1; /* Don't broadcast until after first write. */ unsigned flg$v_read_abort : 1; /* Read abort in progress. */ unsigned flg$v_read_aborted : 1; /* Read has already been aborted. */ unsigned flg$v_isupport : 1; /* Support of ISUPPORT msg */ unsigned flg$v_partial_read : 1; /* Partial read in progress */ unsigned flg$v_fill_27_ : 7; } ucb$r_ct_flags_bits; } ucb$r_ct_flags_overlay; struct _irp *ucb$l_ct_wiirp; /* WRITE IIRP */ struct _tqe *ucb$l_ct_tqe; /* TQE ADDRESS */ struct _dcb *ucb$l_ct_netqfl; /* Queue of DCB's waiting */ struct _dcb *ucb$l_ct_netqbl; /* for write IRP */ struct _irp *ucb$l_ct_senseqfl; /* Queue for pending */ struct _irp *ucb$l_ct_senseqbl; /* IO$_SENSExxxx IRPs. */ struct _irp *ucb$l_ct_readqfl; /* Queue for pending */ struct _irp *ucb$l_ct_readqbl; /* read IRPs. */ struct _dcb *ucb$l_ct_wrtdcb; /* First DCB in current write chain. */ struct _dcb *ucb$l_ct_curdcb; /* Last DCB added to write chain. */ unsigned short int ucb$w_ct_remsiz; /* Remaining size in message. */ short int ucb$w_ct_qdcbcnt; /* Number of queued DCBs. */ unsigned short int ucb$w_ct_maxmsg; /* MAX WRITE TO NET SIZE */ unsigned short int ucb$w_ct_maxread; /* MAX READ IN SERVER */ unsigned int ucb$l_ct_legalmsg; /* LEGAL MESSAGE MASK */ unsigned char ucb$b_ct_version; /* CTERM VERSION */ unsigned char ucb$b_ct_eco; /* CTERM ECO */ unsigned short int ucb$w_ct_speed; /* SPEED */ unsigned char ucb$b_ct_crfill; /* CR FILL */ unsigned char ucb$b_ct_lffill; /* LF FILL */ unsigned short int ucb$w_ct_parity; /* CTERM PARITY */ unsigned int ucb$l_ct_include; /* INCLUDE OUT-OF-BAND CHARACTER MASK */ unsigned int ucb$l_ct_exclude; /* EXCLUDE OUT-OF-BAND CHARACTER MASK */ unsigned int ucb$l_ct_abort; /* ABORT OUT-OF-BAND CHARACTER MASK */ unsigned char ucb$b_ct_oob_char; /* Received out of band character. */ unsigned char ucb$b_ct_fill_byte [43]; /* fill */ unsigned short int ucb$w_ct_prtctl; /* Same as UCB$W_TT_PRTCTL */ unsigned __int64 ucb$q_ct_isupport; /* Messages supported */ unsigned int ucb$l_ct_fill_longword; /* fill */ } ucb$r_rttucb; char ucb$b_fill_28_ [6]; } RTT_UCB; #if !defined(__VAXC) #define ucb$l_rtt_netucb ucb$r_rttucb.ucb$l_rtt_netucb #define ucb$l_rtt_netwind ucb$r_rttucb.ucb$l_rtt_netwind #define ucb$l_rtt_irpfl ucb$r_rttucb.ucb$l_rtt_irpfl #define ucb$l_rtt_irpbl ucb$r_rttucb.ucb$l_rtt_irpbl #define ucb$l_rtt_netirp ucb$r_rttucb.ucb$l_rtt_netirp #define ucb$l_rtt_bandincl ucb$r_rttucb.ucb$l_rtt_bandincl #define ucb$l_rtt_bandinmsk ucb$r_rttucb.ucb$l_rtt_bandinmsk #define ucb$l_rtt_bandexcl ucb$r_rttucb.ucb$l_rtt_bandexcl #define ucb$l_rtt_bandexmsk ucb$r_rttucb.ucb$l_rtt_bandexmsk #define ucb$b_rtt_provrs ucb$r_rttucb.ucb$b_rtt_provrs #define ucb$b_rtt_proeco ucb$r_rttucb.ucb$b_rtt_proeco #define ucb$w_rtt_link ucb$r_rttucb.ucb$w_rtt_link #define ucb$b_rtt_obj ucb$r_rttucb.ucb$b_rtt_obj #define ucb$w_rtt_systype ucb$r_rttucb.ucb$w_rtt_systype #define ucb$b_rtt_fillbyte ucb$r_rttucb.ucb$b_rtt_fillbyte #define ucb$l_ct_flags ucb$r_rttucb.ucb$r_ct_flags_overlay.ucb$l_ct_flags #define flg$v_ctrlo ucb$r_rttucb.ucb$r_ct_flags_overlay.ucb$r_ct_flags_bits.flg$v_ctrlo #define flg$v_canctrlo ucb$r_rttucb.ucb$r_ct_flags_overlay.ucb$r_ct_flags_bits.flg$v_canctrlo #define flg$v_vaxtovax ucb$r_rttucb.ucb$r_ct_flags_overlay.ucb$r_ct_flags_bits.flg$v_vaxtovax #define flg$v_ctrlc ucb$r_rttucb.ucb$r_ct_flags_overlay.ucb$r_ct_flags_bits.flg$v_ctrlc #define flg$v_init ucb$r_rttucb.ucb$r_ct_flags_overlay.ucb$r_ct_flags_bits.flg$v_init #define flg$v_reset_timer ucb$r_rttucb.ucb$r_ct_flags_overlay.ucb$r_ct_flags_bits.flg$v_reset_timer #define flg$v_decnet_busy ucb$r_rttucb.ucb$r_ct_flags_overlay.ucb$r_ct_flags_bits.flg$v_decnet_busy #define flg$v_output_busy ucb$r_rttucb.ucb$r_ct_flags_overlay.ucb$r_ct_flags_bits.flg$v_output_busy #define flg$v_read_busy ucb$r_rttucb.ucb$r_ct_flags_overlay.ucb$r_ct_flags_bits.flg$v_read_busy #define flg$v_sense_busy ucb$r_rttucb.ucb$r_ct_flags_overlay.ucb$r_ct_flags_bits.flg$v_sense_busy #define flg$v_oob_char ucb$r_rttucb.ucb$r_ct_flags_overlay.ucb$r_ct_flags_bits.flg$v_oob_char #define flg$v_flush_output ucb$r_rttucb.ucb$r_ct_flags_overlay.ucb$r_ct_flags_bits.flg$v_flush_output #define flg$v_clr_nobrdcst ucb$r_rttucb.ucb$r_ct_flags_overlay.ucb$r_ct_flags_bits.flg$v_clr_nobrdcst #define flg$v_read_abort ucb$r_rttucb.ucb$r_ct_flags_overlay.ucb$r_ct_flags_bits.flg$v_read_abort #define flg$v_read_aborted ucb$r_rttucb.ucb$r_ct_flags_overlay.ucb$r_ct_flags_bits.flg$v_read_aborted #define flg$v_isupport ucb$r_rttucb.ucb$r_ct_flags_overlay.ucb$r_ct_flags_bits.flg$v_isupport #define flg$v_partial_read ucb$r_rttucb.ucb$r_ct_flags_overlay.ucb$r_ct_flags_bits.flg$v_partial_read #define ucb$l_ct_wiirp ucb$r_rttucb.ucb$l_ct_wiirp #define ucb$l_ct_tqe ucb$r_rttucb.ucb$l_ct_tqe #define ucb$l_ct_netqfl ucb$r_rttucb.ucb$l_ct_netqfl #define ucb$l_ct_netqbl ucb$r_rttucb.ucb$l_ct_netqbl #define ucb$l_ct_senseqfl ucb$r_rttucb.ucb$l_ct_senseqfl #define ucb$l_ct_senseqbl ucb$r_rttucb.ucb$l_ct_senseqbl #define ucb$l_ct_readqfl ucb$r_rttucb.ucb$l_ct_readqfl #define ucb$l_ct_readqbl ucb$r_rttucb.ucb$l_ct_readqbl #define ucb$l_ct_wrtdcb ucb$r_rttucb.ucb$l_ct_wrtdcb #define ucb$l_ct_curdcb ucb$r_rttucb.ucb$l_ct_curdcb #define ucb$w_ct_remsiz ucb$r_rttucb.ucb$w_ct_remsiz #define ucb$w_ct_qdcbcnt ucb$r_rttucb.ucb$w_ct_qdcbcnt #define ucb$w_ct_maxmsg ucb$r_rttucb.ucb$w_ct_maxmsg #define ucb$w_ct_maxread ucb$r_rttucb.ucb$w_ct_maxread #define ucb$l_ct_legalmsg ucb$r_rttucb.ucb$l_ct_legalmsg #define ucb$b_ct_version ucb$r_rttucb.ucb$b_ct_version #define ucb$b_ct_eco ucb$r_rttucb.ucb$b_ct_eco #define ucb$w_ct_speed ucb$r_rttucb.ucb$w_ct_speed #define ucb$b_ct_crfill ucb$r_rttucb.ucb$b_ct_crfill #define ucb$b_ct_lffill ucb$r_rttucb.ucb$b_ct_lffill #define ucb$w_ct_parity ucb$r_rttucb.ucb$w_ct_parity #define ucb$l_ct_include ucb$r_rttucb.ucb$l_ct_include #define ucb$l_ct_exclude ucb$r_rttucb.ucb$l_ct_exclude #define ucb$l_ct_abort ucb$r_rttucb.ucb$l_ct_abort #define ucb$b_ct_oob_char ucb$r_rttucb.ucb$b_ct_oob_char #define ucb$b_ct_fill_byte ucb$r_rttucb.ucb$b_ct_fill_byte #define ucb$w_ct_prtctl ucb$r_rttucb.ucb$w_ct_prtctl #define ucb$q_ct_isupport ucb$r_rttucb.ucb$q_ct_isupport #define ucb$l_ct_fill_longword ucb$r_rttucb.ucb$l_ct_fill_longword #endif /* #if !defined(__VAXC) */ #define UCB$C_RTT_LENGTH 584 /* Length must be same for both RTTDRIVER */ #define UCB$K_RTT_LENGTH 584 /* and CTDRIVER. */ #define ucb$r_rtt_ucb ucb$r_ltrmucb.ucb$r_ucb #define ucb$r_rtt_ltrm ucb$r_ltrmucb #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 /* __TTYUCBDEF_LOADED */