HOOK_T(9S)               Data Structures for Drivers              HOOK_T(9S)
NAME
       hook_t - callback structure for subscribing to netinfo events
SYNOPSIS
       #include <sys/hook.h>
INTERFACE LEVEL
       illumos DDI specific (illumos DDI).
DESCRIPTION
       The 
hook_t data structure defines a callback that is to be inserted
       into a networking event. This data structure must be allocated with a
       call to 
hook_alloc() and released with a call to 
hook_free().
STRUCTURE MEMBERS
         hook_func_t  h_func;      /* callback function to invoke */
         char         *h_name;     /* unique name given to the hook */
         int          h_flags;
         hook_hint_t  h_hint;      /* insertion hint type */
         uintptr_t    h_hintvalue; /* used with h_hint */
         void         *h_arg;      /* value to pass into h_func */
         typedef int (*hook_func_t)(net_event_t token, hook_data_t info,
                       void *);
   CALLBACK RETURN VALUES
       The value returned by the 
hook_func_t function indicates whether or
       not the packet should still be considered valid. If the callback
       function has modified the packet in such a way that it should no
       longer be processed or considered valid, e.g. called 
freemsg(9F),
       then the callback should return 
1. Otherwise it should return 
0.
   HINT TYPES
       Hook hints are hints that are used at the time of insertion and are
       not rules that enforce where a hook lives for its entire lifetime on
       an event. The valid values for the 
h_hint field are:       
HH_NONE                    Insert the hook wherever convenient.       
HH_FIRST                    Place the hook first on the list of hooks.       
HH_LAST                    Place the hook last on the list of hooks.       
HH_BEFORE                    Place the hook before another hook on the list of hooks.
                    The value in 
h_hintvalue must be a pointer to the name
                    of another hook.       
HH_AFTER                    Place the hook after another hook on the list of hooks.
                    The value in 
h_hintvalue must be a pointer to the name
                    of another hook.
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Committed       |
       +--------------------+-----------------+
SEE ALSO
       netinfo(9F)                                March 5, 2012                     HOOK_T(9S)