Current File : //usr/man/man9s/hook_t.9s
'\" te
.\"  Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved
.TH hook_t 9S "1 May 2008" "SunOS 5.11" "Data Structures for Drivers"
.SH NAME
hook_t \- callback structure for subscribing to netinfo events
.SH SYNOPSIS
.LP
.nf
#include <sys/hook.h>
.fi

.SH INTERFACE LEVEL
.sp
.LP
Solaris DDI specific (Solaris DDI).
.SH DESCRIPTION
.sp
.LP
The \fBhook_t\fR data structure defines a callback that is to be inserted into a networking event. This data structure must be allocated with a call to \fBhook_alloc()\fR and released with a call to \fBhook_free()\fR.
.SH STRUCTURE MEMBERS
.sp
.in +2
.nf
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 *); 
.fi
.in -2

.SS "HINT TYPES"
.sp
.LP
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 \fBh_hint\fR field are:
.sp
.ne 2
.mk
.na
\fB\fBHH_NONE\fR\fR
.ad
.RS 13n
.rt  
Insert the hook wherever convenient.
.RE

.sp
.ne 2
.mk
.na
\fB\fBHH_FIRST\fR\fR
.ad
.RS 13n
.rt  
Place the hook first on the list of hooks.
.RE

.sp
.ne 2
.mk
.na
\fB\fBHH_LAST\fR\fR
.ad
.RS 13n
.rt  
Place the hook last on the list of hooks.
.RE

.sp
.ne 2
.mk
.na
\fB\fBHH_BEFORE\fR\fR
.ad
.RS 13n
.rt  
Place the hook before another hook on the list of hooks. The value in \fBh_hintvalue\fR must be a pointer to the name of another hook.
.RE

.sp
.ne 2
.mk
.na
\fB\fBHH_AFTER\fR\fR
.ad
.RS 13n
.rt  
Place the hook after another hook on the list of hooks. The value in \fBh_hintvalue\fR must be a pointer to the name of another hook.
.RE

.SH ATTRIBUTES
.sp
.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp

.sp
.TS
tab() box;
cw(2.75i) |cw(2.75i) 
lw(2.75i) |lw(2.75i) 
.
ATTRIBUTE TYPEATTRIBUTE VALUE
_
Interface StabilityCommitted
.TE

.SH SEE ALSO
.sp
.LP
\fBnetinfo\fR(9F)