Lines Matching refs:ent

189 	sof_entry_t *ent = NULL;  in sof_setsockopt_impl()  local
218 ent = fil->spf_filter; in sof_setsockopt_impl()
219 ASSERT(ent->sofe_flags & SOFEF_PROG); in sof_setsockopt_impl()
221 if (strncmp(ent->sofe_name, (const char *)optval, in sof_setsockopt_impl()
230 inst = sof_instance_create(ent, so); in sof_setsockopt_impl()
241 if (ent->sofe_mod == NULL && in sof_setsockopt_impl()
242 (error = sof_entry_load_module(ent)) != 0) { in sof_setsockopt_impl()
248 ASSERT(ent->sofe_mod != NULL); in sof_setsockopt_impl()
249 inst->sofi_ops = &ent->sofe_mod->sofm_ops; in sof_setsockopt_impl()
283 ent = inst->sofi_filter; in sof_setsockopt_impl()
284 if (strncmp(ent->sofe_name, (const char *)optval, in sof_setsockopt_impl()
538 sof_entry_t *ent = inst->sofi_filter; in sof_sonode_autoattach_filters() local
545 if (ent->sofe_mod == NULL && in sof_sonode_autoattach_filters()
546 (error = sof_entry_load_module(ent)) != 0) in sof_sonode_autoattach_filters()
550 ASSERT(ent->sofe_mod != NULL); in sof_sonode_autoattach_filters()
551 inst->sofi_ops = &ent->sofe_mod->sofm_ops; in sof_sonode_autoattach_filters()
742 sof_instance_create(sof_entry_t *ent, struct sonode *so) in sof_instance_create() argument
749 sof_entry_hold(ent); in sof_instance_create()
750 inst->sofi_filter = ent; in sof_instance_create()
802 sof_entry_t *ent; in sof_entry_find() local
804 for (ent = list_head(&sof_entry_list); ent != NULL; in sof_entry_find()
805 ent = list_next(&sof_entry_list, ent)) { in sof_entry_find()
806 if (strncmp(ent->sofe_name, name, SOF_MAXNAMELEN) == 0) in sof_entry_find()
807 return (ent); in sof_entry_find()
813 sof_entry_free(sof_entry_t *ent) in sof_entry_free() argument
815 ASSERT(ent->sofe_refcnt == 0); in sof_entry_free()
816 ASSERT(!list_link_active(&ent->sofe_node)); in sof_entry_free()
818 if (ent->sofe_hintarg != NULL) { in sof_entry_free()
819 ASSERT(ent->sofe_hint == SOF_HINT_BEFORE || in sof_entry_free()
820 ent->sofe_hint == SOF_HINT_AFTER); in sof_entry_free()
821 kmem_free(ent->sofe_hintarg, strlen(ent->sofe_hintarg) + 1); in sof_entry_free()
822 ent->sofe_hintarg = NULL; in sof_entry_free()
824 if (ent->sofe_socktuple_cnt > 0) { in sof_entry_free()
825 ASSERT(ent->sofe_socktuple != NULL); in sof_entry_free()
826 kmem_free(ent->sofe_socktuple, in sof_entry_free()
827 sizeof (sof_socktuple_t) * ent->sofe_socktuple_cnt); in sof_entry_free()
828 ent->sofe_socktuple = NULL; in sof_entry_free()
829 ent->sofe_socktuple_cnt = 0; in sof_entry_free()
831 sof_entry_kstat_destroy(ent); in sof_entry_free()
833 mutex_destroy(&ent->sofe_lock); in sof_entry_free()
834 kmem_free(ent, sizeof (sof_entry_t)); in sof_entry_free()
840 sof_entry_t *ent = ksp->ks_private; in sof_entry_kstat_update() local
845 ent->sofe_kstat.sofek_nactive.value.ui64 = ent->sofe_refcnt; in sof_entry_kstat_update()
854 sof_entry_kstat_create(sof_entry_t *ent) in sof_entry_kstat_create() argument
858 (void) snprintf(name, sizeof (name), "filter_%s", ent->sofe_name); in sof_entry_kstat_create()
859 ent->sofe_ksp = kstat_create("sockfs", 0, name, "misc", in sof_entry_kstat_create()
864 if (ent->sofe_ksp == NULL) in sof_entry_kstat_create()
867 kstat_named_init(&ent->sofe_kstat.sofek_nactive, "nactive", in sof_entry_kstat_create()
869 kstat_named_init(&ent->sofe_kstat.sofek_tot_active_attach, in sof_entry_kstat_create()
871 kstat_named_init(&ent->sofe_kstat.sofek_tot_passive_attach, in sof_entry_kstat_create()
873 kstat_named_init(&ent->sofe_kstat.sofek_ndeferred, "ndeferred", in sof_entry_kstat_create()
875 kstat_named_init(&ent->sofe_kstat.sofek_attach_failures, in sof_entry_kstat_create()
878 ent->sofe_ksp->ks_data = &ent->sofe_kstat; in sof_entry_kstat_create()
879 ent->sofe_ksp->ks_update = sof_entry_kstat_update; in sof_entry_kstat_create()
880 ent->sofe_ksp->ks_private = ent; in sof_entry_kstat_create()
881 kstat_install(ent->sofe_ksp); in sof_entry_kstat_create()
890 sof_entry_kstat_destroy(sof_entry_t *ent) in sof_entry_kstat_destroy() argument
892 if (ent->sofe_ksp != NULL) { in sof_entry_kstat_destroy()
893 kstat_delete(ent->sofe_ksp); in sof_entry_kstat_destroy()
894 ent->sofe_ksp = NULL; in sof_entry_kstat_destroy()
899 sof_entry_hold(sof_entry_t *ent) in sof_entry_hold() argument
901 mutex_enter(&ent->sofe_lock); in sof_entry_hold()
902 ent->sofe_refcnt++; in sof_entry_hold()
903 mutex_exit(&ent->sofe_lock); in sof_entry_hold()
912 sof_entry_rele(sof_entry_t *ent) in sof_entry_rele() argument
914 mutex_enter(&ent->sofe_lock); in sof_entry_rele()
915 if (--ent->sofe_refcnt == 0) { in sof_entry_rele()
916 sof_module_t *mod = ent->sofe_mod; in sof_entry_rele()
917 ent->sofe_mod = NULL; in sof_entry_rele()
918 if (ent->sofe_flags & SOFEF_CONDEMED) { in sof_entry_rele()
919 mutex_exit(&ent->sofe_lock); in sof_entry_rele()
920 sof_entry_free(ent); in sof_entry_rele()
922 mutex_exit(&ent->sofe_lock); in sof_entry_rele()
927 mutex_exit(&ent->sofe_lock); in sof_entry_rele()
935 sof_entry_load_module(sof_entry_t *ent) in sof_entry_load_module() argument
937 sof_module_t *mod = sof_module_hold_by_name(ent->sofe_name, in sof_entry_load_module()
938 ent->sofe_modname); in sof_entry_load_module()
943 mutex_enter(&ent->sofe_lock); in sof_entry_load_module()
945 ASSERT(ent->sofe_mod == mod || ent->sofe_mod == NULL); in sof_entry_load_module()
946 if (ent->sofe_mod != NULL) { in sof_entry_load_module()
947 mutex_exit(&ent->sofe_lock); in sof_entry_load_module()
950 ent->sofe_mod = mod; in sof_entry_load_module()
951 mutex_exit(&ent->sofe_lock); in sof_entry_load_module()
963 sof_entry_add(sof_entry_t *ent) in sof_entry_add() argument
972 if (sof_entry_find(ent->sofe_name) != NULL) { in sof_entry_add()
978 if (sof_entry_kstat_create(ent) != 0) { in sof_entry_add()
986 if ((error = sockparams_new_filter(ent)) != 0) { in sof_entry_add()
987 sof_entry_kstat_destroy(ent); in sof_entry_add()
994 list_insert_tail(&sof_entry_list, ent); in sof_entry_add()
1006 sof_entry_t *ent; in sof_entry_remove_by_name() local
1009 if ((ent = sof_entry_find(name)) == NULL) { in sof_entry_remove_by_name()
1013 list_remove(&sof_entry_list, ent); in sof_entry_remove_by_name()
1014 sockparams_filter_cleanup(ent); in sof_entry_remove_by_name()
1015 sof_entry_kstat_destroy(ent); in sof_entry_remove_by_name()
1018 return (ent); in sof_entry_remove_by_name()
1029 sof_entry_proc_sockparams(sof_entry_t *ent, struct sockparams *sp) in sof_entry_proc_sockparams() argument
1032 sof_socktuple_t *t = ent->sofe_socktuple; in sof_entry_proc_sockparams()
1039 for (i = 0; i < ent->sofe_socktuple_cnt; i++) { in sof_entry_proc_sockparams()
1046 if (i == ent->sofe_socktuple_cnt) in sof_entry_proc_sockparams()
1053 new->spf_filter = ent; in sof_entry_proc_sockparams()
1054 if (ent->sofe_flags & SOFEF_PROG) { in sof_entry_proc_sockparams()
1059 ASSERT(ent->sofe_flags & SOFEF_AUTO); in sof_entry_proc_sockparams()
1064 switch (ent->sofe_hint) { in sof_entry_proc_sockparams()
1082 if (strncmp(ent->sofe_hintarg, in sof_entry_proc_sockparams()
1090 if (ent->sofe_hint == SOF_HINT_BEFORE) { in sof_entry_proc_sockparams()
1153 sof_entry_t *ent; in sof_sockparams_init() local
1157 for (ent = list_head(&sof_entry_list); ent != NULL; in sof_sockparams_init()
1158 ent = list_next(&sof_entry_list, ent)) { in sof_sockparams_init()
1159 if (sof_entry_proc_sockparams(ent, sp) != 0) { in sof_sockparams_init()
1170 sof_module_t *ent; in sof_module_find() local
1174 for (ent = list_head(&sof_module_list); ent != NULL; in sof_module_find()
1175 ent = list_next(&sof_module_list, ent)) in sof_module_find()
1176 if (strcmp(ent->sofm_name, name) == 0) in sof_module_find()
1177 return (ent); in sof_module_find()