Lines Matching refs:kif

146 	struct pfi_kif		*kif;
151 if ((kif = RB_FIND(pfi_ifhead, &pfi_ifs,
153 return (kif);
156 if ((kif = _MALLOC(sizeof (*kif), PFI_MTYPE, M_WAITOK|M_ZERO)) == NULL)
159 strlcpy(kif->pfik_name, kif_name, sizeof (kif->pfik_name));
160 kif->pfik_tzero = pf_calendar_time_second();
161 TAILQ_INIT(&kif->pfik_dynaddrs);
163 RB_INSERT(pfi_ifhead, &pfi_ifs, kif);
164 return (kif);
168 pfi_kif_ref(struct pfi_kif *kif, enum pfi_kif_refs what)
172 kif->pfik_rules++;
175 kif->pfik_states++;
183 pfi_kif_unref(struct pfi_kif *kif, enum pfi_kif_refs what)
185 if (kif == NULL)
192 if (kif->pfik_rules <= 0) {
196 kif->pfik_rules--;
199 if (kif->pfik_states <= 0) {
203 kif->pfik_states--;
209 if (kif->pfik_ifp != NULL || kif == pfi_all)
212 if (kif->pfik_rules || kif->pfik_states)
215 RB_REMOVE(pfi_ifhead, &pfi_ifs, kif);
216 _FREE(kif, PFI_MTYPE);
232 struct pfi_kif *kif;
240 if ((kif = pfi_kif_get(if_name)) == NULL)
244 kif->pfik_ifp = ifp;
245 ifp->if_pf_kif = kif;
248 pfi_kif_update(kif);
257 struct pfi_kif *kif;
261 if ((kif = (struct pfi_kif *)ifp->if_pf_kif) == NULL)
265 pfi_kif_update(kif);
268 kif->pfik_ifp = NULL;
272 pfi_kif_unref(kif, PFI_KIF_REF_NONE);
382 pfi_kif_update(struct pfi_kif *kif)
389 TAILQ_FOREACH(p, &kif->pfik_dynaddrs, entry)
396 struct pfi_kif *kif;
402 kif = dyn->pfid_kif;
407 pfi_table_update(kt, kif, dyn->pfid_net, dyn->pfid_iflags);
414 pfi_table_update(struct pfr_ktable *kt, struct pfi_kif *kif, int net, int flags)
420 if (kif->pfik_ifp != NULL)
421 pfi_instance_add(kif->pfik_ifp, net, flags);
582 struct pfi_kif *kif = (struct pfi_kif *)v;
587 pfi_kif_update(kif);