svn commit: r198124 - user/eri/pf45/head/sys/contrib/pf/net
Ermal Luçi
eri at FreeBSD.org
Thu Oct 15 11:12:54 UTC 2009
Author: eri
Date: Thu Oct 15 11:12:53 2009
New Revision: 198124
URL: http://svn.freebsd.org/changeset/base/198124
Log:
More V_ foo.
NOTE: With this commit a GENERIC VIMAGE kernel builds.
Modified:
user/eri/pf45/head/sys/contrib/pf/net/pf.c
user/eri/pf45/head/sys/contrib/pf/net/pf_if.c
user/eri/pf45/head/sys/contrib/pf/net/pf_ioctl.c
user/eri/pf45/head/sys/contrib/pf/net/pf_ruleset.c
Modified: user/eri/pf45/head/sys/contrib/pf/net/pf.c
==============================================================================
--- user/eri/pf45/head/sys/contrib/pf/net/pf.c Thu Oct 15 10:49:24 2009 (r198123)
+++ user/eri/pf45/head/sys/contrib/pf/net/pf.c Thu Oct 15 11:12:53 2009 (r198124)
@@ -3204,7 +3204,11 @@ pf_calc_mss(struct pf_addr *addr, sa_fam
if (rt && rt->rt_ifp) {
mss = rt->rt_ifp->if_mtu - hlen - sizeof(struct tcphdr);
+#ifdef __FreeBSD__
+ mss = max(V_tcp_mssdflt, mss);
+#else
mss = max(tcp_mssdflt, mss);
+#endif
RTFREE(rt);
}
mss = min(mss, offer);
Modified: user/eri/pf45/head/sys/contrib/pf/net/pf_if.c
==============================================================================
--- user/eri/pf45/head/sys/contrib/pf/net/pf_if.c Thu Oct 15 10:49:24 2009 (r198123)
+++ user/eri/pf45/head/sys/contrib/pf/net/pf_if.c Thu Oct 15 11:12:53 2009 (r198124)
@@ -149,7 +149,7 @@ pfi_initialize(void)
#endif
#ifdef __FreeBSD__
V_pfi_buffer_max = 64;
- V_pfi_buffer = malloc(V_pfi_buffer_max * sizeof(*pfi_buffer),
+ V_pfi_buffer = malloc(V_pfi_buffer_max * sizeof(*V_pfi_buffer),
PFI_MTYPE, M_WAITOK);
if ((V_pfi_all = pfi_kif_get(IFG_ALL)) == NULL)
@@ -745,7 +745,7 @@ pfi_address_add(struct sockaddr *sa, int
#endif
return;
}
- p = malloc(new_max * sizeof(*pfi_buffer), PFI_MTYPE,
+ p = malloc(new_max * sizeof(*V_pfi_buffer), PFI_MTYPE,
#ifdef __FreeBSD__
M_NOWAIT);
#else
@@ -761,7 +761,7 @@ pfi_address_add(struct sockaddr *sa, int
return;
}
#ifdef __FreeBSD__
- memcpy(V_pfi_buffer, p, V_pfi_buffer_cnt * sizeof(*pfi_buffer));
+ memcpy(V_pfi_buffer, p, V_pfi_buffer_cnt * sizeof(*V_pfi_buffer));
/* no need to zero buffer */
free(V_pfi_buffer, PFI_MTYPE);
V_pfi_buffer = p;
Modified: user/eri/pf45/head/sys/contrib/pf/net/pf_ioctl.c
==============================================================================
--- user/eri/pf45/head/sys/contrib/pf/net/pf_ioctl.c Thu Oct 15 10:49:24 2009 (r198123)
+++ user/eri/pf45/head/sys/contrib/pf/net/pf_ioctl.c Thu Oct 15 11:12:53 2009 (r198124)
@@ -39,6 +39,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
+#include "opt_global.h"
#include "opt_inet.h"
#include "opt_inet6.h"
#include "opt_bpf.h"
@@ -178,21 +179,30 @@ void pf_addr_copyout(struct pf_addr_w
#ifdef __FreeBSD__
VNET_DEFINE(struct pf_rule, pf_default_rule);
VNET_DEFINE(struct sx, pf_consistency_lock);
+#ifndef VIMAGE
SX_SYSINIT(pf_consistency_lock, &V_pf_consistency_lock,
"pf_statetbl_lock");
+#endif
#ifdef ALTQ
-static VNET_DEFINE(int, pf_altq_running);
-#define pf_altq_running VNET(pf_altq_running)
+static VNET_DEFINE(int, pf_altq_running);
+#define V_pf_altq_running VNET(pf_altq_running)
#endif
TAILQ_HEAD(pf_tags, pf_tagname);
+#ifdef VIMAGE
+#define V_pf_tags VNET(pf_tags)
+VNET_DEFINE(struct pf_tags, pf_tags);
+#define V_pf_qids VNET(pf_qids)
+VNET_DEFINE(struct pf_tags, pf_qids);
+#else
#define V_pf_tags VNET(pf_tags)
VNET_DEFINE(struct pf_tags, pf_tags) =
TAILQ_HEAD_INITIALIZER(V_pf_tags);
+#define V_pf_qids VNET(pf_qids)
VNET_DEFINE(struct pf_tags, pf_qids) =
- TAILQ_HEAD_INITIALIZER(pf_qids);
-#define pf_qids VNET(pf_qids)
+ TAILQ_HEAD_INITIALIZER(V_pf_qids);
+#endif
#else /* !__FreeBSD__ */
struct pf_rule pf_default_rule;
@@ -223,7 +233,7 @@ void pf_rtlabel_copyout(struct pf_add
#endif
#ifdef __FreeBSD__
-static VNET_DEFINE(struct cdev, *pf_dev);
+static struct cdev *pf_dev;
/*
* XXX - These are new and need to be checked when moveing to a new version
@@ -283,7 +293,7 @@ pflog_packet_t *pflog_packet_ptr = NUL
VNET_DEFINE(int, debug_pfugidhack);
SYSCTL_VNET_INT(_debug, OID_AUTO, pfugidhack, CTLFLAG_RW,
- &V_debug_pfugidhack, 0,
+ &VNET_NAME(debug_pfugidhack), 0,
"Enable/disable pf user/group rules mpsafe hack");
void
@@ -419,7 +429,7 @@ pfattach(void)
pf_normalize_init();
- bzero(&V_pf_status, sizeof(pf_status));
+ bzero(&V_pf_status, sizeof(V_pf_status));
V_pf_status.debug = PF_DEBUG_URGENT;
V_pf_pfil_hooked = 0;
@@ -833,19 +843,31 @@ pf_rtlabel_copyout(struct pf_addr_wrap *
u_int32_t
pf_qname2qid(char *qname)
{
+#ifdef __FreeBSD__
+ return ((u_int32_t)tagname2tag(&V_pf_qids, qname));
+#else
return ((u_int32_t)tagname2tag(&pf_qids, qname));
+#endif
}
void
pf_qid2qname(u_int32_t qid, char *p)
{
+#ifdef __FreeBSD__
+ tag2tagname(&V_pf_qids, (u_int16_t)qid, p);
+#else
tag2tagname(&pf_qids, (u_int16_t)qid, p);
+#endif
}
void
pf_qid_unref(u_int32_t qid)
{
+#ifdef __FreeBSD__
+ tag_unref(&V_pf_qids, (u_int16_t)qid);
+#else
tag_unref(&pf_qids, (u_int16_t)qid);
+#endif
}
int
@@ -962,7 +984,11 @@ pf_commit_altq(u_int32_t ticket)
#endif
/* attach the discipline */
error = altq_pfattach(altq);
+#ifdef __FreeBSD__
+ if (error == 0 && V_pf_altq_running)
+#else
if (error == 0 && pf_altq_running)
+#endif
error = pf_enable_altq(altq);
if (error != 0) {
splx(s);
@@ -983,7 +1009,11 @@ pf_commit_altq(u_int32_t ticket)
if (altq->qname[0] == 0) {
#endif
/* detach and destroy the discipline */
+#ifdef __FreeBSD__
+ if (V_pf_altq_running)
+#else
if (pf_altq_running)
+#endif
error = pf_disable_altq(altq);
err = altq_pfdetach(altq);
if (err != 0 && error == 0)
@@ -2611,7 +2641,11 @@ pfioctl(dev_t dev, u_long cmd, caddr_t a
}
}
if (error == 0)
+#ifdef __FreeBSD__
+ V_pf_altq_running = 1;
+#else
pf_altq_running = 1;
+#endif
DPFPRINTF(PF_DEBUG_MISC, ("altq: started\n"));
break;
}
@@ -2634,7 +2668,11 @@ pfioctl(dev_t dev, u_long cmd, caddr_t a
}
}
if (error == 0)
+#ifdef __FreeBSD__
+ V_pf_altq_running = 0;
+#else
pf_altq_running = 0;
+#endif
DPFPRINTF(PF_DEBUG_MISC, ("altq: stopped\n"));
break;
}
@@ -3098,7 +3136,11 @@ pfioctl(dev_t dev, u_long cmd, caddr_t a
pr->nr = 0;
if (ruleset->anchor == NULL) {
/* XXX kludge for pf_main_ruleset */
+#ifdef __FreeBSD__
+ RB_FOREACH(anchor, pf_anchor_global, &V_pf_anchors)
+#else
RB_FOREACH(anchor, pf_anchor_global, &pf_anchors)
+#endif
if (anchor->parent == NULL)
pr->nr++;
} else {
@@ -3123,7 +3165,11 @@ pfioctl(dev_t dev, u_long cmd, caddr_t a
pr->name[0] = 0;
if (ruleset->anchor == NULL) {
/* XXX kludge for pf_main_ruleset */
+#ifdef __FreeBSD__
+ RB_FOREACH(anchor, pf_anchor_global, &V_pf_anchors)
+#else
RB_FOREACH(anchor, pf_anchor_global, &pf_anchors)
+#endif
if (anchor->parent == NULL && nr++ == pr->nr) {
strlcpy(pr->name, anchor->name,
sizeof(pr->name));
@@ -4261,6 +4307,9 @@ vnet_pf_init(const void *unused)
V_debug_pfugidhack = 0;
+ TAILQ_INIT(&V_pf_tags);
+ TAILQ_INIT(&V_pf_qids);
+
return (0);
}
@@ -4293,6 +4342,9 @@ static int
pf_load(void)
{
init_zone_var();
+#ifdef VIMAGE
+ sx_init(&V_pf_consistency_lock, "pf_statetbl_lock");
+#endif
init_pf_mutex();
pf_dev = make_dev(&pf_cdevsw, 0, 0, 0, 0600, PF_NAME);
if (pfattach() < 0) {
@@ -4335,6 +4387,9 @@ pf_unload(void)
PF_UNLOCK();
destroy_dev(pf_dev);
destroy_pf_mutex();
+#ifdef VIMAGE
+ sx_destroy(&V_pf_consistency_lock);
+#endif
return error;
}
Modified: user/eri/pf45/head/sys/contrib/pf/net/pf_ruleset.c
==============================================================================
--- user/eri/pf45/head/sys/contrib/pf/net/pf_ruleset.c Thu Oct 15 10:49:24 2009 (r198123)
+++ user/eri/pf45/head/sys/contrib/pf/net/pf_ruleset.c Thu Oct 15 11:12:53 2009 (r198124)
@@ -171,7 +171,11 @@ pf_find_anchor(const char *path)
if (key == NULL)
return (NULL);
strlcpy(key->path, path, sizeof(key->path));
+#ifdef __FreeBSD__
+ found = RB_FIND(pf_anchor_global, &V_pf_anchors, key);
+#else
found = RB_FIND(pf_anchor_global, &pf_anchors, key);
+#endif
rs_free(key);
return (found);
}
@@ -252,7 +256,11 @@ pf_find_or_create_ruleset(const char *pa
strlcat(anchor->path, "/", sizeof(anchor->path));
}
strlcat(anchor->path, anchor->name, sizeof(anchor->path));
+#ifdef __FreeBSD__
+ if ((dup = RB_INSERT(pf_anchor_global, &V_pf_anchors, anchor)) !=
+#else
if ((dup = RB_INSERT(pf_anchor_global, &pf_anchors, anchor)) !=
+#endif
NULL) {
printf("pf_find_or_create_ruleset: RB_INSERT1 "
"'%s' '%s' collides with '%s' '%s'\n",
@@ -269,7 +277,11 @@ pf_find_or_create_ruleset(const char *pa
"RB_INSERT2 '%s' '%s' collides with "
"'%s' '%s'\n", anchor->path, anchor->name,
dup->path, dup->name);
+#ifdef __FreeBSD__
+ RB_REMOVE(pf_anchor_global, &V_pf_anchors,
+#else
RB_REMOVE(pf_anchor_global, &pf_anchors,
+#endif
anchor);
rs_free(anchor);
rs_free(p);
@@ -305,7 +317,11 @@ pf_remove_if_empty_ruleset(struct pf_rul
!TAILQ_EMPTY(ruleset->rules[i].inactive.ptr) ||
ruleset->rules[i].inactive.open)
return;
+#ifdef __FreeBSD__
+ RB_REMOVE(pf_anchor_global, &V_pf_anchors, ruleset->anchor);
+#else
RB_REMOVE(pf_anchor_global, &pf_anchors, ruleset->anchor);
+#endif
if ((parent = ruleset->anchor->parent) != NULL)
RB_REMOVE(pf_anchor_node, &parent->children,
ruleset->anchor);
More information about the svn-src-user
mailing list