DOHOOKS(9) | Kernel Developer's Manual | DOHOOKS(9)

# NAME

`dohooks` — run all hooks in a list

# SYNOPSIS

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

void
`dohooks`(struct hook_desc_head *head, int flags);

# DESCRIPTION

The `dohooks`() function invokes all hooks established using the hook_establish(9) function. Hooks are called in the order of the TAILQ that head points to, however hook_establish(9) can put the hooks either at the head or the tail of that queue, making it possible to call the hooks either in the order of establishment, or its reverse.

The flags can specify `HOOK_REMOVE` to remove already processed hooks from the hook list and `HOOK_FREE` to also free them. In most cases either no flags should be used or `HOOK_REMOVE` and `HOOK_FREE` at the same time, since just HOOK_REMOVE will drop the only reference to allocated memory and should only be used in situations where freeing memory would be illegal and unnecessary.

This function is used to implement the dostartuphooks(9) macro.

# SEE ALSO

dostartuphooks(9), hook_establish(9)

December 12, 2015 | Debian