blob: 0c3b5b6a3f248a94687e243d0acc653c966f0ac0 [file] [log] [blame]
#ifndef LIB_HANDLER_H
#define LIB_HANDLER_H
#include "glob_opts.h"
#ifdef IS_WINDOWS
#include <windows.h>
typedef HINSTANCE soHandle_t;
#else
#include <unistd.h>
#include <dlfcn.h>
typedef void *soHandle_t;
#endif
#ifdef IS_WINDOWS
#define SHAREDLIBEXT "dll"
#elif defined IS_MAC
#define SHAREDLIBEXT "dylib"
#else
#define SHAREDLIBEXT "so"
#endif
// NB: A shared library should be put into the shared library search path:
// Linux: LD_LIBRARY_PATH
// Mac OSX: DYLD_LIBRARY_PATH
// Windows: PATH
/** Loads a dynamically linked library.
* @param libname The name of the library to load.
* @return Shared library handle, or OSQP_NULL if failure.
*/
soHandle_t lh_load_lib(const char* libname);
/** Unloads a shared library.
* @param libhandle Handle of shared library to unload.
* @return Zero on success, nonzero on failure.
*/
c_int lh_unload_lib(soHandle_t libhandle);
#endif /*LIB_HANDLER_H*/