My Project
Toggle main menu visibility
Loading...
Searching...
No Matches
Singular
links
slInit_Dynamic.cc
Go to the documentation of this file.
1
/****************************************
2
* Computer Algebra System SINGULAR *
3
****************************************/
4
/***************************************************************
5
* File: slInit_Dynamic.cc
6
* Purpose: link initialization for dynamic linking
7
* Author: obachman (Olaf Bachmann)
8
* Created: 12/00
9
*******************************************************************/
10
11
12
13
14
#include "
kernel/mod2.h
"
15
#include "
Singular/links/silink.h
"
16
#include "
Singular/links/slInit.h
"
17
#include "
Singular/mod_lib.h
"
18
19
#ifdef HAVE_DL
20
21
#ifdef HAVE_DBM
22
#include "
dbm_sl.h
"
23
24
STATIC_VAR
void
*
dbm_so_handle
=
NULL
;
25
static
void
*
slInitDBMHandle
()
26
{
27
if
(
dbm_so_handle
==
NULL
)
28
dbm_so_handle
=
dynl_open_binary_warn
(
"dbmsr"
);
29
30
return
dbm_so_handle
;
31
}
32
33
si_link_extension
slInitDBMExtension
(si_link_extension
s
)
34
{
35
void
* handle =
slInitDBMHandle
();
36
37
if
(handle ==
NULL
)
return
NULL
;
38
39
s
->Open=(
slOpenProc
)
dynl_sym_warn
(handle,
"dbOpen"
);
40
s
->Close=(
slCloseProc
)
dynl_sym_warn
(handle,
"dbClose"
);
41
s
->Kill=
NULL
;
42
s
->Read=(
slReadProc
)
dynl_sym_warn
(handle,
"dbRead1"
);
43
s
->Read2=(
slRead2Proc
)
dynl_sym_warn
(handle,
"dbRead2"
);
44
s
->Write=(
slWriteProc
)
dynl_sym_warn
(handle,
"dbWrite"
);
45
46
if
(
s
->Open ==
NULL
||
s
->Close ==
NULL
||
47
s
->Read ==
NULL
||
s
->Read2 ==
NULL
)
48
return
NULL
;
49
50
s
->Status=
slStatusAscii
;
51
s
->type=
"DBM"
;
52
return
s
;
53
}
54
55
#endif
56
#endif
57
slStatusAscii
const char * slStatusAscii(si_link l, const char *request)
Definition
asciiLink.cc:211
dbm_sl.h
s
const CanonicalForm int s
Definition
facAbsFact.cc:51
STATIC_VAR
#define STATIC_VAR
Definition
globaldefs.h:7
mod2.h
mod_lib.h
dynl_open_binary_warn
void * dynl_open_binary_warn(const char *binary_name, const char *msg)
Definition
mod_raw.cc:45
dynl_sym_warn
void * dynl_sym_warn(void *handle, const char *proc, const char *msg)
Definition
mod_raw.cc:89
NULL
#define NULL
Definition
omList.c:12
silink.h
slRead2Proc
leftv(* slRead2Proc)(si_link l, leftv a)
Definition
silink.h:30
slWriteProc
BOOLEAN(* slWriteProc)(si_link l, leftv lv)
Definition
silink.h:25
slReadProc
leftv(* slReadProc)(si_link l)
Definition
silink.h:29
slOpenProc
BOOLEAN(* slOpenProc)(si_link l, short flag, leftv h)
Definition
silink.h:24
slCloseProc
BOOLEAN(* slCloseProc)(si_link l)
Definition
silink.h:26
slInit.h
dbm_so_handle
STATIC_VAR void * dbm_so_handle
Definition
slInit_Dynamic.cc:24
slInitDBMExtension
si_link_extension slInitDBMExtension(si_link_extension s)
Definition
slInit_Dynamic.cc:33
slInitDBMHandle
static void * slInitDBMHandle()
Definition
slInit_Dynamic.cc:25
Generated on
for My Project by
doxygen 1.17.0
for
Singular