Module Name: src Committed By: rmind Date: Sat Oct 5 22:38:52 UTC 2013
Modified Files: src/sys/net: bpf_filter.c Log Message: bpf_filter: re-use some code. No functional change intended. To generate a diff of this commit: cvs rdiff -u -r1.59 -r1.60 src/sys/net/bpf_filter.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/net/bpf_filter.c diff -u src/sys/net/bpf_filter.c:1.59 src/sys/net/bpf_filter.c:1.60 --- src/sys/net/bpf_filter.c:1.59 Thu Sep 19 00:48:48 2013 +++ src/sys/net/bpf_filter.c Sat Oct 5 22:38:52 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: bpf_filter.c,v 1.59 2013/09/19 00:48:48 rmind Exp $ */ +/* $NetBSD: bpf_filter.c,v 1.60 2013/10/05 22:38:52 rmind Exp $ */ /*- * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997 @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: bpf_filter.c,v 1.59 2013/09/19 00:48:48 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bpf_filter.c,v 1.60 2013/10/05 22:38:52 rmind Exp $"); #if 0 #if !(defined(lint) || defined(KERNEL)) @@ -197,8 +197,9 @@ bpf_filter(const struct bpf_insn *pc, co { uint32_t A, X, k; uint32_t mem[BPF_MEMWORDS]; - #ifdef _KERNEL + const struct mbuf * const m0 = (const struct mbuf *)p; + KASSERT(bc != NULL); #endif @@ -242,7 +243,7 @@ bpf_filter(const struct bpf_insn *pc, co if (buflen != 0) return 0; - A = m_xword((const struct mbuf *)p, k, &merr); + A = m_xword(m0, k, &merr); if (merr != 0) return 0; continue; @@ -261,7 +262,7 @@ bpf_filter(const struct bpf_insn *pc, co if (buflen != 0) return 0; - A = m_xhalf((const struct mbuf *)p, k, &merr); + A = m_xhalf(m0, k, &merr); if (merr != 0) return 0; continue; @@ -276,14 +277,11 @@ bpf_filter(const struct bpf_insn *pc, co k = pc->k; if (k >= buflen) { #ifdef _KERNEL - const struct mbuf *m; - int len; + int merr; if (buflen != 0) return 0; - m = (const struct mbuf *)p; - MINDEX(len, m, k); - A = mtod(m, u_char *)[k]; + A = m_xbyte(m0, k, &merr); continue; #else return 0; @@ -309,7 +307,7 @@ bpf_filter(const struct bpf_insn *pc, co if (buflen != 0) return 0; - A = m_xword((const struct mbuf *)p, k, &merr); + A = m_xword(m0, k, &merr); if (merr != 0) return 0; continue; @@ -329,7 +327,7 @@ bpf_filter(const struct bpf_insn *pc, co if (buflen != 0) return 0; - A = m_xhalf((const struct mbuf *)p, k, &merr); + A = m_xhalf(m0, k, &merr); if (merr != 0) return 0; continue; @@ -344,14 +342,11 @@ bpf_filter(const struct bpf_insn *pc, co k = X + pc->k; if (pc->k >= buflen || X >= buflen - pc->k) { #ifdef _KERNEL - const struct mbuf *m; - int len; + int merr; if (buflen != 0) return 0; - m = (const struct mbuf *)p; - MINDEX(len, m, k); - A = mtod(m, u_char *)[k]; + A = m_xbyte(m0, k, &merr); continue; #else return 0; @@ -364,14 +359,11 @@ bpf_filter(const struct bpf_insn *pc, co k = pc->k; if (k >= buflen) { #ifdef _KERNEL - const struct mbuf *m; - int len; + int merr; if (buflen != 0) return 0; - m = (const struct mbuf *)p; - MINDEX(len, m, k); - X = (mtod(m, char *)[k] & 0xf) << 2; + X = (m_xbyte(m0, k, &merr) & 0xf) << 2; continue; #else return 0;