1 /*
2  *
3  *  This file is part of MUMPS 5.1.2, released
4  *  on Mon Oct  2 07:37:01 UTC 2017
5  *
6  *
7  *  Copyright 1991-2017 CERFACS, CNRS, ENS Lyon, INP Toulouse, Inria,
8  *  University of Bordeaux.
9  *
10  *  This version of MUMPS is provided to you free of charge. It is
11  *  released under the CeCILL-C license:
12  *  http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.html
13  *
14  */
15 #include <errno.h>
16 #include "mumps_common.h"
17 #include "mumps_c_types.h"
18 #if ! ( defined(MUMPS_WIN32) || defined(WITHOUT_PTHREAD) )
19 # include <pthread.h>
20 #endif /* ! ( MUMPS_WIN32 || WITHOUT_PTHREAD ) */
21 #if ! ( defined(MUMPS_WIN32) || defined(WITHOUT_PTHREAD) )
22 extern pthread_mutex_t err_mutex;
23 #endif /* ! ( MUMPS_WIN32 || WITHOUT_PTHREAD ) */
24 /* Exported functions */
25 #define MUMPS_LOW_LEVEL_INIT_ERR_STR \
26     F_SYMBOL(low_level_init_err_str,LOW_LEVEL_INIT_ERR_STR)
27 void MUMPS_CALL
28 MUMPS_LOW_LEVEL_INIT_ERR_STR( MUMPS_INT *dim, char *err_str, mumps_ftnlen l1 );
29 /* Export an error to the Fortran layer
30    Returns mumps_errno for convenience */
31 MUMPS_INT mumps_io_error(MUMPS_INT mumps_errno, const char* desc);
32 /* Export a system error to the Fortran layer (errno must be set)
33    Returns mumps_errno for convenience */
34 MUMPS_INT mumps_io_sys_error(MUMPS_INT mumps_errno, const char* desc);
35 #if ! ( defined(MUMPS_WIN32) || defined(WITHOUT_PTHREAD) )
36 MUMPS_INT mumps_io_init_err_lock();
37 MUMPS_INT mumps_io_destroy_err_lock();
38 MUMPS_INT mumps_check_error_th();
39 MUMPS_INLINE MUMPS_INT mumps_io_protect_err();
40 MUMPS_INLINE MUMPS_INT mumps_io_unprotect_err();
41 #endif /* ! ( MUMPS_WIN32 || WITHOUT_PTHREAD ) */
42