HOOK_T(9S) Data Structures for Drivers HOOK_T(9S)

hook_t - callback structure for subscribing to netinfo events

#include <sys/hook.h>

illumos DDI specific (illumos DDI).

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().


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 *);

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.

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.

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability Committed

netinfo(9F)
March 5, 2012 OmniOS