STARTUPHOOK_ESTABLISH(9)

NAME
startuphook_establish, startuphook_disestablish - add or remove a startup hook

SYNOPSIS
#include <sys/types.h>
#include <sys/systm.h>
void *
startuphook_establish(void (*fn)(void *), void *arg);
void
startuphook_disestablish(void *cookie);

DESCRIPTION
The startuphook_establish() function adds fn to the list of hooks invoked by dostartuphooks(9) at startup. When invoked, the hook function fn will be passed arg as its only argument.

The startuphook_disestablish() function removes the hook described by the opaque pointer cookie from the list of hooks to be invoked at startup. If cookie is invalid, the result of startuphook_disestablish() is undefined.

Startup hooks should be used to perform one-time activities that must happen immediately before the root and swap devices are configured, but after normal device autoconfiguration.

Startup hooks are, like shutdown hooks, implemented via the more general dohooks(9) API.

RETURN VALUES
If successful, startuphook_establish() returns an opaque pointer describing the newly established startup hook. Otherwise, it returns NULL.

EXAMPLES
It may be appropriate to use a startup hook to provide potential root or swap devices that have delayed configuration. The iop(4) shows an example of this usage.

SEE ALSO
dohooks(9), doshutdownhooks(9), dostartuphooks(9)

BUGS
The names are clumsy, at best.