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