/**/ /***************************************************************************/ /** **/ /** © 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:55 by OpenVMS SDL EV3-3 */ /* Source: 31-MAR-1997 10:56:26 $1$DGA7274:[LIB_H.SRC]PLVDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $PLVDEF ***/ #ifndef __PLVDEF_LOADED #define __PLVDEF_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 /*+ */ /* PRIVILEGED LIBRARY VECTOR DEFINITION */ /*- */ /* */ /* ********* NOTE WELL ********* */ /* */ /* The following masks must EXACTLY EQUAL the SSFLAG masks defined in */ /* [LIB]VECTORS.SDL. The system service dispatcher assumes, for example, that */ /* PLV$M_WAIT_CALLERS_MODE equals SSFLAG_K_WCM. Ensure that any additions to */ /* the PLVFLG structure are reflected in [LIB]VECTORS.SDL (and vice versa). */ /* */ /* Also note that although PLVFLG is defined to be a quadword, the dispatcher */ /* treats the array of kernel flags and exec flags as an array of LONGWORD */ /* flags. Another interesting point is that the flags value for regular */ /* system services is limited to a byte. */ /* */ /* ********* END NOTE WELL ********* */ /* */ #define PLV$M_WAIT_CALLERS_MODE 0x1 #define PLV$M_WAIT_CALLERS_NO_REEXEC 0x2 #define PLV$M_CLRREG 0x4 #define PLV$M_RETURN_ANY 0x8 #define PLV$M_WCM_NO_SAVE 0x10 #define PLV$M_STACK_ARGS 0x20 #define PLV$M_THREAD_SAFE 0x40 #define PLV$M_64_BIT_ARGS 0x80 #define PLV$M_CHECK_UPCALL 0x100 #define PLV$M_EXCLUSIVE 0x200 #define PLV$M_TOLERANT 0x400 #define PLV$M_IMSEM_RELEASE 0x800 #define PLV$M_RESET_ASTEN 0x1000 typedef union _fill_0_ { __int64 plv$q_plvflg; __struct { unsigned plv$v_wait_callers_mode : 1; /* equals SSFLAG_K_WCM */ unsigned plv$v_wait_callers_no_reexec : 1; /* equals SSFLAG_K_WCM_NO_REEXEC */ unsigned plv$v_clrreg : 1; /* equals SSFLAG_K_CLRREG */ unsigned plv$v_return_any : 1; /* equals SSFLAG_K_RETURN_ANY */ unsigned plv$v_wcm_no_save : 1; /* equals SSFLAG_K_WCM_NO_SAVE */ unsigned plv$v_stack_args : 1; /* equals SSFLAG_K_STACK_ARGS */ unsigned plv$v_thread_safe : 1; /* equals SSFLAG_K_THREAD_SAFE */ unsigned plv$v_64_bit_args : 1; /* equals SSFLAG_K_64_BIT_ARGS */ unsigned plv$v_check_upcall : 1; /* equals SSFLAG_K_CHECK_UPCALL */ unsigned plv$v_exclusive : 1; /* equals SSFLAG_K_EXCLUSIVE */ unsigned plv$v_tolerant : 1; /* equals SSFLAG_K_TOLERANT */ unsigned plv$v_imsem_release : 1; /* equals SSFLAG_K_IMSEM_RELEASE */ unsigned plv$v_reset_asten : 1; /* equals SSFLAG_K_RESET_ASTEN */ unsigned plv$v_fill_2_ : 3; } plv$r_fill_1_; } FILL_0_; #if !defined(__VAXC) #define plv$v_wait_callers_mode plv$r_fill_1_.plv$v_wait_callers_mode #define plv$v_wait_callers_no_reexec plv$r_fill_1_.plv$v_wait_callers_no_reexec #define plv$v_clrreg plv$r_fill_1_.plv$v_clrreg #define plv$v_return_any plv$r_fill_1_.plv$v_return_any #define plv$v_wcm_no_save plv$r_fill_1_.plv$v_wcm_no_save #define plv$v_stack_args plv$r_fill_1_.plv$v_stack_args #define plv$v_thread_safe plv$r_fill_1_.plv$v_thread_safe #define plv$v_64_bit_args plv$r_fill_1_.plv$v_64_bit_args #define plv$v_check_upcall plv$r_fill_1_.plv$v_check_upcall #define plv$v_exclusive plv$r_fill_1_.plv$v_exclusive #define plv$v_tolerant plv$r_fill_1_.plv$v_tolerant #define plv$v_imsem_release plv$r_fill_1_.plv$v_imsem_release #define plv$v_reset_asten plv$r_fill_1_.plv$v_reset_asten #endif /* #if !defined(__VAXC) */ #define PLV$C_LENGTH 44 /* Size of fixed portion */ #define PLV$S_PLVDEF 44 #ifdef __cplusplus /* Define structure prototypes */ struct _lkpdef; #endif /* #ifdef __cplusplus */ typedef struct _plv { unsigned int plv$l_type; /*TYPE CODE FOR VECTOR FORMAT */ unsigned int plv$l_version; /*SYSTEM VERSION NUMBER */ __union { __struct { /* CMOD specific data */ unsigned int plv$l_kernel_routine_count; /* # of kernel routines */ unsigned int plv$l_exec_routine_count; /* # of exec routines */ void *plv$ps_kernel_routine_list; /* addr of kernel list */ void *plv$ps_exec_routine_list; /* addr of exec list */ int (*plv$ps_kernel_rundown_handler)(); /* kern rundown routine */ int (*plv$ps_exec_rundown_handler)(); /* exec rundown routine */ int (*plv$ps_rms_dispatcher)(); /* RMS dispatch routine */ int *plv$ps_kernel_routine_flags; /* flags vector */ int *plv$ps_exec_routine_flags; /* flags vector */ } plv$r_cmod_data; __struct { /* MSG type specific data */ int plv$l_msgdsp; /* self-rel ptr to message dispatcher */ unsigned int plv$l_msg_entry; /* message dispatcher code */ int plv$l_msg_section; /* self-rel ptr to msg section */ } plv$r_msg_data; __struct { /* SSI type specific data */ __union { unsigned int plv$l_flags; __struct { unsigned plv$v_main_image : 1; /* Closest to system service */ unsigned plv$v_fill_5_ : 7; } plv$r_fill_4_; } plv$r_fill_3_; unsigned int plv$l_ssi_routine_count; /* Count of SSI symbol vectors */ struct _lkpdef *plv$ps_vector_address; /* Private symbol vector address */ } plv$r_ssi_data; } plv$r_type_specific; } PLV; #if !defined(__VAXC) #define plv$l_kernel_routine_count plv$r_type_specific.plv$r_cmod_data.plv$l_kernel_routine_count #define plv$l_exec_routine_count plv$r_type_specific.plv$r_cmod_data.plv$l_exec_routine_count #define plv$ps_kernel_routine_list plv$r_type_specific.plv$r_cmod_data.plv$ps_kernel_routine_list #define plv$ps_exec_routine_list plv$r_type_specific.plv$r_cmod_data.plv$ps_exec_routine_list #define plv$ps_kernel_rundown_handler plv$r_type_specific.plv$r_cmod_data.plv$ps_kernel_rundown_handler #define plv$ps_exec_rundown_handler plv$r_type_specific.plv$r_cmod_data.plv$ps_exec_rundown_handler #define plv$ps_rms_dispatcher plv$r_type_specific.plv$r_cmod_data.plv$ps_rms_dispatcher #define plv$ps_kernel_routine_flags plv$r_type_specific.plv$r_cmod_data.plv$ps_kernel_routine_flags #define plv$ps_exec_routine_flags plv$r_type_specific.plv$r_cmod_data.plv$ps_exec_routine_flags #define plv$l_msgdsp plv$r_type_specific.plv$r_msg_data.plv$l_msgdsp #define plv$l_msg_entry plv$r_type_specific.plv$r_msg_data.plv$l_msg_entry #define plv$l_msg_section plv$r_type_specific.plv$r_msg_data.plv$l_msg_section #define plv$l_flags plv$r_type_specific.plv$r_ssi_data.plv$r_fill_3_.plv$l_flags #define plv$v_main_image plv$r_type_specific.plv$r_ssi_data.plv$r_fill_3_.plv$r_fill_4_.plv$v_main_image #define plv$l_ssi_routine_count plv$r_type_specific.plv$r_ssi_data.plv$l_ssi_routine_count #define plv$ps_vector_address plv$r_type_specific.plv$r_ssi_data.plv$ps_vector_address #endif /* #if !defined(__VAXC) */ /*+ */ /* TYPE CODES FOR PRIVILEGE VECTORS */ /*- */ #define PLV$C_TYP_CMOD 1 /* CHANGE MODE VECTOR TYPE */ #define PLV$C_TYP_MSG 2 /* MESSAGE VECTOR TYPE */ #define PLV$C_TYP_SSI 3 /* SYSTEM SERVICE INTERCEPT TYPE */ #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 /* __PLVDEF_LOADED */