From owner-svn-soc-all@FreeBSD.ORG Fri Jul 18 13:54:31 2014 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id F1A234A9 for ; Fri, 18 Jul 2014 13:54:31 +0000 (UTC) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D292426E4 for ; Fri, 18 Jul 2014 13:54:31 +0000 (UTC) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6IDsV2T088721 for ; Fri, 18 Jul 2014 13:54:31 GMT (envelope-from dpl@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.14.8/8.14.8/Submit) id s6IDsUMX088697 for svn-soc-all@FreeBSD.org; Fri, 18 Jul 2014 13:54:30 GMT (envelope-from dpl@FreeBSD.org) Date: Fri, 18 Jul 2014 13:54:30 GMT Message-Id: <201407181354.s6IDsUMX088697@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to dpl@FreeBSD.org using -f From: dpl@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r271079 - in soc2014/dpl/netmap-ipfwjit: . sys/netpfil/ipfw MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jul 2014 13:54:32 -0000 Author: dpl Date: Fri Jul 18 13:54:29 2014 New Revision: 271079 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=271079 Log: Modularized the code and modified Makefiles, there's "only" all the LLVM stuff left. Added: soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/ip_fw2.c - copied, changed from r271013, soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/ip_fw2.cc soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/jit.cc soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/jit.h Deleted: soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/ip_fw2.cc Modified: soc2014/dpl/netmap-ipfwjit/Makefile soc2014/dpl/netmap-ipfwjit/Makefile.kipfw Modified: soc2014/dpl/netmap-ipfwjit/Makefile ============================================================================== --- soc2014/dpl/netmap-ipfwjit/Makefile Fri Jul 18 12:51:35 2014 (r271078) +++ soc2014/dpl/netmap-ipfwjit/Makefile Fri Jul 18 13:54:29 2014 (r271079) @@ -26,7 +26,7 @@ clean: -@rm -rf $(OBJDIR) kipfw @(cd ipfw && $(MAKE) clean ) - @rm ./ip_fw_rules.bc + @rm -f ./ip_fw_rules.bc tgz: @$(MAKE) clean Modified: soc2014/dpl/netmap-ipfwjit/Makefile.kipfw ============================================================================== --- soc2014/dpl/netmap-ipfwjit/Makefile.kipfw Fri Jul 18 12:51:35 2014 (r271078) +++ soc2014/dpl/netmap-ipfwjit/Makefile.kipfw Fri Jul 18 13:54:29 2014 (r271079) @@ -136,8 +136,7 @@ EFILES = $(foreach i,$(EDIRS),$(subst $(empty) , $(i)/, $(EFILES_$(i): = ))) BCFLAGS=-emit-llvm -c -CXX=clang++ -CXXFLAGS= $(CFLAGS) `llvm-config-devel --cxxflags --libs jit support` +CXXFLAGS= `llvm-config-devel --cxxflags --libs jit support` include_e: -@echo "Building $(OBJPATH)/include_e ..." @@ -149,13 +148,14 @@ $(IPFW_OBJS) : ../extra/glue.h ip_fw2.o ip_dummynet.o: # EFLAGS= -include missing.h +ip_fw2.o: jit.o radix.o:# CFLAGS += -U_KERNEL # session.o: CFLAGS = -O2 nm_util.o: CFLAGS = -O2 -Wall -Werror $(NETMAP_FLAGS) -$(MOD): $(IPFW_OBJS) ../ip_fw_rules.bc +$(MOD): $(IPFW_OBJS) ../ip_fw_rules.bc jit.o $(MSG) " LD $@" $(HIDE)$(CC) -o $@ $^ $(LIBS) @@ -163,9 +163,8 @@ ../ip_fw_rules.bc: @$(CC) $(CFLAGS) $(BCFLAGS) -o ../ip_fw_rules.bc ../sys/netpfil/ipfw/ip_fw_rules.h -ip_fw2.o: ip_fw2.cc - @echo "Building ip_fw2.cc" - clang++ $(CXXFLAGS) ../sys/netpfil/ipfw/ip_fw2.cc -o ./ip_fw2.o +jit.o: jit.cc + @clang++ $(CXXFLAGS) ../sys/netpfil/ipfw/jit.cc -o ./jit.o clean: -rm -f *.o $(DN) $(MOD) Copied and modified: soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/ip_fw2.c (from r271013, soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/ip_fw2.cc) ============================================================================== --- soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/ip_fw2.cc Thu Jul 17 09:48:34 2014 (r271013, copy source) +++ soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/ip_fw2.c Fri Jul 18 13:54:29 2014 (r271079) @@ -39,6 +39,7 @@ #include "opt_inet6.h" #include "opt_ipsec.h" #include "ip_fw_rules.h" +#include "jit.h" #include #include @@ -230,6 +231,9 @@ static inline void rule_nat(struct ip_fw_args *, int, struct ip_fw_chain *, ipfw_insn *, struct mbuf *, uint32_t, int *, int *, int *); static inline void rule_reass(struct ip_fw *, int, struct ip_fw_chain *, int, struct ip *, struct ip_fw_args *, struct mbuf *, int *, int *, int *); +/* JIT compiling API */ +static void ipfw_jit_init(); + /* * Each rule belongs to one of 32 different sets (0..31). * The variable set_disable contains one bit per set. @@ -1319,20 +1323,7 @@ default_fw_tables = IPFW_TABLES_MAX; ipfw_log_bpf(1); /* init */ - -#include -#include -#include - -using namespace llvm; - - /* JIT */ - Module *Mod; - LLVMContext &C; - /* We load the bc for JIT compilation */ - char *buffer; - MemoryBuffer::getFile("ip_fw_rules.bc", buffer); - Module *Mod = ParseBitcodeFile(buffer.get(), C); + ipfw_jit_init(); return (error); } Added: soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/jit.cc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/jit.cc Fri Jul 18 13:54:29 2014 (r271079) @@ -0,0 +1,24 @@ +/* JIT compilation code */ +#include +#include +#include +#include +#include +#include + +using namespace llvm; + +ErrorOr ptr; +Module *mod; +LLVMContext con; +LLVMContext &c = con; +OwningPtr buffer; + +static void +ipfw_jit_init() +{ + ptr = mod; + /* We load the bc for JIT compilation */ + MemoryBuffer::getFile("ip_fw_rules.bc", buffer); + ptr = parseBitcodeFile(buffer.get(), c); +} Added: soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/jit.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/jit.h Fri Jul 18 13:54:29 2014 (r271079) @@ -0,0 +1,2 @@ + +static void ipfw_jit_init();