/*
 * Generated by util/mkerr.pl DO NOT EDIT
 * Copyright 1995-2019 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_INTERNAL_DSOERR_H
# define OSSL_INTERNAL_DSOERR_H

# include <openssl/opensslconf.h>
# include <openssl/symhacks.h>


# ifdef  __cplusplus
extern "C"
# endif
int ERR_load_DSO_strings(void);

/*
 * DSO function codes.
 */
# if !OPENSSL_API_3
#  define DSO_F_DLFCN_BIND_FUNC                            0
#  define DSO_F_DLFCN_LOAD                                 0
#  define DSO_F_DLFCN_MERGER                               0
#  define DSO_F_DLFCN_NAME_CONVERTER                       0
#  define DSO_F_DLFCN_UNLOAD                               0
#  define DSO_F_DL_BIND_FUNC                               0
#  define DSO_F_DL_LOAD                                    0
#  define DSO_F_DL_MERGER                                  0
#  define DSO_F_DL_NAME_CONVERTER                          0
#  define DSO_F_DL_UNLOAD                                  0
#  define DSO_F_DSO_BIND_FUNC                              0
#  define DSO_F_DSO_CONVERT_FILENAME                       0
#  define DSO_F_DSO_CTRL                                   0
#  define DSO_F_DSO_FREE                                   0
#  define DSO_F_DSO_GET_FILENAME                           0
#  define DSO_F_DSO_GLOBAL_LOOKUP                          0
#  define DSO_F_DSO_LOAD                                   0
#  define DSO_F_DSO_MERGE                                  0
#  define DSO_F_DSO_NEW_METHOD                             0
#  define DSO_F_DSO_PATHBYADDR                             0
#  define DSO_F_DSO_SET_FILENAME                           0
#  define DSO_F_DSO_UP_REF                                 0
#  define DSO_F_VMS_BIND_SYM                               0
#  define DSO_F_VMS_LOAD                                   0
#  define DSO_F_VMS_MERGER                                 0
#  define DSO_F_VMS_UNLOAD                                 0
#  define DSO_F_WIN32_BIND_FUNC                            0
#  define DSO_F_WIN32_GLOBALLOOKUP                         0
#  define DSO_F_WIN32_JOINER                               0
#  define DSO_F_WIN32_LOAD                                 0
#  define DSO_F_WIN32_MERGER                               0
#  define DSO_F_WIN32_NAME_CONVERTER                       0
#  define DSO_F_WIN32_PATHBYADDR                           0
#  define DSO_F_WIN32_SPLITTER                             0
#  define DSO_F_WIN32_UNLOAD                               0
# endif

/*
 * DSO reason codes.
 */
# define DSO_R_CTRL_FAILED                                100
# define DSO_R_DSO_ALREADY_LOADED                         110
# define DSO_R_EMPTY_FILE_STRUCTURE                       113
# define DSO_R_FAILURE                                    114
# define DSO_R_FILENAME_TOO_BIG                           101
# define DSO_R_FINISH_FAILED                              102
# define DSO_R_INCORRECT_FILE_SYNTAX                      115
# define DSO_R_LOAD_FAILED                                103
# define DSO_R_NAME_TRANSLATION_FAILED                    109
# define DSO_R_NO_FILENAME                                111
# define DSO_R_NULL_HANDLE                                104
# define DSO_R_SET_FILENAME_FAILED                        112
# define DSO_R_STACK_ERROR                                105
# define DSO_R_SYM_FAILURE                                106
# define DSO_R_UNLOAD_FAILED                              107
# define DSO_R_UNSUPPORTED                                108

#endif
