summaryrefslogtreecommitdiff
path: root/static/openbsd/man9/if_addrhook_add.9
diff options
context:
space:
mode:
Diffstat (limited to 'static/openbsd/man9/if_addrhook_add.9')
-rw-r--r--static/openbsd/man9/if_addrhook_add.9120
1 files changed, 120 insertions, 0 deletions
diff --git a/static/openbsd/man9/if_addrhook_add.9 b/static/openbsd/man9/if_addrhook_add.9
new file mode 100644
index 00000000..64c4c1be
--- /dev/null
+++ b/static/openbsd/man9/if_addrhook_add.9
@@ -0,0 +1,120 @@
+.\" $OpenBSD: if_addrhook_add.9,v 1.3 2024/02/22 08:10:08 jsg Exp $
+.\"
+.\" Copyright (c) 2019 David Gwynne <dlg@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: February 22 2024 $
+.Dt IF_ADDRHOOK_ADD 9
+.Os
+.Sh NAME
+.Nm if_addrhook_add ,
+.Nm if_addrhook_del ,
+.\" .Nm if_addrhooks_run ,
+.Nm if_detachhook_add ,
+.Nm if_detachhook_del ,
+.Nm if_linkstatehook_add ,
+.Nm if_linkstatehook_del
+.Nd interface event hook API
+.Sh SYNOPSIS
+.In net/if_var.h
+.Ft void
+.Fn if_addrhook_add "struct ifnet *ifp" "struct task *t"
+.Ft void
+.Fn if_addrhook_del "struct ifnet *ifp" "struct task *t"
+.\" .Ft void
+.\" .Fn if_addrhooks_run "struct ifnet *ifp"
+.Ft void
+.Fn if_detachhook_add "struct ifnet *ifp" "struct task *t"
+.Ft void
+.Fn if_detachhook_del "struct ifnet *ifp" "struct task *t"
+.Ft void
+.Fn if_linkstatehook_add "struct ifnet *ifp" "struct task *t"
+.Ft void
+.Fn if_linkstatehook_del "struct ifnet *ifp" "struct task *t"
+.Sh DESCRIPTION
+The interface hook API allows for the registration of a task that
+will be called when an IP address change, link state, or detach event
+occurs on the specified interface.
+Tasks should be initialised with
+.Xr task_add 9
+or
+.Xr TASK_INITIALIZER 9
+before being used with the following functions.
+.Pp
+The
+.Fn if_addrhook_add
+function registers the task
+.Fa t
+on the
+.Fa ifp
+interface.
+The event will fire every time an IPv4 or IPv6 address change occurs
+on the interface until explicitly removed with
+.Fn if_addrhook_del .
+.Pp
+The
+.Fn if_addrhook_del
+function removes the task
+.Fa t
+from the
+.Fa ifp
+interface.
+.Pp
+The
+.Fn if_detachhook_add
+function registers the task
+.Fa t
+on the
+.Fa ifp
+interface.
+The event will fire when the interface is being destroyed.
+.Pp
+The
+.Fn if_detachhook_del
+function removes the task
+.Fa t
+from the
+.Fa ifp
+interface.
+.Pp
+The
+.Fn if_linkstatehook_add
+function registers the task
+.Fa t
+on the
+.Fa ifp
+interface.
+The event will fire for every link state change, or when the interface
+is brought up or down, until explicitly removed with
+.Fn if_linkstatehook_del .
+.Pp
+The
+.Fn if_linkstatehook_del
+function removes the task
+.Fa t
+from the
+.Fa ifp
+interface.
+.Sh CONTEXT
+.Fn if_addrhook_add ,
+.Fn if_addrhook_del ,
+.\" .Fn if_addrhooks_run ,
+.Fn if_detachhook_add ,
+.Fn if_detachhook_del ,
+.Fn if_linkstatehook_add ,
+and
+.Fn if_linkstatehook_del
+can be called during autoconf, from process context, or from interrupt context.
+.Sh SEE ALSO
+.Xr task_set 9