/********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:29:35 by OpenVMS SDL EV3-3 */ /* Source: 30-MAR-2010 17:29:20 $1$DGA7274:[STARLET_H.SRC]LIBICB.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE LIBICB IDENT V2.0 ***/ #ifndef __LIBICB_LOADED #define __LIBICB_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 LIB$K_PROC_VALUE_NULL 0 #define LIB$K_INVO_HANDLE_NULL 0 #define LIBICB$K_INVO_HANDLE_SIZE 4 #define LIBICB$K_INVO_CONTEXT_VERSION 1 /* */ #define LIBICB$M_FFLAGS_BITS 0xFFFFFF #define LIBICB$M_EXCEPTION_FRAME 0x1 #define LIBICB$M_AST_FRAME 0x2 #define LIBICB$M_BOTTOM_OF_STACK 0x4 #define LIBICB$M_BASE_FRAME 0x8 #define LIBICB$K_INVO_CONTEXT_BLK_SIZE 544 #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 _invo_context_blk { /* The first quadword contains: */ /* */ /* o The length of the structure in bytes (a longword field) */ /* o The frame flags (a 3 byte field of bits) */ /* o The version number (a 1 byte field) */ /* */ #pragma __nomember_alignment __union { __int64 libicb$q_hdr_quad; __struct { unsigned int libicb$l_context_length; __union { unsigned libicb$v_fflags_bits : 24; __struct { unsigned libicb$v_exception_frame : 1; unsigned libicb$v_ast_frame : 1; unsigned libicb$v_bottom_of_stack : 1; unsigned libicb$v_base_frame : 1; unsigned libicb$v_fill_0_ : 4; } libicb$r_fflags_desc; } libicb$r_frameflags; unsigned char libicb$b_block_version; } libicb$r_hdr_desc; } libicb$r_hdr; /* */ /* The address of the procedure descriptor for the procedure. */ /* */ #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 *libicb$ph_procedure_descriptor; #else unsigned __int64 libicb$ph_procedure_descriptor; #endif /* */ /* The current PC of a given procedure invocation. */ /* */ __int64 libicb$q_program_counter; /* */ /* The current PS of a given procedure invocation. */ /* */ __int64 libicb$q_processor_status; /* */ /* The register contents areas. 31 for scalars, 31 for float. */ /* */ __int64 libicb$q_ireg [31]; __int64 libicb$q_freg [31]; /* */ /* The following is an "internal" area that's reserved for use by */ /* the operating system. It's size may vary over time. */ /* */ __union { #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 *libicb$ph_chfctx_addr; #else unsigned __int64 libicb$ph_chfctx_addr; #endif __int64 libicb$q_system_defined [2]; } libicb$r_system_specific; /* */ /* Align to octaword. */ /* */ } INVO_CONTEXT_BLK; #if !defined(__VAXC) #define libicb$q_hdr_quad libicb$r_hdr.libicb$q_hdr_quad #define libicb$r_hdr_desc libicb$r_hdr.libicb$r_hdr_desc #define libicb$l_context_length libicb$r_hdr_desc.libicb$l_context_length #define libicb$r_frameflags libicb$r_hdr_desc.libicb$r_frameflags #define libicb$v_fflags_bits libicb$r_frameflags.libicb$v_fflags_bits #define libicb$r_fflags_desc libicb$r_frameflags.libicb$r_fflags_desc #define libicb$v_exception_frame libicb$r_fflags_desc.libicb$v_exception_frame #define libicb$v_ast_frame libicb$r_fflags_desc.libicb$v_ast_frame #define libicb$v_bottom_of_stack libicb$r_fflags_desc.libicb$v_bottom_of_stack #define libicb$v_base_frame libicb$r_fflags_desc.libicb$v_base_frame #define libicb$b_block_version libicb$r_hdr_desc.libicb$b_block_version #define libicb$ph_chfctx_addr libicb$r_system_specific.libicb$ph_chfctx_addr #define libicb$q_system_defined libicb$r_system_specific.libicb$q_system_defined #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 struct invo_context_blk { /* The first quadword contains: */ /* */ /* o The length of the structure in bytes (a longword field) */ /* o The frame flags (a 3 byte field of bits) */ /* o The version number (a 1 byte field) */ /* */ #pragma __nomember_alignment __union { int libicb$q_hdr_quad [2]; __struct { unsigned int libicb$l_context_length; __union { unsigned libicb$v_fflags_bits : 24; __struct { unsigned libicb$v_exception_frame : 1; unsigned libicb$v_ast_frame : 1; unsigned libicb$v_bottom_of_stack : 1; unsigned libicb$v_base_frame : 1; unsigned libicb$v_fill_0_ : 4; } libicb$r_fflags_desc; } libicb$r_frameflags; unsigned char libicb$b_block_version; } libicb$r_hdr_desc; } libicb$r_hdr; /* */ /* The address of the procedure descriptor for the procedure. */ /* */ unsigned __int64 libicb$ph_procedure_descriptor; /* */ /* The current PC of a given procedure invocation. */ /* */ int libicb$q_program_counter [2]; /* */ /* The current PS of a given procedure invocation. */ /* */ int libicb$q_processor_status [2]; /* */ /* The register contents areas. 31 for scalars, 31 for float. */ /* */ __int64 libicb$q_ireg [31]; __int64 libicb$q_freg [31]; /* */ /* The following is an "internal" area that's reserved for use by */ /* the operating system. It's size may vary over time. */ /* */ __union { unsigned __int64 libicb$ph_chfctx_addr; int libicb$q_system_defined [2] [2]; } libicb$r_system_specific; /* */ /* Align to octaword. */ /* */ #if defined(__VAXC) char libicb$t_align[]; #else /* Warning: empty char[] member for libicb$t_align at end of structure not created */ #endif /* #if defined(__VAXC) */ } ; #if !defined(__VAXC) #define libicb$q_hdr_quad libicb$r_hdr.libicb$q_hdr_quad #define libicb$l_context_length libicb$r_hdr.libicb$r_hdr_desc.libicb$l_context_length #define libicb$v_fflags_bits libicb$r_hdr.libicb$r_hdr_desc.libicb$r_frameflags.libicb$v_fflags_bits #define libicb$v_exception_frame libicb$r_hdr.libicb$r_hdr_desc.libicb$r_frameflags.libicb$r_fflags_desc.libicb$v_exception_frame #define libicb$v_ast_frame libicb$r_hdr.libicb$r_hdr_desc.libicb$r_frameflags.libicb$r_fflags_desc.libicb$v_ast_frame #define libicb$v_bottom_of_stack libicb$r_hdr.libicb$r_hdr_desc.libicb$r_frameflags.libicb$r_fflags_desc.libicb$v_bottom_of_stack #define libicb$v_base_frame libicb$r_hdr.libicb$r_hdr_desc.libicb$r_frameflags.libicb$r_fflags_desc.libicb$v_base_frame #define libicb$b_block_version libicb$r_hdr.libicb$r_hdr_desc.libicb$b_block_version #define libicb$ph_chfctx_addr libicb$r_system_specific.libicb$ph_chfctx_addr #define libicb$q_system_defined libicb$r_system_specific.libicb$q_system_defined #endif /* #if !defined(__VAXC) */ #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 /* __LIBICB_LOADED */