Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Thursday, June 13, 2019
 
 

sigsegv_unregister (3)

Name

sigsegv_unregister - LOCAL SIGSEGV HANDLERS

Synopsis

#include <sigsegv.h>

void sigsegv_init (sigsegv_dispatcher* dispatcher);

void* sigsegv_register (sigsegv_dispatcher* dispatcher,
void*    address,    unsigned     long     len,
sigsegv_area_handler_t   handler,   void*  han-
dler_arg);

void sigsegv_unregister (sigsegv_dispatcher* dispatcher,
void* ticket);

int sigsegv_dispatch (sigsegv_dispatcher* dispatcher,
void* fault_address);

Description

sigsegv_register(3)        Library Functions Manual        sigsegv_register(3)



NAME
       sigsegv_init,  sigsegv_register, sigsegv_unregister, sigsegv_dispatch -
       LOCAL SIGSEGV HANDLERS

SYNOPSIS
       #include <sigsegv.h>

       void sigsegv_init (sigsegv_dispatcher* dispatcher);

       void* sigsegv_register (sigsegv_dispatcher* dispatcher,
                               void*    address,    unsigned     long     len,
                               sigsegv_area_handler_t   handler,   void*  han-
                               dler_arg);

       void sigsegv_unregister (sigsegv_dispatcher* dispatcher,
                                void* ticket);

       int sigsegv_dispatch (sigsegv_dispatcher* dispatcher,
                             void* fault_address);


DESCRIPTION
       The set of functions permit to define  different  SIGSEGV  policies  on
       different address ranges.


       Sigsegv_init initializes a sigsegv_dispatcher structure.


       Sigsegv_register  adds  a local SIGSEGV handler to a sigsegv_dispatcher
       structure. It will cover the interval [address..address+len-1]. Returns
       a "ticket" that can be used to remove the handler later.


       Sigsegv_unregister removes a local SIGSEGV handler.


       Sigsegv_dispatch  call  the  local  SIGSEGV handler responsible for the
       given fault address. Return the handler's return value. 0 means that no
       handler  has  been  found,  or  that  a  handler was found but declined
       responsibility.



OPERANDS
       typedef struct sigsegv_dispatcher {
            void* tree;
       }sigsegv_dispatcher;


       Sigsegv_dispatcher represents a table of memory  areas  (address  range
       intervals), with an local SIGSEGV handler for each.


       The address represents the address of the memory area, and the len rep-
       resents the length of the memory area.


       typedef int (*sigsegv_area_handler_t) (void* fault_address,
                                              void* user_arg);

       sigsegv_area_handler_t is the type of  a  local  SIGSEGV  handler.  The
       fault address is passed as argument. The second argument is fixed arbi-
       trary user data. The return value should be nonzero if the handler  has
       done its job and no other handler should be called, or 0 if the handler
       declines responsibility for the given address.


       The handler_arg is the second argument of the sigsegv_area_handler_t.


EXIT STATUS
       Sigsegv_dispatcher returns the handler's return value. 0 means that  no
       handler  has  been  found,  or  that  a  handler was found but declined
       responsibility.




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)



NOTES
       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.10.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                      13 Jan 2009              sigsegv_register(3)