/**/ /***************************************************************************/ /** **/ /** © Copyright 2010, Hewlett-Packard Development Company, L.P. **/ /** **/ /** Confidential computer software. Valid license from HP and/or **/ /** its subsidiaries required for possession, use, or copying. **/ /** **/ /** Consistent with FAR 12.211 and 12.212, Commercial Computer Software, **/ /** Computer Software Documentation, and Technical Data for Commercial **/ /** Items are licensed to the U.S. Government under vendor's standard **/ /** commercial license. **/ /** **/ /** Neither HP nor any of its subsidiaries shall be liable for technical **/ /** or editorial errors or omissions contained herein. The information **/ /** in this document is provided "as is" without warranty of any kind and **/ /** is subject to change without notice. The warranties for HP products **/ /** are set forth in the express limited warranty statements accompanying **/ /** such products. Nothing herein should be construed as constituting an **/ /** additional warranty. **/ /** **/ /***************************************************************************/ /********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:26:56 by OpenVMS SDL EV3-3 */ /* Source: 20-MAY-1993 13:12:48 $1$DGA7274:[LIB_H.SRC]PMBDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $PMBDEF ***/ #ifndef __PMBDEF_LOADED #define __PMBDEF_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 /*+ */ /* PAGE FAULT MONITOR CONTROL BLOCK */ /*- */ #define PMB$M_MODE 0x1 #define PMB$K_SUBPROC 0 /*Subprocess mode */ #define PMB$K_IMAGE 1 /*Image mode */ #define PMB$M_ASTIP 0x2 #define PMB$M_QAST 0x4 #define PMB$K_LENGTH 76 /*Length of PMB */ #define PMB$C_LENGTH 76 /*Length of PMB */ #define PMB$S_PMBDEF 76 /* Old size name - synonym */ #ifdef __cplusplus /* Define structure prototypes */ struct _acb; #endif /* #ifdef __cplusplus */ typedef struct _pmb { void *pmb$l_curbuf; /*Current buffer pointer */ void *pmb$l_bufbase; /*Current buffer base address */ unsigned short int pmb$w_size; /*Block size field */ unsigned char pmb$b_type; /*Dynamic structure type (PMB) */ __union { unsigned char pmb$b_flags; /*Processing flags */ __struct { unsigned pmb$v_mode : 1; /*Mode of operation */ unsigned pmb$v_astip : 1; /*AST in progress flag */ unsigned pmb$v_qast : 1; /*Imbedded ACB is enqueued on the PCB */ unsigned pmb$v_fill_2_ : 5; } pmb$r_fill_1_; } pmb$r_fill_0_; unsigned int pmb$l_lastcpu; /*Last recorded CPU time */ unsigned int pmb$l_overflow; /*Buffer overflow counter (both modes) */ int pmb$l_spare_4; unsigned __int64 pmb$q_hdr; /*Free buffer queue header */ unsigned __int64 pmb$q_sbphdr; /*Filled buffer queue header */ __union { __struct { /*Used as AST block in image mode */ struct _acb *pmb$l_astqfl; /*ACB flink */ struct _acb *pmb$l_astqbl; /*ACB blink */ char pmb$$_spare_1 [2]; /*SPARE */ unsigned char pmb$b_acmode; /*Owner access mode */ unsigned char pmb$b_rmod; /*AST delivery mode/flags */ unsigned int pmb$l_pid; /*PID for AST delivery */ void (*pmb$l_ast)(); /*AST routine address */ unsigned int pmb$l_astprm; /*AST parameter */ int pmb$l_fkb_fill [2]; /*fill to allow overlay of fork block */ void (*pmb$l_kast)(); /*Address of piggy-back kernel AST routine */ } pmb$r_ast_block; __struct { /*Utility storage in subprocess mode */ int pmb$$_spare_2 [2]; /*SPARE */ unsigned short int pmb$w_mbxchn; /*Subprocess mailbox channel */ unsigned char pmb$b_oacmode; /*Owner access mode (Synonym for ACMODE) */ char pmb$$_spare_3 [1]; /*SPARE */ unsigned int pmb$l_ipid; /*IPID of subprocess (Synonym for PID) */ unsigned int pmb$l_epid; /*EPID of subprocess */ int pmb$$_spare_4 [2]; /*SPARE */ } pmb$r_subp_block; } pmb$r_acb_overlay; } PMB; #if !defined(__VAXC) #define pmb$b_flags pmb$r_fill_0_.pmb$b_flags #define pmb$v_mode pmb$r_fill_0_.pmb$r_fill_1_.pmb$v_mode #define pmb$v_astip pmb$r_fill_0_.pmb$r_fill_1_.pmb$v_astip #define pmb$v_qast pmb$r_fill_0_.pmb$r_fill_1_.pmb$v_qast #define pmb$l_astqfl pmb$r_acb_overlay.pmb$r_ast_block.pmb$l_astqfl #define pmb$l_astqbl pmb$r_acb_overlay.pmb$r_ast_block.pmb$l_astqbl #define pmb$b_acmode pmb$r_acb_overlay.pmb$r_ast_block.pmb$b_acmode #define pmb$b_rmod pmb$r_acb_overlay.pmb$r_ast_block.pmb$b_rmod #define pmb$l_pid pmb$r_acb_overlay.pmb$r_ast_block.pmb$l_pid #define pmb$l_ast pmb$r_acb_overlay.pmb$r_ast_block.pmb$l_ast #define pmb$l_astprm pmb$r_acb_overlay.pmb$r_ast_block.pmb$l_astprm #define pmb$l_kast pmb$r_acb_overlay.pmb$r_ast_block.pmb$l_kast #define pmb$w_mbxchn pmb$r_acb_overlay.pmb$r_subp_block.pmb$w_mbxchn #define pmb$b_oacmode pmb$r_acb_overlay.pmb$r_subp_block.pmb$b_oacmode #define pmb$l_ipid pmb$r_acb_overlay.pmb$r_subp_block.pmb$l_ipid #define pmb$l_epid pmb$r_acb_overlay.pmb$r_subp_block.pmb$l_epid #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 /* __PMBDEF_LOADED */