xref: /openbsd-src/share/man/man9/startuphook_establish.9 (revision d13be5d47e4149db2549a9828e244d59dbc43f15)
1.\"	$OpenBSD: startuphook_establish.9,v 1.5 2007/05/31 19:20:01 jmc Exp $
2.\"
3.\" Copyright (c) 1995 Niklas Hallqvist.
4.\" All rights reserved.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice, this list of conditions and the following disclaimer.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice, this list of conditions and the following disclaimer in the
13.\"    documentation and/or other materials provided with the distribution.
14.\" 3. The name of the author may not be used to endorse or promote products
15.\"    derived from this software without specific prior written permission
16.\"
17.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27.\"
28.Dd $Mdocdate: May 31 2007 $
29.Dt STARTUPHOOK_ESTABLISH 9
30.Os
31.Sh NAME
32.Nm startuphook_establish ,
33.Nm startuphook_disestablish
34.Nd add or remove a startup hook
35.Sh SYNOPSIS
36.Fd #include <sys/types.h>
37.Fd #include <sys/systm.h>
38.Ft void *
39.Fn startuphook_establish "void (*fn)(void *)" "void *arg"
40.Ft void
41.Fn startuphook_disestablish "void *cookie"
42.Sh DESCRIPTION
43The
44.Fn startuphook_establish
45function adds
46.Fa fn
47to the list of hooks invoked by
48.Xr dostartuphooks 9
49at startup.
50When invoked, the hook function
51.Fa fn
52will be passed
53.Fa arg
54as its only argument.
55.Pp
56The
57.Fn startuphook_disestablish
58function removes the hook described by the opaque pointer
59.Fa cookie
60from the list of hooks to be invoked at startup.
61If
62.Fa cookie
63is invalid, the result of
64.Fn startuphook_disestablish
65is undefined.
66.Pp
67Startup hooks should be used to perform one-time activities
68that must happen immediately before the root and swap devices
69are configured, but after normal device autoconfiguration.
70.Pp
71Startup hooks are, like shutdown hooks, implemented via the more general
72.Xr dohooks 9
73API.
74.Sh RETURN VALUES
75If successful,
76.Fn startuphook_establish
77returns an opaque pointer describing the newly established
78startup hook.
79Otherwise, it returns
80.Dv NULL .
81.Sh EXAMPLES
82It may be appropriate to use a startup hook to provide potential root or
83swap devices that have delayed configuration.
84The
85.Xr iop 4
86shows an example of this usage.
87.Sh SEE ALSO
88.Xr dohooks 9 ,
89.Xr doshutdownhooks 9 ,
90.Xr dostartuphooks 9
91.Sh BUGS
92The names are clumsy, at best.
93