/********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:29:53 by OpenVMS SDL EV3-3 */ /* Source: 30-MAR-2010 17:29:22 $1$DGA7274:[STARLET_H.SRC]STARDEFMP.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $PSIGDEF ***/ #ifndef __PSIGDEF_LOADED #define __PSIGDEF_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 /* */ /* Signature block offset definitions for the Alpha/IA64 calling standard. */ /* */ #define PSIG$K_FR_I64 0 /* 64 bit in R0 */ /* or - No function result provided */ #define PSIG$K_FR_D64 1 /* 32 bit low in R0, 32 bit high in r1 - sign extended */ #define PSIG$K_FR_I32 2 /* 32 bit sign extended in R0 */ #define PSIG$K_FR_U32 3 /* 32 bit unsigned in R0 */ #define PSIG$K_FR_FF 4 /* F floating in F0 */ #define PSIG$K_FR_FD 5 /* D floating in F0 */ #define PSIG$K_FR_FG 6 /* G floating in F0 */ #define PSIG$K_FR_FS 7 /* S floating in F0 */ #define PSIG$K_FR_FT 8 /* T floating in F0 */ #define PSIG$K_FR_FFC 11 /* F floating complex in F0 and F1 */ #define PSIG$K_FR_FDC 12 /* D floating complex in F0 and F1 */ #define PSIG$K_FR_FGC 13 /* G floating complex in F0 and F1 */ #define PSIG$K_FR_FSC 14 /* S floating complex in F0 and F1 */ #define PSIG$K_FR_FTC 15 /* T floating complex in F0 and F1 */ /* */ #define PSIG$M_FUNC_RETURN 0xF #define PSIG$M_REG_ARG_INFO 0xFFFFFF0 #define PSIG$M_SU_VLIST 0x40000000 #define PSIG$K_MIN_LENGTH 8 /* Minimum length */ #define PSIG$K_MAX_LENGTH 72 /* Maximum length */ #define PSIG$K_MIN_SIZE 8 /* Minimum size */ #define PSIG$K_MAX_SIZE 72 /* Maximum size */ #ifdef __NEW_STARLET typedef struct _psigdef { /* or - First parameter mechanism used */ /* First longword of signature block */ /* */ __union { __union { unsigned int psig$l_register_info; __struct { unsigned psig$v_func_return : 4; /* Function return signature encoding */ unsigned psig$v_reg_arg_info : 24; /* Register argument signature encodings */ unsigned psig$v_summary : 4; /* Entire summary field */ } psig$r_fill_84_; } psig$r_fill_83_; /* */ /* Summary bits which are contained in the high bits of the first longword */ /* */ __union { unsigned int psig$l_summary_info; __struct { unsigned psig$v_fill : 28; unsigned psig$v_su_asum : 2; /* Summary of arguments 7 through arg_count */ unsigned psig$v_su_vlist : 1; /* VAX style argument list expected */ unsigned psig$v_unused : 1; } psig$r_fill_86_; } psig$r_fill_85_; } psig$r_register_info_overlay; /* */ /* Second longword of signature block */ /* */ unsigned char psig$b_arg_count; /* Argument count */ unsigned psig$v_memory_arg_info : 24; /* Minimum length for memory argument information */ } PSIGDEF; #if !defined(__VAXC) #define psig$l_register_info psig$r_register_info_overlay.psig$r_fill_83_.psig$l_register_info #define psig$v_func_return psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$v_func_return #define psig$v_reg_arg_info psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$v_reg_arg_info #define psig$v_summary psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$v_summary #define psig$l_summary_info psig$r_register_info_overlay.psig$r_fill_85_.psig$l_summary_info #define psig$v_fill psig$r_register_info_overlay.psig$r_fill_85_.psig$r_fill_86_.psig$v_fill #define psig$v_su_asum psig$r_register_info_overlay.psig$r_fill_85_.psig$r_fill_86_.psig$v_su_asum #define psig$v_su_vlist psig$r_register_info_overlay.psig$r_fill_85_.psig$r_fill_86_.psig$v_su_vlist #define psig$v_unused psig$r_register_info_overlay.psig$r_fill_85_.psig$r_fill_86_.psig$v_unused #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ typedef struct _psigdef { /* or - First parameter mechanism used */ /* First longword of signature block */ /* */ __union { __union { unsigned int psig$l_register_info; __struct { unsigned psig$v_func_return : 4; /* Function return signature encoding */ unsigned psig$v_reg_arg_info : 24; /* Register argument signature encodings */ unsigned psig$v_summary : 4; /* Entire summary field */ } psig$r_fill_84_; } psig$r_fill_83_; /* */ /* Summary bits which are contained in the high bits of the first longword */ /* */ __union { unsigned int psig$l_summary_info; __struct { unsigned psig$v_fill : 28; unsigned psig$v_su_asum : 2; /* Summary of arguments 7 through arg_count */ unsigned psig$v_su_vlist : 1; /* VAX style argument list expected */ unsigned psig$v_unused : 1; } psig$r_fill_86_; } psig$r_fill_85_; } psig$r_register_info_overlay; /* */ /* Second longword of signature block */ /* */ unsigned char psig$b_arg_count; /* Argument count */ unsigned psig$v_memory_arg_info : 24; /* Minimum length for memory argument information */ } psigdef; #if !defined(__VAXC) #define psig$l_register_info psig$r_register_info_overlay.psig$r_fill_83_.psig$l_register_info #define psig$v_func_return psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$v_func_return #define psig$v_reg_arg_info psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$v_reg_arg_info #define psig$v_summary psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$v_summary #define psig$l_summary_info psig$r_register_info_overlay.psig$r_fill_85_.psig$l_summary_info #define psig$v_fill psig$r_register_info_overlay.psig$r_fill_85_.psig$r_fill_86_.psig$v_fill #define psig$v_su_asum psig$r_register_info_overlay.psig$r_fill_85_.psig$r_fill_86_.psig$v_su_asum #define psig$v_su_vlist psig$r_register_info_overlay.psig$r_fill_85_.psig$r_fill_86_.psig$v_su_vlist #define psig$v_unused psig$r_register_info_overlay.psig$r_fill_85_.psig$r_fill_86_.psig$v_unused #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define RASE$M_SIG_ENC 0xF #define RASE$K_RA_I64 0 /* (obsolete) */ #define RASE$K_RA_NOARG 0 /* Argument is not present */ #define RASE$K_RA_Q 1 /* 64 bit in Rxx */ #define RASE$K_RA_I32 2 /* 32 bit sign extended in Rxx */ #define RASE$K_RA_U32 3 /* 32 bit unsigned in Rxx */ #define RASE$K_RA_FF 4 /* F floating passed in Fxx */ #define RASE$K_RA_FD 5 /* D floating passed in Fxx */ #define RASE$K_RA_FG 6 /* G floating passed in Fxx */ #define RASE$K_RA_FS 7 /* S floating passed in Fxx */ #define RASE$K_RA_FT 8 /* T floating passed in Fxx */ #ifdef __NEW_STARLET typedef struct _rasedef { unsigned rase$v_sig_enc : 4; /* per register signature encoding */ unsigned rase$v_fill_87_ : 4; } RASEDEF; #else /* __OLD_STARLET */ typedef struct _rasedef { unsigned rase$v_sig_enc : 4; /* per register signature encoding */ unsigned rase$v_fill_87_ : 4; } rasedef; #endif /* #ifdef __NEW_STARLET */ #define MASE$K_MA_I64 0 /* (obsolete) */ #define MASE$K_MA_Q 0 /* 64 bit argument */ #define MASE$K_MA_I32 2 /* 32 bit signed argument */ #ifdef __NEW_STARLET typedef struct _masedef { unsigned mase$v_sig_enc : 2; /* per memory location signature encoding */ unsigned mase$v_fill_88_ : 6; } MASEDEF; #else /* __OLD_STARLET */ typedef struct _masedef { unsigned mase$v_sig_enc : 2; /* per memory location signature encoding */ unsigned mase$v_fill_88_ : 6; } masedef; #endif /* #ifdef __NEW_STARLET */ /* */ /* Argument Information structure definition for the Alpha/IA64 calling standard. */ /* */ #define AI$K_AR_I64 0 /* Integer argument */ #define AI$K_AR_FF 1 /* VAX F float argument */ #define AI$K_AR_FD 2 /* VAX D float argument */ #define AI$K_AR_FG 3 /* VAX G float argument */ #define AI$K_AR_FS 4 /* IEEE S float argument */ #define AI$K_AR_FT 5 /* IEEE T float argument */ #define AI$K_AR_RESERVED_6 6 /* Reserved value 6 */ #define AI$K_AR_RESERVED_7 7 /* Reserved value 7 */ #define AI$M_ARG_REG_INFO 0x700 #define AI$K_AI_SIZE 8 /* Minimum length */ #define AI$K_REGNO 25 /* The AI register number */ #ifdef __NEW_STARLET typedef struct _aidef { unsigned char ai$b_arg_count; unsigned ai$v_arg_reg_info : 18 /** WARNING: bitfield array has been reduced to a string **/ ; /* per arg type info for up to 6\ arguments */ unsigned ai$v_arg_mbz1 : 6; /* must be zero */ unsigned ai$v_arg_mbz2 : 32; /* must be zero */ } AIDEF; #else /* __OLD_STARLET */ typedef struct _aidef { unsigned char ai$b_arg_count; unsigned ai$v_arg_reg_info : 18 /** WARNING: bitfield array has been reduced to a string **/ ; /* per arg type info for up to 6\ arguments */ unsigned ai$v_arg_mbz1 : 6; /* must be zero */ unsigned ai$v_arg_mbz2 : 32; /* must be zero */ } aidef; #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 /* __PSIGDEF_LOADED */