summaryrefslogtreecommitdiff
path: root/modules/scicos/includes
diff options
context:
space:
mode:
Diffstat (limited to 'modules/scicos/includes')
-rwxr-xr-xmodules/scicos/includes/dynlib_scicos.h28
-rwxr-xr-xmodules/scicos/includes/gw_scicos.h74
-rwxr-xr-xmodules/scicos/includes/import.h125
-rwxr-xr-xmodules/scicos/includes/scicos-def.h98
-rwxr-xr-xmodules/scicos/includes/scicos.h241
-rwxr-xr-xmodules/scicos/includes/scicos_free.h28
-rwxr-xr-xmodules/scicos/includes/scicos_malloc.h30
-rwxr-xr-xmodules/scicos/includes/scicos_math.h26
-rwxr-xr-xmodules/scicos/includes/scicos_print.h27
9 files changed, 677 insertions, 0 deletions
diff --git a/modules/scicos/includes/dynlib_scicos.h b/modules/scicos/includes/dynlib_scicos.h
new file mode 100755
index 000000000..80342f9d4
--- /dev/null
+++ b/modules/scicos/includes/dynlib_scicos.h
@@ -0,0 +1,28 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) DIGITEO - 2009 - Allan CORNET
+*
+* This file must be used under the terms of the CeCILL.
+* This source file is licensed as described in the file COPYING, which
+* you should have received as part of this distribution. The terms
+* are also available at
+* http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+*
+*/
+
+/*--------------------------------------------------------------------------*/
+#ifndef __DYNLIB_SCICOS_H__
+#define __DYNLIB_SCICOS_H__
+
+#ifdef _MSC_VER
+#ifdef SCICOS_EXPORTS
+#define SCICOS_IMPEXP __declspec(dllexport)
+#else
+#define SCICOS_IMPEXP __declspec(dllimport)
+#endif
+#else
+#define SCICOS_IMPEXP
+#endif
+
+#endif /* __DYNLIB_SCICOS_H__ */
+/*--------------------------------------------------------------------------*/
diff --git a/modules/scicos/includes/gw_scicos.h b/modules/scicos/includes/gw_scicos.h
new file mode 100755
index 000000000..bd0692fb5
--- /dev/null
+++ b/modules/scicos/includes/gw_scicos.h
@@ -0,0 +1,74 @@
+/* Scicos
+*
+* Copyright (C) INRIA - Allan CORNET
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+* See the file ./license.txt
+*/
+/*--------------------------------------------------------------------------*/
+/* INRIA 2008 */
+/* Allan CORNET */
+/*--------------------------------------------------------------------------*/
+#ifndef __GW_SCICOS__
+#define __GW_SCICOS__
+/*--------------------------------------------------------------------------*/
+#include "dynlib_scicos.h"
+#include "machine.h"
+/*--------------------------------------------------------------------------*/
+SCICOS_IMPEXP int gw_scicos(void);
+/*--------------------------------------------------------------------------*/
+/* interface for the previous function Table */
+/*--------------------------------------------------------------------------*/
+SCICOS_IMPEXP int sci_var2vec(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_vec2var(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_getblocklabel(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_scicos_debug(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_scicos_debug_count(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_sctree(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_ftree2(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_ftree3(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_ftree4(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_curblock(char *fname, unsigned long fname_len);
+
+SCICOS_IMPEXP int sci_scicos_time(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_duplicate(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_diffobjs(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_pointer_xproperty(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_phase_simulation(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_set_xproperty(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_set_blockerror(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_ctree2(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_ctree3(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_ctree4(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_scicosim(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_getscicosvars(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_curblockc(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_buildouttb(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_end_scicosim(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_haltscicos(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_coserror(char *fname, unsigned long fname_len);
+
+/* it was in a separate gateway */
+SCICOS_IMPEXP int sci_data2sig(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_sig2data(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_model2blk(char *fname, unsigned long fname_len);
+SCICOS_IMPEXP int sci_callblk(char *fname, unsigned long fname_len);
+
+SCICOS_IMPEXP int sci_loadScicos(char *fname, unsigned long fname_len);
+
+/*--------------------------------------------------------------------------*/
+#endif /* __GW_SCICOS__ */
+/*--------------------------------------------------------------------------*/
diff --git a/modules/scicos/includes/import.h b/modules/scicos/includes/import.h
new file mode 100755
index 000000000..cf9efbae7
--- /dev/null
+++ b/modules/scicos/includes/import.h
@@ -0,0 +1,125 @@
+/* Scicos
+*
+* Copyright (C) INRIA - METALAU Project <scicos@inria.fr>
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+* See the file ./license.txt
+*/
+#ifndef __IMPORT_H__
+#define __IMPORT_H__
+
+#include "machine.h"
+
+#include "dynlib_scicos.h"
+
+#include "scicos_block4.h"
+
+typedef struct
+{
+ int lnk;
+ int pos;
+} outtb_el;
+
+typedef struct
+{
+ double* x; /* continuous state */
+ int *nx; /* length of continuous state */
+ int * xptr; /* vector of pointers on block states */
+ int * zcptr; /* vector of pointers on block zero crosses */
+ double* z; /* discrete state */
+ int *nz; /* length of discrete state */
+ int* zptr; /* vector of pointers on block states */
+ int *noz; /* scalar number of object discrete states */
+ void **oz; /* pointer array of object discrete states */
+ int *ozsz; /* vector of dimension of object discrete states */
+ int *oztyp; /* vector of type of object discrete states */
+ int *ozptr; /* vector of pointers on object discrete states */
+ double* g; /* zero crossing state */
+ int *ng; /* length of zero crossing register */
+ int* mod; /* modes of the blocks */
+ int *nmod; /* length of mod register */
+ int* modptr; /* vector of pointers */
+ int* iz; /* vectors of labels */
+ int* izptr; /* vector of pointers on block labels */
+ int* uid; /* vectors of uids */
+ int* uidptr; /* vector of pointers on block uids */
+ int* inpptr; /* vector of pointers on block inputs */
+ int* inplnk; /* vector of pointers on input link */
+ int* outptr; /* vector of pointers on block outputs */
+ int* outlnk; /* vector of pointers on output link */
+ double * rpar; /* vector of real parameters */
+ int* rpptr; /* vector of pointers on block real parameters */
+ int* ipar; /* vector of integer parameters */
+ int* ipptr; /* vector of pointers on block integer parameters */
+ void **opar; /* pointer array of object parameters */
+ int *oparsz; /* vector of dimension of object parameters */
+ int *opartyp; /* vector of type of object parameters */
+ int *opptr; /* vector of pointers on object parameters */
+ int *nblk; /* number of blocks */
+ void **outtbptr; /* vector of pointer of object of outtb */
+ int *outtbsz; /* vector of size of object of outtb */
+ int *outtbtyp; /* vector of type of object of outtb */
+ int *nlnk; /* number of object of outtb */
+ int* subs; /* */
+ int *nsubs; /* */
+ double* tevts; /* */
+ int* evtspt; /* */
+ int *nevts; /* */
+ int *pointi; /* */
+ int *iord; /* */
+ int *niord; /* */
+ int *oord; /* */
+ int *noord; /* */
+ int *zord; /* */
+ int *nzord; /* */
+ int *funptr; /* block indexes */
+ int *funtyp; /* block types */
+ int *ztyp; /* block types */
+ int *cord; /* block types */
+ int *ncord; /* */
+ int *ordclk; /* block types */
+ int *nordclk; /* size of ordclk */
+ int *clkptr; /* block types */
+ int *ordptr; /* block types */
+ int *nordptr; /* */
+ int *critev; /* block types */
+ int *iwa; /* integer work space of size nevts */
+ int *mask; /* integer work space ng for mask */
+ scicos_block *blocks; /* scicos_block structure ptr */
+ double *t0; /* scalar initial time of simulation */
+ double *tf; /* scalar final time of simulation */
+ double *Atol; /* scalar absolute tolerance of solvers of diff. equa. */
+ double *rtol; /* scalar relative tolerance of solvers of diff. equa. */
+ double *ttol; /* scalar time tolerance of solvers of diff. equa. */
+ double *deltat; /* deltat */
+ double *hmax; /* hmax */
+ outtb_el *outtb_elem; /* table (of size 2) coding each indexes of element of matrix in a same array */
+ int *nelem; /* total unit element */
+ int *xprop; /* xproperties (of size nx) */
+ double *xd; /* derivative of continuous state */
+} ScicosImport;
+
+SCICOS_IMPEXP ScicosImport* getscicosimportptr(void);
+
+SCICOS_IMPEXP int getscicosvarsfromimport(char *what, void **v, int *nv, int *mv);
+
+SCICOS_IMPEXP void C2F(getouttb)(int *nsize, int *nvec, double *outtc);
+
+SCICOS_IMPEXP void C2F(getlabel)(int *kfun, char *label, int *n);
+
+SCICOS_IMPEXP int C2F(getscilabel)(int *kfun, int label[], int *n);
+
+#endif /* __IMPORT_H__ */
diff --git a/modules/scicos/includes/scicos-def.h b/modules/scicos/includes/scicos-def.h
new file mode 100755
index 000000000..8392efe9f
--- /dev/null
+++ b/modules/scicos/includes/scicos-def.h
@@ -0,0 +1,98 @@
+/* Copyright INRIA */
+/* Allan CORNET 2006 */
+
+#ifndef SCICOS_DEF
+#define SCICOS_DEF
+
+
+#if _LCC_ & FORDLL
+#define IMPORT __declspec (dllimport)
+#else
+#ifdef SCICOS_EXPORTS
+#define IMPORT_SCICOS
+#else
+#ifdef FORDLL
+#define IMPORT_SCICOS extern __declspec (dllimport)
+#else
+#define IMPORT_SCICOS
+#endif
+#endif
+#endif
+
+
+
+typedef struct
+{
+ int counter;
+} COSDEBUGCOUNTER_struct;
+
+
+typedef struct
+{
+ int solver;
+} SOLVER_struct;
+
+
+typedef struct
+{
+ int kfun;
+} CURBLK_struct;
+
+
+typedef struct
+{
+ double scale;
+} RTFACTOR_struct;
+
+
+
+typedef struct
+{
+ int ptr;
+} SCSPTR_struct;
+
+
+typedef struct
+{
+ int idb;
+} DBCOS_struct;
+
+
+typedef struct
+{
+ double atol, rtol, ttol, deltat;
+} COSTOL_struct;
+
+/*!
+ * \brief Storage for the halt flag.
+ */
+typedef struct
+{
+ /*!
+ * \brief halt the simulation flag
+ * \a 0 is used to continue the simulation
+ * \a 1 is used to halt the simulation
+ * \a 2 is used to switch to the final time then halt the simulation
+ */
+ int halt;
+} COSHLT_struct;
+
+
+typedef struct
+{
+ int cosd;
+} COSDEBUG_struct;
+
+#define COSERR_len 4096
+typedef struct
+{
+ char buf[COSERR_len];
+} COSERR_struct;
+
+typedef struct
+{
+ int isrun;
+} COSIM_struct;
+
+
+#endif /*SCICOS_DEF*/
diff --git a/modules/scicos/includes/scicos.h b/modules/scicos/includes/scicos.h
new file mode 100755
index 000000000..18fb28b0c
--- /dev/null
+++ b/modules/scicos/includes/scicos.h
@@ -0,0 +1,241 @@
+/* Scicos
+*
+* Copyright (C) INRIA - METALAU Project <scicos@inria.fr>
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+* See the file ./license.txt
+*/
+#ifndef __SCICOS_H
+#define __SCICOS_H
+
+#include "machine.h"
+#include "scicos_block4.h"
+#include "import.h"
+
+/* maximum value for sum of number of inputs and outputs ports of a given
+block of type 2 */
+#define SZ_SIZE 60
+
+/* maximum value for sum of number of inputs and outputs of a given block
+of type 0 */
+#define TB_SIZE 500
+
+#ifdef _MSC_VER
+typedef void (*voidf) ();
+#else
+typedef void (*voidf) (void);
+#endif
+
+
+/* Blocks prototypes */
+#define I int
+#define IP int*
+#define DP double*
+#define DPP double**
+#define DB scicos_block*
+#define F scicos_flag
+#define FP scicos_flag*
+
+/* flag nclock ntvec rpar nrpar ipar nipar u nu */
+#define ARGS_scicosm1 IP, IP, IP, DP, IP, IP, IP, DP, IP
+
+/* flag nclock t xd x nx z nz tvec ntvec rpar nrpar ipar nipar intabl ni outabl no */
+#define ARGS_scicos0 FP,IP,DP,DP,DP,IP,DP,IP,DP,IP,DP,IP,IP,IP,DP,IP,DP,IP
+
+/* flag nclock t xd x nx z nz tvec ntvec rpar nrpar ipar nipar intabl .... */
+#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
+
+/* 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 */
+#define ARGS_scicos2 FP,IP,DP,DP,DP,IP,DP,IP,DP,IP,DP,IP,IP,IP,DPP,IP,IP,DPP,IP,IP
+
+/* 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 */
+#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
+
+/* flag nclock t residual xd x nx z nz tvec ntvec rpar nrpar ipar nipar intabl .... */
+
+#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
+
+/* 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 */
+#define ARGS_scicosi2 FP,IP,DP,DP,DP,DP,IP,DP,IP,DP,IP,DP,IP,IP,IP,DPP,IP,IP,DPP,IP,IP
+
+/* 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 */
+#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
+
+/* block flag*/
+#define ARGS_scicos4 DB, F
+
+typedef void (*ScicosFm1) (ARGS_scicosm1);
+typedef void (*ScicosF0) (ARGS_scicos0);
+typedef void (*ScicosF) (ARGS_scicos);
+typedef void (*ScicosF2) (ARGS_scicos2);
+typedef void (*ScicosF2z) (ARGS_scicos2z);
+typedef void (*ScicosFi) (ARGS_scicosi);
+typedef void (*ScicosFi2) (ARGS_scicosi2);
+typedef void (*ScicosFi2z) (ARGS_scicosi2z);
+typedef void (*ScicosF4) (ARGS_scicos4);
+
+typedef struct
+{
+ char const* name;
+ ScicosF fonc;
+} OpTab;
+
+/**
+ * @TODO add comment
+ *
+ * @param x_in
+ * @param xptr_in
+ * @param z__
+ * @param work
+ * @param zptr
+ * @param modptr_in
+ * @param oz
+ * @param ozsz
+ * @param oztyp
+ * @param ozptr
+ * @param iz
+ * @param izptr
+ * @param uid the uid values (stack formatted)
+ * @param uidptr the uid length : uid_length = uidptr($+1) - uidptr($)
+ * @param t0_in
+ * @param tf_in
+ * @param tevts_in
+ * @param evtspt_in
+ * @param nevts
+ * @param pointi_in
+ * @param outtbptr_in
+ * @param outtbsz_in
+ * @param outtbtyp_in
+ * @param outtb_elem_in
+ * @param nelem1
+ * @param nlnk1
+ * @param funptr
+ * @param funtyp_in
+ * @param inpptr_in
+ * @param outptr_in
+ * @param inplnk_in
+ * @param outlnk_in
+ * @param rpar
+ * @param rpptr
+ * @param ipar
+ * @param ipptr
+ * @param opar
+ * @param oparsz
+ * @param opartyp
+ * @param opptr
+ * @param clkptr_in
+ * @param ordptr_in
+ * @param nordptr1
+ * @param ordclk_in
+ * @param cord_in
+ * @param ncord1
+ * @param iord_in
+ * @param niord1
+ * @param oord_in
+ * @param noord1
+ * @param zord_in
+ * @param nzord1
+ * @param critev_in
+ * @param nblk1
+ * @param ztyp
+ * @param zcptr_in
+ * @param subscr
+ * @param nsubs
+ * @param simpar
+ * @param flag__
+ * @param ierr_out
+ * @return <ReturnValue>
+ */
+int C2F(scicos) (double *x_in, int *xptr_in, double *z__,
+ void **work, int *zptr, int *modptr_in,
+ void **oz, int *ozsz, int *oztyp, int *ozptr,
+ int *iz, int *izptr, int *uid, int *uidptr, double *t0_in,
+ double *tf_in, double *tevts_in, int *evtspt_in,
+ int *nevts, int *pointi_in, void **outtbptr_in,
+ int *outtbsz_in, int *outtbtyp_in,
+ outtb_el * outtb_elem_in, int *nelem1, int *nlnk1,
+ int *funptr, int *funtyp_in, int *inpptr_in,
+ int *outptr_in, int *inplnk_in, int *outlnk_in,
+ double *rpar, int *rpptr, int *ipar, int *ipptr,
+ void **opar, int *oparsz, int *opartyp, int *opptr,
+ int *clkptr_in, int *ordptr_in, int *nordptr1,
+ int *ordclk_in, int *cord_in, int *ncord1,
+ int *iord_in, int *niord1, int *oord_in,
+ int *noord1, int *zord_in, int *nzord1,
+ int *critev_in, int *nblk1, int *ztyp, int *zcptr_in, int *subscr, int *nsubs, double *simpar, int *flag__, int *ierr_out);
+
+/**
+ * \brief Discrete time counter type
+ *
+ * Used on [evtdly4.c](@ref evtdly4), [m_frequ.c](@ref m_frequ) or
+ * [time_delay.c](@ref time_delay) to manage time difference.
+ *
+ * Warning: effect maximum simulation time (in term of max simulation step).
+ */
+typedef long long int time_counter_t;
+
+/**
+*
+*/
+void callf(double *t, scicos_block * block, scicos_flag * flag);
+
+/**
+*
+*/
+int get_phase_simulation(void);
+
+/**
+*
+*/
+void set_block_error(int err);
+
+/**
+*
+*/
+double get_scicos_time(void);
+
+/**
+*
+*/
+void set_scicos_time(double t);
+
+/**
+*
+*/
+void set_pointer_xproperty(int *pointer);
+
+/**
+*
+*/
+void do_cold_restart(void);
+
+/**
+*
+*/
+int get_block_number(void);
+
+/**
+*
+*/
+void end_scicos_sim(void);
+
+/**
+*
+*/
+void Coserror(const char *fmt, ...);
+
+#endif
+
diff --git a/modules/scicos/includes/scicos_free.h b/modules/scicos/includes/scicos_free.h
new file mode 100755
index 000000000..044a1a3b8
--- /dev/null
+++ b/modules/scicos/includes/scicos_free.h
@@ -0,0 +1,28 @@
+/* Scicos
+*
+* Copyright (C) INRIA - METALAU Project <scicos@inria.fr>
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+* See the file ./license.txt
+*/
+
+#ifndef __SCICOS_FREE_H__
+#define __SCICOS_FREE_H__
+
+void scicos_free(void *p);
+
+#endif /*__SCICOS_FREE_H__*/
+
diff --git a/modules/scicos/includes/scicos_malloc.h b/modules/scicos/includes/scicos_malloc.h
new file mode 100755
index 000000000..b49db0d15
--- /dev/null
+++ b/modules/scicos/includes/scicos_malloc.h
@@ -0,0 +1,30 @@
+/* Scicos
+*
+* Copyright (C) INRIA - METALAU Project <scicos@inria.fr>
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+* See the file ./license.txt
+*/
+
+#ifndef __SCICOS_MALLOC_H__
+#define __SCICOS_MALLOC_H__
+
+#include <stdlib.h>
+
+void *scicos_malloc(size_t size);
+
+#endif /*__SCICOS_MALLOC_H__*/
+
diff --git a/modules/scicos/includes/scicos_math.h b/modules/scicos/includes/scicos_math.h
new file mode 100755
index 000000000..ad5cd6942
--- /dev/null
+++ b/modules/scicos/includes/scicos_math.h
@@ -0,0 +1,26 @@
+/* Scicos
+*
+* Copyright (C) DIGITEO - 2009 - Allan CORNET
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+* See the file ./license.txt
+*/
+
+#ifndef __SCICOS_MATH_H__
+#define __SCICOS_MATH_H__
+#include <math.h>
+#pragma message("Deprecated header (since 5.4.0). scicos_math.h is now including automatically math.h of the libc. Please replace the include of scicos_math.h by math.")
+#endif /* __SCICOS_MATH_H__ */
diff --git a/modules/scicos/includes/scicos_print.h b/modules/scicos/includes/scicos_print.h
new file mode 100755
index 000000000..01625a7a6
--- /dev/null
+++ b/modules/scicos/includes/scicos_print.h
@@ -0,0 +1,27 @@
+/* Scicos
+*
+* Copyright (C) Scilab Enterprises
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+* See the file ./license.txt
+*/
+
+#ifndef __SCICOS_PRINT_H__
+#define __SCICOS_PRINT_H__
+
+void scicos_print(const char* fmt, ...);
+
+#endif /*__SCICOS_PRINT_H__*/