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)