38 lines
		
	
	
		
			853 B
		
	
	
	
		
			C++
		
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			853 B
		
	
	
	
		
			C++
		
	
	
namespace factor {
 | 
						|
 | 
						|
// Runtime errors must be kept in sync with:
 | 
						|
//   basis/debugger/debugger.factor
 | 
						|
//   core/kernel/kernel.factor
 | 
						|
#define KERNEL_ERROR 0xfac7
 | 
						|
 | 
						|
enum vm_error_type {
 | 
						|
  ERROR_EXPIRED = 0,
 | 
						|
  ERROR_IO,
 | 
						|
  ERROR_NOT_IMPLEMENTED,
 | 
						|
  ERROR_TYPE,
 | 
						|
  ERROR_DIVIDE_BY_ZERO,
 | 
						|
  ERROR_SIGNAL,
 | 
						|
  ERROR_ARRAY_SIZE,
 | 
						|
  ERROR_OUT_OF_FIXNUM_RANGE,
 | 
						|
  ERROR_FFI,
 | 
						|
  ERROR_UNDEFINED_SYMBOL,
 | 
						|
  ERROR_DATASTACK_UNDERFLOW,
 | 
						|
  ERROR_DATASTACK_OVERFLOW,
 | 
						|
  ERROR_RETAINSTACK_UNDERFLOW,
 | 
						|
  ERROR_RETAINSTACK_OVERFLOW,
 | 
						|
  ERROR_CALLSTACK_UNDERFLOW,
 | 
						|
  ERROR_CALLSTACK_OVERFLOW,
 | 
						|
  ERROR_MEMORY,
 | 
						|
  ERROR_FP_TRAP,
 | 
						|
  ERROR_INTERRUPT,
 | 
						|
  ERROR_CALLBACK_SPACE_OVERFLOW
 | 
						|
};
 | 
						|
 | 
						|
void fatal_error(const char* msg, cell tagged);
 | 
						|
void critical_error(const char* msg, cell tagged);
 | 
						|
void memory_signal_handler_impl();
 | 
						|
void fp_signal_handler_impl();
 | 
						|
void synchronous_signal_handler_impl();
 | 
						|
 | 
						|
}
 |