diff options
author | jkim <jkim@FreeBSD.org> | 2008-08-18 18:59:33 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2008-08-18 18:59:33 +0000 |
commit | 137ba6a2385b32d5d9884b675796cb1f79f233c9 (patch) | |
tree | 63e735d7c3751dfcf9d460fb513fe5fb008d5671 /sys/amd64 | |
parent | adc2f6a5dab4ec90dc49720f17ae81c65aefebc7 (diff) | |
download | FreeBSD-src-137ba6a2385b32d5d9884b675796cb1f79f233c9.zip FreeBSD-src-137ba6a2385b32d5d9884b675796cb1f79f233c9.tar.gz |
- Make these files compilable on user land.
- Update copyrights and fix style(9).
Diffstat (limited to 'sys/amd64')
-rw-r--r-- | sys/amd64/amd64/bpf_jit_machdep.c | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/sys/amd64/amd64/bpf_jit_machdep.c b/sys/amd64/amd64/bpf_jit_machdep.c index 62436b9..90eb735 100644 --- a/sys/amd64/amd64/bpf_jit_machdep.c +++ b/sys/amd64/amd64/bpf_jit_machdep.c @@ -32,16 +32,20 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); +#ifdef _KERNEL #include "opt_bpf.h" - #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> -#include <sys/types.h> #include <sys/socket.h> #include <sys/malloc.h> - #include <net/if.h> +#else +#include <stdlib.h> +#endif + +#include <sys/types.h> + #include <net/bpf.h> #include <net/bpf_jitter.h> @@ -53,7 +57,7 @@ bpf_filter_func bpf_jit_compile(struct bpf_insn *, u_int, int *); * emit routine to update the jump table */ static void -emit_length(bpf_bin_stream *stream, u_int value, u_int len) +emit_length(bpf_bin_stream *stream, __unused u_int value, u_int len) { (stream->refs)[stream->bpf_pc] += len; @@ -108,8 +112,12 @@ bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem) return (NULL); /* Allocate the reference table for the jumps */ +#ifdef _KERNEL stream.refs = (u_int *)malloc((nins + 1) * sizeof(u_int), M_BPFJIT, M_NOWAIT); +#else + stream.refs = (u_int *)malloc((nins + 1) * sizeof(u_int)); +#endif if (stream.refs == NULL) return (NULL); @@ -141,7 +149,11 @@ bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem) switch (ins->code) { default: +#ifdef _KERNEL return (NULL); +#else + abort(); +#endif case BPF_RET|BPF_K: MOVid(ins->k, EAX); @@ -450,11 +462,19 @@ bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem) if (pass == 2) break; +#ifdef _KERNEL stream.ibuf = (char *)malloc(stream.cur_ip, M_BPFJIT, M_NOWAIT); if (stream.ibuf == NULL) { free(stream.refs, M_BPFJIT); return (NULL); } +#else + stream.ibuf = (char *)malloc(stream.cur_ip); + if (stream.ibuf == NULL) { + free(stream.refs); + return (NULL); + } +#endif /* * modify the reference table to contain the offsets and @@ -475,7 +495,11 @@ bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem) * the reference table is needed only during compilation, * now we can free it */ +#ifdef _KERNEL free(stream.refs, M_BPFJIT); +#else + free(stream.refs); +#endif return ((bpf_filter_func)stream.ibuf); } |