NEURON
err.h File Reference
#include <setjmp.h>
#include "machine.h"

Go to the source code of this file.

Macros

#define ERR_LIST_MAX_LEN   10
 
#define error(err_num, fn_name)   ev_err(__FILE__,err_num,__LINE__,fn_name,0)
 
#define warning(err_num, fn_name)   ev_err(__FILE__,err_num,__LINE__,fn_name,1)
 
#define EF_EXIT   0 /* exit on error */
 
#define EF_ABORT   1 /* abort (dump core) on error */
 
#define EF_JUMP   2 /* jump on error */
 
#define EF_SILENT   3 /* jump, but don't print message */
 
#define ERREXIT()   set_err_flag(EF_EXIT)
 
#define ERRABORT()   set_err_flag(EF_ABORT)
 
#define SILENTERR()   if ( ! setjmp(restart) ) set_err_flag(EF_SILENT)
 
#define ON_ERROR()   if ( ! setjmp(restart) ) set_err_flag(EF_JUMP)
 
#define E_UNKNOWN   0
 
#define E_SIZES   1
 
#define E_BOUNDS   2
 
#define E_MEM   3
 
#define E_SING   4
 
#define E_POSDEF   5
 
#define E_FORMAT   6
 
#define E_INPUT   7
 
#define E_NULL   8
 
#define E_SQUARE   9
 
#define E_RANGE   10
 
#define E_INSITU2   11
 
#define E_INSITU   12
 
#define E_ITER   13
 
#define E_CONV   14
 
#define E_START   15
 
#define E_SIGNAL   16
 
#define E_INTERN   17
 
#define E_EOF   18
 
#define E_SHARED_VECS   19
 
#define E_NEG   20
 
#define E_OVERWRITE   21
 
#define E_BREAKDOWN   22
 
#define WARN_UNKNOWN   0
 
#define WARN_WRONG_TYPE   1
 
#define WARN_NO_MARK   2
 
#define WARN_RES_LESS_0   3
 
#define WARN_SHARED_VEC   4
 
#define catch(errnum, ok_part, err_part)
 
#define catchall(ok_part, err_part)
 
#define tracecatch(ok_part, function)
 

Functions

int ev_err (char *, int, int, char *, int)
 
int set_err_flag (int flag)
 
int count_errs (int true_false)
 
int err_list_attach (int list_num, int list_len, char **err_ptr, int warn)
 
int err_is_list_attached (int list_num)
 
int err_list_free (int list_num)
 

Variables

jmp_buf restart
 

Macro Definition Documentation

◆ catch

#define catch (   errnum,
  ok_part,
  err_part 
)
Value:
{ jmp_buf _save; int _err_num, _old_flag; \
_old_flag = set_err_flag(EF_SILENT); \
MEM_COPY(restart,_save,sizeof(jmp_buf)); \
if ( (_err_num=setjmp(restart)) == 0 ) \
{ ok_part; \
set_err_flag(_old_flag); \
MEM_COPY(_save,restart,sizeof(jmp_buf)); } \
else if ( _err_num == errnum ) \
{ set_err_flag(_old_flag); \
MEM_COPY(_save,restart,sizeof(jmp_buf)); \
err_part; } \
else { set_err_flag(_old_flag); \
MEM_COPY(_save,restart,sizeof(jmp_buf)); \
error(_err_num,"catch"); \
} \
}
jmp_buf restart
Definition: err.c:110
int set_err_flag(int flag)
Definition: err.c:205
#define EF_SILENT
Definition: err.h:84

Definition at line 129 of file err.h.

◆ catchall

#define catchall (   ok_part,
  err_part 
)
Value:
{ jmp_buf _save; int _err_num, _old_flag; \
_old_flag = set_err_flag(EF_SILENT); \
MEM_COPY(restart,_save,sizeof(jmp_buf)); \
if ( (_err_num=setjmp(restart)) == 0 ) \
{ ok_part; \
set_err_flag(_old_flag); \
MEM_COPY(_save,restart,sizeof(jmp_buf)); } \
else \
{ set_err_flag(_old_flag); \
MEM_COPY(_save,restart,sizeof(jmp_buf)); \
err_part; } \
}

Definition at line 149 of file err.h.

◆ E_BOUNDS

#define E_BOUNDS   2

Definition at line 96 of file err.h.

◆ E_BREAKDOWN

#define E_BREAKDOWN   22

Definition at line 116 of file err.h.

◆ E_CONV

#define E_CONV   14

Definition at line 108 of file err.h.

◆ E_EOF

#define E_EOF   18

Definition at line 112 of file err.h.

◆ E_FORMAT

#define E_FORMAT   6

Definition at line 100 of file err.h.

◆ E_INPUT

#define E_INPUT   7

Definition at line 101 of file err.h.

◆ E_INSITU

#define E_INSITU   12

Definition at line 106 of file err.h.

◆ E_INSITU2

#define E_INSITU2   11

Definition at line 105 of file err.h.

◆ E_INTERN

#define E_INTERN   17

Definition at line 111 of file err.h.

