| /* |
| * Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved. |
| * |
| * Licensed under the Apache License 2.0 (the "License"). You may not use |
| * this file except in compliance with the License. You can obtain a copy |
| * in the file LICENSE in the source distribution or at |
| * https://www.openssl.org/source/license.html |
| */ |
| |
| #ifndef OSSL_TEST_SIMPLEDYNAMIC_H |
| # define OSSL_TEST_SIMPLEDYNAMIC_H |
| |
| # include "crypto/dso_conf.h" |
| |
| # if defined(DSO_DLFCN) || defined(DSO_VMS) |
| |
| # include <dlfcn.h> |
| |
| # define SD_INIT NULL |
| # ifdef DSO_VMS |
| # define SD_SHLIB 0 |
| # define SD_MODULE 0 |
| # else |
| # define SD_SHLIB (RTLD_GLOBAL|RTLD_LAZY) |
| # define SD_MODULE (RTLD_LOCAL|RTLD_NOW) |
| # endif |
| |
| typedef void *SD; |
| typedef void *SD_SYM; |
| |
| # elif defined(DSO_WIN32) |
| |
| # include <windows.h> |
| |
| # define SD_INIT 0 |
| # define SD_SHLIB 0 |
| # define SD_MODULE 0 |
| |
| typedef HINSTANCE SD; |
| typedef void *SD_SYM; |
| |
| # endif |
| |
| # if defined(DSO_DLFCN) || defined(DSO_WIN32) || defined(DSO_VMS) |
| int sd_load(const char *filename, SD *sd, int type); |
| int sd_sym(SD sd, const char *symname, SD_SYM *sym); |
| int sd_close(SD lib); |
| const char *sd_error(void); |
| # endif |
| |
| #endif |