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