Lines Matching defs:head

181 pfil_mem_in(struct pfil_head *head, void *mem, u_int len, struct ifnet *ifp,
185 return (pfil_mem_common(&head->head_in, mem, len, PFIL_IN, ifp, m));
189 pfil_mem_out(struct pfil_head *head, void *mem, u_int len, struct ifnet *ifp,
193 return (pfil_mem_common(&head->head_out, mem, len, PFIL_OUT, ifp, m));
226 pfil_mbuf_in(struct pfil_head *head, struct mbuf **m, struct ifnet *ifp,
230 return (pfil_mbuf_common(&head->head_in, m, ifp, PFIL_IN, inp));
234 pfil_mbuf_out(struct pfil_head *head, struct mbuf **m, struct ifnet *ifp,
238 return (pfil_mbuf_common(&head->head_out, m, ifp, PFIL_OUT, inp));
242 pfil_mbuf_fwd(struct pfil_head *head, struct mbuf **m, struct ifnet *ifp,
246 return (pfil_mbuf_common(&head->head_out, m, ifp, PFIL_OUT | PFIL_FWD, inp));
256 struct pfil_head *head, *list;
260 head = malloc(sizeof(struct pfil_head), M_PFIL, M_WAITOK);
262 head->head_nhooksin = head->head_nhooksout = 0;
263 head->head_flags = pa->pa_flags;
264 head->head_type = pa->pa_type;
265 head->head_name = pa->pa_headname;
266 CK_STAILQ_INIT(&head->head_in);
267 CK_STAILQ_INIT(&head->head_out);
272 printf("pfil: duplicate head \"%s\"\n",
275 LIST_INSERT_HEAD(&V_pfil_head_list, head, head_list);
278 return (head);
336 pfil_unlink(struct pfil_link_args *pa, pfil_head_t head, pfil_hook_t hook)
343 in = pfil_link_remove(&head->head_in, hook);
345 head->head_nhooksin--;
351 out = pfil_link_remove(&head->head_out, hook);
353 head->head_nhooksout--;
375 struct pfil_head *head;
392 head = pa->pa_head;
394 LIST_FOREACH(head, &V_pfil_head_list, head_list)
395 if (strcmp(pa->pa_headname, head->head_name) == 0)
404 if (head == NULL || hook == NULL) {
410 return (pfil_unlink(pa, head, hook));
412 if (head->head_type != hook->hook_type ||
413 ((hook->hook_flags & pa->pa_flags) & ~head->head_flags)) {
419 CK_STAILQ_FOREACH(link, &head->head_in, link_chain)
425 CK_STAILQ_FOREACH(link, &head->head_out, link_chain)
438 CK_STAILQ_INSERT_TAIL(&head->head_in, in, link_chain);
440 CK_STAILQ_INSERT_HEAD(&head->head_in, in, link_chain);
442 head->head_nhooksin++;
451 CK_STAILQ_INSERT_HEAD(&head->head_out, out, link_chain);
453 CK_STAILQ_INSERT_TAIL(&head->head_out, out, link_chain);
455 head->head_nhooksout++;
483 struct pfil_head *head;
487 LIST_FOREACH(head, &V_pfil_head_list, head_list) {
489 in = pfil_link_remove(&head->head_in, hook);
491 head->head_nhooksin--;
495 out = pfil_link_remove(&head->head_out, hook);
497 head->head_nhooksout--;
587 struct pfil_head *head;
597 LIST_FOREACH(head, &V_pfil_head_list, head_list) {
599 nhooks += head->head_nhooksin + head->head_nhooksout;
614 LIST_FOREACH(head, &V_pfil_head_list, head_list) {
616 hk + head->head_nhooksin + head->head_nhooksout > nhooks) {
622 strlcpy(iohead[hd].pio_name, head->head_name,
624 iohead[hd].pio_nhooksin = head->head_nhooksin;
625 iohead[hd].pio_nhooksout = head->head_nhooksout;
626 iohead[hd].pio_type = head->head_type;
627 CK_STAILQ_FOREACH(link, &head->head_in, link_chain) {
636 CK_STAILQ_FOREACH(link, &head->head_out, link_chain) {