sci_gateway moved from mexlib.c to dedicated files
[scilab.git] / scilab / modules / dynamic_link / includes / dynamic_link.h
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) INRIA - Allan CORNET
4  * 
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at    
9  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12
13 /*-----------------------------------------------------------------------------------*/
14 #ifndef __DYNAMIC_LINK_H__
15 #define __DYNAMIC_LINK_H__
16
17 #include "BOOL.h"
18 #include "machine.h" /* C2F */
19
20 #define ENTRYMAX 500
21
22 /**
23 * Initialize tables 
24 */
25 void initializeLink(void);
26
27 /**
28 * check that a routine name is a loaded
29 * if *ilib == -1 
30 *    checks if routinename is a loaded
31 *    entry point 
32 *    the result is -1 if false 
33 *    or the number in the function table 
34
35 * @param[in] routinename
36 * @param[in/out] ilib number in the function table (-1 if FALSE)
37 * @return a BOOL
38 */
39 BOOL c_link(char *routinename,int *ilib);
40
41 /**
42 * OBSOLETE 
43 * if *ilib == -1 
44 *    checks if routinename is a loaded
45 *    entry point 
46 *    the result is -1 if false 
47 *               or the number in the function table 
48 * @param[in] routinename
49 * @param[in/out] ilib
50 */
51 void C2F(iislink)(char *routinename, int *ilib);
52
53
54 /**
55 * returns the ii functions 
56 * @param ii
57 * @param ptr on functions
58 */
59 void GetDynFunc(int ii, void (**realop) ());
60
61 /**
62 * Search a function in the table 
63 * Search from end to top 
64 * @param 
65 * @param 
66 */
67 int SearchInDynLinks(char *op, void (**realop) ());
68
69 /**
70 * Show the linked files 
71 */
72 void ShowDynLinks(void);
73
74 /**
75 * unlink all linked files 
76 */
77 void unlinkallsharedlib(void);
78
79 /**
80 * Unlink a shared lib 
81 * @param i (number of shared lib)
82 */
83 void unlinksharedlib(int *i);
84
85
86 /**
87 * load a shared archive and call LoadDynLibrary
88 * the shared lib handler is stored in a Table 
89 * return value is == -1 if the LoadDynLibrary failed 
90 * @param loaded_file
91 */
92 int Sci_dlopen( char *loaded_file);
93
94 /**
95 * This routine load the entryname ename 
96 * from shared lib ishared 
97 * @return TRUE or FALSE
98 */
99 BOOL Sci_dlsym(char *ename,int ishared,char *strf);
100
101 /**
102 * Delete entry points associated with shared lib ishared
103 * then delete the shared lib 
104 @param ishared
105 */
106 void Sci_Delsym(int ishared);
107
108 /**
109 * @param sizearray returns size of string array returned
110 * @return string array with functions names loaded
111 */
112 char **getNamesOfFunctionsInSharedLibraries(int *sizearray);
113
114 /**
115 * call link for scilab
116 * @param idsharedlibrary
117 * @param filename (dynamic library name)
118 * @param subnamesarray (list of functions name in dynamic library)
119 * @param sizesubnamesarray
120 * @param fflag
121 * @param ierr (last error)
122 * @return id 
123 */
124 int scilabLink(int idsharedlibrary,
125                            char *filename,
126                            char **subnamesarray,int sizesubnamesarray,
127                            BOOL fflag,int *ierr);
128
129 /**
130 * get list of all Id of shared lib
131 * @param size of returned list
132 * @return list of Id
133 */
134 int *getAllIdSharedLib(int *sizeList);
135
136 #endif /* __DYNAMIC_LINK_H__ */
137 /*-----------------------------------------------------------------------------------*/