PERFORCE change 145687 for review
Marko Zec
zec at FreeBSD.org
Wed Jul 23 09:06:53 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=145687
Change 145687 by zec at zec_tpx32 on 2008/07/23 09:05:54
Unbreak GENERIC build.
Affected files ...
.. //depot/projects/vimage-commit/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#4 edit
.. //depot/projects/vimage-commit/src/sys/kern/tty.c#4 edit
.. //depot/projects/vimage-commit/src/sys/net/if_ethersubr.c#4 edit
.. //depot/projects/vimage-commit/src/sys/netinet/ip_input.c#4 edit
.. //depot/projects/vimage-commit/src/sys/netinet/tcp_var.h#3 edit
.. //depot/projects/vimage-commit/src/sys/netinet6/icmp6.c#5 edit
.. //depot/projects/vimage-commit/src/sys/netinet6/in6_proto.c#3 edit
.. //depot/projects/vimage-commit/src/sys/sys/sysctl.h#2 edit
.. //depot/projects/vimage-commit/src/sys/sys/vimage.h#5 edit
.. //depot/projects/vimage-commit/src/sys/vm/vm_meter.c#4 edit
Differences ...
==== //depot/projects/vimage-commit/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#4 (text+ko) ====
==== //depot/projects/vimage-commit/src/sys/kern/tty.c#4 (text+ko) ====
@@ -2541,7 +2541,6 @@
void
ttyinfo(struct tty *tp)
{
- INIT_VPROCG(TD_TO_VPROCG(curthread));
struct timeval utime, stime;
struct proc *p, *pick;
struct thread *td, *picktd;
@@ -2556,7 +2555,7 @@
return;
/* Print load average. */
- load = (V_averunnable.ldavg[0] * 100 + FSCALE / 2) >> FSHIFT;
+ load = (averunnable.ldavg[0] * 100 + FSCALE / 2) >> FSHIFT;
ttyprintf(tp, "load: %d.%02d ", load / 100, load % 100);
/*
==== //depot/projects/vimage-commit/src/sys/net/if_ethersubr.c#4 (text+ko) ====
==== //depot/projects/vimage-commit/src/sys/netinet/ip_input.c#4 (text+ko) ====
@@ -93,6 +93,7 @@
forwarding, CTLFLAG_RW, ipforwarding, 0,
"Enable IP forwarding between interfaces");
+static int ipsendredirects = 1; /* XXX */
SYSCTL_V_INT(V_NET, vnet_inet, _net_inet_ip, IPCTL_SENDREDIRECTS,
redirect, CTLFLAG_RW, ipsendredirects, 0,
"Enable sending IP redirects");
==== //depot/projects/vimage-commit/src/sys/netinet/tcp_var.h#3 (text+ko) ====
@@ -510,6 +510,15 @@
extern int tcp_do_sack; /* SACK enabled/disabled */
extern int tcp_sc_rst_sock_fail; /* RST on sock alloc failure */
+extern int tcp_do_tso;
+extern int tcp_do_autosndbuf;
+extern int tcp_autosndbuf_max;
+extern int tcp_autosndbuf_inc;
+extern int tcp_autorcvbuf;
+extern int tcp_do_autorcvbuf;
+extern int tcp_autorcvbuf_inc;
+extern int tcp_autorcvbuf_max;
+
int tcp_addoptions(struct tcpopt *, u_char *);
struct tcpcb *
tcp_close(struct tcpcb *);
==== //depot/projects/vimage-commit/src/sys/netinet6/icmp6.c#5 (text+ko) ====
@@ -718,7 +718,7 @@
p = (u_char *)(nicmp6 + 1);
bzero(p, 4);
bcopy(hostname, p + 4, maxhlen); /* meaningless TTL */
- mtx_unlock(&V_hostname_mtx);
+ mtx_unlock(&hostname_mtx);
noff = sizeof(struct ip6_hdr);
n->m_pkthdr.len = n->m_len = sizeof(struct ip6_hdr) +
sizeof(struct icmp6_hdr) + 4 + maxhlen;
==== //depot/projects/vimage-commit/src/sys/netinet6/in6_proto.c#3 (text+ko) ====
@@ -542,16 +542,16 @@
SYSCTL_V_STRUCT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_RIP6STATS,
rip6stats, CTLFLAG_RD, rip6stat, rip6stat, "");
SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_PREFER_TEMPADDR,
- prefer_tempaddr, CTLFLAG_RW, ip6_prefer_tempaddr, 0, "");
+ prefer_tempaddr, CTLFLAG_RW, ip6_prefer_tempaddr, 0, "");
SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_USE_DEFAULTZONE,
- use_defaultzone, CTLFLAG_RW, ip6_use_defzone, 0,"");
+ use_defaultzone, CTLFLAG_RW, ip6_use_defzone, 0,"");
SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_MAXFRAGS,
- maxfrags, CTLFLAG_RW, ip6_maxfrags, 0, "");
+ maxfrags, CTLFLAG_RW, ip6_maxfrags, 0, "");
SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_MCAST_PMTU,
- mcast_pmtu, CTLFLAG_RW, ip6_mcast_pmtu, 0, "");
+ mcast_pmtu, CTLFLAG_RW, ip6_mcast_pmtu, 0, "");
#ifdef IPSTEALTH
-SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_STEALTH, stealth, CTLFLAG_RW,
-ip6stealth, 0, "");
+SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_STEALTH,
+ stealth, CTLFLAG_RW, ip6stealth, 0, "");
#endif
/* net.inet6.icmp6 */
@@ -580,18 +580,3 @@
SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_icmp6, ICMPV6CTL_ND6_DEBUG,
nd6_debug, CTLFLAG_RW, nd6_debug, 0, "");
-struct domain inet6domain = {
- .dom_family = AF_INET6,
- .dom_name = "internet6",
- .dom_protosw = (struct protosw *)inet6sw,
- .dom_protoswNPROTOSW = (struct protosw *)
- &inet6sw[sizeof(inet6sw)/sizeof(inet6sw[0])],
- .dom_rtattach = in6_inithead,
- .dom_rtoffset = offsetof(struct sockaddr_in6, sin6_addr) << 3,
- .dom_maxrtkey = sizeof(struct sockaddr_in6),
- .dom_ifattach = in6_domifattach,
- .dom_ifdetach = in6_domifdetach,
- .dom_init = ip6_dom_init
-};
-
-DOMAIN_SET(inet6);
==== //depot/projects/vimage-commit/src/sys/sys/sysctl.h#2 (text+ko) ====
@@ -162,6 +162,8 @@
const char *oid_fmt;
int oid_refcnt;
const char *oid_descr;
+ short oid_v_subs;
+ short oid_v_mod;
};
#define SYSCTL_IN(r, p, l) (r->newfunc)(r, p, l)
@@ -175,6 +177,10 @@
int sysctl_handle_string(SYSCTL_HANDLER_ARGS);
int sysctl_handle_opaque(SYSCTL_HANDLER_ARGS);
+int sysctl_handle_v_int(SYSCTL_HANDLER_ARGS);
+int sysctl_handle_v_string(SYSCTL_HANDLER_ARGS);
+int sysctl_handle_v_opaque(SYSCTL_HANDLER_ARGS);
+
/*
* These functions are used to add/remove an oid from the mib.
*/
@@ -215,10 +221,24 @@
/* This constructs a "raw" MIB oid. */
#define SYSCTL_OID(parent, nbr, name, kind, a1, a2, handler, fmt, descr) \
static struct sysctl_oid sysctl__##parent##_##name = { \
- &sysctl_##parent##_children, { 0 }, \
- nbr, kind, a1, a2, #name, handler, fmt, 0, __DESCR(descr) }; \
+ &sysctl_##parent##_children, { 0 }, nbr, kind, \
+ a1, a2, #name, handler, fmt, 0, __DESCR(descr), 0, 0 }; \
DATA_SET(sysctl_set, sysctl__##parent##_##name)
+#ifdef VIMAGE
+#define SYSCTL_V_OID(subs, mod, parent, nbr, name, kind, a1, a2, \
+ handler, fmt, descr) \
+ static struct sysctl_oid sysctl__##parent##_##name = { \
+ &sysctl_##parent##_children, { 0 }, nbr, kind, \
+ (void *) offsetof(struct mod, _##a1), a2, #name, \
+ handler, fmt, 0, __DESCR(descr), subs, V_MOD_##mod }; \
+ DATA_SET(sysctl_set, sysctl__##parent##_##name)
+#else
+#define SYSCTL_V_OID(subs, mod, parent, nbr, name, kind, a1, a2, \
+ handler, fmt, descr) \
+ SYSCTL_OID(parent, nbr, name, kind, &a1, a2, handler, fmt, descr)
+#endif
+
#define SYSCTL_ADD_OID(ctx, parent, nbr, name, kind, a1, a2, handler, fmt, descr) \
sysctl_add_oid(ctx, parent, nbr, name, kind, a1, a2, handler, fmt, __DESCR(descr))
@@ -226,7 +246,7 @@
#define SYSCTL_NODE(parent, nbr, name, access, handler, descr) \
struct sysctl_oid_list SYSCTL_NODE_CHILDREN(parent, name); \
SYSCTL_OID(parent, nbr, name, CTLTYPE_NODE|(access), \
- (void*)&SYSCTL_NODE_CHILDREN(parent, name), 0, handler, \
+ (void*)&SYSCTL_NODE_CHILDREN(parent, name), 0, handler, \
"N", descr)
#define SYSCTL_ADD_NODE(ctx, parent, nbr, name, access, handler, descr) \
@@ -238,6 +258,16 @@
SYSCTL_OID(parent, nbr, name, CTLTYPE_STRING|(access), \
arg, len, sysctl_handle_string, "A", descr)
+#ifdef VIMAGE
+#define SYSCTL_V_STRING(subs, mod, parent, nbr, name, access, sym, len, descr) \
+ SYSCTL_V_OID(subs, mod, parent, nbr, name, CTLTYPE_STRING|(access), \
+ sym, len, sysctl_handle_v_string, "A", descr)
+#else
+#define SYSCTL_V_STRING(subs, mod, parent, nbr, name, access, sym, len, descr) \
+ SYSCTL_OID(parent, nbr, name, CTLTYPE_STRING|(access), \
+ &sym, len, sysctl_handle_string, "A", descr)
+#endif
+
#define SYSCTL_ADD_STRING(ctx, parent, nbr, name, access, arg, len, descr) \
sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_STRING|(access), \
arg, len, sysctl_handle_string, "A", __DESCR(descr))
@@ -247,6 +277,16 @@
SYSCTL_OID(parent, nbr, name, CTLTYPE_INT|(access), \
ptr, val, sysctl_handle_int, "I", descr)
+#ifdef VIMAGE
+#define SYSCTL_V_INT(subs, mod, parent, nbr, name, access, sym, val, descr) \
+ SYSCTL_V_OID(subs, mod, parent, nbr, name, CTLTYPE_INT|(access), \
+ sym, val, sysctl_handle_v_int, "I", descr)
+#else
+#define SYSCTL_V_INT(subs, mod, parent, nbr, name, access, sym, val, descr) \
+ SYSCTL_OID(parent, nbr, name, CTLTYPE_INT|(access), \
+ &sym, val, sysctl_handle_int, "I", descr)
+#endif
+
#define SYSCTL_ADD_INT(ctx, parent, nbr, name, access, ptr, val, descr) \
sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_INT|(access), \
ptr, val, sysctl_handle_int, "I", __DESCR(descr))
@@ -309,6 +349,20 @@
ptr, sizeof(struct type), sysctl_handle_opaque, \
"S," #type, descr)
+#ifdef VIMAGE
+#define SYSCTL_V_STRUCT(subs, mod, parent, nbr, name, access, sym, \
+ type, descr) \
+ SYSCTL_V_OID(subs, mod, parent, nbr, name, CTLTYPE_OPAQUE|(access), \
+ sym, sizeof(struct type), sysctl_handle_v_opaque, \
+ "S," #type, descr)
+#else
+#define SYSCTL_V_STRUCT(subs, mod, parent, nbr, name, access, sym, \
+ type, descr) \
+ SYSCTL_OID(parent, nbr, name, CTLTYPE_OPAQUE|(access), \
+ &sym, sizeof(struct type), sysctl_handle_opaque, \
+ "S," #type, descr)
+#endif
+
#define SYSCTL_ADD_STRUCT(ctx, parent, nbr, name, access, ptr, type, descr) \
sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_OPAQUE|(access), \
ptr, sizeof(struct type), sysctl_handle_opaque, "S," #type, __DESCR(descr))
@@ -318,6 +372,11 @@
SYSCTL_OID(parent, nbr, name, (access), \
ptr, arg, handler, fmt, descr)
+#define SYSCTL_V_PROC(subs, mod, parent, nbr, name, access, sym, arg, \
+ handler, fmt, descr) \
+ SYSCTL_V_OID(subs, mod, parent, nbr, name, (access), \
+ sym, arg, handler, fmt, descr)
+
#define SYSCTL_ADD_PROC(ctx, parent, nbr, name, access, ptr, arg, handler, fmt, descr) \
sysctl_add_oid(ctx, parent, nbr, name, (access), \
ptr, arg, handler, fmt, __DESCR(descr))
@@ -329,6 +388,30 @@
#define FEATURE(name, desc) \
SYSCTL_INT(_kern_features, OID_AUTO, name, CTLFLAG_RD, 0, 1, desc)
+/*
+ * Resolve void *arg1 in a proper virtualization container.
+ */
+#ifdef VIMAGE
+#define SYSCTL_RESOLVE_V_ARG1() do { \
+ char *cp; \
+ switch (oidp->oid_v_subs) { \
+ case V_NET: \
+ cp = (char *) \
+ TD_TO_VNET(curthread)->mod_data[oidp->oid_v_mod]; \
+ break; \
+ case V_PROCG: \
+ cp = (char *) TD_TO_VPROCG(curthread); \
+ break; \
+ case V_CPU: \
+ cp = (char *) TD_TO_VCPU(curthread); \
+ break; \
+ default: \
+ panic("unsupported module id %d", oidp->oid_v_subs); \
+ } \
+ arg1 = cp + (size_t) arg1; \
+} while (0)
+#endif
+
#endif /* _KERNEL */
/*
==== //depot/projects/vimage-commit/src/sys/sys/vimage.h#5 (text+ko) ====
@@ -407,18 +407,14 @@
u_int nprocs;
- long _cp_time[CPUSTATES];
-
char _hostname[MAXHOSTNAMELEN];
char _domainname[MAXHOSTNAMELEN];
+#if 0
+ long _cp_time[CPUSTATES];
+
int _morphing_symlinks;
- struct loadavg _averunnable; /* from kern/kern_synch.c */
- int _sched_tdcnt; /* from kern/sched_4bsd.c */
- int _tdq_sysload[32]; /* XXX MAXCPUS from kern/sched_ule.c (SMP) */
-
-#if 0
u_int proc_limit; /* max. number of processes */
struct msgbuf *msgbufp;
==== //depot/projects/vimage-commit/src/sys/vm/vm_meter.c#4 (text+ko) ====
@@ -79,20 +79,19 @@
static int
sysctl_vm_loadavg(SYSCTL_HANDLER_ARGS)
{
- INIT_VPROCG(TD_TO_VPROCG(curthread));
#ifdef SCTL_MASK32
u_int32_t la[4];
if (req->flags & SCTL_MASK32) {
- la[0] = V_averunnable.ldavg[0];
- la[1] = V_averunnable.ldavg[1];
- la[2] = V_averunnable.ldavg[2];
- la[3] = V_averunnable.fscale;
+ la[0] = averunnable.ldavg[0];
+ la[1] = averunnable.ldavg[1];
+ la[2] = averunnable.ldavg[2];
+ la[3] = averunnable.fscale;
return SYSCTL_OUT(req, la, sizeof(la));
} else
#endif
- return SYSCTL_OUT(req, &V_averunnable, sizeof(V_averunnable));
+ return SYSCTL_OUT(req, &averunnable, sizeof(averunnable));
}
SYSCTL_PROC(_vm, VM_LOADAVG, loadavg, CTLTYPE_STRUCT|CTLFLAG_RD,
NULL, 0, sysctl_vm_loadavg, "S,loadavg", "Machine loadaverage history");
More information about the p4-projects
mailing list