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;

Reply via email to