Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

jumpxn.c

Go to the documentation of this file.
00001 /*
00002  * $Id: jumpxn.c,v 1.2 2009/02/16 08:04:38 schubert Exp $
00003  *
00004  * Revision 1.1.1.1  2002/07/24 15:56:28  rdm
00005  * initial import into CVS
00006  *
00007  * Revision 1.1.1.1  2002/06/16 15:18:46  hristov
00008  * Separate distribution  of Geant3
00009  *
00010  * Revision 1.1.1.1  1999/05/18 15:55:28  fca
00011  * AliRoot sources
00012  *
00013  * Revision 1.3  1997/10/23 16:25:11  mclareni
00014  * NT mods, mostly C Fortran interface
00015  *
00016  * Revision 1.2  1997/02/04 17:34:23  mclareni
00017  * Merge Winnt and 97a versions
00018  *
00019  * Revision 1.1.1.1.2.1  1997/01/21 11:29:31  mclareni
00020  * All mods for Winnt 96a on winnt branch
00021  *
00022  * Revision 1.1.1.1  1996/02/15 17:49:24  mclareni
00023  * Kernlib
00024  *
00025  */
00026 #include "kerngen/pilot.h"
00027 
00028 #if defined(CERNLIB_QMVAOS)
00029 #include "vaogs/jumpxn.c"
00030 #else
00031 /*>    ROUTINE JUMPXN
00032   CERN PROGLIB# Z042    JUMPXN          .VERSION KERNFOR  4.40  940929
00033   ORIG. 21/04/88 JZ+FCA
00034 C
00035 C-    To transfer to the user routine TARGET (say) with 2 parameters
00036 C-    three steps are needed :
00037 
00038 C- 1) EXTERNAL TARGET              to get the address of TARGET
00039 C-    IADR = JUMPAD (TARGET)
00040 
00041 C- 2) CALL JUMPST (IADR)           to set the tranfer address
00042 
00043 C- 3) CALL JUMPX2 (par1,par2)      to transfer
00044 */
00045 #if defined(CERNLIB_QCCINDAD)
00046 #define IADR *iadr
00047 #endif
00048 #if !defined(CERNLIB_QCCINDAD)
00049 #define IADR iadr
00050 #endif
00051 
00052 #if defined(CERNLIB_LXIA64)
00053 #define INT long long int
00054 #else
00055 #define INT int
00056 #endif
00057 
00058 #if defined(CERNLIB_QX_SC)
00059 #define jumpad type_of_call jumpad_
00060 #define jumpst type_of_call jumpst_
00061 #define jumpx0 type_of_call jumpx0_
00062 #define jumpx1 type_of_call jumpx1_
00063 #define jumpx2 type_of_call jumpx2_
00064 #define jumpx3 type_of_call jumpx3_
00065 #define jumpx4 type_of_call jumpx4_
00066 #define jumpx5 type_of_call jumpx5_
00067 #define jumpx6 type_of_call jumpx6_
00068 #define jumpx7 type_of_call jumpx7_
00069 #define jumpx8 type_of_call jumpx8_
00070 #define jumpx9 type_of_call jumpx9_
00071 #endif
00072 #if defined(CERNLIB_QXCAPT)
00073 #define jumpad type_of_call JUMPAD
00074 #define jumpst type_of_call JUMPST
00075 #define jumpx0 type_of_call JUMPX0
00076 #define jumpx1 type_of_call JUMPX1
00077 #define jumpx2 type_of_call JUMPX2
00078 #define jumpx3 type_of_call JUMPX3
00079 #define jumpx4 type_of_call JUMPX4
00080 #define jumpx5 type_of_call JUMPX5
00081 #define jumpx6 type_of_call JUMPX6
00082 #define jumpx7 type_of_call JUMPX7
00083 #define jumpx8 type_of_call JUMPX8
00084 #define jumpx9 type_of_call JUMPX9
00085 #endif
00086 
00087 static void  (type_of_call *tarsub)();
00088 
00089 /* ----   jumpad   ---------------------------------------------  */
00090 INT jumpad(ifun)
00091     char *ifun;
00092 {
00093     return (INT) ifun;
00094 }
00095 /* ----   jumpst   ---------------------------------------------  */
00096 void jumpst(iadr)
00097      void (type_of_call **IADR)();
00098 {
00099     tarsub = *IADR;
00100 }
00101 /* ----   jumpxn   ---------------------------------------------  */
00102 void jumpx0()
00103 {
00104     (*tarsub)();
00105     return;
00106 }
00107 
00108 void jumpx1(ixa)
00109      char *ixa;
00110 {
00111     (*tarsub)(ixa);
00112     return;
00113 }
00114 
00115 void jumpx2(ixa, ixb)
00116      char *ixa, *ixb;
00117 {
00118     (*tarsub)(ixa, ixb);
00119     return;
00120 }
00121 void jumpx3(ixa, ixb, ixc)
00122      char *ixa, *ixb, *ixc;
00123 {
00124     (*tarsub)(ixa, ixb, ixc);
00125     return;
00126 }
00127 void jumpx4(ixa, ixb, ixc, ixd)
00128      char *ixa, *ixb, *ixc, *ixd;
00129 {
00130     (*tarsub)(ixa, ixb, ixc, ixd);
00131     return;
00132 }
00133 void jumpx5(ixa, ixb, ixc, ixd, ixe)
00134      char *ixa, *ixb, *ixc, *ixd, *ixe;
00135 {
00136     (*tarsub)(ixa, ixb, ixc, ixd, ixe);
00137     return;
00138 }
00139 void jumpx6(ixa, ixb, ixc, ixd, ixe, ixf)
00140      char *ixa, *ixb, *ixc, *ixd, *ixe, *ixf;
00141 {
00142     (*tarsub)(ixa, ixb, ixc, ixd, ixe, ixf);
00143     return;
00144 }
00145 void jumpx7(ixa, ixb, ixc, ixd, ixe, ixf, ixg)
00146      char *ixa, *ixb, *ixc, *ixd, *ixe, *ixf, *ixg;
00147 {
00148     (*tarsub)(ixa, ixb, ixc, ixd, ixe, ixf, ixg);
00149     return;
00150 }
00151 void jumpx8(ixa, ixb, ixc, ixd, ixe, ixf, ixg, ixh)
00152      char *ixa, *ixb, *ixc, *ixd, *ixe, *ixf, *ixg, *ixh;
00153 {
00154     (*tarsub)(ixa, ixb, ixc, ixd, ixe, ixf, ixg, ixh);
00155     return;
00156 }
00157 void jumpx9(ixa, ixb, ixc, ixd, ixe, ixf, ixg, ixh, ixi)
00158      char *ixa, *ixb, *ixc, *ixd, *ixe, *ixf, *ixg, *ixh, *ixi;
00159 {
00160     (*tarsub)(ixa, ixb, ixc, ixd, ixe, ixf, ixg, ixh, ixi);
00161     return;
00162 }
00163 /*> END <----------------------------------------------------------*/
00164 #endif

Generated on Sat Mar 14 22:40:14 2009 for loon by doxygen 1.3.5