/* Ported to GNU C openVMS/Alpha by Klaus Kämpf, kkaempf@progis.de */ /* * * Compiler support run-time library routines. */ #ifndef _OTS$ROUTINES_H #define _OTS$ROUTINES_H # ifdef __cplusplus extern "C" { # endif /* OTS$CVT_T_D,OTS$CVT_T_F,OTS$CVT_T_G,OTS$CVT_T_H -- convert numeric text to floating value */ #define ots$cvt_t_d OTS$CVT_T_D unsigned long ots$cvt_t_d(const void *,double *,...); #define ots$cvt_t_f OTS$CVT_T_F unsigned long ots$cvt_t_f(const void *,float *,...); #define ots$cvt_t_g OTS$CVT_T_G unsigned long ots$cvt_t_g(const void *,double *,...); #define ots$cvt_t_h OTS$CVT_T_H unsigned long ots$cvt_t_h(const void *,void *,...); /* OTS$DIVC,OTS$DIVCD_R3,OTS$DIVCG_R3 -- Complex Division */ /*- complex ots$divc(complex,complex); */ /*- double complex ots$divcd_r3(), ots$divcg_r3(); */ /* OTS$DIV_PK_LONG -- packed decimal division with long divisor */ /* OTS$DIV_PK_SHORT-- packed decimal division with short divisor */ #define ots$div_pk_long OTS$DIV_PK_LONG unsigned long ots$div_pk_long(const void *,const void *,short,void *,short,short,short); #define ots$div_pk_short OTS$DIV_PK_SHORT unsigned long ots$div_pk_short(const void *,const void *,short,void *,short,short); /* OTS$MOVE3 -- move data without fill */ /* OTS$MOVE5 -- move data with fill */ #define ots$move3 OTS$MOVE3 void ots$move3(int,const void *,void *); #define ots$move5 OTS$MOVE5 void ots$move5(int,const void *,int,int,void *); /* OTS$MULCD_R3,OTS$MULCG_R3 -- complex multiplication */ /*- double complex ots$mulc_r3(); */ /* OTS$CNVOUT,OTS$CNVOUT_G,OTS$CNVOUT_H -- convert {D|G|H}-floating number to character string */ #define ots$cnvout OTS$CNVOUT unsigned long ots$cnvout(const double *,void *,unsigned); #define ots$cnvout_g OTS$CNVOUT_G unsigned long ots$cnvout_g(const double *,void *,unsigned); #define ots$cnvout_h OTS$CNVOUT_H unsigned long ots$cnvout_h(const void *,void *,unsigned); /* OTS$POWCC,OTS$POWCDCD_R3,OTS$POWCDCG_R3 -- raise a complex base to a complex floating-point exponent */ /*- complex ots$powcc(complex,complex); */ /*- double complex ots$powcdcd_r3(), ots$powcgcg_r3(); */ /* OTS$POWCJ,OTS$POWCDJ_R3,OTS$POWCGJ_R3 -- raise a complex base to a signed longword integer exponent */ /*- complex ots$powcj(complex,long); */ /*- double complex ots$powcdj_r3(), ots$powcgj_r3(); */ /* OTS$POWDD -- raise a D_floating base to D_floating exponent */ /* OTS$POWDJ -- raise a D_floating base to a longword exponent */ /* OTS$POWDR -- raise a D_floating base to an F_floating exponent */ /* OTS$POWGG -- raise a G-floating base to a G-floating exponent */ /* OTS$POWGJ -- raise a G-floating base to a longword exponent */ #define ots$powdd OTS$POWDD double ots$powdd(double,double); #define ots$powdj OTS$POWDJ double ots$powdj(double,long); #define ots$powdr OTS$POWDR double ots$powdr(double,float); #define ots$powgg OTS$POWGG double ots$powgg(double,double); #define ots$powgj OTS$POWGJ double ots$powgj(double,long); /* OTS$POWHH_R3 -- raise an H-floating base to an H-floating exponent */ /* OTS$POWHJ_R3 -- raise an H-floating base to a longword exponent */ /*- long double ots$powhh_r3(), ots$powhj_r3() */ /* OTS$POWII -- raise a word base to a word exponent */ /* OTS$POWJJ -- raise a longword base to a longword exponent */ /* OTS$POWLULU -- raise an unsigned longword base to an unsigned longword exponent */ #define ots$powii OTS$POWII short ots$powii(short,short); #define ots$powjj OTS$POWJJ long ots$powjj(long,long); #define ots$powlulu OTS$POWLULU unsigned long ots$powlulu(unsigned long,unsigned long); /* OTS$POWRD -- raise an F-floating base to a D-floating exponent */ /* OTS$POWRJ -- raise an F-floating base to a longword exponent */ /* OTS$POWRR -- raise an F-floating base to an F-floating exponent */ #define ots$powrd OTS$POWRD double ots$powrd(float,double); #define ots$powrj OTS$POWRJ float ots$powrj(float,long); #define ots$powrr OTS$POWRR float ots$powrr(float,float); /* raise a floating-point base to an unsigned longword integer exponent */ /* OTS$POWRLU,OTS$POWDLU,OTS$POWGLU,OTS$POWHLU_R3 */ #define ots$powrlu OTS$POWRLU float ots$powrlu(float,unsigned long); #define ots$powdlu OTS$POWDLU double ots$powdlu(double,unsigned long); #define ots$powglu OTS$POWGLU double ots$powglu(double,unsigned long); /*- long double ots$powhlu_r3(); */ /* OTS$SCOPY_DXDX -- copy a source string passed by descriptor to a destination string */ /* OTS$SCOPY_R_DX -- copy a source string passed by reference to a destination string */ #define ots$scopy_dxdx OTS$SCOPY_DXDX unsigned short ots$scopy_dxdx(const void *,void *); #define ots$scopy_r_dx OTS$SCOPY_R_DX unsigned short ots$scopy_r_dx(unsigned short,const void *,void *); /* OTS$SFREE1_DD -- strings, free one dynamic */ /* OTS$SFREEN_DD -- strings, free N dynamic */ /* OTS$SGET1_DD -- strings, get one dynamic */ #define ots$sfree1_dd OTS$SFREE1_DD void ots$sfree1_dd(void *); #define ots$sfreen_dd OTS$SFREEN_DD void ots$sfreen_dd(unsigned,void *); #define ots$sget1_dd OTS$SGET1_DD void ots$sget1_dd(unsigned short,void *); /* OTS$CVT_L_TB -- convert an unsigned integer to binary text */ /* OTS$CVT_L_TI -- convert signed integer to decimal text */ /* OTS$CVT_L_TL -- convert integer to logical text */ /* OTS$CVT_L_TO -- convert unsigned integer to octal text */ /* OTS$CVT_L_TU -- convert unsigned integer to decimal text */ /* OTS$CVT_L_TZ -- convert integer to hexadecimal text */ #define ots$cvt_l_tb OTS$CVT_L_TB unsigned long ots$cvt_l_tb(const void *,void *,...); #define ots$cvt_l_ti OTS$CVT_L_TI unsigned long ots$cvt_l_ti(const void *,void *,...); #define ots$cvt_l_tl OTS$CVT_L_TL unsigned long ots$cvt_l_tl(const long *,void *); #define ots$cvt_l_to OTS$CVT_L_TO unsigned long ots$cvt_l_to(const void *,void *,...); #define ots$cvt_l_tu OTS$CVT_L_TU unsigned long ots$cvt_l_tu(const void *,void *,...); #define ots$cvt_l_tz OTS$CVT_L_TZ unsigned long ots$cvt_l_tz(const void *,void *,...); /* OTS$CVT_TB_L -- convert binary text to unsigned integer */ /* OTS$CVT_TI_L -- convert signed integer text to integer */ /* OTS$CVT_TL_L -- convert logical text to integer */ /* OTS$CVT_TO_L -- convert octal text to signed integer */ /* OTS$CVT_TU_L -- convert unsigned decimal text to integer */ /* OTS$CVT_TZ_L -- convert hexadecimal text to unsigned integer */ #define ots$cvt_tb_l OTS$CVT_TB_L unsigned long ots$cvt_tb_l(const void *,void *,...); #define ots$cvt_ti_l OTS$CVT_TI_L unsigned long ots$cvt_ti_l(const void *,void *,...); #define ots$cvt_tl_l OTS$CVT_TL_L unsigned long ots$cvt_tl_l(const void *,void *,...); #define ots$cvt_to_l OTS$CVT_TO_L unsigned long ots$cvt_to_l(const void *,void *,...); #define ots$cvt_tu_l OTS$CVT_TU_L unsigned long ots$cvt_tu_l(const void *,void *,...); #define ots$cvt_tz_l OTS$CVT_TZ_L unsigned long ots$cvt_tz_l(const void *,void *,...); # ifdef __cplusplus } # endif #endif /*_OTS$ROUTINES_H*/