From e9a68cfbc38922e167697cf385e664b6dd7493bd Mon Sep 17 00:00:00 2001 From: Geoff Thorpe Date: Fri, 16 Jun 2000 10:45:36 +0000 Subject: Currently the DSO_METHOD interface has one entry point to bind all "symbols" including functions (of all prototypes( and variables. Whilst casting any function type to another violates ANSI C (I believe), it is a necessary evil in shared-library APIs. However, it is quite conceivable that functions in general and data symbols could very well be represented differently to each other on some systems, as Bodo said; > Since the function/object distinction is a lot more likely to be > important on real-life platforms supporting DSO *and* it can be quite > easily done *and* it will silence compilers that don't like > assignments from void pointers to function pointer variables, why > not do it? I agree. So this change splits the "dso_bind" handler in DSO_METHOD into "dso_bind_var" and "dso_bind_func". Similarly the exported function DSO_bind() has been split in two. I've also put together changes for the various DSO_METHOD implementations, but so far only DSO_dlfcn() has been tested. BTW: The prototype for dso_bind had been a bit strange so I've taken the opportunity to change its shape (in both variations). Also, the README has been updated - particularly with a note about using customised native name-translation for shared libraries (and that you can't do it yet). --- crypto/dso/dso_null.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'crypto/dso/dso_null.c') diff --git a/crypto/dso/dso_null.c b/crypto/dso/dso_null.c index 79e6eddca2..fa13a7cb0f 100644 --- a/crypto/dso/dso_null.c +++ b/crypto/dso/dso_null.c @@ -67,10 +67,12 @@ static DSO_METHOD dso_meth_null = { "NULL shared library method", NULL, /* load */ NULL, /* unload */ - NULL, /* bind */ + NULL, /* bind_var */ + NULL, /* bind_func */ /* For now, "unbind" doesn't exist */ #if 0 - NULL, /* unbind */ + NULL, /* unbind_var */ + NULL, /* unbind_func */ #endif NULL, /* ctrl */ NULL, /* init */ -- cgit v1.2.3