ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/Unix/sigsegv.h
(Generate patch)

Comparing BasiliskII/src/Unix/sigsegv.h (file contents):
Revision 1.1 by gbeauche, 2001-05-20T20:31:50Z vs.
Revision 1.6 by gbeauche, 2003-09-29T07:02:58Z

# Line 4 | Line 4
4   *  Derived from Bruno Haible's work on his SIGSEGV library for clisp
5   *  <http://clisp.sourceforge.net/>
6   *
7 < *  Basilisk II (C) 1997-2001 Christian Bauer
7 > *  Basilisk II (C) 1997-2002 Christian Bauer
8   *
9   *  This program is free software; you can redistribute it and/or modify
10   *  it under the terms of the GNU General Public License as published by
# Line 27 | Line 27
27   // Address type
28   typedef char * sigsegv_address_t;
29  
30 + // Transfer type (intended to be used a mask for sigsegv_*_ignore_range())
31 + enum sigsegv_transfer_type_t {
32 +        SIGSEGV_TRANSFER_UNKNOWN        = 0,
33 +        SIGSEGV_TRANSFER_LOAD           = 1,
34 +        SIGSEGV_TRANSFER_STORE          = 2,
35 + };
36 +
37 + // SIGSEGV handler return state
38 + enum sigsegv_return_t {
39 +  SIGSEGV_RETURN_SUCCESS,
40 +  SIGSEGV_RETURN_FAILURE,
41 +  SIGSEGV_RETURN_SKIP_INSTRUCTION,
42 + };
43 +
44   // Type of a SIGSEGV handler. Returns boolean expressing successful operation
45 < typedef bool (*sigsegv_handler_t)(sigsegv_address_t fault_address, sigsegv_address_t instruction_address);
45 > typedef sigsegv_return_t (*sigsegv_fault_handler_t)(sigsegv_address_t fault_address, sigsegv_address_t instruction_address);
46 >
47 > // Type of a SIGSEGV state dump function
48 > typedef void (*sigsegv_state_dumper_t)(sigsegv_address_t fault_address, sigsegv_address_t instruction_address);
49  
50   // Install a SIGSEGV handler. Returns boolean expressing success
51 < extern bool sigsegv_install_handler(sigsegv_handler_t handler);
51 > extern bool sigsegv_install_handler(sigsegv_fault_handler_t handler);
52  
53   // Remove the user SIGSEGV handler, revert to default behavior
54   extern void sigsegv_uninstall_handler(void);
55  
56 + // Set callback function when we cannot handle the fault
57 + extern void sigsegv_set_dump_state(sigsegv_state_dumper_t handler);
58 +
59   // Define an address that is bound to be invalid for a program counter
60   const sigsegv_address_t SIGSEGV_INVALID_PC = (sigsegv_address_t)(-1);
61  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines