~ubuntu-branches/ubuntu/feisty/basilisk2/feisty

« back to all changes in this revision

Viewing changes to src/Unix/sigsegv.h

  • Committer: Bazaar Package Importer
  • Author(s): Jonas Smedegaard
  • Date: 2005-07-30 20:42:20 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20050730204220-1nl1cg2jkjvy63ry
Tags: 0.9.20050730-1
* New upstream CVS snapshot.
* Build-depend on virtual libsdl-dev (not libsdl1.2-dev).
* Invoke init rules also on clean (to separate better from official
  builds).
* Update URL of upstream source in debian/copyright.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
 *  Derived from Bruno Haible's work on his SIGSEGV library for clisp
5
5
 *  <http://clisp.sourceforge.net/>
6
6
 *
7
 
 *  Basilisk II (C) 1997-2002 Christian Bauer
 
7
 *  Basilisk II (C) 1997-2005 Christian Bauer
8
8
 *
9
9
 *  This program is free software; you can redistribute it and/or modify
10
10
 *  it under the terms of the GNU General Public License as published by
34
34
        SIGSEGV_TRANSFER_STORE          = 2,
35
35
};
36
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
 
37
44
// Type of a SIGSEGV handler. Returns boolean expressing successful operation
38
 
typedef bool (*sigsegv_fault_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);
39
46
 
40
47
// Type of a SIGSEGV state dump function
41
48
typedef void (*sigsegv_state_dumper_t)(sigsegv_address_t fault_address, sigsegv_address_t instruction_address);
46
53
// Remove the user SIGSEGV handler, revert to default behavior
47
54
extern void sigsegv_uninstall_handler(void);
48
55
 
49
 
// Add SIGSEGV ignore range
50
 
extern void sigsegv_add_ignore_range(sigsegv_address_t address, unsigned long length, int transfer_type);
51
 
 
52
 
// Remove SIGSEGV ignore range. Range must match installed one, otherwise FALSE is returned.
53
 
extern bool sigsegv_remove_ignore_range(sigsegv_address_t address, unsigned long length, int transfer_type);
54
 
 
55
56
// Set callback function when we cannot handle the fault
56
57
extern void sigsegv_set_dump_state(sigsegv_state_dumper_t handler);
57
58