Lines Matching defs:inst

191 	sof_instance_t *inst;
208 for (inst = so->so_filter_top; inst != NULL;
209 inst = inst->sofi_next) {
210 if (strncmp(inst->sofi_filter->sofe_name,
230 inst = sof_instance_create(ent, so);
234 if (inst == NULL)
243 sof_instance_destroy(inst);
249 inst->sofi_ops = &ent->sofe_mod->sofm_ops;
251 SOF_STAT_ADD(inst, tot_active_attach, 1);
252 if (inst->sofi_ops->sofop_attach_active != NULL) {
253 rval = inst->sofi_ops->sofop_attach_active(
254 (sof_handle_t)inst, so->so_family, so->so_type,
255 so->so_protocol, cr, &inst->sofi_cookie);
268 SOF_STAT_ADD(inst, attach_failures, 1);
274 sof_instance_destroy(inst);
280 for (inst = so->so_filter_top; inst != NULL;
281 inst = inst->sofi_next) {
283 ent = inst->sofi_filter;
288 if (inst == NULL)
292 if (inst->sofi_filter->sofe_flags & SOFEF_AUTO)
295 if (inst->sofi_ops->sofop_detach != NULL)
296 inst->sofi_ops->sofop_detach((sof_handle_t)inst,
297 inst->sofi_cookie, cr);
298 sof_instance_destroy(inst);
342 sof_instance_t *inst;
356 for (inst = so->so_filter_top, cnt = 0; inst != NULL;
357 inst = inst->sofi_next)
359 for (inst = so->so_filter_top, i = 0;
360 inst != NULL && (i+1) * sizeof (*fi) <= maxsz;
361 inst = inst->sofi_next, i++) {
363 (inst->sofi_filter->sofe_flags & SOFEF_AUTO) ?
365 if (inst->sofi_flags & SOFIF_BYPASS)
368 inst->sofi_filter->sofe_name, FILNAME_MAX);
407 sof_instance_t *inst, *pinst;
451 inst = sof_instance_create(pinst->sofi_filter, so);
452 if (inst == NULL) {
461 inst->sofi_ops = pinst->sofi_ops;
463 SOF_STAT_ADD(inst, tot_passive_attach, 1);
464 if (inst->sofi_ops->sofop_attach_passive != NULL) {
465 rval = inst->sofi_ops->sofop_attach_passive(
466 (sof_handle_t)inst,
470 &inst->sofi_cookie);
474 inst->sofi_flags |= SOFIF_DEFER;
479 SOF_STAT_ADD(inst, ndeferred, 1);
481 sof_instance_destroy(inst);
483 SOF_STAT_ADD(inst, attach_failures, 1);
513 sof_instance_t *inst;
536 inst = so->so_filter_top;
537 while (inst != NULL) {
538 sof_entry_t *ent = inst->sofi_filter;
539 sof_instance_t *ninst = inst->sofi_next;
551 inst->sofi_ops = &ent->sofe_mod->sofm_ops;
553 SOF_STAT_ADD(inst, tot_active_attach, 1);
554 if (inst->sofi_ops->sofop_attach_active != NULL) {
555 rval = inst->sofi_ops->sofop_attach_active(
556 (sof_handle_t)inst, so->so_family, so->so_type,
557 so->so_protocol, cr, &inst->sofi_cookie);
562 sof_instance_destroy(inst);
565 SOF_STAT_ADD(inst, attach_failures, 1);
573 inst = ninst;
578 inst = so->so_filter_top;
580 ASSERT(inst != NULL);
587 sof_instance_t *t = inst->sofi_next;
588 sof_instance_destroy(inst);
589 inst = t;
590 } while (inst != NULL);
601 sof_instance_t *inst;
603 while ((inst = so->so_filter_top) != NULL) {
604 (inst->sofi_ops->sofop_detach)((sof_handle_t)inst,
605 inst->sofi_cookie, kcred);
606 sof_instance_destroy(inst);
617 sof_instance_t *inst;
619 for (inst = so->so_filter_bottom; inst != NULL;
620 inst = inst->sofi_prev) {
621 if (SOF_INTERESTED(inst, notify))
622 (inst->sofi_ops->sofop_notify)((sof_handle_t)inst,
623 inst->sofi_cookie, event, arg);
744 sof_instance_t *inst;
746 inst = kmem_zalloc(sizeof (sof_instance_t), KM_NOSLEEP);
747 if (inst == NULL)
750 inst->sofi_filter = ent;
751 inst->sofi_sonode = so;
753 inst->sofi_next = so->so_filter_top;
755 so->so_filter_top->sofi_prev = inst;
757 so->so_filter_bottom = inst;
758 so->so_filter_top = inst;
761 return (inst);
764 * Destroys the filter instance `inst' and unlinks it from the sonode.
770 sof_instance_destroy(sof_instance_t *inst)
772 struct sonode *so = inst->sofi_sonode;
774 ASSERT(inst->sofi_sonode != NULL);
775 ASSERT(inst->sofi_filter != NULL);
776 ASSERT(inst->sofi_prev != NULL || so->so_filter_top == inst);
777 ASSERT(inst->sofi_next != NULL || so->so_filter_bottom == inst);
779 if (inst->sofi_prev != NULL)
780 inst->sofi_prev->sofi_next = inst->sofi_next;
782 so->so_filter_top = inst->sofi_next;
784 if (inst->sofi_next != NULL)
785 inst->sofi_next->sofi_prev = inst->sofi_prev;
787 so->so_filter_bottom = inst->sofi_prev;
789 if (!(inst->sofi_flags & SOFIF_BYPASS)) {
793 if (inst->sofi_flags & SOFIF_DEFER)
794 SOF_STAT_ADD(inst, ndeferred, -1);
795 sof_entry_rele(inst->sofi_filter);
796 kmem_free(inst, sizeof (sof_instance_t));
1272 sof_instance_t *inst;
1277 for (inst = start; inst != NULL; inst = inst->sofi_next) {
1278 if (!SOF_INTERESTED(inst, data_out))
1280 mp = (inst->sofi_ops->sofop_data_out)((sof_handle_t)inst,
1281 inst->sofi_cookie, mp, msg, cr, &rval);
1282 DTRACE_PROBE2(filter__data, (sof_instance_t), inst,
1304 sof_instance_t *inst;
1314 for (inst = so->so_filter_bottom; inst != NULL;
1315 inst = inst->sofi_prev) {
1316 if (!SOF_INTERESTED(inst, data_in_proc))
1318 mp = (inst->sofi_ops->sofop_data_in_proc)(
1319 (sof_handle_t)inst, inst->sofi_cookie, mp,
1324 DTRACE_PROBE2(filter__data, (sof_instance_t), inst,
1382 sof_instance_t *inst;
1385 for (inst = so->so_filter_top; inst != NULL; inst = inst->sofi_next) {
1386 if (!SOF_INTERESTED(inst, accept))
1388 rval = (inst->sofi_ops->sofop_accept)((sof_handle_t)inst,
1389 inst->sofi_cookie, cr);
1390 DTRACE_PROBE2(filter__action, (sof_instance_t), inst,
1520 sof_instance_t *inst = (sof_instance_t *)handle;
1521 struct sonode *so = inst->sofi_sonode;
1525 if (!(inst->sofi_flags & SOFIF_DEFER)) {
1530 inst->sofi_flags &= ~SOFIF_DEFER;
1531 SOF_STAT_ADD(inst, ndeferred, -1);
1538 for (inst = so->so_filter_top; inst != NULL; inst = inst->sofi_next) {
1540 if (inst->sofi_flags & SOFIF_DEFER) {
1576 sof_instance_t *inst = (sof_instance_t *)handle;
1577 struct sonode *so = inst->sofi_sonode;
1580 if (!(inst->sofi_flags & SOFIF_BYPASS)) {
1581 inst->sofi_flags |= SOFIF_BYPASS;
1600 sof_instance_t *inst = (sof_instance_t *)handle;
1601 struct sonode *so = inst->sofi_sonode;
1605 inst->sofi_flags |= SOFIF_RCV_FLOWCTRL;
1610 inst->sofi_flags &= ~SOFIF_RCV_FLOWCTRL;
1611 for (inst = so->so_filter_top; inst != NULL;
1612 inst = inst->sofi_next) {
1614 if (inst->sofi_flags & SOFIF_RCV_FLOWCTRL) {
1638 sof_instance_t *inst = (sof_instance_t *)handle;
1639 struct sonode *so = inst->sofi_sonode;
1643 inst->sofi_flags |= SOFIF_SND_FLOWCTRL;
1646 inst->sofi_flags &= ~SOFIF_SND_FLOWCTRL;
1647 for (inst = so->so_filter_top; inst != NULL;
1648 inst = inst->sofi_next) {
1649 if (inst->sofi_flags & SOFIF_SND_FLOWCTRL) {
1686 sof_instance_t *inst = (sof_instance_t *)handle;
1688 return (atomic_cas_ptr(&inst->sofi_cookie, old, new));
1707 sof_instance_t *inst = (sof_instance_t *)handle;
1708 struct sonode *so = inst->sofi_sonode;
1720 error = so_sendmblk_impl(inst->sofi_sonode, msg, FNONBLOCK,
1721 kcred, &mp, inst->sofi_next, B_TRUE);
1760 sof_instance_t *inst = (sof_instance_t *)handle;
1765 avail = so_queue_msg_impl(inst->sofi_sonode, mp, len, flags, &error,
1766 NULL, inst->sofi_prev);
1788 sof_instance_t *inst = (sof_instance_t *)handle;
1792 so = inst->sofi_sonode;
1795 if (inst->sofi_next != NULL || inst->sofi_prev != NULL ||