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