◆ E_ITER

#define E_ITER   13

Definition at line 107 of file err.h.

◆ E_MEM

#define E_MEM   3

Definition at line 97 of file err.h.

◆ E_NEG

#define E_NEG   20

Definition at line 114 of file err.h.

◆ E_NULL

#define E_NULL   8

Definition at line 102 of file err.h.

◆ E_OVERWRITE

#define E_OVERWRITE   21

Definition at line 115 of file err.h.

◆ E_POSDEF

#define E_POSDEF   5

Definition at line 99 of file err.h.

◆ E_RANGE

#define E_RANGE   10

Definition at line 104 of file err.h.

◆ E_SHARED_VECS

#define E_SHARED_VECS   19

Definition at line 113 of file err.h.

◆ E_SIGNAL

#define E_SIGNAL   16

Definition at line 110 of file err.h.

◆ E_SING

#define E_SING   4

Definition at line 98 of file err.h.

◆ E_SIZES

#define E_SIZES   1

Definition at line 95 of file err.h.

◆ E_SQUARE

#define E_SQUARE   9

Definition at line 103 of file err.h.

◆ E_START

#define E_START   15

Definition at line 109 of file err.h.

◆ E_UNKNOWN

#define E_UNKNOWN   0

Definition at line 94 of file err.h.

◆ EF_ABORT

#define EF_ABORT   1 /* abort (dump core) on error */

Definition at line 82 of file err.h.

◆ EF_EXIT

#define EF_EXIT   0 /* exit on error */

Definition at line 81 of file err.h.

◆ EF_JUMP

#define EF_JUMP   2 /* jump on error */

Definition at line 83 of file err.h.

◆ EF_SILENT

#define EF_SILENT   3 /* jump, but don't print message */

Definition at line 84 of file err.h.

◆ ERR_LIST_MAX_LEN

#define ERR_LIST_MAX_LEN   10

Definition at line 45 of file err.h.

◆ ERRABORT

#define ERRABORT ( )    set_err_flag(EF_ABORT)

Definition at line 86 of file err.h.

◆ ERREXIT

#define ERREXIT ( )    set_err_flag(EF_EXIT)

Definition at line 85 of file err.h.

◆ error

#define error (   err_num,
  fn_name 
)    ev_err(__FILE__,err_num,__LINE__,fn_name,0)

Definition at line 73 of file err.h.

◆ ON_ERROR

#define ON_ERROR ( )    if ( ! setjmp(restart) ) set_err_flag(EF_JUMP)

Definition at line 90 of file err.h.

◆ SILENTERR

#define SILENTERR ( )    if ( ! setjmp(restart) ) set_err_flag(EF_SILENT)

Definition at line 88 of file err.h.

◆ tracecatch

#define tracecatch (   ok_part,
  function 
)
Value:
{ jmp_buf _save; int _err_num, _old_flag; \
_old_flag = set_err_flag(EF_JUMP); \
MEM_COPY(restart,_save,sizeof(jmp_buf)); \
if ( (_err_num=setjmp(restart)) == 0 ) \
{ ok_part; \
set_err_flag(_old_flag); \
MEM_COPY(_save,restart,sizeof(jmp_buf)); } \
else \
{ set_err_flag(_old_flag); \
MEM_COPY(_save,restart,sizeof(jmp_buf)); \
error(_err_num,function); } \
}
#define EF_JUMP
Definition: err.h:83

Definition at line 166 of file err.h.

◆ WARN_NO_MARK

#define WARN_NO_MARK   2

Definition at line 121 of file err.h.

◆ WARN_RES_LESS_0

#define WARN_RES_LESS_0   3

Definition at line 122 of file err.h.

◆ WARN_SHARED_VEC

#define WARN_SHARED_VEC   4

Definition at line 123 of file err.h.

◆ WARN_UNKNOWN

#define WARN_UNKNOWN   0

Definition at line 119 of file err.h.

◆ WARN_WRONG_TYPE

#define WARN_WRONG_TYPE   1

Definition at line 120 of file err.h.

◆ warning

#define warning (   err_num,
  fn_name 
)    ev_err(__FILE__,err_num,__LINE__,fn_name,1)

Definition at line 77 of file err.h.

Function Documentation

◆ count_errs()

int count_errs ( int  true_false)

Definition at line 216 of file err.c.

◆ err_is_list_attached()

int err_is_list_attached ( int  list_num)

Definition at line 188 of file err.c.

◆ err_list_attach()

int err_list_attach ( int  list_num,
int  list_len,
char **  err_ptr,
int  warn 
)

Definition at line 138 of file err.c.

◆ err_list_free()

int err_list_free ( int  list_num)

Definition at line 171 of file err.c.

◆ ev_err()

int ev_err ( char *  file,
int  err_num,
int  line_num,
char *  fn_name,
int  list_num 
)

Definition at line 231 of file err.c.

◆ set_err_flag()

int set_err_flag ( int  flag)

Definition at line 205 of file err.c.

Variable Documentation

◆ restart

jmp_buf restart
extern

Definition at line 110 of file err.c.