From 07133ac060c2af721941f7b47c52c075df3168ba Mon Sep 17 00:00:00 2001 From: Angelo Mantellini Date: Fri, 30 Apr 2021 12:26:57 +0200 Subject: [HICN-703] Update windows-sdk and hicn code Signed-off-by: Angelo Mantellini <@ngelo.mantellini@cisco.com> Change-Id: I05e4c92ce7de3640f0272afae127e1377862bd3e Signed-off-by: Angelo Mantellini --- lib/src/util/windows/dlfcn.c | 65 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 lib/src/util/windows/dlfcn.c (limited to 'lib/src/util') diff --git a/lib/src/util/windows/dlfcn.c b/lib/src/util/windows/dlfcn.c new file mode 100644 index 000000000..c8173cdb0 --- /dev/null +++ b/lib/src/util/windows/dlfcn.c @@ -0,0 +1,65 @@ +/* dlfcn.c */ + +#include +#include +#include +#include +#include + +static struct { + long lasterror; + const char *err_rutin; +} var = { + 0, + NULL +}; + +void *dlopen (const char *filename, int flags) +{ + HINSTANCE hInst; + + hInst= LoadLibrary (filename); + if (hInst==NULL) { + var.lasterror = GetLastError (); + var.err_rutin = "dlopen"; + } + return hInst; +} + +int dlclose (void *handle) +{ + BOOL ok; + int rc= 0; + + ok= FreeLibrary ((HINSTANCE)handle); + if (! ok) { + var.lasterror = GetLastError (); + var.err_rutin = "dlclose"; + rc= -1; + } + return rc; +} + +void *dlsym (void *handle, const char *name) +{ + FARPROC fp; + + fp= GetProcAddress ((HINSTANCE)handle, name); + if (!fp) { + var.lasterror = GetLastError (); + var.err_rutin = "dlsym"; + } + return (void *)(intptr_t)fp; +} + +const char *dlerror (void) +{ +static char errstr [88]; + + if (var.lasterror) { + sprintf (errstr, "%s error #%ld", var.err_rutin, var.lasterror); + return errstr; + } else { + return NULL; + } +} \ No newline at end of file -- cgit 1.2.3-korg