/**/ /***************************************************************************/ /** **/ /** © 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:27:01 by OpenVMS SDL EV3-3 */ /* Source: 05-MAR-2003 17:04:52 $1$DGA7274:[LIB_H.SRC]VECTORS.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE SSDESCRDEF ***/ #ifndef __SSDESCRDEF_LOADED #define __SSDESCRDEF_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 #define EXIT_K_NORMAL_EXIT 0 /* Default exit code */ #define EXIT_K_RMS_STALL 1 /* RMS wait for I/O completion */ #define EXIT_K_RMS_WAIT 2 /* RMS $WAIT eit code */ #define EXIT_K_ASSIGN_EXIT 3 /* Special exit code for $ASSIGN to perform */ /* assign to network object in caller's mode. */ #define SSDESCR_M_CLASS_0 0x1 #define SSDESCR_M_CLASS_1 0x2 #define SSDESCR_M_CLASS_2 0x4 #define SSDESCR_M_CLASS_3 0x8 #define SSDESCR_M_CLASS_4 0x10 #define SSDESCR_M_CLASS_5 0x20 #define SSDESCR_M_CLASS_6 0x40 #define SSDESCR_M_CLASS_7 0x80 #define MODE_K_KERNEL 0 /* Service executes in KERNEL mode */ #define MODE_K_EXEC 1 /* Service executes in EXECUTIVE mode */ #define MODE_K_SUPER 2 /* Service executes in SUPERVISOR mode */ #define MODE_K_USER 3 /* Service executes in USER mode */ #define MODE_K_CALLERS_MODE 4 /* Service executes in the mode of the caller */ #define TYPE_K_NORMAL 0 /* No composite type, default value */ #define TYPE_K_QIOW 1 /* Composite type QIOW */ #define TYPE_K_ENQW 2 /* Composite type ENQW */ #define TYPE_K_GETDVIW 3 /* Composite type GETDVIW */ #define TYPE_K_GETJPIW 4 /* Composite type GETJPIW */ #define TYPE_K_GETSYIW 5 /* Composite type GETSYIW */ #define TYPE_K_SNDJBCW 6 /* Composite type SNDJBCW */ #define TYPE_K_GETLKIW 7 /* Composite type GETLKIW */ #define TYPE_K_BRKTHRUW 8 /* Composite type BRKTHRUW */ #define TYPE_K_GETQUIW 9 /* Composite type GETQUIW */ #define TYPE_K_END_RU 10 /* Composite type END_RU */ #define TYPE_K_START_TRANSW 11 /* Composite type START_TRANS */ #define TYPE_K_END_TRANSW 12 /* Composite type END_TRANS */ #define TYPE_K_ABORT_TRANSW 13 /* Composite type ABORT_TRANS */ #define TYPE_K_DECLARE_RMW 14 /* Composite type DECLARE_RM */ #define TYPE_K_FORGET_RMW 15 /* Composite type FORGET_RM */ #define TYPE_K_JOIN_RMW 16 /* Composite type JOIN_RM */ #define TYPE_K_FINISH_RMOPW 17 /* Composite type FINISH_RMOP */ #define TYPE_K_ADD_BRANCHW 18 /* Composite type ADD_BRANCH */ #define TYPE_K_START_BRANCHW 19 /* Composite type START_BRANCH */ #define TYPE_K_IPCW 20 /* Composite type IPCW */ #define TYPE_K_END_BRANCHW 21 /* Composite type END_BRANCHW */ #define TYPE_K_AUDIT_EVENTW 22 /* Composite type AUDIT_EVENTW */ #define TYPE_K_CHECK_PRIVILEGEW 23 /* Composite type CHECK_PRIVILEGE */ #define TYPE_K_MAXIMUM 24 /* Maximum number of types */ #define SSFLAG_K_WCM 1 /* May return WCM */ #define SSFLAG_K_WCM_NO_REEXEC 2 /* Don't reexecute */ #define SSFLAG_K_CLRREG 4 /* Clear scratch regs */ #define SSFLAG_K_RETURN_ANY 8 /* May return any val */ #define SSFLAG_K_WCM_NO_SAVE 16 /* Don't save regs */ #define SSFLAG_K_STACK_ARGS 32 /* pointer->stack args */ #define SSFLAG_K_THREAD_SAFE 64 /* no inner-mode synchronization */ #define SSFLAG_K_64_BIT_ARGS 128 /* No sign-extension checking necessary */ #define SSFLAG_K_CHECK_UPCALL 256 /* Inner mode semaphore waits can */ /* potentially be done by thread manager */ #define SSFLAG_K_EXCLUSIVE 512 /* service requires exclusive access to inner mode */ #define SSFLAG_K_TOLERANT 1024 /* thread-safe service which blocks exclusive services */ #define SSFLAG_K_IMSEM_RELEASE 2048 /* must release semaphore */ #define SSFLAG_K_RESET_ASTEN 4096 /* dispatcher must reenable ASTs */ #define SSFLAG_K_NOPCB 8192 /* no pcb in R4 */ #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 _ssdescr { #pragma __nomember_alignment void *ssdescr_a_vector_address; /* Address of vector in S0 space */ void *ssdescr_a_entry_address; /* Self-relative pointer to .ENTRY mask */ unsigned char ssdescr_b_synch_type; /* Composite service type */ unsigned char ssdescr_b_flags; /* Flags byte, see FLAGS32 */ __union { unsigned char ssdescr_b_inhibit_mask; /* System service inhibit mask */ __struct { unsigned ssdescr_v_class_0 : 1; unsigned ssdescr_v_class_1 : 1; unsigned ssdescr_v_class_2 : 1; unsigned ssdescr_v_class_3 : 1; unsigned ssdescr_v_class_4 : 1; unsigned ssdescr_v_class_5 : 1; unsigned ssdescr_v_class_6 : 1; unsigned ssdescr_v_class_7 : 1; } ssdescr_r_fill_1_; } ssdescr_r_fill_0_; unsigned char ssdescr_b_mode; /* Access mode in which service executes */ unsigned int ssdescr_l_flags32; /* Longword to allow for 32 flags */ /* copy of FLAGS byte plus */ /* additional bits greater than 8 */ /* */ /* ********* NOTE WELL ********* */ /* */ /* The following masks must EXACTLY EQUAL the PLV masks defined in */ /* [LIB]PLVDEF.SDL. The system service dispatcher assumes, for example, that */ /* PLV$M_WAIT_CALLERS_MODE equals SSFLAG_K_WCM. Ensure that any additions to */ /* the SSFLAG flags 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. */ /* */ /* ********* END NOTE WELL ********* */ /* */ } SSDESCR; #if !defined(__VAXC) #define ssdescr_b_inhibit_mask ssdescr_r_fill_0_.ssdescr_b_inhibit_mask #define ssdescr_v_class_0 ssdescr_r_fill_0_.ssdescr_r_fill_1_.ssdescr_v_class_0 #define ssdescr_v_class_1 ssdescr_r_fill_0_.ssdescr_r_fill_1_.ssdescr_v_class_1 #define ssdescr_v_class_2 ssdescr_r_fill_0_.ssdescr_r_fill_1_.ssdescr_v_class_2 #define ssdescr_v_class_3 ssdescr_r_fill_0_.ssdescr_r_fill_1_.ssdescr_v_class_3 #define ssdescr_v_class_4 ssdescr_r_fill_0_.ssdescr_r_fill_1_.ssdescr_v_class_4 #define ssdescr_v_class_5 ssdescr_r_fill_0_.ssdescr_r_fill_1_.ssdescr_v_class_5 #define ssdescr_v_class_6 ssdescr_r_fill_0_.ssdescr_r_fill_1_.ssdescr_v_class_6 #define ssdescr_v_class_7 ssdescr_r_fill_0_.ssdescr_r_fill_1_.ssdescr_v_class_7 #endif /* #if !defined(__VAXC) */ #define SSDESCR_K_LENGTH 16 /* Size of list element */ #define SSDESCR_S_SSDESCRDEF 16 /* Old size name - synonym */ #define FASTSS$K_CLRAST 1 /* CLRAST change mode code */ #define FASTSS$K_WTAMI 2 /* WTAMI change mode code */ #define FASTSS$K_UNWIND_CLRAST 3 /* UNWIND_CLRAST change mode code */ #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 /* __SSDESCRDEF_LOADED */