00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "basictypes.h"
00026 #include "setjmp_xsb.h"
00027 #include "export.h"
00028 #include "context.h"
00029 #include "psc_xsb.h"
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #define CALCULATION 0
00040 #define DATABASE 1
00041 #define EVALUATION 2
00042 #define IMPLEMENTATION 3
00043 #define INSTANTIATION 4
00044 #define IO_CONTROL 5
00045 #define IO_END_OF_FILE 6
00046 #define IO_FORMATTING 7
00047 #define OPERATOR 8
00048 #define XSBOVERFLOW 9
00049
00050 #define RANGE 10
00051 #define SYNTAX 11
00052 #define TYPE 12
00053 #define UNDEFINED_PRED 13
00054 #define UNDEFINED_VAL 14
00055 #define XSBUNDERFLOW 15
00056
00057 #define ZERO_DIVIDE 16
00058
00059
00060
00061
00062
00063 #ifdef BITS64
00064 #define THROWPAD 24
00065 #else
00066 #define THROWPAD 12
00067 #endif
00068
00069
00070 DllExport extern void call_conv xsb_exit(char *, ...);
00071 DllExport extern void call_conv exit_xsb(char *);
00072
00073 DllExport extern void call_conv xsb_abort(char *, ...);
00074 DllExport extern void call_conv abort_xsb(char *);
00075
00076 DllExport extern void call_conv xsb_bug(char *, ...);
00077 DllExport extern void call_conv bug_xsb(char *);
00078 void call_conv xsb_basic_abort(char *);
00079
00080 DllExport extern void call_conv xsb_warn(char *, ...);
00081 DllExport extern void call_conv warn_xsb(char *);
00082
00083 DllExport extern void call_conv xsb_mesg(char *, ...);
00084 DllExport extern void call_conv mesg_xsb(char *);
00085
00086 DllExport extern void call_conv xsb_error(char *, ...);
00087 DllExport extern void call_conv error_xsb(char *);
00088
00089 DllExport extern void call_conv xsb_dbgmsg1(int, char *, ...);
00090 DllExport extern void call_conv dbgmsg1_xsb(int, char *);
00091
00092 extern void arithmetic_abort1(CTXTdeclc char *, Cell);
00093 extern void arithmetic_abort(CTXTdeclc Cell, char *, Cell);
00094 extern void arithmetic_comp_abort(CTXTdeclc Cell, char *, int);
00095 extern void err_handle(CTXTdeclc int, int, char *, int, char *, Cell);
00096
00097 extern FILE *stdmsg;
00098 extern FILE *stdwarn;
00099 extern FILE *stddbg;
00100 extern FILE *stdfdbk;
00101
00102 #define err(d, a, f, ar) err_handle(CTXTc d, a, f, ar, NULL, (Cell)NULL)
00103
00104 extern char *xsb_default_segfault_msg;
00105
00106 extern char *xsb_segfault_message;
00107
00108
00109
00110
00111 extern void (*xsb_default_segfault_handler)(int);
00112
00113
00114
00115 extern int print_xsb_backtrace(CTXTdecl);
00116
00117
00118 extern void xsb_segfault_catcher (int);
00119 extern void xsb_segfault_quitter(int);
00120
00121 int unwind_stack(CTXTdecl);
00122
00123 void call_conv xsb_domain_error(CTXTdeclc char *, Cell, char *, int, int) ;
00124 void call_conv xsb_existence_error(CTXTdeclc char *,Cell, char *,int, int) ;
00125 void call_conv xsb_instantiation_error(CTXTdeclc char *, int, int, char *) ;
00126 void call_conv xsb_permission_error(CTXTdeclc char *,char *,Cell,char *,int) ;
00127 void call_conv xsb_resource_error(CTXTdeclc char *,char *, int) ;
00128 void call_conv xsb_resource_error_nopred(CTXTdeclc char *,char *) ;
00129 void call_conv xsb_table_error(CTXTdeclc char *) ;
00130 void call_conv xsb_type_error(CTXTdeclc char *,Cell , char *,int, int) ;
00131
00132 extern void call_conv xsb_memory_error(char *, char *);
00133
00134 DllExport void call_conv xsb_throw(CTXTdeclc prolog_term, unsigned long);
00135
00136 extern prolog_term build_xsb_backtrace(CTXTdecl);