sigsegv - Handling page faults in user mode
#include <sigsegv.h>
SIGSEGV(3) Library Functions Manual SIGSEGV(3)
NAME
sigsegv - Handling page faults in user mode
SYNOPSIS
#include <sigsegv.h>
DESCRIPTION
Sigsegv is a set of functions 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:
o pageable virtual memory
o memory-mapped access to persistent databases
o generational garbage collectors
o stack overflow handlers
o distributed shared memory
o ...
The sigsegv functions are summarized in this section in the following
groups:
o Global SIGSEGV handlers
o Local SIGSEGV handlers (a handler per memory area)
o Stack overflow handlers
The <sigsegv.h> header defines the following symbols:
o HAVE_SIGSEGV_RECOVERY
o HAVE_STACK_OVERFLOW_RECOVERY
o LIBSIGSEGV_VERSION
o SIGSEGV_FAULT_ADDRESS_ALIGNMENT
The types listed below are defined as described in <sigsegv.h>:
o sigsegv_handler_t
o sigsegv_area_handler_t
o stackoverflow_handler_t
o stackoverflow_context_t
GLOBAL SIGSEGV HANDLERS
int sigsegv_install_handler (sigsegv_handler_t handler);
void sigsegv_deinstall_handler (void);
LOCAL SIGSEGV HANDLERS
void sigsegv_init (sigsegv_dispatcher* dispatcher);
void* sigsegv_register (sigsegv_dispatcher* dispatcher,
void* address, size_t len, sigsegv_area_han-
dler_t handler, void* handler_arg);
void sigsegv_unregister (sigsegv_dispatcher* dispatcher,
void* ticket);
int sigsegv_dispatch (sigsegv_dispatcher* dispatcher,
void* fault_address);
STACK OVERFLOW HANDLERS
int stackoverflow_install_handler (stackoverflow_handler_t
handler, void* extra_stack, size_t
extra_stack_size);
void stackoverflow_deinstall_handler (void);
COPYRIGHT
Copyright 1998-1999, 2002-2012, 2016-2021 Bruno Haible
<bruno@clisp.org>
Copyright 2002-2005, 2009 Paolo Bonzini <bonzini@gnu.org>
Copyright 2008-2010 Eric Blake <ebb9@byu.net>
Copyright 2002-2021 Free Software Foundation, Inc.
GNU libsigsegv library and manual pages are licensed under GNU GPL ver-
sion 2 or later <https://gnu.org/licenses/gpl-2.0.html>. This is free
software: you are free to change and redistribute it. There is NO WAR-
RANTY, to the extent permitted by law.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+---------------+--------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+--------------------+
|Availability | library/libsigsegv |
+---------------+--------------------+
|Stability | Uncommitted |
+---------------+--------------------+
SEE ALSO
attributes(7), sigsegv(3), standards(7), sigsegv_install_handler(3),
sigsegv_deinstall_handler(3), sigsegv_init(3), sigsegv_register(3),
sigsegv_unregister(3), sigsegv_dispatch(3), stackoverflow_install_han-
dler(3), stackoverflow_deinstall_handler(3)
NOTES
Source code for open source software components in Oracle Solaris can
be found at https://www.oracle.com/downloads/opensource/solaris-source-
code-downloads.html.
This software was built from source available at
https://github.com/oracle/solaris-userland. The original community
source was downloaded from https://ftp.gnu.org/gnu/libsigsegv/lib-
sigsegv-2.13.tar.gz.
Further information about this software can be found on the open source
community website at https://www.gnu.org/software/libsigsegv.
Solaris 11.4 17 June 2021 SIGSEGV(3)