/********************************************************************************************************************************/ /* Created: 15-MAR-2001 23:37:50 by OpenVMS SDL EV1-33 */ /* Source: 15-MAR-2001 23:34:32 _$11$DUA933:[BUILD.SDL]SRMDEF.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $SFDEF ***/ #ifndef __SFDEF_LOADED #define __SFDEF_LOADED 1 #pragma nostandard #ifdef __cplusplus extern "C" { #define __unknown_params ... #else #define __unknown_params #endif #if !defined(__VAXC) && !defined(VAXC) #define __struct struct #define __union union #else #define __struct variant_struct #define __union variant_union #endif /*+ */ /* Define stack frame offsets as a separate structure SF$ */ /*- */ #define SF$M_C 0x1 #define SF$M_V 0x2 #define SF$M_Z 0x4 #define SF$M_N 0x8 #define SF$M_TBIT 0x10 #define SF$M_IV 0x20 #define SF$M_FU 0x40 #define SF$M_DV 0x80 struct sfdef { void *sf$a_handler; /* Adr. of handler or 0 if no handler */ __union { unsigned short int sf$w_save_psw; /* saved PSW */ __struct { unsigned sf$v_c : 1; /* carry */ unsigned sf$v_v : 1; /* overflow */ unsigned sf$v_z : 1; /* zero */ unsigned sf$v_n : 1; /* negative */ unsigned sf$v_tbit : 1; /* trace trap enable */ unsigned sf$v_iv : 1; /* integer overflow enable */ unsigned sf$v_fu : 1; /* floating underflow enable */ unsigned sf$v_dv : 1; /* decimal overflow enable */ } sf$r_save_psw_bits; } sf$r_save_psw_overlay; __union { unsigned short int sf$w_save_mask; /* saved register mask plus flags */ __struct { unsigned sf$v_save_mask : 12; /* register save mask */ unsigned sfdef$$_fill_1 : 1; /* MBZ */ unsigned sf$v_calls : 1; /* 1 if CALLS */ unsigned sf$v_stackoffs : 2; /* SP offset */ } sf$r_save_mask_bits; } sf$r_save_mask_overlay; unsigned int sf$l_save_ap; /* saved AP */ unsigned int sf$l_save_fp; /* saved FP */ unsigned int sf$l_save_pc; /* saved PC */ unsigned int sf$l_save_regs; /* first register saved is saved here */ } ; #if !defined(__VAXC) && !defined(VAXC) #define sf$w_save_psw sf$r_save_psw_overlay.sf$w_save_psw #define sf$v_c sf$r_save_psw_overlay.sf$r_save_psw_bits.sf$v_c #define sf$v_v sf$r_save_psw_overlay.sf$r_save_psw_bits.sf$v_v #define sf$v_z sf$r_save_psw_overlay.sf$r_save_psw_bits.sf$v_z #define sf$v_n sf$r_save_psw_overlay.sf$r_save_psw_bits.sf$v_n #define sf$v_tbit sf$r_save_psw_overlay.sf$r_save_psw_bits.sf$v_tbit #define sf$v_iv sf$r_save_psw_overlay.sf$r_save_psw_bits.sf$v_iv #define sf$v_fu sf$r_save_psw_overlay.sf$r_save_psw_bits.sf$v_fu #define sf$v_dv sf$r_save_psw_overlay.sf$r_save_psw_bits.sf$v_dv #define sf$w_save_mask sf$r_save_mask_overlay.sf$w_save_mask #define sf$v_save_mask sf$r_save_mask_overlay.sf$r_save_mask_bits.sf$v_save_mask #define sf$v_calls sf$r_save_mask_overlay.sf$r_save_mask_bits.sf$v_calls #define sf$v_stackoffs sf$r_save_mask_overlay.sf$r_save_mask_bits.sf$v_stackoffs #endif /* #if !defined(__VAXC) && !defined(VAXC) */ /* for compatibility with VAX C */ #define sf$frame sfdef #ifdef __cplusplus } #endif #pragma standard #endif /* __SFDEF_LOADED */