startuphook_establish, startuphook_disestablishadd or remove a startup hook

#include <sys/types.h>
#include <sys/systm.h>

void *
startuphook_establish(void (*fn)(void *), void *arg);

startuphook_disestablish(void *cookie);

The () 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 () 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 implemented via the more general dohooks(9) API.

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

dohooks(9), dostartuphooks(9)

The names are clumsy, at best.

December 10, 2014 OpenBSD 7.5