Xcos-Scicos: indent some files before modification
[scilab.git] / scilab / modules / scicos / includes / scicos.h
1 /*  Scicos
2 *
3 *  Copyright (C) INRIA - METALAU Project <scicos@inria.fr>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 *
19 * See the file ./license.txt
20 */
21 #ifndef __SCICOS_H
22 #define __SCICOS_H
23
24 #include "machine.h"
25 #include "scicos_block4.h"
26 #include "import.h"
27
28 /* maximum value for sum of number of inputs and outputs ports of a given
29 block of type 2 */
30 #define SZ_SIZE 60
31
32 /* maximum value for sum of number of inputs and outputs of a given block
33 of type 0 */
34 #define TB_SIZE 500
35
36 #ifdef _MSC_VER
37 typedef void (*voidf) ();
38 #else
39 typedef void (*voidf) (void);
40 #endif
41
42
43 /* Blocks prototypes */
44 #define I int
45 #define IP int*
46 #define DP double*
47 #define DPP double**
48 #define DB scicos_block*
49 #define F scicos_flag
50 #define FP scicos_flag*
51
52 /*                    flag  nclock ntvec  rpar  nrpar ipar  nipar  u  nu */
53 #define ARGS_scicosm1 IP,    IP,    IP,    DP,   IP,  IP,   IP,   DP, IP
54
55 /* flag  nclock t    xd   x    nx   z   nz   tvec   ntvec  rpar  nrpar ipar  nipar  intabl  ni  outabl no */
56 #define ARGS_scicos0 FP,IP,DP,DP,DP,IP,DP,IP,DP,IP,DP,IP,IP,IP,DP,IP,DP,IP
57
58 /*       flag   nclock t    xd   x    nx   z   nz   tvec   ntvec  rpar  nrpar ipar  nipar  intabl  .... */
59 #define ARGS_scicos FP,IP,DP,DP,DP,IP,DP,IP,DP,IP,DP,IP,IP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP
60
61 /*        flag   nclock t    xd   x    nx   z   nz   tvec   ntvec  rpar  nrpar ipar  nipar   args_in sz_in, n_in  args_out sz_out, n_out  */
62 #define ARGS_scicos2 FP,IP,DP,DP,DP,IP,DP,IP,DP,IP,DP,IP,IP,IP,DPP,IP,IP,DPP,IP,IP
63
64 /*        flag   nclock t    xd   x    nx   z   nz   tvec   ntvec  rpar  nrpar ipar  nipar   args_in sz_in, n_in  args_out sz_out, n_out g ng */
65 #define ARGS_scicos2z FP,IP,DP,DP,DP,IP,DP,IP,DP,IP,DP,IP,IP,IP,DPP,IP,IP,DPP,IP,IP,DP,IP
66
67 /*       flag   nclock t    residual xd   x    nx   z   nz   tvec   ntvec  rpar  nrpar ipar  nipar  intabl  .... */
68
69 #define ARGS_scicosi FP,IP,DP,DP,DP,DP,IP,DP,IP,DP,IP,DP,IP,IP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP,DP,IP
70
71 /*        flag   nclockf t   residual xd   x    nx   z   nz   tvec   ntvec  rpar  nrpar ipar  nipar   args_in sz_in, n_in  args_out sz_out, n_out  */
72 #define ARGS_scicosi2 FP,IP,DP,DP,DP,DP,IP,DP,IP,DP,IP,DP,IP,IP,IP,DPP,IP,IP,DPP,IP,IP
73
74 /*        flag   nclockf t   residual xd   x    nx   z   nz   tvec   ntvec  rpar  nrpar ipar  nipar   args_in sz_in, n_in  args_out sz_out, n_out g ng */
75 #define ARGS_scicosi2z FP,IP,DP,DP,DP,DP,IP,DP,IP,DP,IP,DP,IP,IP,IP,DPP,IP,IP,DPP,IP,IP,DP,IP
76
77 /*         block     flag*/
78 #define ARGS_scicos4 DB, F
79
80 typedef void (*ScicosFm1) (ARGS_scicosm1);
81 typedef void (*ScicosF0) (ARGS_scicos0);
82 typedef void (*ScicosF) (ARGS_scicos);
83 typedef void (*ScicosF2) (ARGS_scicos2);
84 typedef void (*ScicosF2z) (ARGS_scicos2z);
85 typedef void (*ScicosFi) (ARGS_scicosi);
86 typedef void (*ScicosFi2) (ARGS_scicosi2);
87 typedef void (*ScicosFi2z) (ARGS_scicosi2z);
88 typedef void (*ScicosF4) (ARGS_scicos4);
89
90 typedef struct
91 {
92     char const* name;
93     ScicosF fonc;
94 } OpTab;
95
96 /**
97  * @TODO add comment
98  *
99  * @param x_in
100  * @param xptr_in
101  * @param z__
102  * @param work
103  * @param zptr
104  * @param modptr_in
105  * @param oz
106  * @param ozsz
107  * @param oztyp
108  * @param ozptr
109  * @param iz
110  * @param izptr
111  * @param t0_in
112  * @param tf_in
113  * @param tevts_in
114  * @param evtspt_in
115  * @param nevts
116  * @param pointi_in
117  * @param outtbptr_in
118  * @param outtbsz_in
119  * @param outtbtyp_in
120  * @param outtb_elem_in
121  * @param nelem1
122  * @param nlnk1
123  * @param funptr
124  * @param funtyp_in
125  * @param inpptr_in
126  * @param outptr_in
127  * @param inplnk_in
128  * @param outlnk_in
129  * @param rpar
130  * @param rpptr
131  * @param ipar
132  * @param ipptr
133  * @param opar
134  * @param oparsz
135  * @param opartyp
136  * @param opptr
137  * @param clkptr_in
138  * @param ordptr_in
139  * @param nordptr1
140  * @param ordclk_in
141  * @param cord_in
142  * @param ncord1
143  * @param iord_in
144  * @param niord1
145  * @param oord_in
146  * @param noord1
147  * @param zord_in
148  * @param nzord1
149  * @param critev_in
150  * @param nblk1
151  * @param ztyp
152  * @param zcptr_in
153  * @param subscr
154  * @param nsubs
155  * @param simpar
156  * @param flag__
157  * @param ierr_out
158  * @return <ReturnValue>
159  */
160 int C2F(scicos) (double *x_in, int *xptr_in, double *z__,
161                  void **work, int *zptr, int *modptr_in,
162                  void **oz, int *ozsz, int *oztyp, int *ozptr,
163                  int *iz, int *izptr, double *t0_in,
164                  double *tf_in, double *tevts_in, int *evtspt_in,
165                  int *nevts, int *pointi_in, void **outtbptr_in,
166                  int *outtbsz_in, int *outtbtyp_in,
167                  outtb_el * outtb_elem_in, int *nelem1, int *nlnk1,
168                  int *funptr, int *funtyp_in, int *inpptr_in,
169                  int *outptr_in, int *inplnk_in, int *outlnk_in,
170                  double *rpar, int *rpptr, int *ipar, int *ipptr,
171                  void **opar, int *oparsz, int *opartyp, int *opptr,
172                  int *clkptr_in, int *ordptr_in, int *nordptr1,
173                  int *ordclk_in, int *cord_in, int *ncord1,
174                  int *iord_in, int *niord1, int *oord_in,
175                  int *noord1, int *zord_in, int *nzord1,
176                  int *critev_in, int *nblk1, int *ztyp, int *zcptr_in, int *subscr, int *nsubs, double *simpar, int *flag__, int *ierr_out);
177
178 /**
179 *
180 */
181 void callf(double *t, scicos_block * block, scicos_flag * flag);
182
183 /**
184 *
185 */
186 int get_phase_simulation(void);
187
188 /**
189 *
190 */
191 void set_block_error(int err);
192
193 /**
194 *
195 */
196 double get_scicos_time(void);
197
198 /**
199 *
200 */
201 void set_pointer_xproperty(int *pointer);
202
203 /**
204 *
205 */
206 void do_cold_restart(void);
207
208 /**
209 *
210 */
211 int get_block_number(void);
212
213 /**
214 *
215 */
216 void end_scicos_sim(void);
217
218 /**
219 *
220 */
221 void Coserror(const char *fmt, ...);
222
223 #endif
224