/********************************************************************************************************************************/ /* Created: 9-Mar-2021 22:28:05 by OpenVMS SDL EV3-3 */ /* Source: 09-MAR-2021 22:28:01 $1$DGA8085:[STARLET_H.SRC]STARDEFAE.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $DDTMDEF ***/ #ifndef __DDTMDEF_LOADED #define __DDTMDEF_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 /* */ /* Transaction Manager services structure definitions */ /* */ #ifdef __NEW_STARLET typedef unsigned int DDTM$X_TRANSACTION_ID [4]; #else /* __OLD_STARLET */ typedef unsigned int ddtm$x_transaction_id [4]; #endif /* #ifdef __NEW_STARLET */ /* Transaction Id type */ #ifdef __NEW_STARLET typedef unsigned int DDTM$X_UTC_DATE_TIME [4]; #else /* __OLD_STARLET */ typedef unsigned int ddtm$x_utc_date_time [4]; #endif /* #ifdef __NEW_STARLET */ /* UTC type */ #define DDTM$S_TID 16 /* Size of a transaction id */ /* */ /* System services modifier flags */ /* */ #define DDTM$M_SYNC 0x1 #define DDTM$M_NONDEFAULT 0x2 #define DDTM$M_PROCESS 0x4 #define DDTM$M_VOLATILE 0x8 #define DDTM$M_RUNDOWN 0x10 #define DDTM$M_CANCEL 0x20 #define DDTM$M_FULL_STATE 0x40 #define DDTM$M_BRANCH_UNSYNCHED 0x80 #define DDTM$M_COORDINATOR 0x100 #define DDTM$M_NOWAIT 0x200 #define DDTM$M_FINAL_STATE 0x400 #define DDTM$M_LATE 0x80000000 #ifdef __NEW_STARLET typedef struct _ddtm$r_flags { unsigned ddtm$v_sync : 1; /* Synchronous status requested */ unsigned ddtm$v_nondefault : 1; /* Not the default transaction */ unsigned ddtm$v_process : 1; /* Process-permanent RM */ unsigned ddtm$v_volatile : 1; /* volatile-only state */ unsigned ddtm$v_rundown : 1; /* forget all RMs */ unsigned ddtm$v_cancel : 1; /* Cancel GET operation */ unsigned ddtm$v_full_state : 1; /* Full state information */ unsigned ddtm$v_branch_unsynched : 1; /* Don't need to sync branch */ unsigned ddtm$v_coordinator : 1; /* Join Coordinating RM */ unsigned ddtm$v_nowait : 1; /* Don't wait for termination */ unsigned ddtm$v_final_state : 1; /* Get final transaction outcome */ unsigned ddtm$v_fill_1 : 20; /* Fill out to a longword */ unsigned ddtm$v_late : 1; /* Phase one branch or join */ } DDTM$R_FLAGS; #else /* __OLD_STARLET */ struct ddtm$r_flags { unsigned ddtm$v_sync : 1; /* Synchronous status requested */ unsigned ddtm$v_nondefault : 1; /* Not the default transaction */ unsigned ddtm$v_process : 1; /* Process-permanent RM */ unsigned ddtm$v_volatile : 1; /* volatile-only state */ unsigned ddtm$v_rundown : 1; /* forget all RMs */ unsigned ddtm$v_cancel : 1; /* Cancel GET operation */ unsigned ddtm$v_full_state : 1; /* Full state information */ unsigned ddtm$v_branch_unsynched : 1; /* Don't need to sync branch */ unsigned ddtm$v_coordinator : 1; /* Join Coordinating RM */ unsigned ddtm$v_nowait : 1; /* Don't wait for termination */ unsigned ddtm$v_final_state : 1; /* Get final transaction outcome */ unsigned ddtm$v_fill_1 : 20; /* Fill out to a longword */ unsigned ddtm$v_late : 1; /* Phase one branch or join */ } ; #endif /* #ifdef __NEW_STARLET */ /* */ /* Resource manager event request options */ /* */ #define DDTM$M_EV_PREPARE 0x1 #define DDTM$M_EV_ABORT 0x2 #define DDTM$M_EV_COMMIT 0x4 #define DDTM$M_EV_DEFAULT_TRANS 0x8 #define DDTM$M_EV_TRANS_START 0x10 #ifdef __NEW_STARLET typedef struct _ddtm$r_event_mask { unsigned ddtm$v_ev_prepare : 1; /* Vote request required */ unsigned ddtm$v_ev_abort : 1; /* Abort notificiation */ unsigned ddtm$v_ev_commit : 1; /* Commit notificiation */ unsigned ddtm$v_ev_default_trans : 1; /* New default TID */ unsigned ddtm$v_ev_trans_start : 1; /* Request transaction start events */ unsigned ddtm$v_fill_2 : 27; /* Fill out to a longword */ } DDTM$R_EVENT_MASK; #else /* __OLD_STARLET */ struct ddtm$r_event_mask { unsigned ddtm$v_ev_prepare : 1; /* Vote request required */ unsigned ddtm$v_ev_abort : 1; /* Abort notificiation */ unsigned ddtm$v_ev_commit : 1; /* Commit notificiation */ unsigned ddtm$v_ev_default_trans : 1; /* New default TID */ unsigned ddtm$v_ev_trans_start : 1; /* Request transaction start events */ unsigned ddtm$v_fill_2 : 27; /* Fill out to a longword */ } ; #endif /* #ifdef __NEW_STARLET */ /* */ /* $TRANS_EVENT system service event types */ /* */ #define DDTM$K_TX_PREPARE 1 /* Prepare transaction request */ #define DDTM$K_TX_COMMIT 2 /* Commit transaction order */ #define DDTM$K_TX_ABORT 3 /* Abort transaction order */ #define DDTM$K_TX_RECOVER_COMMIT 4 /* Commit order on recovery */ #define DDTM$K_TX_RECOVER_ABORT 5 /* Abort order on recovery */ /* */ /* Resource manager event report types */ /* */ #define DDTM$K_PREPARE 1 /* Prepare operation */ #define DDTM$K_COMMIT 2 /* Commit operation */ #define DDTM$K_ABORT 3 /* Abort operation */ #define DDTM$K_ONE_PHASE_COMMIT 4 /* One-phase commit */ #define DDTM$K_DEFAULT_CLEARED 5 /* Tid no longer default */ #define DDTM$K_DEFAULT_SET 6 /* Tid now process default */ #define DDTM$K_STARTED_DEFAULT 7 /* New process default transaction */ #define DDTM$K_STARTED_NONDEFAULT 8 /* New nondefault transaction */ #define DDTM$K_RECOVER_COMMITTED 9 /* Transaction committed */ #define DDTM$K_RECOVER_ERROR 10 /* Error during recovery */ #define DDTM$K_RECOVER_INDOUBT 11 /* Transaction is indoubt */ #define DDTM$K_RECOVER_RESOLVE 12 /* RM resposible for resolution */ /* */ /* Transaction report structure (DECdtm V1.0) */ /* */ #ifdef __NEW_STARLET typedef struct _ddtm$r_astdef { /* Transaction event AST parameter */ unsigned int ddtm$l_arglen; /* Structure length */ void *ddtm$a_tid; /* Transaction id */ unsigned int ddtm$l_part_id; /* Participant identifier */ unsigned int ddtm$l_rm_ctx; /* RM event ASTPRM */ unsigned int ddtm$l_optype; /* Operation type */ unsigned int ddtm$l_reason; /* Abort extended reason code */ unsigned int ddtm$o_utc_cmt_time [4]; /* Reserved to Digital */ unsigned int ddtm$o_utc_latest [4]; /* Reserved to Digital */ } DDTM$R_ASTDEF; #else /* __OLD_STARLET */ struct ddtm$r_astdef { /* Transaction event AST parameter */ unsigned int ddtm$l_arglen; /* Structure length */ void *ddtm$a_tid; /* Transaction id */ unsigned int ddtm$l_part_id; /* Participant identifier */ unsigned int ddtm$l_rm_ctx; /* RM event ASTPRM */ unsigned int ddtm$l_optype; /* Operation type */ unsigned int ddtm$l_reason; /* Abort extended reason code */ unsigned int ddtm$o_utc_cmt_time [4]; /* Reserved to Digital */ unsigned int ddtm$o_utc_latest [4]; /* Reserved to Digital */ } ; #endif /* #ifdef __NEW_STARLET */ /* */ /* Transaction report structure */ /* */ #ifdef __NEW_STARLET typedef struct _ddtm$r_reportdef { unsigned int ddtm$l_report_len; /* Structure length */ void *ddtm$a_tid_ptr; /* Transaction id */ unsigned int ddtm$l_report_id; /* Report identifier */ unsigned int ddtm$l_rm_context; /* RM event ASTPRM */ unsigned int ddtm$l_event_type; /* Event report type */ unsigned int ddtm$l_abort_reason; /* Abort extended reason code */ unsigned int ddtm$o_commit_time [4]; /* Reserved to Digital */ unsigned int ddtm$o_latest_time [4]; /* Reserved to Digital */ unsigned __int64 ddtm$q_tx_class; /* Transaction class descriptor */ unsigned __int64 ddtm$q_part_name; /* RM Instance descriptor */ } DDTM$R_REPORTDEF; #else /* __OLD_STARLET */ struct ddtm$r_reportdef { unsigned int ddtm$l_report_len; /* Structure length */ void *ddtm$a_tid_ptr; /* Transaction id */ unsigned int ddtm$l_report_id; /* Report identifier */ unsigned int ddtm$l_rm_context; /* RM event ASTPRM */ unsigned int ddtm$l_event_type; /* Event report type */ unsigned int ddtm$l_abort_reason; /* Abort extended reason code */ unsigned int ddtm$o_commit_time [4]; /* Reserved to Digital */ unsigned int ddtm$o_latest_time [4]; /* Reserved to Digital */ unsigned int ddtm$q_tx_class [2]; /* Transaction class descriptor */ unsigned int ddtm$q_part_name [2]; /* RM Instance descriptor */ } ; #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 /* __DDTMDEF_LOADED */