xref: /freebsd/share/man/man9/EVENTHANDLER.9 (revision b5111c46120d04b78452995e0cfc402d1283e391)
1235b396aSJoseph Koshy.\" Copyright (c) 2004 Joseph Koshy
2235b396aSJoseph Koshy.\" All rights reserved.
3235b396aSJoseph Koshy.\"
4235b396aSJoseph Koshy.\" Redistribution and use in source and binary forms, with or without
5235b396aSJoseph Koshy.\" modification, are permitted provided that the following conditions
6235b396aSJoseph Koshy.\" are met:
7235b396aSJoseph Koshy.\" 1. Redistributions of source code must retain the above copyright
8235b396aSJoseph Koshy.\"    notice, this list of conditions and the following disclaimer.
9235b396aSJoseph Koshy.\" 2. Redistributions in binary form must reproduce the above copyright
10235b396aSJoseph Koshy.\"    notice, this list of conditions and the following disclaimer in the
11235b396aSJoseph Koshy.\"    documentation and/or other materials provided with the distribution.
12235b396aSJoseph Koshy.\"
13235b396aSJoseph Koshy.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14235b396aSJoseph Koshy.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15235b396aSJoseph Koshy.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16235b396aSJoseph Koshy.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17235b396aSJoseph Koshy.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18235b396aSJoseph Koshy.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19235b396aSJoseph Koshy.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20235b396aSJoseph Koshy.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21235b396aSJoseph Koshy.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22235b396aSJoseph Koshy.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23235b396aSJoseph Koshy.\" SUCH DAMAGE.
24235b396aSJoseph Koshy.\" $FreeBSD$
25235b396aSJoseph Koshy.\"
26*b5111c46SEdward Tomasz Napierala.Dd March 27, 2017
27235b396aSJoseph Koshy.Dt EVENTHANDLER 9
28235b396aSJoseph Koshy.Os
29235b396aSJoseph Koshy.Sh NAME
30235b396aSJoseph Koshy.Nm EVENTHANDLER
31235b396aSJoseph Koshy.Nd kernel event handling functions
32235b396aSJoseph Koshy.Sh SYNOPSIS
33235b396aSJoseph Koshy.In sys/eventhandler.h
34235b396aSJoseph Koshy.Fn EVENTHANDLER_DECLARE name type
35*b5111c46SEdward Tomasz Napierala.Fn EVENTHANDLER_DEFINE name func arg priority
36235b396aSJoseph Koshy.Fn EVENTHANDLER_INVOKE name ...
37235b396aSJoseph Koshy.Ft eventhandler_tag
38235b396aSJoseph Koshy.Fn EVENTHANDLER_REGISTER name func arg priority
39235b396aSJoseph Koshy.Fn EVENTHANDLER_DEREGISTER name tag
40235b396aSJoseph Koshy.Ft eventhandler_tag
41235b396aSJoseph Koshy.Fo eventhandler_register
42235b396aSJoseph Koshy.Fa "struct eventhandler_list *list"
439df1bed3SJoseph Koshy.Fa "const char *name"
44235b396aSJoseph Koshy.Fa "void *func"
45235b396aSJoseph Koshy.Fa "void *arg"
46235b396aSJoseph Koshy.Fa "int priority"
47235b396aSJoseph Koshy.Fc
48235b396aSJoseph Koshy.Ft void
49235b396aSJoseph Koshy.Fo eventhandler_deregister
50235b396aSJoseph Koshy.Fa "struct eventhandler_list *list"
51235b396aSJoseph Koshy.Fa "eventhandler_tag tag"
52235b396aSJoseph Koshy.Fc
53235b396aSJoseph Koshy.Ft "struct eventhandler_list *"
549df1bed3SJoseph Koshy.Fn eventhandler_find_list "const char *name"
55235b396aSJoseph Koshy.Ft void
56235b396aSJoseph Koshy.Fn eventhandler_prune_list "struct eventhandler_list *list"
57235b396aSJoseph Koshy.Sh DESCRIPTION
58235b396aSJoseph KoshyThe
59235b396aSJoseph Koshy.Nm
60235b396aSJoseph Koshymechanism provides a way for kernel subsystems to register interest in
61235b396aSJoseph Koshykernel events and have their callback functions invoked when these
62235b396aSJoseph Koshyevents occur.
63235b396aSJoseph Koshy.Pp
64235b396aSJoseph KoshyCallback functions are invoked in order of priority.
6548ef2433SGiorgos KeramidasThe relative priority of each callback among other callbacks
6648ef2433SGiorgos Keramidasassociated with an event is given by argument
67235b396aSJoseph Koshy.Fa priority ,
68235b396aSJoseph Koshywhich is an integer ranging from
69235b396aSJoseph Koshy.Dv EVENTHANDLER_PRI_FIRST
70235b396aSJoseph Koshy(highest priority), to
71235b396aSJoseph Koshy.Dv EVENTHANDLER_PRI_LAST
72235b396aSJoseph Koshy(lowest priority).
73235b396aSJoseph KoshyThe symbol
74235b396aSJoseph Koshy.Dv EVENTHANDLER_PRI_ANY
75235b396aSJoseph Koshymay be used if the handler does not have a specific priority
76235b396aSJoseph Koshyassociated with it.
77*b5111c46SEdward Tomasz Napierala.Pp
78*b5111c46SEdward Tomasz NapieralaThe normal way to use this subsystem is via the macro interface.
79*b5111c46SEdward Tomasz NapieralaThe macros that can be used for working with event handlers and callback
80*b5111c46SEdward Tomasz Napieralafunction lists are:
81*b5111c46SEdward Tomasz Napierala.Bl -tag -width indent
82*b5111c46SEdward Tomasz Napierala.It Fn EVENTHANDLER_DECLARE
83*b5111c46SEdward Tomasz NapieralaThis macro declares an event handler named by argument
84*b5111c46SEdward Tomasz Napierala.Fa name
85*b5111c46SEdward Tomasz Napieralawith callback functions of type
86*b5111c46SEdward Tomasz Napierala.Fa type .
87*b5111c46SEdward Tomasz Napierala.It Fn EVENTHANDLER_DEFINE
88*b5111c46SEdward Tomasz NapieralaThis macro uses
89*b5111c46SEdward Tomasz Napierala.Xr SYSINIT 9
90*b5111c46SEdward Tomasz Napieralato register a callback function
91*b5111c46SEdward Tomasz Napierala.Fa func
92*b5111c46SEdward Tomasz Napieralawith event handler
93*b5111c46SEdward Tomasz Napierala.Fa name .
94*b5111c46SEdward Tomasz NapieralaWhen invoked, function
95*b5111c46SEdward Tomasz Napierala.Fa func
96*b5111c46SEdward Tomasz Napieralawill be invoked with argument
97*b5111c46SEdward Tomasz Napierala.Fa arg
98*b5111c46SEdward Tomasz Napieralaas its first parameter along with any additional parameters passed in
99*b5111c46SEdward Tomasz Napieralavia macro
100*b5111c46SEdward Tomasz Napierala.Fn EVENTHANDLER_INVOKE
101*b5111c46SEdward Tomasz Napierala(see below).
102*b5111c46SEdward Tomasz Napierala.It Fn EVENTHANDLER_REGISTER
103*b5111c46SEdward Tomasz NapieralaThis macro registers a callback function
104*b5111c46SEdward Tomasz Napierala.Fa func
105*b5111c46SEdward Tomasz Napieralawith event handler
106*b5111c46SEdward Tomasz Napierala.Fa name .
107*b5111c46SEdward Tomasz NapieralaWhen invoked, function
108*b5111c46SEdward Tomasz Napierala.Fa func
109*b5111c46SEdward Tomasz Napieralawill be invoked with argument
110*b5111c46SEdward Tomasz Napierala.Fa arg
111*b5111c46SEdward Tomasz Napieralaas its first parameter along with any additional parameters passed in
112*b5111c46SEdward Tomasz Napieralavia macro
113*b5111c46SEdward Tomasz Napierala.Fn EVENTHANDLER_INVOKE
114*b5111c46SEdward Tomasz Napierala(see below).
115235b396aSJoseph KoshyIf registration is successful,
116235b396aSJoseph Koshy.Fn EVENTHANDLER_REGISTER
117235b396aSJoseph Koshyreturns a cookie of type
118235b396aSJoseph Koshy.Vt eventhandler_tag .
11948ef2433SGiorgos Keramidas.It Fn EVENTHANDLER_DEREGISTER
12048ef2433SGiorgos KeramidasThis macro removes a previously registered callback associated with tag
121235b396aSJoseph Koshy.Fa tag
122235b396aSJoseph Koshyfrom the event handler named by argument
123235b396aSJoseph Koshy.Fa name .
12448ef2433SGiorgos Keramidas.It Fn EVENTHANDLER_INVOKE
12548ef2433SGiorgos KeramidasThis macro is used to invoke all the callbacks associated with event
12648ef2433SGiorgos Keramidashandler
127235b396aSJoseph Koshy.Fa name .
128235b396aSJoseph KoshyThis macro is a variadic one.
129235b396aSJoseph KoshyAdditional arguments to the macro after the
130235b396aSJoseph Koshy.Fa name
131235b396aSJoseph Koshyparameter are passed as the second and subsequent arguments to each
132235b396aSJoseph Koshyregistered callback function.
13348ef2433SGiorgos Keramidas.El
134235b396aSJoseph Koshy.Pp
135235b396aSJoseph KoshyThe macros are implemented using the following functions:
13648ef2433SGiorgos Keramidas.Bl -tag -width indent
13748ef2433SGiorgos Keramidas.It Fn eventhandler_register
13848ef2433SGiorgos KeramidasThe
139235b396aSJoseph Koshy.Fn eventhandler_register
14048ef2433SGiorgos Keramidasfunction is used to register a callback with a given event.
14148ef2433SGiorgos KeramidasThe arguments expected by this function are:
14248ef2433SGiorgos Keramidas.Bl -tag -width ".Fa priority"
14348ef2433SGiorgos Keramidas.It Fa list
14448ef2433SGiorgos KeramidasA pointer to an existing event handler list, or
145235b396aSJoseph Koshy.Dv NULL .
14648ef2433SGiorgos KeramidasIf
147235b396aSJoseph Koshy.Fa list
148235b396aSJoseph Koshyis
149235b396aSJoseph Koshy.Dv NULL ,
150235b396aSJoseph Koshythe event handler list corresponding to argument
151235b396aSJoseph Koshy.Fa name
152235b396aSJoseph Koshyis used.
15348ef2433SGiorgos Keramidas.It Fa name
15448ef2433SGiorgos KeramidasThe name of the event handler list.
15548ef2433SGiorgos Keramidas.It Fa func
15648ef2433SGiorgos KeramidasA pointer to a callback function.
157235b396aSJoseph KoshyArgument
158235b396aSJoseph Koshy.Fa arg
159d3d90204SGiorgos Keramidasis passed to the callback function
160235b396aSJoseph Koshy.Fa func
161235b396aSJoseph Koshyas its first argument when it is invoked.
16248ef2433SGiorgos Keramidas.It Fa priority
16348ef2433SGiorgos KeramidasThe relative priority of this callback among all the callbacks
16448ef2433SGiorgos Keramidasregistered for this event.
16548ef2433SGiorgos KeramidasValid values are those in the range
166235b396aSJoseph Koshy.Dv EVENTHANDLER_PRI_FIRST
167235b396aSJoseph Koshyto
16848ef2433SGiorgos Keramidas.Dv EVENTHANDLER_PRI_LAST .
16948ef2433SGiorgos Keramidas.El
170235b396aSJoseph Koshy.Pp
17148ef2433SGiorgos KeramidasThe
17248ef2433SGiorgos Keramidas.Fn eventhandler_register
17348ef2433SGiorgos Keramidasfunction returns a
17448ef2433SGiorgos Keramidas.Fa tag
17548ef2433SGiorgos Keramidasthat can later be used with
176235b396aSJoseph Koshy.Fn eventhandler_deregister
17748ef2433SGiorgos Keramidasto remove the particular callback function.
17848ef2433SGiorgos Keramidas.It Fn eventhandler_deregister
17948ef2433SGiorgos KeramidasThe
18048ef2433SGiorgos Keramidas.Fn eventhandler_deregister
18148ef2433SGiorgos Keramidasfunction removes the callback associated with tag
182235b396aSJoseph Koshy.Fa tag
183235b396aSJoseph Koshyfrom the event handler list pointed to by
184235b396aSJoseph Koshy.Fa list .
185235b396aSJoseph KoshyThis function is safe to call from inside an event handler
186235b396aSJoseph Koshycallback.
18748ef2433SGiorgos Keramidas.It Fn eventhandler_find_list
18848ef2433SGiorgos KeramidasThe
189235b396aSJoseph Koshy.Fn eventhandler_find_list
19048ef2433SGiorgos Keramidasfunction returns a pointer to event handler list structure corresponding
19148ef2433SGiorgos Keramidasto event
192235b396aSJoseph Koshy.Fa name .
19348ef2433SGiorgos Keramidas.It Fn eventhandler_prune_list
19448ef2433SGiorgos KeramidasThe
195235b396aSJoseph Koshy.Fn eventhandler_prune_list
19648ef2433SGiorgos Keramidasfunction removes all deregistered callbacks from the event list
197235b396aSJoseph Koshy.Fa list .
19848ef2433SGiorgos Keramidas.El
199235b396aSJoseph Koshy.Ss Kernel Event Handlers
200235b396aSJoseph KoshyThe following event handlers are present in the kernel:
201235b396aSJoseph Koshy.Bl -tag -width indent
202235b396aSJoseph Koshy.It Vt acpi_sleep_event
203235b396aSJoseph KoshyCallbacks invoked when the system is being sent to sleep.
204235b396aSJoseph Koshy.It Vt acpi_wakeup_event
205235b396aSJoseph KoshyCallbacks invoked when the system is being woken up.
206ad6c0150SJohn-Mark Gurney.It Vt app_coredump_start
207ad6c0150SJohn-Mark GurneyCallbacks invoked at start of application core dump.
208ad6c0150SJohn-Mark Gurney.It Vt app_coredump_progress
209ad6c0150SJohn-Mark GurneyCallbacks invoked during progress of application core dump.
210ad6c0150SJohn-Mark Gurney.It Vt app_coredump_finish
211ad6c0150SJohn-Mark GurneyCallbacks invoked at finish of application core dump.
212ad6c0150SJohn-Mark Gurney.It Vt app_coredump_error
213ad6c0150SJohn-Mark GurneyCallbacks invoked on error of application core dump.
214ad6c0150SJohn-Mark Gurney.It Vt bpf_track
215ad6c0150SJohn-Mark GurneyCallbacks invoked when a BPF listener attaches to/detaches from network interface.
216ad6c0150SJohn-Mark Gurney.It Vt cpufreq_levels_changed
217646fa387SEdward Tomasz NapieralaCallback invoked when cpu frequency levels have changed.
218ad6c0150SJohn-Mark Gurney.It Vt cpufreq_post_change
219646fa387SEdward Tomasz NapieralaCallback invoked after cpu frequency has changed.
220ad6c0150SJohn-Mark Gurney.It Vt cpufreq_pre_change
221646fa387SEdward Tomasz NapieralaCallback invoked before cpu frequency has changed.
222ad6c0150SJohn-Mark Gurney.It Vt dcons_poll
223ad6c0150SJohn-Mark GurneyCallback invoked to poll for dcons changes.
224235b396aSJoseph Koshy.It Vt dev_clone
225235b396aSJoseph KoshyCallbacks invoked when a new entry is created under
226235b396aSJoseph Koshy.Pa /dev .
227ad6c0150SJohn-Mark Gurney.It Vt group_attach_event
228ad6c0150SJohn-Mark GurneyCallback invoked when an interfance has been added to an interface group.
229ad6c0150SJohn-Mark Gurney.It Vt group_change_event
230ad6c0150SJohn-Mark GurneyCallback invoked when an change has been made to an interface group.
231ad6c0150SJohn-Mark Gurney.It Vt group_detach_event
232ad6c0150SJohn-Mark GurneyCallback invoked when an interfance has been removed from an interface group.
233235b396aSJoseph Koshy.It Vt ifaddr_event
234235b396aSJoseph KoshyCallbacks invoked when an address is set up on a network interface.
235235b396aSJoseph Koshy.It Vt if_clone_event
236235b396aSJoseph KoshyCallbacks invoked when an interface is cloned.
237ad6c0150SJohn-Mark Gurney.It Vt iflladdr_event
238ad6c0150SJohn-Mark GurneyCallback invoked when an if link layer address event has happened.
239235b396aSJoseph Koshy.It Vt ifnet_arrival_event
240235b396aSJoseph KoshyCallbacks invoked when a new network interface appears.
241235b396aSJoseph Koshy.It Vt ifnet_departure_event
242235b396aSJoseph KoshyCallbacks invoked when a network interface is taken down.
243ad6c0150SJohn-Mark Gurney.It Vt ifnet_link_event
244ad6c0150SJohn-Mark GurneyCallback invoked when an interfance link event has happened.
24512ede07aSMark Johnston.It Vt kld_load
24612ede07aSMark JohnstonCallbacks invoked after a linker file has been loaded.
24712ede07aSMark Johnston.It Vt kld_unload
24829f4e216SMark JohnstonCallbacks invoked after a linker file has been successfully unloaded.
24929f4e216SMark Johnston.It Vt kld_unload_try
25012ede07aSMark JohnstonCallbacks invoked before a linker file is about to be unloaded.
251c9b645b5SMark JohnstonThese callbacks may be used to return an error and prevent the unload from
252c9b645b5SMark Johnstonproceeding.
253ad6c0150SJohn-Mark Gurney.It Vt lle_event
254ad6c0150SJohn-Mark GurneyCallback invoked when an link layer event has happened.
255ad6c0150SJohn-Mark Gurney.It Vt nmbclusters_change
256ad6c0150SJohn-Mark GurneyCallback invoked when the number of mbuf clusters has changed.
257ad6c0150SJohn-Mark Gurney.It Vt nmbufs_change
258ad6c0150SJohn-Mark GurneyCallback invoked when the number of mbufs has changed.
259ad6c0150SJohn-Mark Gurney.It Vt maxsockets_change
260ad6c0150SJohn-Mark GurneyCallback invoked when the maximum number of sockets has changed.
261ad6c0150SJohn-Mark Gurney.It Vt mountroot
262ad6c0150SJohn-Mark GurneyCallback invoked when root has been mounted.
263235b396aSJoseph Koshy.It Vt power_profile_change
264235b396aSJoseph KoshyCallbacks invoked when the power profile of the system changes.
265ad6c0150SJohn-Mark Gurney.It Vt power_resume
266ad6c0150SJohn-Mark GurneyCallback invoked when the system has resumed.
267ad6c0150SJohn-Mark Gurney.It Vt power_suspend
268ad6c0150SJohn-Mark GurneyCallback invoked just before the system is suspended.
269ad6c0150SJohn-Mark Gurney.It Vt process_ctor
270ad6c0150SJohn-Mark GurneyCallback invoked when a process is created.
271ad6c0150SJohn-Mark Gurney.It Vt process_dtor
272ad6c0150SJohn-Mark GurneyCallback invoked when a process is destroyed.
273235b396aSJoseph Koshy.It Vt process_exec
274235b396aSJoseph KoshyCallbacks invoked when a process performs an
275235b396aSJoseph Koshy.Fn exec
276235b396aSJoseph Koshyoperation.
277235b396aSJoseph Koshy.It Vt process_exit
278235b396aSJoseph KoshyCallbacks invoked when a process exits.
279ad6c0150SJohn-Mark Gurney.It Vt process_fini
280ad6c0150SJohn-Mark GurneyCallback invoked when a process memory is destroyed.
281ad6c0150SJohn-Mark GurneyThis is never called.
282235b396aSJoseph Koshy.It Vt process_fork
283235b396aSJoseph KoshyCallbacks invoked when a process forks a child.
284ad6c0150SJohn-Mark Gurney.It Vt process_init
285ad6c0150SJohn-Mark GurneyCallback invoked when a process is initalized.
286ad6c0150SJohn-Mark Gurney.It Vt random_adaptor_attach
287ad6c0150SJohn-Mark GurneyCallback invoked when a new random module has been loaded.
288ad6c0150SJohn-Mark Gurney.It Vt register_framebuffer
289ad6c0150SJohn-Mark GurneyCallback invoked when a new frame buffer is registered.
290ad6c0150SJohn-Mark Gurney.It Vt route_redirect_event
291ad6c0150SJohn-Mark GurneyCallback invoked when a route gets redirected to a new location.
292235b396aSJoseph Koshy.It Vt shutdown_pre_sync
293235b396aSJoseph KoshyCallbacks invoked at shutdown time, before file systems are synchronized.
294235b396aSJoseph Koshy.It Vt shutdown_post_sync
295235b396aSJoseph KoshyCallbacks invoked at shutdown time, after all file systems are synchronized.
296235b396aSJoseph Koshy.It Vt shutdown_final
297235b396aSJoseph KoshyCallbacks invoked just before halting the system.
298ad6c0150SJohn-Mark Gurney.It Vt tcp_offload_listen_start
299ad6c0150SJohn-Mark GurneyCallback invoked for TCP Offload to start listening for new connections.
300ad6c0150SJohn-Mark Gurney.It Vt tcp_offload_listen_stop
301ad6c0150SJohn-Mark GurneyCallback invoked ror TCP Offload to stop listening for new connections.
302ad6c0150SJohn-Mark Gurney.It Vt thread_ctor
303ad6c0150SJohn-Mark GurneyCallback invoked when a thread object is created.
304ad6c0150SJohn-Mark Gurney.It Vt thread_dtor
305ad6c0150SJohn-Mark GurneyCallback invoked when a thread object is destroyed.
306ad6c0150SJohn-Mark Gurney.It Vt thread_init
307ad6c0150SJohn-Mark GurneyCallback invoked when a thread object is initalized.
308ad6c0150SJohn-Mark Gurney.It Vt thread_fini
309ad6c0150SJohn-Mark GurneyCallback invoked when a thread object is deinitalized.
310ad6c0150SJohn-Mark Gurney.It Vt usb_dev_configured
311ad6c0150SJohn-Mark GurneyCallback invoked when a USB device is configured
312ad6c0150SJohn-Mark Gurney.It Vt unregister_framebuffer
313ad6c0150SJohn-Mark GurneyCallback invoked when a frame buffer is deregistered.
314ad6c0150SJohn-Mark Gurney.It Vt vfs_mounted
315ad6c0150SJohn-Mark GurneyCallback invoked when a file system is mounted.
316ad6c0150SJohn-Mark Gurney.It Vt vfs_unmounted
317ad6c0150SJohn-Mark GurneyCallback invoked when a file system is unmounted.
318ad6c0150SJohn-Mark Gurney.It Vt vlan_config
319ad6c0150SJohn-Mark GurneyCallback invoked when the vlan configuration has changed.
320ad6c0150SJohn-Mark Gurney.It Vt vlan_unconfig
321ad6c0150SJohn-Mark GurneyCallback invoked when a vlan is destroyed.
322235b396aSJoseph Koshy.It Vt vm_lowmem
323235b396aSJoseph KoshyCallbacks invoked when virtual memory is low.
324235b396aSJoseph Koshy.It Vt watchdog_list
325235b396aSJoseph KoshyCallbacks invoked when the system watchdog timer is reinitialized.
326235b396aSJoseph Koshy.El
327235b396aSJoseph Koshy.Sh RETURN VALUES
328235b396aSJoseph KoshyThe macro
329235b396aSJoseph Koshy.Fn EVENTHANDLER_REGISTER
330235b396aSJoseph Koshyand function
331235b396aSJoseph Koshy.Fn eventhandler_register
332235b396aSJoseph Koshyreturn a cookie of type
333235b396aSJoseph Koshy.Vt eventhandler_tag ,
334235b396aSJoseph Koshywhich may be used in a subsequent call to
335235b396aSJoseph Koshy.Fn EVENTHANDLER_DEREGISTER
336235b396aSJoseph Koshyor
337235b396aSJoseph Koshy.Fn eventhandler_deregister .
338235b396aSJoseph Koshy.Pp
33948ef2433SGiorgos KeramidasThe
340235b396aSJoseph Koshy.Fn eventhandler_find_list
34148ef2433SGiorgos Keramidasfunction
342235b396aSJoseph Koshyreturns a pointer to an event handler list corresponding to parameter
343235b396aSJoseph Koshy.Fa name ,
344235b396aSJoseph Koshyor
345235b396aSJoseph Koshy.Dv NULL
346235b396aSJoseph Koshyif no such list was found.
347235b396aSJoseph Koshy.Sh HISTORY
348235b396aSJoseph KoshyThe
349235b396aSJoseph Koshy.Nm
350235b396aSJoseph Koshyfacility first appeared in
351235b396aSJoseph Koshy.Fx 4.0 .
352235b396aSJoseph Koshy.Sh AUTHORS
353235b396aSJoseph KoshyThis manual page was written by
3548a7314fcSBaptiste Daroussin.An Joseph Koshy Aq Mt jkoshy@FreeBSD.org .
355