/********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:29:55 by OpenVMS SDL EV3-3 */ /* Source: 30-MAR-2010 17:29:22 $1$DGA7274:[STARLET_H.SRC]STARDEFQZ.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $TEBDEF ***/ #ifndef __TEBDEF_LOADED #define __TEBDEF_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 /* */ /* Thread Environment Block Definitions */ /* */ #define TEB$M_ASTACT 0x1 #define TEB$M_ASTEN 0x2 #ifdef __NEW_STARLET #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _teb { #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ struct _teb *teb$pq_flink; /* Forward queue link */ #else unsigned __int64 teb$pq_flink; #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ struct _teb *teb$pq_blink; /* Backward queue link */ #else unsigned __int64 teb$pq_blink; #endif unsigned short int teb$w_size; /* Size of TEB, in bytes */ unsigned char teb$b_version; /* Version number for TEB */ unsigned char teb$b_type; /* Structure type code for TEB */ unsigned char teb$b_reserved_2 [4]; /* Reserved to DECthreads */ unsigned __int64 teb$q_sequence; /* Thread sequence number */ unsigned __int64 teb$q_reserved_3 [2]; /* Reserved to DECthreads */ #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *teb$pq_per_kt_area; /* Address of per kernel thread area */ #else unsigned __int64 teb$pq_per_kt_area; #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *teb$pq_stack_base; /* Address of first usable byte in stack */ #else unsigned __int64 teb$pq_stack_base; #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *teb$pq_stack_reserve; /* Address of first byte in reserve area */ #else unsigned __int64 teb$pq_stack_reserve; #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *teb$pq_stack_yellow; /* Address of first byte in yellow area */ #else unsigned __int64 teb$pq_stack_yellow; #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *teb$pq_stack_guard; /* Address of first byte in guard area */ #else unsigned __int64 teb$pq_stack_guard; #endif unsigned __int64 teb$q_stack_size; /* Total stack allocation (green+reserve+yellow+red) */ #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void (*(*teb$pq_tsd_values)); /* Address of thread-specific data array */ #else unsigned __int64 teb$pq_tsd_values; #endif unsigned int teb$l_tsd_count; /* Count of thread-specific data values */ unsigned int teb$l_cancel_flags; /* cancel flags */ unsigned int teb$l_cancel_count; /* CMA alert scope nesting count */ __union { unsigned int teb$l_thread_flags; /* thread flags */ __struct { unsigned teb$v_astact : 1; /* there's a user mode AST active */ unsigned teb$v_asten : 1; /* use mode ASTs are enabled */ unsigned teb$v_fill_29_ : 6; } teb$r_fill_28_; } teb$r_fill_27_; int teb$l_thd_errno; /* Per-thread errno value */ int teb$l_reserved_4; /* Reserved to DECthreads */ #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *teb$pq_stack_hiwater; /* Lowest known SP address */ #else unsigned __int64 teb$pq_stack_hiwater; #endif int teb$l_home_rad; /* Thread's home RAD */ int teb$l_rad_safe; /* Scratch: written by Tru64 UNIX */ } TEB; #if !defined(__VAXC) #define teb$l_thread_flags teb$r_fill_27_.teb$l_thread_flags #define teb$v_astact teb$r_fill_27_.teb$r_fill_28_.teb$v_astact #define teb$v_asten teb$r_fill_27_.teb$r_fill_28_.teb$v_asten #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _teb { #pragma __nomember_alignment unsigned __int64 teb$pq_flink; /* Forward queue link */ unsigned __int64 teb$pq_blink; /* Backward queue link */ unsigned short int teb$w_size; /* Size of TEB, in bytes */ unsigned char teb$b_version; /* Version number for TEB */ unsigned char teb$b_type; /* Structure type code for TEB */ unsigned char teb$b_reserved_2 [4]; /* Reserved to DECthreads */ unsigned int teb$q_sequence [2]; /* Thread sequence number */ unsigned int teb$q_reserved_3 [2] [2]; /* Reserved to DECthreads */ unsigned __int64 teb$pq_per_kt_area; /* Address of per kernel thread area */ unsigned __int64 teb$pq_stack_base; /* Address of first usable byte in stack */ unsigned __int64 teb$pq_stack_reserve; /* Address of first byte in reserve area */ unsigned __int64 teb$pq_stack_yellow; /* Address of first byte in yellow area */ unsigned __int64 teb$pq_stack_guard; /* Address of first byte in guard area */ unsigned int teb$q_stack_size [2]; /* Total stack allocation (green+reserve+yellow+red) */ unsigned __int64 teb$pq_tsd_values; /* Address of thread-specific data array */ unsigned int teb$l_tsd_count; /* Count of thread-specific data values */ unsigned int teb$l_cancel_flags; /* cancel flags */ unsigned int teb$l_cancel_count; /* CMA alert scope nesting count */ __union { unsigned int teb$l_thread_flags; /* thread flags */ __struct { unsigned teb$v_astact : 1; /* there's a user mode AST active */ unsigned teb$v_asten : 1; /* use mode ASTs are enabled */ unsigned teb$v_fill_29_ : 6; } teb$r_fill_28_; } teb$r_fill_27_; int teb$l_thd_errno; /* Per-thread errno value */ int teb$l_reserved_4; /* Reserved to DECthreads */ unsigned __int64 teb$pq_stack_hiwater; /* Lowest known SP address */ int teb$l_home_rad; /* Thread's home RAD */ int teb$l_rad_safe; /* Scratch: written by Tru64 UNIX */ } teb; #if !defined(__VAXC) #define teb$l_thread_flags teb$r_fill_27_.teb$l_thread_flags #define teb$v_astact teb$r_fill_27_.teb$r_fill_28_.teb$v_astact #define teb$v_asten teb$r_fill_27_.teb$r_fill_28_.teb$v_asten #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define TEB$K_LENGTH 144 /* Length of TEB */ #define TEB$C_LENGTH 144 /* Length of TEB */ #define TEB$C_TSD_KEY_SSPI 1 /* TSD key value reserved for SSPI */ #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 /* __TEBDEF_LOADED */