Home | History | Annotate | Download | only in kern

Lines Matching refs:hd

96 	struct hook_desc *hd;
100 hd = malloc(sizeof(*hd), M_DEVBUF, M_NOWAIT);
101 if (hd != NULL) {
104 hd->hk_fn = fn;
105 hd->hk_arg = arg;
106 LIST_INSERT_HEAD(list, hd, hk_list);
111 return (hd);
121 struct hook_desc *hd;
123 LIST_FOREACH(hd, list, hk_list) {
124 if (hd == vhook)
128 if (hd == NULL)
140 struct hook_desc *hd;
142 while ((hd = LIST_FIRST(list)) != NULL) {
143 LIST_REMOVE(hd, hk_list);
144 free(hd, M_DEVBUF);
151 struct hook_desc *hd;
157 LIST_FOREACH(hd, list, hk_list) {
158 __FPTRCAST(void (*)(struct proc *, void *), *hd->hk_fn)(p,
159 hd->hk_arg);
247 struct hook_desc *hd;
249 LIST_FOREACH(hd, &mountroothook_list, hk_list) {
250 if (hd->hk_arg == therootdev) {
251 (*hd->hk_fn)(hd->hk_arg);
330 struct hook_desc *hd;
335 LIST_FOREACH(hd, &forkhook_list, hk_list) {
336 __FPTRCAST(void (*)(struct proc *, struct proc *), *hd->hk_fn)
362 struct hook_desc *hd;
364 LIST_FOREACH(hd, &critpollhook_list, hk_list) {
365 (*hd->hk_fn)(hd->hk_arg);
479 struct hook_desc *hd;
483 while ((hd = LIST_FIRST(&l->hl_list)) != NULL) {
484 LIST_REMOVE(hd, hk_list);
485 kmem_free(hd, sizeof(*hd));
496 struct hook_desc *hd, *nexthd;
511 LIST_FOREACH(hd, &l->hl_list, hk_list) {
512 if (hd->hk_fn == NULL)
515 fn = hd->hk_fn;
516 arg = hd->hk_arg;
517 l->hl_active_hk = hd;
529 if (hd->hk_fn == NULL) {
545 LIST_FOREACH_SAFE(hd, &l->hl_list, hk_list, nexthd) {
546 if (hd->hk_fn == NULL) {
547 LIST_REMOVE(hd, hk_list);
548 kmem_free(hd, sizeof(*hd));
562 struct hook_desc *hd;
564 hd = kmem_zalloc(sizeof(*hd), KM_SLEEP);
565 hd->hk_fn = fn;
566 hd->hk_arg = arg;
569 LIST_INSERT_HEAD(&l->hl_list, hd, hk_list);
572 return hd;
576 simplehook_disestablish(khook_list_t *l, khook_t *hd, kmutex_t *lock)
586 if (hd == hd0)
591 panic("hook_disestablish: hook %p not established", hd);
596 LIST_REMOVE(hd, hk_list);
597 kmem_free(hd, sizeof(*hd));
602 /* remove callback. hd will be removed in dohooks */
603 hd->hk_fn = NULL;
604 hd->hk_arg = NULL;
607 if (l->hl_active_hk == hd &&