aboutsummaryrefslogtreecommitdiffstats
path: root/libsigsegv/README
diff options
context:
space:
mode:
Diffstat (limited to 'libsigsegv/README')
-rw-r--r--libsigsegv/README123
1 files changed, 0 insertions, 123 deletions
diff --git a/libsigsegv/README b/libsigsegv/README
deleted file mode 100644
index 2f4e7651..00000000
--- a/libsigsegv/README
+++ /dev/null
@@ -1,123 +0,0 @@
- GNU libsigsegv - Handling page faults in user mode
-
-This is a library for handling page faults in user mode. A page fault
-occurs when a program tries to access to a region of memory that is
-currently not available. Catching and handling a page fault is a useful
-technique for implementing:
-
- - pageable virtual memory,
- - memory-mapped access to persistent databases,
- - generational garbage collectors,
- - stack overflow handlers,
- - distributed shared memory,
- - ...
-
-This library supports three sets of functions, all defined in <sigsegv.h>:
-
- - Global SIGSEGV handlers:
- sigsegv_install_handler, sigsegv_deinstall_handler.
-
- - Local SIGSEGV handlers (a handler per memory area):
- sigsegv_init, sigsegv_register, sigsegv_unregister, sigsegv_dispatch.
-
- - Stack overflow handlers:
- stackoverflow_install_handler, stackoverflow_deinstall_handler.
-
-Each of the three APIs can be used independently or simultaneously.
-For examples of the use of the APIs, see:
-
- - Global SIGSEGV handlers: see tests/sigsegv1.c.
- - Local SIGSEGV handlers: see tests/sigsegv2.c.
- - Stack overflow handlers: see tests/stackoverflow1.c.
-
-
-About portability.
-
-Some platforms don't support this functionality. In <sigsegv.h>, the
-preprocessor macro HAVE_SIGSEGV_RECOVERY will be defined if global and
-local SIGSEGV handlers are available, and the preprocessor macro
-HAVE_STACK_OVERFLOW_RECOVERY will be defined if stack overflow handlers
-are available. Note that the declared functions are available in all cases;
-on platforms where HAVE_SIGSEGV_RECOVERY or HAVE_STACK_OVERFLOW_RECOVERY is
-not defined, they will simply always return an error code or do nothing.
-
-The list of platforms where this library is known to work is contained in
-the file PORTING.
-
-
-About pageable virtual memory.
-
-Pageable virtual memory is usually done in the operating system's kernel.
-This library helps in implementing the others.
-
-Installing a page fault handler is usually more efficient than doing
-access checks in software at every access, because it's effectively the
-hardware (the MMU) which checks whether a page is present or not.
-
-Note that if you use system calls (like read()) to write into write-
-protected pages, the system will react by returning -1 and setting
-errno to EFAULT, instead of signalling SIGSEGV and restarting the system
-call. In this case, the program has to do what the SIGSEGV handler would
-do, and then restart the read() operation. Some buggy systems (SunOS 4)
-go into an endless loop on this occasion; on these systems you have to
-make sure that an area is writable _before_ you call read() on it,
-
-
-About stack overflow handlers.
-
-In some applications, the stack overflow handler performs some cleanup or
-notifies the user and then immediately terminates the application. In
-other applications, the stack overflow handler longjmps back to a central
-point in the application. This library supports both uses. In the second
-case, the handler must ensure to restore the normal signal mask (because
-many signals are blocked while the handler is executed), and must also
-call sigsegv_leave_handler() to transfer control; then only it can longjmp
-away.
-
-
-About shared libraries.
-
-This library builds as a static library by default. This seems useful
-because of the small size of the library (4 KB). Of course, you can build
-it as a shared library by specifying the configure option '--enable-shared'.
-
-
-Installation instructions on Unix:
-
- ./configure
- make
- make check
- make install
-
-Installation instructions on Woe32:
-
- See README.woe32.
-
-
-Using libsigsegv in your package:
- - For the APIs, see the comments in the <sigsegv.h> file (generated from
- src/sigsegv.h.in).
- - An autoconf macro for determining where libsigsegv is installed and how to
- link with it is part of GNU gnulib, see
- <http://www.gnu.org/software/gnulib/MODULES.html#module=libsigsegv>
-
-
-Copyright notice:
-
-Copyright 1998-1999, 2002-2008 Bruno Haible <bruno@clisp.org>
-Copyright 2002-2005 Paolo Bonzini <bonzini@gnu.org>
-Copyright 2008 Eric Blake <ebb9@byu.net>
-
-This is free software distributed under the GNU General Public Licence
-described in the file COPYING. There is ABSOLUTELY NO WARRANTY, explicit or
-implied, on this software.
-
-
-Download:
-
-ftp://ftp.gnu.org/pub/gnu/libsigsegv/libsigsegv-2.6.tar.gz
-http://ftp.gnu.org/gnu/libsigsegv/libsigsegv-2.6.tar.gz
-
-Homepage:
-
-http://libsigsegv.sourceforge.net/