socsvn commit: r272267 - soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw
dpl at FreeBSD.org
dpl at FreeBSD.org
Tue Aug 12 11:05:17 UTC 2014
Author: dpl
Date: Tue Aug 12 11:05:16 2014
New Revision: 272267
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=272267
Log:
Added the pointer to struct types
Modified:
soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/jit.cc
Modified: soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/jit.cc
==============================================================================
--- soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/jit.cc Tue Aug 12 10:31:31 2014 (r272266)
+++ soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/jit.cc Tue Aug 12 11:05:16 2014 (r272267)
@@ -116,7 +116,7 @@
// Not pkg-filtering related funcs.
Function *printf;
- // Used structs
+ // Used structs.
StructType *ifnetTy;
StructType *in_addrTy;
StructType *ipTy;
@@ -129,6 +129,19 @@
StructType *mbufTy;
StructType *ucredTy;
+ // Pointer to structs type.
+ PointerType *ifnetTy;
+ PointerType *in_addrTy;
+ PointerType *ipTy;
+ PointerType *ip_fw_argsTy;
+ PointerType *ip_fw_chainTy;
+ PointerType *ip_fwTy;
+ PointerType *ip_fw_insnTy;
+ PointerType *ipfw_dyn_ruleTy;
+ PointerType *ipfw_insn_ifTy;
+ PointerType *mbufTy;
+ PointerType *ucredTy;
+
// Load the bc for JIT compilation.
Module *
loadbc(std::string name)
@@ -170,12 +183,27 @@
ip_fw_insnTy = mod->getTypeByName("_ip_fw_insn");
ipfw_insn_ifTy = mod->getTypeByName("_ipfw_insn_if");
mbufTy = mod->getTypeByName("mbuf");
-#ifndef __FreeBSD__
- ucredTy = mod->getTypeByName("bsd_ucred");
-#else
+#ifdef __FreeBSD__
ucredTy = mod->getTypeByName("ucred");
+#else
+ ucredTy = mod->getTypeByName("bsd_ucred");
#endif /* __FreeBSD__ */
+ // Create Pointer to StructType types.
+ ipfw_dyn_rulePtrTy = PointerType::get(ipfw_dyn_ruleTy);
+ ifnetPtrTy = PointerType::get(ifnetTy);
+ in_addrPtrTy = PointerType::get(in_addrTy);
+ ipPtrTy = PointerType::get(ipTy);
+ ip_fw_argsPtrTy = PointerType::get(ip_fw_argsTy);
+ ip_fw_chainPtrTy = PointerType::get(ip_fw_chainTy);
+ ip_fwPtrTy = PointerType::get(ip_fwTy);
+ ip_fw_insnPtrTy = PointerType::get(_ip_fw_insnTy);
+ ipfw_insn_ifPtrTy = PointerType::get(_ipfw_insn_ifTy);
+ mbufPtrTy = PointerType::get(mbufTy);
+#ifdef __FreeBSD__
+ ucredPtrTy = PointerType::get(ucredTy);
+#endif
+
// Allocate vars.
match = irb.CreateAlloca(int32Ty);
l = irb.CreateAlloca(int32Ty);
More information about the svn-soc-all
mailing list