Lines Matching refs:hook
86 * If we wait too long for an interrupt-driven config hook to return, print
124 * If hook processing is already active, any newly
178 * Register a hook that will be called after "cold"
183 config_intrhook_establish(struct intr_config_hook *hook)
190 if (hook_entry == hook)
195 "already established hook.\n");
198 STAILQ_INSERT_TAIL(&intr_config_hook_list, hook, ich_links);
200 next_to_notify = hook;
201 hook->ich_state = ICHS_QUEUED;
206 * to be re-entered at the time a hook is established.
214 * Register a hook function that is automatically unregistered after it runs.
230 config_intrhook_disestablish_locked(struct intr_config_hook *hook)
235 if (hook_entry == hook)
239 "unestablished hook");
241 if (next_to_notify == hook)
242 next_to_notify = STAILQ_NEXT(hook, ich_links);
243 STAILQ_REMOVE(&intr_config_hook_list, hook, intr_config_hook, ich_links);
247 hook->ich_state = ICHS_DONE;
252 config_intrhook_disestablish(struct intr_config_hook *hook)
255 config_intrhook_disestablish_locked(hook);
260 config_intrhook_drain(struct intr_config_hook *hook)
265 * The config hook has completed, so just return.
267 if (hook->ich_state == ICHS_DONE) {
273 * The config hook hasn't started running, just call disestablish.
275 if (hook->ich_state == ICHS_QUEUED) {
276 config_intrhook_disestablish_locked(hook);
282 * The config hook is running, so wait for it to complete and return.
284 while (hook->ich_state != ICHS_DONE) {
307 db_printf("hook: %p at %s+%#lx arg: %p\n",
311 db_printf("hook: %p at ??+?? arg %p\n",