/***************************************************************************/ /** **/ /** HPE CONFIDENTIAL. This software is confidential proprietary software **/ /** licensed by Hewlett-Packard Enterprise Development, LP, and is not **/ /** authorized to be used, duplicated OR disclosed to anyone without the **/ /** prior written permission of HPE. **/ /** © 2023 Copyright Hewlett-Packard Enterprise Development, LP **/ /** **/ /** VMS SOFTWARE, INC. CONFIDENTIAL. This software is confidential **/ /** proprietary software licensed by VMS Software, Inc., and is not **/ /** authorized to be used, duplicated or disclosed to anyone without **/ /** the prior written permission of VMS Software, Inc. **/ /** © 2023 Copyright VMS Software, Inc. **/ /** **/ /***************************************************************************/ /********************************************************************************************************************************/ /* Created: 9-Nov-2023 12:06:52 by OpenVMS SDL V3.7 */ /* Source: 20-MAY-1993 13:12:48 $1$DGA8345:[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 */