Lines Matching refs:hi
217 static void hook_int_free(hook_int_t *hi, netstackid_t);
231 hook_int_t *hi);
802 hook_int_t *hi; in hook_run() local
818 TAILQ_FOREACH(hi, &hei->hei_head, hi_entry) { in hook_run()
819 ASSERT(hi->hi_hook.h_func != NULL); in hook_run()
823 hook_int_t *, hi); in hook_run()
824 rval = (*hi->hi_hook.h_func)(token, info, hi->hi_hook.h_arg); in hook_run()
828 hook_int_t *, hi, in hook_run()
830 hi->hi_kstats.hook_hits.value.ui64++; in hook_run()
842 hook_int_t *, hi); in hook_run()
1862 hook_int_t *hi, *new; in hook_register() local
1902 hi = hook_find(hei, h); in hook_register()
1903 if (hi != NULL) { in hook_register()
1959 hook_int_t *hi; in hook_insert() local
1974 TAILQ_FOREACH(hi, head, hi_entry) { in hook_insert()
1975 hih = &hi->hi_hook; in hook_insert()
1979 TAILQ_INSERT_BEFORE(hi, new, hi_entry); in hook_insert()
1985 before = hi; in hook_insert()
1996 hi = TAILQ_FIRST(head); in hook_insert()
1997 if ((hi != NULL) && (hi->hi_hook.h_hint == HH_FIRST)) in hook_insert()
2003 hi = TAILQ_LAST(head, hook_int_head); in hook_insert()
2004 if ((hi != NULL) && (hi->hi_hook.h_hint == HH_LAST)) in hook_insert()
2010 hi = hook_find_byname(head, (char *)new->hi_hook.h_hintvalue); in hook_insert()
2011 if (hi == NULL) in hook_insert()
2014 if (hi->hi_hook.h_hint == HH_FIRST) in hook_insert()
2017 TAILQ_INSERT_BEFORE(hi, new, hi_entry); in hook_insert()
2021 hi = hook_find_byname(head, (char *)new->hi_hook.h_hintvalue); in hook_insert()
2022 if (hi == NULL) in hook_insert()
2025 if (hi->hi_hook.h_hint == HH_LAST) in hook_insert()
2028 TAILQ_INSERT_AFTER(head, hi, new, hi_entry); in hook_insert()
2052 hook_int_t *hi; in hook_insert_plain() local
2054 hi = TAILQ_FIRST(head); in hook_insert_plain()
2055 if (hi != NULL) { in hook_insert_plain()
2056 if (hi->hi_hook.h_hint == HH_LAST) { in hook_insert_plain()
2057 TAILQ_INSERT_BEFORE(hi, new, hi_entry); in hook_insert_plain()
2085 hook_int_t *hi; in hook_insert_afterbefore() local
2098 TAILQ_FOREACH(hi, head, hi_entry) { in hook_insert_afterbefore()
2099 h = &hi->hi_hook; in hook_insert_afterbefore()
2109 TAILQ_INSERT_AFTER(head, hi, new, hi_entry); in hook_insert_afterbefore()
2115 TAILQ_INSERT_BEFORE(hi, new, hi_entry); in hook_insert_afterbefore()
2123 TAILQ_INSERT_AFTER(head, hi, new, hi_entry); in hook_insert_afterbefore()
2129 TAILQ_INSERT_BEFORE(hi, new, hi_entry); in hook_insert_afterbefore()
2154 hook_int_t *hi; in hook_unregister() local
2171 hi = hook_find(hei, h); in hook_unregister()
2172 if (hi == NULL) { in hook_unregister()
2186 TAILQ_REMOVE(&hei->hei_head, hi, hi_entry); in hook_unregister()
2211 hook_int_free(hi, hfi->hfi_stack->hks_netstackid); in hook_unregister()
2231 hook_int_t *hi; in hook_find_byname() local
2233 TAILQ_FOREACH(hi, head, hi_entry) { in hook_find_byname()
2234 if (strcmp(hi->hi_hook.h_name, name) == 0) in hook_find_byname()
2235 return (hi); in hook_find_byname()
2327 hook_init_kstats(hook_family_int_t *hfi, hook_event_int_t *hei, hook_int_t *hi) in hook_init_kstats() argument
2345 hi->hi_ksname = (char *)kmem_zalloc(kslen, KM_SLEEP); in hook_init_kstats()
2346 (void) snprintf(hi->hi_ksname, kslen, "%s/%s", in hook_init_kstats()
2350 hi->hi_kstatp = kstat_create_netstack(hi->hi_ksname, 0, in hook_init_kstats()
2351 hi->hi_hook.h_name, "hook", KSTAT_TYPE_NAMED, in hook_init_kstats()
2352 sizeof (hi->hi_kstats) / sizeof (kstat_named_t), in hook_init_kstats()
2356 bcopy(&template, &hi->hi_kstats, sizeof (template)); in hook_init_kstats()
2357 hi->hi_kstats.hook_version.value.i32 = hi->hi_hook.h_version; in hook_init_kstats()
2358 hi->hi_kstats.hook_flags.value.ui32 = hi->hi_hook.h_flags; in hook_init_kstats()
2359 hi->hi_kstats.hook_hint.value.i32 = hi->hi_hook.h_hint; in hook_init_kstats()
2360 hi->hi_kstats.hook_position.value.i32 = 0; in hook_init_kstats()
2361 hi->hi_kstats.hook_hits.value.ui64 = 0; in hook_init_kstats()
2363 switch (hi->hi_hook.h_hint) { in hook_init_kstats()
2366 kstat_named_setstr(&(hi->hi_kstats.hook_hintvalue), in hook_init_kstats()
2367 (const char *)hi->hi_hook.h_hintvalue); in hook_init_kstats()
2370 kstat_named_setstr(&(hi->hi_kstats.hook_hintvalue), in hook_init_kstats()
2375 if (hi->hi_kstatp != NULL) { in hook_init_kstats()
2376 hi->hi_kstatp->ks_data = (void *)&hi->hi_kstats; in hook_init_kstats()
2377 hi->hi_kstatp->ks_private = in hook_init_kstats()
2379 hi->hi_kstatp->ks_data_size += in hook_init_kstats()
2380 KSTAT_NAMED_STR_BUFLEN(&(hi->hi_kstats.hook_hintvalue)) + 1; in hook_init_kstats()
2382 kstat_install(hi->hi_kstatp); in hook_init_kstats()
2399 hook_int_free(hook_int_t *hi, netstackid_t stackid) in hook_int_free() argument
2403 ASSERT(hi != NULL); in hook_int_free()
2406 if (hi->hi_hook.h_name != NULL) { in hook_int_free()
2407 kmem_free(hi->hi_hook.h_name, strlen(hi->hi_hook.h_name) + 1); in hook_int_free()
2409 if (hi->hi_ksname != NULL) { in hook_int_free()
2410 kmem_free(hi->hi_ksname, strlen(hi->hi_ksname) + 1); in hook_int_free()
2414 switch (hi->hi_hook.h_hint) { in hook_int_free()
2417 len = strlen((char *)hi->hi_hook.h_hintvalue); in hook_int_free()
2419 kmem_free((void *)hi->hi_hook.h_hintvalue, len + 1); in hook_int_free()
2425 if (hi->hi_kstatp != NULL) in hook_int_free()
2426 kstat_delete_netstack(hi->hi_kstatp, stackid); in hook_int_free()
2429 kmem_free(hi, sizeof (*hi)); in hook_int_free()