/**/ /***************************************************************************/ /** **/ /** © 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: 23-MAY-2008 15:01:19 $1$DGA7274:[LIB_H.SRC]FTUCBDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $FTUCBDEF ***/ #ifndef __FTUCBDEF_LOADED #define __FTUCBDEF_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 /* */ /* $FTUCBDEF follows here only because there is no way to get the the */ /* UCB$K_TT_LENGTH into another module. */ /* */ /* Pseudo Terminal Driver definitions */ /* */ /* These definitions define the device dependent extenstions of the TTYUCB. */ /* Certain portions of the UCB are assumed to be contigious and must not be */ /* split. The AST list heads are order and must remain in order $PTDDEF in */ /* STARDEFMP.SDL is in the same order. */ /* */ #include #include #define UCB$M_FT_BSY 0x1 #define UCB$M_FT_DELPEND 0x2 #define UCB$M_FT_DELETE_ACT 0x4 #define UCB$M_FT_INPUT_CRIT 0x8 #define UCB$C_FT_LENGTH 784 /* Size of FT UCB */ #define UCB$K_FT_LENGTH 784 /* " " " " */ #ifdef __cplusplus /* Define structure prototypes */ struct _ftrd; 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 _ft_ucb { #pragma __nomember_alignment TTY_UCB ucb$r_ttyucb; unsigned int ucb$l_ft_ipid; /* Interal PID of UCB control process */ void *ucb$l_ft_1st_page; /* P0/P1 address of first page of I/O buffer */ void *ucb$l_ft_lst_page; /* P0/P1 address of end of the I/O buffer */ void *ucb$l_ft_s0_page; /* S0 address of first page that maps I/O buffer */ unsigned __int64 ucb$q_ft_buffer_handle; /* Pointer to buffer handle used by buffer object code */ /* */ /* Driver private state information */ /* */ __union { unsigned short int ucb$w_ft_sts; /* Driver private status word */ __struct { unsigned ucb$v_ft_bsy : 1; /* Read request pending */ unsigned ucb$v_ft_delpend : 1; /* It is safe to queue deletion fork */ unsigned ucb$v_ft_delete_act : 1; /* Deletion fork queued */ unsigned ucb$v_ft_input_crit : 1; /* Type ahead buffer running out or out of space */ unsigned ucb$v_fill_0_ : 4; } ucb$r_ft_sts_bits; } ucb$r_ft_sts_overlay; unsigned short int ucb$w_ft_chan; /* Control applications channel number */ struct _ftrd *ucb$l_ft_readqfl; /* Read requests queue forward link */ struct _ftrd *ucb$l_ft_readqbl; /* Read requests queue backward link */ struct _ftrd *ucb$l_ft_curr_read; /* Currend read request packet address */ /* */ /* AST list head this must remain in order and should not be changed. */ /* */ /* The AST list head is overlaid and becomes the fork block used to delete the */ /* UCB when the control connection deassigns it's channel. This is safe becuase */ /* once the control connection channel is deleted it is impossible to enable one */ /* of these ASTs. */ /* */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment unsigned char ucb$b_ucb_fkb [48]; __struct { struct _acb *ucb$l_ft_hangup_ast; /* Address of hangup template ACB */ struct _acb *ucb$l_ft_xon_ast; /* Address of XON template ACB */ struct _acb *ucb$l_ft_bell_ast; /* Address of BELL template ACB */ struct _acb *ucb$l_ft_dc3_ast; /* Address of DC3 template ACB */ struct _acb *ucb$l_ft_stop_ast; /* Address of stop output template ACB */ struct _acb *ucb$l_ft_resume_ast; /* Address of resume output template ACB */ struct _acb *ucb$l_ft_set_ast; /* Address of changed characteristics template ACB */ struct _acb *ucb$l_ft_abort_ast; /* Address of abort output template ACB */ struct _acb *ucb$l_ft_start_read_ast; /* Address of start read template ACB */ struct _acb *ucb$l_ft_middle_read_ast; /* Address of middle read template ACB */ struct _acb *ucb$l_ft_end_read_ast; /* Address of end read template ACB */ } ucb$r_ftucb; __struct { struct _fkb *ucb$l_ft_fqfl; /* Fork queue forward link */ struct _fkb *ucb$l_ft_fqbl; /* Fork queue backward link */ unsigned short int ucb$w_ft_frksize; /* Size of the fork block */ unsigned char ucb$b_ft_frk_type; /* Type of structure */ unsigned char ucb$b_ft_flck; /* Fork lock index */ void (*ucb$l_ft_fpc)(); /* Fork PC this points device deletion routine */ __int64 ucb$q_ft_fr3; /* R3 will be 0 */ __int64 ucb$q_ft_fr4; /* UCB address */ } ucb$r_ft_fork_overlay; } ucb$r_ft_delete_fork; /* End Union */ /* */ /* Add 64 bytes of storage for Access Port Name. The string is of the */ /* form first byte is length followed by 63 ASCII characters. */ /* */ unsigned char ucb$b_ft_portname_string [64]; } FT_UCB; #if !defined(__VAXC) #define ucb$w_ft_sts ucb$r_ft_sts_overlay.ucb$w_ft_sts #define ucb$v_ft_bsy ucb$r_ft_sts_overlay.ucb$r_ft_sts_bits.ucb$v_ft_bsy #define ucb$v_ft_delpend ucb$r_ft_sts_overlay.ucb$r_ft_sts_bits.ucb$v_ft_delpend #define ucb$v_ft_delete_act ucb$r_ft_sts_overlay.ucb$r_ft_sts_bits.ucb$v_ft_delete_act #define ucb$v_ft_input_crit ucb$r_ft_sts_overlay.ucb$r_ft_sts_bits.ucb$v_ft_input_crit #define ucb$r_ftucb ucb$r_ft_delete_fork.ucb$r_ftucb #define ucb$l_ft_hangup_ast ucb$r_ftucb.ucb$l_ft_hangup_ast #define ucb$l_ft_xon_ast ucb$r_ftucb.ucb$l_ft_xon_ast #define ucb$l_ft_bell_ast ucb$r_ftucb.ucb$l_ft_bell_ast #define ucb$l_ft_dc3_ast ucb$r_ftucb.ucb$l_ft_dc3_ast #define ucb$l_ft_stop_ast ucb$r_ftucb.ucb$l_ft_stop_ast #define ucb$l_ft_resume_ast ucb$r_ftucb.ucb$l_ft_resume_ast #define ucb$l_ft_set_ast ucb$r_ftucb.ucb$l_ft_set_ast #define ucb$l_ft_abort_ast ucb$r_ftucb.ucb$l_ft_abort_ast #define ucb$l_ft_start_read_ast ucb$r_ftucb.ucb$l_ft_start_read_ast #define ucb$l_ft_middle_read_ast ucb$r_ftucb.ucb$l_ft_middle_read_ast #define ucb$l_ft_end_read_ast ucb$r_ftucb.ucb$l_ft_end_read_ast #define ucb$r_ft_fork_overlay ucb$r_ft_delete_fork.ucb$r_ft_fork_overlay #define ucb$l_ft_fqfl ucb$r_ft_fork_overlay.ucb$l_ft_fqfl #define ucb$l_ft_fqbl ucb$r_ft_fork_overlay.ucb$l_ft_fqbl #define ucb$w_ft_frksize ucb$r_ft_fork_overlay.ucb$w_ft_frksize #define ucb$b_ft_frk_type ucb$r_ft_fork_overlay.ucb$b_ft_frk_type #define ucb$b_ft_flck ucb$r_ft_fork_overlay.ucb$b_ft_flck #define ucb$l_ft_fpc ucb$r_ft_fork_overlay.ucb$l_ft_fpc #define ucb$q_ft_fr3 ucb$r_ft_fork_overlay.ucb$q_ft_fr3 #define ucb$q_ft_fr4 ucb$r_ft_fork_overlay.ucb$q_ft_fr4 #endif /* #if !defined(__VAXC) */ #define UCB$S_FTUCBDEF 784 /* Old size name, synonym for UCB$S_FT_UCB */ #define ucb$r_ft_ucb ucb$r_ttyucb.ucb$r_ltrmucb.ucb$r_ucb #define ucb$r_ft_ltrm ucb$r_ttyucb.ucb$r_ltrm #define ucb$r_ft_tty ucb$r_ttyucb #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 /* __FTUCBDEF_LOADED */