/********************************************************************************************************************************/ /* Created: 9-Mar-2021 22:28:04 by OpenVMS SDL EV3-3 */ /* Source: 09-MAR-2021 22:28:01 $1$DGA8085:[STARLET_H.SRC]PPL$DEF.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE PPL$DEF ***/ #ifndef __PPL_DEF_LOADED #define __PPL_DEF_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 /* Definitions for RTL Parallel Processing Facility - PPL */ /* */ /* Pre-defined event ids. */ /* */ #define PPL$K_ABNORMAL_EXIT -2 /* abnormal participant termination */ #define PPL$K_NORMAL_EXIT -1 /* normal participant termination */ /* */ /* Shared memory options flags. */ /* */ #define PPL$M_NOZERO 0x1 #define PPL$M_NOWRT 0x2 #define PPL$M_FLUSH 0x4 #define PPL$M_NOUNI 0x8 #define PPL$M_MOPT_SPARE 0xFFFFFFF0 #ifdef __NEW_STARLET typedef struct _mem_options { unsigned ppl$v_nozero : 1; /* not demand-zero */ unsigned ppl$v_nowrt : 1; /* read-only */ unsigned ppl$v_flush : 1; /* write to disk */ unsigned ppl$v_nouni : 1; /* non-unique name not requested */ unsigned ppl$v_mopt_spare : 28; /* extra bits */ } MEM_OPTIONS; #else /* __OLD_STARLET */ struct mem_options { unsigned ppl$v_nozero : 1; /* not demand-zero */ unsigned ppl$v_nowrt : 1; /* read-only */ unsigned ppl$v_flush : 1; /* write to disk */ unsigned ppl$v_nouni : 1; /* non-unique name not requested */ unsigned ppl$v_mopt_spare : 28; /* extra bits */ } ; #endif /* #ifdef __NEW_STARLET */ /* */ /* Processing options flags. */ /* */ #define PPL$M_INIT_SYNCH 0x1 #define PPL$M_NODEBUG 0x2 #define PPL$M_STOP_CHILDREN 0x4 #define PPL$M_NON_BLOCKING 0x8 #define PPL$M_NOTIFY_ONE 0x10 #define PPL$M_SPIN_WAIT 0x20 #define PPL$M_FORMONLY 0x40 #define PPL$M_JOINONLY 0x80 #define PPL$M_PERM 0x100 #define PPL$M_SYSTEM 0x200 #define PPL$M_DELETEALL 0x400 #define PPL$M_TAILFIRST 0x800 #define PPL$M_ATHEAD 0x1000 #define PPL$M_FROMTAIL 0x2000 #define PPL$M_FORCEDEL 0x4000 #define PPL$M_NOCLISYM 0x8000 #define PPL$M_NOLOGNAM 0x10000 #define PPL$M_NOKEYPAD 0x20000 #define PPL$M_NOTIFY 0x40000 #define PPL$M_NOCONTROL 0x80000 #define PPL$M_CALL_UNIQUE 0x100000 #define PPL$M_PROC_UNIQUE 0x200000 #define PPL$M_SPIN_COUNTED 0x400000 #define PPL$M_NOSAVE_PROC_INFO 0x800000 #define PPL$M_IGNORE_EXITS 0x1000000 #define PPL$M_POPT_SPARE 0xFE000000 #ifdef __NEW_STARLET typedef struct _proc_options { unsigned ppl$v_init_synch : 1; /* parent blocks until children init */ unsigned ppl$v_nodebug : 1; /* disable DEBUG */ unsigned ppl$v_stop_children : 1; /* stop children of terminating process */ unsigned ppl$v_non_blocking : 1; /* don't block if semaphore unavailable */ unsigned ppl$v_notify_one : 1; /* notify only one enabler for event */ unsigned ppl$v_spin_wait : 1; /* spin rather than $HIBER */ unsigned ppl$v_formonly : 1; /* Only form (do not join) a new appl. */ unsigned ppl$v_joinonly : 1; /* Only join (do not form) a new appl. */ unsigned ppl$v_perm : 1; /* Create a permanent application */ unsigned ppl$v_system : 1; /* Create a system-wide application */ unsigned ppl$v_deleteall : 1; /* Delete all corresponding work items */ unsigned ppl$v_tailfirst : 1; /* Delete from tail of queue */ unsigned ppl$v_athead : 1; /* Insert at the head of queue */ unsigned ppl$v_fromtail : 1; /* Remove from tail of queue */ unsigned ppl$v_forcedel : 1; /* Force deletion of work queue */ unsigned ppl$v_noclisym : 1; /* Do not inherit parent's CLI symbols */ unsigned ppl$v_nolognam : 1; /* Do not inherit parent's logicals */ unsigned ppl$v_nokeypad : 1; /* Inherit parent's keypad state & defs */ unsigned ppl$v_notify : 1; /* Broadcast message on child terminate */ unsigned ppl$v_nocontrol : 1; /* No carriage control prefix on prompt */ unsigned ppl$v_call_unique : 1; /* Request call unique name */ unsigned ppl$v_proc_unique : 1; /* Request process unique name */ unsigned ppl$v_spin_counted : 1; /* Spin for counted period before hiber */ unsigned ppl$v_nosave_proc_info : 1; unsigned ppl$v_ignore_exits : 1; unsigned ppl$v_popt_spare : 7; /* extra bits */ } PROC_OPTIONS; #else /* __OLD_STARLET */ struct proc_options { unsigned ppl$v_init_synch : 1; /* parent blocks until children init */ unsigned ppl$v_nodebug : 1; /* disable DEBUG */ unsigned ppl$v_stop_children : 1; /* stop children of terminating process */ unsigned ppl$v_non_blocking : 1; /* don't block if semaphore unavailable */ unsigned ppl$v_notify_one : 1; /* notify only one enabler for event */ unsigned ppl$v_spin_wait : 1; /* spin rather than $HIBER */ unsigned ppl$v_formonly : 1; /* Only form (do not join) a new appl. */ unsigned ppl$v_joinonly : 1; /* Only join (do not form) a new appl. */ unsigned ppl$v_perm : 1; /* Create a permanent application */ unsigned ppl$v_system : 1; /* Create a system-wide application */ unsigned ppl$v_deleteall : 1; /* Delete all corresponding work items */ unsigned ppl$v_tailfirst : 1; /* Delete from tail of queue */ unsigned ppl$v_athead : 1; /* Insert at the head of queue */ unsigned ppl$v_fromtail : 1; /* Remove from tail of queue */ unsigned ppl$v_forcedel : 1; /* Force deletion of work queue */ unsigned ppl$v_noclisym : 1; /* Do not inherit parent's CLI symbols */ unsigned ppl$v_nolognam : 1; /* Do not inherit parent's logicals */ unsigned ppl$v_nokeypad : 1; /* Inherit parent's keypad state & defs */ unsigned ppl$v_notify : 1; /* Broadcast message on child terminate */ unsigned ppl$v_nocontrol : 1; /* No carriage control prefix on prompt */ unsigned ppl$v_call_unique : 1; /* Request call unique name */ unsigned ppl$v_proc_unique : 1; /* Request process unique name */ unsigned ppl$v_spin_counted : 1; /* Spin for counted period before hiber */ unsigned ppl$v_nosave_proc_info : 1; unsigned ppl$v_ignore_exits : 1; unsigned ppl$v_popt_spare : 7; /* extra bits */ } ; #endif /* #ifdef __NEW_STARLET */ #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 /* __PPL_DEF_LOADED */