source: git/Singular/mod_raw.cc @ 0e760d0

spielwiese
Last change on this file since 0e760d0 was b60fb4, checked in by Kai Krüger <krueger@…>, 25 years ago
Added check for <asm/sigcontext.h>, bug fix in mod_raw.cc for linux git-svn-id: file:///usr/local/Singular/svn/trunk@3033 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 5.9 KB
Line 
1/****************************************
2*  Computer Algebra System SINGULAR     *
3****************************************/
4/* $Id: mod_raw.cc,v 1.2 1999-05-10 12:51:30 krueger Exp $ */
5/*
6 * ABSTRACT: machine depend code for dynamic modules
7 *
8 * Provides: dynl_open()
9 *           dynl_sym()
10 *           dynl_error()
11 *           dunl_close()
12*/
13
14#include "mod2.h"
15#ifdef HAVE_DYNAMIC_LOADING
16#include "mod_raw.h"
17
18
19/*****************************************************************************
20 * SECTION ix86-linux                                                        *
21 *****************************************************************************/
22#  ifdef ix86_Linux
23#    include <dlfcn.h>
24
25void *dynl_open(
26  char *filename    /* I: filename to load */
27  )
28{
29  return(dlopen(filename, RTLD_NOW|RTLD_GLOBAL));
30}
31
32void *dynl_sym(void *handle, char *symbol)
33{
34  return(dlsym(handle, symbol));
35}
36
37int dynl_close (void *handle)
38{
39  return(dlclose (handle));
40}
41
42const char *dynl_error()
43{
44  return(dlerror());
45}
46#  endif /* ix86_Linux */
47
48/*****************************************************************************
49 * SECTION HPUX-9/10                                                         *
50 *****************************************************************************/
51#  if defined(HPUX_9) || defined(HPUX_10)
52#    include <dl.h>
53typedef char *((*func_ptr) ());
54
55void *dynl_open(char *filename)
56{
57  shl_t           handle = shl_load(filename, BIND_DEFERRED, 0);
58
59  return ((void *) handle);
60}
61
62void *dynl_sym(void *handle, char *symbol)
63{
64  func_ptr        f;
65
66  if (shl_findsym((shl_t *) & handle, symbol, TYPE_PROCEDURE, &f) == -1)
67  {
68    f = (func_ptr) NULL;
69  }
70  return (f);
71}
72
73int dynl_close (void *handle)
74{
75  shl_unload((shl_t) handle);
76  return(0);
77}
78
79const char *dynl_error()
80{
81  static char errmsg[] = "shl_load failed";
82 
83  return errmsg;
84}
85#endif /* HPUX_9  or HPUX_10 */
86
87/*****************************************************************************
88 * SECTION 68k-MPW                                                           *
89 *****************************************************************************/
90#  ifdef 68k_MPW
91/* #    include <> */
92
93void *dynl_open(char *filename)
94{
95  return(NULL);
96}
97
98void *dynl_sym(void *handle, char *symbol)
99{
100  return(NULL);
101}
102
103int dynl_close (void *handle)
104{
105  return(0);
106}
107
108const char *dynl_error()
109{
110  static char errmsg[] = "support for dynamic loading not implemented";
111 
112  return errmsg;
113}
114#  endif /* 68k_MPW */
115
116
117/*****************************************************************************
118 * SECTION AIX-4                                                             *
119 *****************************************************************************/
120#  ifdef AIX_4
121/* #    include <> */
122
123void *dynl_open(char *filename)
124{
125  return(NULL);
126}
127
128void *dynl_sym(void *handle, char *symbol)
129{
130  return(NULL);
131}
132
133int dynl_close (void *handle)
134{
135  return(0);
136}
137
138const char *dynl_error()
139{
140  static char errmsg[] = "support for dynamic loading not implemented";
141 
142  return errmsg;
143}
144#  endif /* AIX_4 */
145
146/*****************************************************************************
147 * SECTION IRIX-6                                                            *
148 *****************************************************************************/
149#  ifdef IRIX_6
150/* #    include <> */
151
152void *dynl_open(char *filename)
153{
154  return(NULL);
155}
156
157void *dynl_sym(void *handle, char *symbol)
158{
159  return(NULL);
160}
161
162int dynl_close (void *handle)
163{
164  return(0);
165}
166
167const char *dynl_error()
168{
169  static char errmsg[] = "support for dynamic loading not implemented";
170 
171  return errmsg;
172}
173#  endif /* IRIX_6 */
174
175/*****************************************************************************
176 * SECTION Sun3OS-4                                                          *
177 *****************************************************************************/
178#  ifdef Sun3OS_4
179/* #    include <> */
180
181void *dynl_open(char *filename)
182{
183  return(NULL);
184}
185
186void *dynl_sym(void *handle, char *symbol)
187{
188  return(NULL);
189}
190
191int dynl_close (void *handle)
192{
193  return(0);
194}
195
196const char *dynl_error()
197{
198  static char errmsg[] = "support for dynamic loading not implemented";
199 
200  return errmsg;
201}
202#  endif /* Sun3OS_4 */
203
204/*****************************************************************************
205 * SECTION SunOS-4/5                                                         *
206 *****************************************************************************/
207#  if defined(SunOS_4) || defined(SunOS_5)
208/* #    include <> */
209
210void *dynl_open(char *filename)
211{
212  return(NULL);
213}
214
215void *dynl_sym(void *handle, char *symbol)
216{
217  return(NULL);
218}
219
220int dynl_close (void *handle)
221{
222  return(0);
223}
224
225const char *dynl_error()
226{
227  static char errmsg[] = "support for dynamic loading not implemented";
228 
229  return errmsg;
230}
231#  endif /* SunOS_4 or SunOS_5 */
232
233/*****************************************************************************
234 * SECTION ix86-win                                                          *
235 *****************************************************************************/
236#  ifdef ix86_win
237/* #    include <> */
238
239void *dynl_open(char *filename)
240{
241  return(NULL);
242}
243
244void *dynl_sym(void *handle, char *symbol)
245{
246  return(NULL);
247}
248
249int dynl_close (void *handle)
250{
251  return(0);
252}
253
254const char *dynl_error()
255{
256  static char errmsg[] = "support for dynamic loading not implemented";
257 
258  return errmsg;
259}
260#  endif /* ix86_win */
261
262/*****************************************************************************
263 * SECTION ppc-MPW                                                           *
264 *****************************************************************************/
265#  ifdef ppc_MPW
266/* #    include <> */
267
268void *dynl_open(char *filename)
269{
270  return(NULL);
271}
272
273void *dynl_sym(void *handle, char *symbol)
274{
275  return(NULL);
276}
277
278int dynl_close (void *handle)
279{
280  return(0);
281}
282
283const char *dynl_error()
284{
285  static char errmsg[] = "support for dynamic loading not implemented";
286 
287  return errmsg;
288}
289#  endif /* ppc_MPW */
290
291
292#endif /* HAVE_DYNAMIC_LOADING */
Note: See TracBrowser for help on using the repository browser.