xref: /openbsd-src/share/man/man9/startuphook_establish.9 (revision b2ea75c1b17e1a9a339660e7ed45cd24946b230e)
1.\"	$OpenBSD: startuphook_establish.9,v 1.2 2001/07/28 00:09:24 mpech 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 July 27 2001
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.Ft void *
37.Fn startuphook_establish "void (*fn)(void *)" "void *arg"
38.Ft void
39.Fn startuphook_disestablish "void *cookie"
40.Sh DESCRIPTION
41The
42.Fn startuphook_establish
43function adds
44.Fa fn
45to the list of hooks invoked by
46.Xr dostartuphooks 9
47at startup.
48When invoked, the hook function
49.Fa fn
50will be passed
51.Fa arg
52as its only argument.
53.Pp
54The
55.Fn startuphook_disestablish
56function removes the hook described by the opaque pointer
57.Fa cookie
58from the list of hooks to be invoked at startup.
59If
60.Fa cookie
61is invalid, the result of
62.Fn startuphook_disestablish
63is undefined.
64.Pp
65Startup hooks should be used to perform one-time activities
66that must happen immediately before the root and swap devices
67are configured, but after normal device autoconfiguration.
68.Pp
69Startup hooks are, like shutdown hooks, implemented via the more general
70.Xr dohooks 9
71API.
72.Sh RETURN VALUES
73If successful,
74.Fn startuphook_establish
75returns an opaque pointer describing the newly established
76startup hook.
77Otherwise, it returns
78.Dv NULL .
79.Sh EXAMPLES
80It may be appropriate to use a startup hook to provide potential root or
81swap devices that have delayed configuration.
82The
83.Xr iop 4
84shows an example of this usage.
85.Sh SEE ALSO
86.Xr dohooks 9 ,
87.Xr doshutdownhooks 9 ,
88.Xr dostartuphooks 9
89.Sh BUGS
90The names are clumsy, at best.
91