Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

sigsegv (3)

Name

sigsegv - Handling page faults in user mode

Synopsis

#include <sigsegv.h>

Description

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)