svn commit: r215806 - in projects/sbruno_64cpus: bin/sh contrib/top
etc/defaults etc/rc.d share/man/man4 share/man/man5
share/man/man9 share/mk sys/amd64/amd64 sys/compat/ndis
sys/dev/e1000 sys/dev...
Sean Bruno
sbruno at FreeBSD.org
Wed Nov 24 21:57:46 UTC 2010
Author: sbruno
Date: Wed Nov 24 21:57:45 2010
New Revision: 215806
URL: http://svn.freebsd.org/changeset/base/215806
Log:
Merge from head
Modified:
projects/sbruno_64cpus/bin/sh/cd.c
projects/sbruno_64cpus/bin/sh/eval.c
projects/sbruno_64cpus/bin/sh/expand.c
projects/sbruno_64cpus/bin/sh/histedit.c
projects/sbruno_64cpus/bin/sh/memalloc.c
projects/sbruno_64cpus/bin/sh/memalloc.h
projects/sbruno_64cpus/bin/sh/miscbltin.c
projects/sbruno_64cpus/bin/sh/parser.c
projects/sbruno_64cpus/etc/defaults/rc.conf
projects/sbruno_64cpus/etc/rc.d/gptboot
projects/sbruno_64cpus/share/man/man4/bge.4
projects/sbruno_64cpus/share/man/man4/msk.4
projects/sbruno_64cpus/share/man/man4/nge.4
projects/sbruno_64cpus/share/man/man4/sk.4
projects/sbruno_64cpus/share/man/man4/stge.4
projects/sbruno_64cpus/share/man/man4/vge.4
projects/sbruno_64cpus/share/man/man5/rc.conf.5
projects/sbruno_64cpus/share/man/man9/vrele.9
projects/sbruno_64cpus/sys/amd64/amd64/cpu_switch.S
projects/sbruno_64cpus/sys/compat/ndis/ntoskrnl_var.h
projects/sbruno_64cpus/sys/compat/ndis/subr_ndis.c
projects/sbruno_64cpus/sys/compat/ndis/subr_ntoskrnl.c
projects/sbruno_64cpus/sys/dev/e1000/e1000_api.c
projects/sbruno_64cpus/sys/dev/e1000/e1000_hw.h
projects/sbruno_64cpus/sys/dev/e1000/if_igb.c
projects/sbruno_64cpus/sys/dev/e1000/if_igb.h
projects/sbruno_64cpus/sys/dev/usb/controller/usb_controller.c
projects/sbruno_64cpus/sys/dev/usb/usb_bus.h
projects/sbruno_64cpus/sys/dev/usb/usb_pf.c
projects/sbruno_64cpus/sys/dev/usb/usb_pf.h
projects/sbruno_64cpus/sys/kern/vfs_subr.c
projects/sbruno_64cpus/sys/net/bpf_buffer.c
projects/sbruno_64cpus/sys/netgraph/ng_pipe.c
projects/sbruno_64cpus/sys/netinet/ip_carp.c
projects/sbruno_64cpus/sys/vm/vm_object.c
projects/sbruno_64cpus/tools/tools/sysbuild/sysbuild.sh
projects/sbruno_64cpus/usr.sbin/iostat/iostat.8
projects/sbruno_64cpus/usr.sbin/usbdump/usbdump.c
Directory Properties:
projects/sbruno_64cpus/ (props changed)
projects/sbruno_64cpus/cddl/contrib/opensolaris/ (props changed)
projects/sbruno_64cpus/contrib/bind9/ (props changed)
projects/sbruno_64cpus/contrib/binutils/ (props changed)
projects/sbruno_64cpus/contrib/bzip2/ (props changed)
projects/sbruno_64cpus/contrib/ee/ (props changed)
projects/sbruno_64cpus/contrib/expat/ (props changed)
projects/sbruno_64cpus/contrib/file/ (props changed)
projects/sbruno_64cpus/contrib/gdb/ (props changed)
projects/sbruno_64cpus/contrib/gdtoa/ (props changed)
projects/sbruno_64cpus/contrib/gnu-sort/ (props changed)
projects/sbruno_64cpus/contrib/groff/ (props changed)
projects/sbruno_64cpus/contrib/less/ (props changed)
projects/sbruno_64cpus/contrib/libpcap/ (props changed)
projects/sbruno_64cpus/contrib/llvm/ (props changed)
projects/sbruno_64cpus/contrib/llvm/tools/clang/ (props changed)
projects/sbruno_64cpus/contrib/ncurses/ (props changed)
projects/sbruno_64cpus/contrib/netcat/ (props changed)
projects/sbruno_64cpus/contrib/ntp/ (props changed)
projects/sbruno_64cpus/contrib/one-true-awk/ (props changed)
projects/sbruno_64cpus/contrib/openbsm/ (props changed)
projects/sbruno_64cpus/contrib/openpam/ (props changed)
projects/sbruno_64cpus/contrib/pf/ (props changed)
projects/sbruno_64cpus/contrib/sendmail/ (props changed)
projects/sbruno_64cpus/contrib/tcpdump/ (props changed)
projects/sbruno_64cpus/contrib/tcsh/ (props changed)
projects/sbruno_64cpus/contrib/top/ (props changed)
projects/sbruno_64cpus/contrib/top/install-sh (props changed)
projects/sbruno_64cpus/contrib/tzcode/stdtime/ (props changed)
projects/sbruno_64cpus/contrib/tzcode/zic/ (props changed)
projects/sbruno_64cpus/contrib/tzdata/ (props changed)
projects/sbruno_64cpus/contrib/wpa/ (props changed)
projects/sbruno_64cpus/contrib/xz/ (props changed)
projects/sbruno_64cpus/crypto/openssh/ (props changed)
projects/sbruno_64cpus/crypto/openssl/ (props changed)
projects/sbruno_64cpus/lib/libc/ (props changed)
projects/sbruno_64cpus/lib/libc/stdtime/ (props changed)
projects/sbruno_64cpus/lib/libutil/ (props changed)
projects/sbruno_64cpus/lib/libz/ (props changed)
projects/sbruno_64cpus/sbin/ (props changed)
projects/sbruno_64cpus/sbin/ipfw/ (props changed)
projects/sbruno_64cpus/share/mk/bsd.arch.inc.mk (props changed)
projects/sbruno_64cpus/share/zoneinfo/ (props changed)
projects/sbruno_64cpus/sys/ (props changed)
projects/sbruno_64cpus/sys/amd64/include/xen/ (props changed)
projects/sbruno_64cpus/sys/cddl/contrib/opensolaris/ (props changed)
projects/sbruno_64cpus/sys/contrib/dev/acpica/ (props changed)
projects/sbruno_64cpus/sys/contrib/pf/ (props changed)
projects/sbruno_64cpus/sys/contrib/x86emu/ (props changed)
projects/sbruno_64cpus/usr.bin/calendar/ (props changed)
projects/sbruno_64cpus/usr.bin/csup/ (props changed)
projects/sbruno_64cpus/usr.bin/procstat/ (props changed)
projects/sbruno_64cpus/usr.sbin/zic/ (props changed)
Modified: projects/sbruno_64cpus/bin/sh/cd.c
==============================================================================
--- projects/sbruno_64cpus/bin/sh/cd.c Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/bin/sh/cd.c Wed Nov 24 21:57:45 2010 (r215806)
@@ -192,8 +192,7 @@ cdlogical(char *dest)
STPUTC('/', p);
first = 0;
component = q;
- while (*q)
- STPUTC(*q++, p);
+ STPUTS(q, p);
if (equal(component, ".."))
continue;
STACKSTRNUL(p);
@@ -273,10 +272,8 @@ findcwd(char *dir)
scopy(dir, cdcomppath);
STARTSTACKSTR(new);
if (*dir != '/') {
- p = curdir;
- while (*p)
- STPUTC(*p++, new);
- if (p[-1] == '/')
+ STPUTS(curdir, new);
+ if (STTOPC(new) == '/')
STUNPUTC(new);
}
while ((p = getcomponent()) != NULL) {
@@ -284,8 +281,7 @@ findcwd(char *dir)
while (new > stackblock() && (STUNPUTC(new), *new) != '/');
} else if (*p != '\0' && ! equal(p, ".")) {
STPUTC('/', new);
- while (*p)
- STPUTC(*p++, new);
+ STPUTS(p, new);
}
}
if (new == stackblock())
Modified: projects/sbruno_64cpus/bin/sh/eval.c
==============================================================================
--- projects/sbruno_64cpus/bin/sh/eval.c Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/bin/sh/eval.c Wed Nov 24 21:57:45 2010 (r215806)
@@ -135,8 +135,7 @@ evalcmd(int argc, char **argv)
STARTSTACKSTR(concat);
ap = argv + 2;
for (;;) {
- while (*p)
- STPUTC(*p++, concat);
+ STPUTS(p, concat);
if ((p = *ap++) == NULL)
break;
STPUTC(' ', concat);
Modified: projects/sbruno_64cpus/bin/sh/expand.c
==============================================================================
--- projects/sbruno_64cpus/bin/sh/expand.c Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/bin/sh/expand.c Wed Nov 24 21:57:45 2010 (r215806)
@@ -225,6 +225,7 @@ argstr(char *p, int flag)
if (*p == '~' && (flag & (EXP_TILDE | EXP_VARTILDE)))
p = exptilde(p, flag);
for (;;) {
+ CHECKSTRSPACE(2, expdest);
switch (c = *p++) {
case '\0':
case CTLENDVAR:
@@ -235,16 +236,16 @@ argstr(char *p, int flag)
if (p[0] == CTLVAR && p[2] == '@' && p[3] == '=')
break;
if ((flag & EXP_FULL) != 0)
- STPUTC(c, expdest);
+ USTPUTC(c, expdest);
break;
case CTLQUOTEEND:
lit_quoted = 0;
break;
case CTLESC:
if (quotes)
- STPUTC(c, expdest);
+ USTPUTC(c, expdest);
c = *p++;
- STPUTC(c, expdest);
+ USTPUTC(c, expdest);
if (split_lit && !lit_quoted)
recordregion(expdest - stackblock() -
(quotes ? 2 : 1),
@@ -267,7 +268,7 @@ argstr(char *p, int flag)
* sort of a hack - expand tildes in variable
* assignments (after the first '=' and after ':'s).
*/
- STPUTC(c, expdest);
+ USTPUTC(c, expdest);
if (split_lit && !lit_quoted)
recordregion(expdest - stackblock() - 1,
expdest - stackblock(), 0);
@@ -279,7 +280,7 @@ argstr(char *p, int flag)
}
break;
default:
- STPUTC(c, expdest);
+ USTPUTC(c, expdest);
if (split_lit && !lit_quoted)
recordregion(expdest - stackblock() - 1,
expdest - stackblock(), 0);
@@ -902,8 +903,7 @@ varvalue(char *name, int quoted, int sub
STPUTC(*p++, expdest); \
} \
} else \
- while (*p) \
- STPUTC(*p++, expdest); \
+ STPUTS(p, expdest); \
} while (0)
@@ -1573,8 +1573,7 @@ cvtnum(int num, char *buf)
if (neg)
*--p = '-';
- while (*p)
- STPUTC(*p++, buf);
+ STPUTS(p, buf);
return buf;
}
Modified: projects/sbruno_64cpus/bin/sh/histedit.c
==============================================================================
--- projects/sbruno_64cpus/bin/sh/histedit.c Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/bin/sh/histedit.c Wed Nov 24 21:57:45 2010 (r215806)
@@ -411,8 +411,7 @@ fc_replace(const char *s, char *p, char
STARTSTACKSTR(dest);
while (*s) {
if (*s == *p && strncmp(s, p, plen) == 0) {
- while (*r)
- STPUTC(*r++, dest);
+ STPUTS(r, dest);
s += plen;
*p = '\0'; /* so no more matches */
} else
Modified: projects/sbruno_64cpus/bin/sh/memalloc.c
==============================================================================
--- projects/sbruno_64cpus/bin/sh/memalloc.c Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/bin/sh/memalloc.c Wed Nov 24 21:57:45 2010 (r215806)
@@ -340,3 +340,20 @@ ungrabstackstr(char *s, char *p)
stacknxt = s;
sstrnleft = stacknleft - (p - s);
}
+
+
+char *
+stputbin(const char *data, int len, char *p)
+{
+ int i;
+
+ for (i = 0; i < len; i++)
+ STPUTC(data[i], p);
+ return (p);
+}
+
+char *
+stputs(const char *data, char *p)
+{
+ return (stputbin(data, strlen(data), p));
+}
Modified: projects/sbruno_64cpus/bin/sh/memalloc.h
==============================================================================
--- projects/sbruno_64cpus/bin/sh/memalloc.h Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/bin/sh/memalloc.h Wed Nov 24 21:57:45 2010 (r215806)
@@ -61,6 +61,8 @@ void grabstackblock(int);
char *growstackstr(void);
char *makestrspace(void);
void ungrabstackstr(char *, char *);
+char *stputbin(const char *data, int len, char *p);
+char *stputs(const char *data, char *p);
@@ -82,3 +84,5 @@ void ungrabstackstr(char *, char *);
#define STTOPC(p) p[-1]
#define STADJUST(amount, p) (p += (amount), sstrnleft -= (amount))
#define grabstackstr(p) stalloc(stackblocksize() - sstrnleft)
+#define STPUTBIN(s, len, p) p = stputbin((s), (len), p)
+#define STPUTS(s, p) p = stputs((s), p)
Modified: projects/sbruno_64cpus/bin/sh/miscbltin.c
==============================================================================
--- projects/sbruno_64cpus/bin/sh/miscbltin.c Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/bin/sh/miscbltin.c Wed Nov 24 21:57:45 2010 (r215806)
@@ -172,11 +172,12 @@ readcmd(int argc __unused, char **argv _
}
if (c == '\0')
continue;
+ CHECKSTRSPACE(1, p);
if (backslash) {
backslash = 0;
startword = 0;
if (c != '\n')
- STPUTC(c, p);
+ USTPUTC(c, p);
continue;
}
if (!rflag && c == '\\') {
@@ -194,14 +195,14 @@ readcmd(int argc __unused, char **argv _
if (is_ifs == 1) {
/* Ignore leading IFS whitespace */
if (saveall)
- STPUTC(c, p);
+ USTPUTC(c, p);
continue;
}
if (is_ifs == 2 && startword == 1) {
/* Only one non-whitespace IFS per word */
startword = 2;
if (saveall)
- STPUTC(c, p);
+ USTPUTC(c, p);
continue;
}
}
@@ -212,7 +213,7 @@ readcmd(int argc __unused, char **argv _
if (saveall)
/* Not just a spare terminator */
saveall++;
- STPUTC(c, p);
+ USTPUTC(c, p);
continue;
}
@@ -222,7 +223,7 @@ readcmd(int argc __unused, char **argv _
if (ap[1] == NULL) {
/* Last variable needs all IFS chars */
saveall++;
- STPUTC(c, p);
+ USTPUTC(c, p);
continue;
}
Modified: projects/sbruno_64cpus/bin/sh/parser.c
==============================================================================
--- projects/sbruno_64cpus/bin/sh/parser.c Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/bin/sh/parser.c Wed Nov 24 21:57:45 2010 (r215806)
@@ -1017,6 +1017,7 @@ parsebackq(char *out, struct nodelist **
setprompt(2);
needprompt = 0;
}
+ CHECKSTRSPACE(2, oout);
switch (c = pgetc()) {
case '`':
goto done;
@@ -1031,14 +1032,14 @@ parsebackq(char *out, struct nodelist **
/*
* If eating a newline, avoid putting
* the newline into the new character
- * stream (via the STPUTC after the
+ * stream (via the USTPUTC after the
* switch).
*/
continue;
}
if (c != '\\' && c != '`' && c != '$'
&& (!dblquote || c != '"'))
- STPUTC('\\', oout);
+ USTPUTC('\\', oout);
break;
case '\n':
@@ -1054,10 +1055,10 @@ parsebackq(char *out, struct nodelist **
default:
break;
}
- STPUTC(c, oout);
+ USTPUTC(c, oout);
}
done:
- STPUTC('\0', oout);
+ USTPUTC('\0', oout);
olen = oout - stackblock();
INTOFF;
ostr = ckmalloc(olen);
@@ -1444,7 +1445,6 @@ parsesub: {
char *p;
static const char types[] = "}-+?=";
int bracketed_name = 0; /* used to handle ${[0-9]*} variables */
- int i;
int linno;
int length;
@@ -1498,8 +1498,7 @@ parsesub: {
linno -= funclinno - 1;
snprintf(buf, sizeof(buf), "%d", linno);
STADJUST(-6, out);
- for (i = 0; buf[i] != '\0'; i++)
- STPUTC(buf[i], out);
+ STPUTS(buf, out);
flags |= VSLINENO;
}
} else if (is_digit(c)) {
Modified: projects/sbruno_64cpus/etc/defaults/rc.conf
==============================================================================
--- projects/sbruno_64cpus/etc/defaults/rc.conf Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/etc/defaults/rc.conf Wed Nov 24 21:57:45 2010 (r215806)
@@ -58,6 +58,8 @@ rc_conf_files="/etc/rc.conf /etc/rc.conf
# ZFS support
zfs_enable="NO" # Set to YES to automatically mount ZFS file systems
+gptboot_enable="YES" # GPT boot success/failure reporting.
+
# Experimental - test before enabling
gbde_autoattach_all="NO" # YES automatically mounts gbde devices from fstab
gbde_devices="NO" # Devices to automatically attach (list, or AUTO)
Modified: projects/sbruno_64cpus/etc/rc.d/gptboot
==============================================================================
--- projects/sbruno_64cpus/etc/rc.d/gptboot Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/etc/rc.d/gptboot Wed Nov 24 21:57:45 2010 (r215806)
@@ -34,6 +34,7 @@
. /etc/rc.subr
name="gptboot"
+rcvar=`set_rcvar`
start_cmd="gptboot_report"
gptboot_report()
Modified: projects/sbruno_64cpus/share/man/man4/bge.4
==============================================================================
--- projects/sbruno_64cpus/share/man/man4/bge.4 Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/share/man/man4/bge.4 Wed Nov 24 21:57:45 2010 (r215806)
@@ -31,7 +31,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 7, 2010
+.Dd November 23, 2010
.Dt BGE 4
.Os
.Sh NAME
@@ -144,27 +144,6 @@ Force full duplex operation.
Force half duplex operation.
.El
.Pp
-The
-.Nm
-driver also supports one special link option for 1000baseTX cards:
-.Bl -tag -width ".Cm link0"
-.It Cm link0
-With 1000baseTX cards, establishing a link between two ports requires
-that one port be configured as a master and the other a slave.
-With autonegotiation,
-the master/slave settings will be chosen automatically.
-However when manually selecting the link state, it is necessary to
-force one side of the link to be a master and the other a slave.
-The
-.Nm
-driver configures the ports as slaves by default.
-Setting the
-.Cm link0
-flag with
-.Xr ifconfig 8
-will set a port as a master instead.
-.El
-.Pp
For more information on configuring this device, see
.Xr ifconfig 8 .
.Sh HARDWARE
Modified: projects/sbruno_64cpus/share/man/man4/msk.4
==============================================================================
--- projects/sbruno_64cpus/share/man/man4/msk.4 Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/share/man/man4/msk.4 Wed Nov 24 21:57:45 2010 (r215806)
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd April 30, 2010
+.Dd November 23, 2010
.Dt MSK 4
.Os
.Sh NAME
@@ -125,27 +125,6 @@ Force full duplex operation.
Force half duplex operation.
.El
.Pp
-The
-.Nm
-driver also supports one special link option for 1000baseTX cards:
-.Bl -tag -width ".Cm link0"
-.It Cm link0
-With 1000baseTX cards, establishing a link between two ports requires
-that one port is configured as master and the other one as slave.
-With autonegotiation,
-the master/slave settings will be chosen automatically.
-However when manually selecting the link state, it is necessary to
-force one side of the link to be a master and the other a slave.
-The
-.Nm
-driver configures the ports as slaves by default.
-Setting the
-.Cm link0
-flag with
-.Xr ifconfig 8
-will set a port as a master instead.
-.El
-.Pp
For more information on configuring this device, see
.Xr ifconfig 8 .
.Sh HARDWARE
Modified: projects/sbruno_64cpus/share/man/man4/nge.4
==============================================================================
--- projects/sbruno_64cpus/share/man/man4/nge.4 Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/share/man/man4/nge.4 Wed Nov 24 21:57:45 2010 (r215806)
@@ -31,7 +31,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd May 21, 2009
+.Dd November 23, 2010
.Dt NGE 4
.Os
.Sh NAME
@@ -131,27 +131,6 @@ Force full duplex operation.
Force half duplex operation.
.El
.Pp
-The
-.Nm
-driver also supports one special link option for 1000baseTX cards:
-.Bl -tag -width link0
-.It Cm link0
-With 1000baseTX cards, establishing a link between two ports requires
-that one port be configured as a master and the other a slave.
-With autonegotiation,
-the master/slave settings will be chosen automatically.
-However when manually selecting the link state, it is necessary to
-force one side of the link to be a master and the other a slave.
-The
-.Nm
-driver configures the ports as slaves by default.
-Setting the
-.Cm link0
-flag with
-.Xr ifconfig 8
-will set a port as a master instead.
-.El
-.Pp
For more information on configuring this device, see
.Xr ifconfig 8 .
.Sh HARDWARE
Modified: projects/sbruno_64cpus/share/man/man4/sk.4
==============================================================================
--- projects/sbruno_64cpus/share/man/man4/sk.4 Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/share/man/man4/sk.4 Wed Nov 24 21:57:45 2010 (r215806)
@@ -30,7 +30,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd January 23, 2009
+.Dd November 23, 2010
.Dt SK 4
.Os
.Sh NAME
@@ -132,27 +132,6 @@ Force full duplex operation
Force half duplex operation.
.El
.Pp
-The
-.Nm
-driver also supports one special link option for 1000baseTX cards:
-.Bl -tag -width xxxxxxxxxxxxxxxxxxxx
-.It link0
-With 1000baseTX cards, establishing a link between two ports requires
-that one port is configured as master and the other one as slave.
-With autonegotiation,
-the master/slave settings will be chosen automatically.
-However when manually selecting the link state, it is necessary to
-force one side of the link to be a master and the other a slave.
-The
-.Nm
-driver configures the ports as slaves by default.
-Setting the
-.Ar link0
-flag with
-.Xr ifconfig 8
-will set a port as a master instead.
-.El
-.Pp
For more information on configuring this device, see
.Xr ifconfig 8 .
.Sh HARDWARE
Modified: projects/sbruno_64cpus/share/man/man4/stge.4
==============================================================================
--- projects/sbruno_64cpus/share/man/man4/stge.4 Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/share/man/man4/stge.4 Wed Nov 24 21:57:45 2010 (r215806)
@@ -29,7 +29,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd July 25, 2006
+.Dd November 23, 2010
.Dt STGE 4
.Os
.Sh NAME
@@ -129,27 +129,6 @@ Force full duplex operation.
Force half duplex operation.
.El
.Pp
-The
-.Nm
-driver also supports one special link option for 1000baseTX cards:
-.Bl -tag -width ".Cm link0"
-.It Cm link0
-With 1000baseTX cards, establishing a link between two ports requires
-that one port is configured as master and the other one as slave.
-With autonegotiation,
-the master/slave settings will be chosen automatically.
-However when manually selecting the link state, it is necessary to
-force one side of the link to be a master and the other a slave.
-The
-.Nm
-driver configures the ports as slaves by default.
-Setting the
-.Cm link0
-flag with
-.Xr ifconfig 8
-will set a port as a master instead.
-.El
-.Pp
For more information on configuring this device, see
.Xr ifconfig 8 .
.Sh HARDWARE
Modified: projects/sbruno_64cpus/share/man/man4/vge.4
==============================================================================
--- projects/sbruno_64cpus/share/man/man4/vge.4 Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/share/man/man4/vge.4 Wed Nov 24 21:57:45 2010 (r215806)
@@ -30,7 +30,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd December 18, 2009
+.Dd November 23, 2010
.Dt VGE 4
.Os
.Sh NAME
@@ -137,27 +137,6 @@ Force full duplex operation.
Force half duplex operation.
.El
.Pp
-The
-.Nm
-driver also supports one special link option for 1000baseTX cards:
-.Bl -tag -width ".Cm link0"
-.It Cm link0
-With 1000baseTX cards, establishing a link between two ports requires
-that one port be configured as a master and the other a slave.
-With autonegotiation,
-the master/slave settings will be chosen automatically.
-However when manually selecting the link state, it is necessary to
-force one side of the link to be a master and the other a slave.
-The
-.Nm
-driver configures the ports as slaves by default.
-Setting the
-.Cm link0
-flag with
-.Xr ifconfig 8
-will set a port as a master instead.
-.El
-.Pp
For more information on configuring this device, see
.Xr ifconfig 8 .
.Sh HARDWARE
Modified: projects/sbruno_64cpus/share/man/man5/rc.conf.5
==============================================================================
--- projects/sbruno_64cpus/share/man/man5/rc.conf.5 Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/share/man/man5/rc.conf.5 Wed Nov 24 21:57:45 2010 (r215806)
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 13, 2010
+.Dd November 24, 2010
.Dt RC.CONF 5
.Os
.Sh NAME
@@ -1575,6 +1575,17 @@ If set to
.Pa /etc/rc.d/zfs
will attempt to automatically mount ZFS file systems and initialize ZFS volumes
(ZVOLs).
+.It Va gptboot_enable
+.Pq Vt bool
+If set to
+.Dq Li YES ,
+.Pa /etc/rc.d/gptboot
+will log if the system successfully (or not) booted from a GPT partition,
+which had the
+.Ar bootonce
+attribute set using
+.Xr gpart 8
+utility.
.It Va gbde_autoattach_all
.Pq Vt bool
If set to
Modified: projects/sbruno_64cpus/share/man/man9/vrele.9
==============================================================================
--- projects/sbruno_64cpus/share/man/man9/vrele.9 Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/share/man/man9/vrele.9 Wed Nov 24 21:57:45 2010 (r215806)
@@ -29,7 +29,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd October 17, 2010
+.Dd November 20, 2010
.Dt VRELE 9
.Os
.Sh NAME
@@ -74,10 +74,6 @@ with less overhead.
The
.Fn vunref
function takes a locked vnode as argument, and returns with the vnode locked.
-Nonetheless, the
-.Fn vunref
-might drop the vnode lock during the operation, so caller should not expect
-that non-doomed vnode is still non-doomed after the function returned.
.Pp
Any code in the system which signified its use of a vnode by usecount
should call one of the listed function to decrement use counter.
Modified: projects/sbruno_64cpus/sys/amd64/amd64/cpu_switch.S
==============================================================================
--- projects/sbruno_64cpus/sys/amd64/amd64/cpu_switch.S Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/sys/amd64/amd64/cpu_switch.S Wed Nov 24 21:57:45 2010 (r215806)
@@ -276,7 +276,7 @@ load_dr:
do_tss: movq %rdx,PCPU(TSSP)
movq %rdx,%rcx
movq PCPU(TSS),%rax
- movw %rcx,2(%rax)
+ movw %cx,2(%rax)
shrq $16,%rcx
movb %cl,4(%rax)
shrq $8,%rcx
Modified: projects/sbruno_64cpus/sys/compat/ndis/ntoskrnl_var.h
==============================================================================
--- projects/sbruno_64cpus/sys/compat/ndis/ntoskrnl_var.h Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/sys/compat/ndis/ntoskrnl_var.h Wed Nov 24 21:57:45 2010 (r215806)
@@ -1282,6 +1282,7 @@ typedef struct driver_object driver_obje
#define STATUS_PENDING 0x00000103
#define STATUS_FAILURE 0xC0000001
#define STATUS_NOT_IMPLEMENTED 0xC0000002
+#define STATUS_ACCESS_VIOLATION 0xC0000005
#define STATUS_INVALID_PARAMETER 0xC000000D
#define STATUS_INVALID_DEVICE_REQUEST 0xC0000010
#define STATUS_MORE_PROCESSING_REQUIRED 0xC0000016
Modified: projects/sbruno_64cpus/sys/compat/ndis/subr_ndis.c
==============================================================================
--- projects/sbruno_64cpus/sys/compat/ndis/subr_ndis.c Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/sys/compat/ndis/subr_ndis.c Wed Nov 24 21:57:45 2010 (r215806)
@@ -254,6 +254,7 @@ static uint8_t
void *, void *);
static void NdisGetCurrentSystemTime(uint64_t *);
static void NdisGetSystemUpTime(uint32_t *);
+static uint32_t NdisGetVersion(void);
static void NdisInitializeString(unicode_string *, char *);
static void NdisInitAnsiString(ansi_string *, char *);
static void NdisInitUnicodeString(unicode_string *, uint16_t *);
@@ -274,6 +275,7 @@ static void NdisMapFile(ndis_status *, v
static void NdisUnmapFile(ndis_handle);
static void NdisCloseFile(ndis_handle);
static uint8_t NdisSystemProcessorCount(void);
+static void NdisGetCurrentProcessorCounts(uint32_t *, uint32_t *, uint32_t *);
static void NdisMIndicateStatusComplete(ndis_handle);
static void NdisMIndicateStatus(ndis_handle, ndis_status,
void *, uint32_t);
@@ -2067,6 +2069,12 @@ NdisInterlockedDecrement(addend)
return (*addend);
}
+static uint32_t
+NdisGetVersion(void)
+{
+ return (0x00050001);
+}
+
static void
NdisInitializeEvent(event)
ndis_event *event;
@@ -2950,6 +2958,20 @@ NdisSystemProcessorCount()
return (mp_ncpus);
}
+static void
+NdisGetCurrentProcessorCounts(idle_count, kernel_and_user, index)
+ uint32_t *idle_count;
+ uint32_t *kernel_and_user;
+ uint32_t *index;
+{
+ struct pcpu *pcpu;
+
+ pcpu = pcpu_find(curthread->td_oncpu);
+ *index = pcpu->pc_cpuid;
+ *idle_count = pcpu->pc_cp_time[CP_IDLE];
+ *kernel_and_user = pcpu->pc_cp_time[CP_INTR];
+}
+
typedef void (*ndis_statusdone_handler)(ndis_handle);
typedef void (*ndis_status_handler)(ndis_handle, ndis_status,
void *, uint32_t);
@@ -3207,6 +3229,7 @@ image_patch_table ndis_functbl[] = {
IMPORT_SFUNC(NdisMIndicateStatusComplete, 1),
IMPORT_SFUNC(NdisMIndicateStatus, 4),
IMPORT_SFUNC(NdisSystemProcessorCount, 0),
+ IMPORT_SFUNC(NdisGetCurrentProcessorCounts, 3),
IMPORT_SFUNC(NdisUnchainBufferAtBack, 2),
IMPORT_SFUNC(NdisGetFirstBufferFromPacket, 5),
IMPORT_SFUNC(NdisGetFirstBufferFromPacketSafe, 6),
@@ -3224,6 +3247,7 @@ image_patch_table ndis_functbl[] = {
IMPORT_SFUNC(NdisFreeString, 1),
IMPORT_SFUNC(NdisGetCurrentSystemTime, 1),
IMPORT_SFUNC(NdisGetSystemUpTime, 1),
+ IMPORT_SFUNC(NdisGetVersion, 0),
IMPORT_SFUNC(NdisMSynchronizeWithInterrupt, 3),
IMPORT_SFUNC(NdisMAllocateSharedMemoryAsync, 4),
IMPORT_SFUNC(NdisInterlockedInsertHeadList, 3),
Modified: projects/sbruno_64cpus/sys/compat/ndis/subr_ntoskrnl.c
==============================================================================
--- projects/sbruno_64cpus/sys/compat/ndis/subr_ntoskrnl.c Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/sys/compat/ndis/subr_ntoskrnl.c Wed Nov 24 21:57:45 2010 (r215806)
@@ -128,6 +128,7 @@ static kspin_lock ntoskrnl_intlock;
static uint8_t RtlEqualUnicodeString(unicode_string *,
unicode_string *, uint8_t);
+static void RtlCopyString(ansi_string *, const ansi_string *);
static void RtlCopyUnicodeString(unicode_string *,
unicode_string *);
static irp *IoBuildSynchronousFsdRequest(uint32_t, device_object *,
@@ -180,7 +181,9 @@ static uint64_t _aullrem(uint64_t, uint6
static uint64_t _aullshr(uint64_t, uint8_t);
static uint64_t _aullshl(uint64_t, uint8_t);
static slist_entry *ntoskrnl_pushsl(slist_header *, slist_entry *);
+static void InitializeSListHead(slist_header *);
static slist_entry *ntoskrnl_popsl(slist_header *);
+static void ExFreePoolWithTag(void *, uint32_t);
static void ExInitializePagedLookasideList(paged_lookaside_list *,
lookaside_alloc_func *, lookaside_free_func *,
uint32_t, size_t, uint32_t, uint16_t);
@@ -210,6 +213,10 @@ static void *MmMapLockedPagesSpecifyCach
static void MmUnmapLockedPages(void *, mdl *);
static device_t ntoskrnl_finddev(device_t, uint64_t, struct resource **);
static void RtlZeroMemory(void *, size_t);
+static void RtlSecureZeroMemory(void *, size_t);
+static void RtlFillMemory(void *, size_t, uint8_t);
+static void RtlMoveMemory(void *, const void *, size_t);
+static ndis_status RtlCharToInteger(const char *, uint32_t, uint32_t *);
static void RtlCopyMemory(void *, const void *, size_t);
static size_t RtlCompareMemory(const void *, const void *, size_t);
static ndis_status RtlUnicodeStringToInteger(unicode_string *,
@@ -538,6 +545,20 @@ RtlEqualUnicodeString(unicode_string *st
}
static void
+RtlCopyString(dst, src)
+ ansi_string *dst;
+ const ansi_string *src;
+{
+ if (src != NULL && src->as_buf != NULL && dst->as_buf != NULL) {
+ dst->as_len = min(src->as_len, dst->as_maxlen);
+ memcpy(dst->as_buf, src->as_buf, dst->as_len);
+ if (dst->as_len < dst->as_maxlen)
+ dst->as_buf[dst->as_len] = 0;
+ } else
+ dst->as_len = 0;
+}
+
+static void
RtlCopyUnicodeString(dest, src)
unicode_string *dest;
unicode_string *src;
@@ -650,6 +671,14 @@ ExAllocatePoolWithTag(pooltype, len, tag
return (buf);
}
+static void
+ExFreePoolWithTag(buf, tag)
+ void *buf;
+ uint32_t tag;
+{
+ ExFreePool(buf);
+}
+
void
ExFreePool(buf)
void *buf;
@@ -2056,6 +2085,13 @@ ntoskrnl_pushsl(head, entry)
return (oldhead);
}
+static void
+InitializeSListHead(head)
+ slist_header *head;
+{
+ memset(head, 0, sizeof(*head));
+}
+
static slist_entry *
ntoskrnl_popsl(head)
slist_header *head;
@@ -2725,6 +2761,59 @@ ntoskrnl_workitem_thread(arg)
return; /* notreached */
}
+static ndis_status
+RtlCharToInteger(src, base, val)
+ const char *src;
+ uint32_t base;
+ uint32_t *val;
+{
+ int negative = 0;
+ uint32_t res;
+
+ if (!src || !val)
+ return (STATUS_ACCESS_VIOLATION);
+ while (*src != '\0' && *src <= ' ')
+ src++;
+ if (*src == '+')
+ src++;
+ else if (*src == '-') {
+ src++;
+ negative = 1;
+ }
+ if (base == 0) {
+ base = 10;
+ if (*src == '0') {
+ src++;
+ if (*src == 'b') {
+ base = 2;
+ src++;
+ } else if (*src == 'o') {
+ base = 8;
+ src++;
+ } else if (*src == 'x') {
+ base = 16;
+ src++;
+ }
+ }
+ } else if (!(base == 2 || base == 8 || base == 10 || base == 16))
+ return (STATUS_INVALID_PARAMETER);
+
+ for (res = 0; *src; src++) {
+ int v;
+ if (isdigit(*src))
+ v = *src - '0';
+ else if (isxdigit(*src))
+ v = tolower(*src) - 'a' + 10;
+ else
+ v = base;
+ if (v >= base)
+ return (STATUS_INVALID_PARAMETER);
+ res = res * base + v;
+ }
+ *val = negative ? -res : res;
+ return (STATUS_SUCCESS);
+}
+
static void
ntoskrnl_destroy_workitem_threads(void)
{
@@ -2905,6 +2994,32 @@ RtlZeroMemory(dst, len)
}
static void
+RtlSecureZeroMemory(dst, len)
+ void *dst;
+ size_t len;
+{
+ memset(dst, 0, len);
+}
+
+static void
+RtlFillMemory(dst, len, c)
+ void *dst;
+ size_t len;
+ uint8_t c;
+{
+ memset(dst, c, len);
+}
+
+static void
+RtlMoveMemory(dst, src, len)
+ void *dst;
+ const void *src;
+ size_t len;
+{
+ memmove(dst, src, len);
+}
+
+static void
RtlCopyMemory(dst, src, len)
void *dst;
const void *src;
@@ -2919,17 +3034,14 @@ RtlCompareMemory(s1, s2, len)
const void *s2;
size_t len;
{
- size_t i, total = 0;
+ size_t i;
uint8_t *m1, *m2;
m1 = __DECONST(char *, s1);
m2 = __DECONST(char *, s2);
- for (i = 0; i < len; i++) {
- if (m1[i] == m2[i])
- total++;
- }
- return (total);
+ for (i = 0; i < len && m1[i] == m2[i]; i++);
+ return (i);
}
void
@@ -4124,7 +4236,12 @@ dummy()
image_patch_table ntoskrnl_functbl[] = {
IMPORT_SFUNC(RtlZeroMemory, 2),
+ IMPORT_SFUNC(RtlSecureZeroMemory, 2),
+ IMPORT_SFUNC(RtlFillMemory, 3),
+ IMPORT_SFUNC(RtlMoveMemory, 3),
+ IMPORT_SFUNC(RtlCharToInteger, 3),
IMPORT_SFUNC(RtlCopyMemory, 3),
+ IMPORT_SFUNC(RtlCopyString, 2),
IMPORT_SFUNC(RtlCompareMemory, 3),
IMPORT_SFUNC(RtlEqualUnicodeString, 3),
IMPORT_SFUNC(RtlCopyUnicodeString, 2),
@@ -4211,6 +4328,7 @@ image_patch_table ntoskrnl_functbl[] = {
IMPORT_SFUNC(ExInitializeNPagedLookasideList, 7),
IMPORT_SFUNC(ExDeleteNPagedLookasideList, 1),
IMPORT_FFUNC(InterlockedPopEntrySList, 1),
+ IMPORT_FFUNC(InitializeSListHead, 1),
IMPORT_FFUNC(InterlockedPushEntrySList, 2),
IMPORT_SFUNC(ExQueryDepthSList, 1),
IMPORT_FFUNC_MAP(ExpInterlockedPopEntrySList,
@@ -4220,6 +4338,7 @@ image_patch_table ntoskrnl_functbl[] = {
IMPORT_FFUNC(ExInterlockedPopEntrySList, 2),
IMPORT_FFUNC(ExInterlockedPushEntrySList, 3),
IMPORT_SFUNC(ExAllocatePoolWithTag, 3),
+ IMPORT_SFUNC(ExFreePoolWithTag, 2),
IMPORT_SFUNC(ExFreePool, 1),
#ifdef __i386__
IMPORT_FFUNC(KefAcquireSpinLockAtDpcLevel, 1),
Modified: projects/sbruno_64cpus/sys/dev/e1000/e1000_api.c
==============================================================================
--- projects/sbruno_64cpus/sys/dev/e1000/e1000_api.c Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/sys/dev/e1000/e1000_api.c Wed Nov 24 21:57:45 2010 (r215806)
@@ -312,6 +312,8 @@ s32 e1000_set_mac_type(struct e1000_hw *
case E1000_DEV_ID_82580_SGMII:
case E1000_DEV_ID_82580_COPPER_DUAL:
case E1000_DEV_ID_82580_QUAD_FIBER:
+ case E1000_DEV_ID_DH89XXCC_SGMII:
+ case E1000_DEV_ID_DH89XXCC_SERDES:
mac->type = e1000_82580;
break;
case E1000_DEV_ID_82576_VF:
Modified: projects/sbruno_64cpus/sys/dev/e1000/e1000_hw.h
==============================================================================
--- projects/sbruno_64cpus/sys/dev/e1000/e1000_hw.h Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/sys/dev/e1000/e1000_hw.h Wed Nov 24 21:57:45 2010 (r215806)
@@ -150,6 +150,8 @@ struct e1000_hw;
#define E1000_DEV_ID_82580_SGMII 0x1511
#define E1000_DEV_ID_82580_COPPER_DUAL 0x1516
#define E1000_DEV_ID_82580_QUAD_FIBER 0x1527
+#define E1000_DEV_ID_DH89XXCC_SGMII 0x0436
+#define E1000_DEV_ID_DH89XXCC_SERDES 0x0438
#define E1000_REVISION_0 0
#define E1000_REVISION_1 1
#define E1000_REVISION_2 2
Modified: projects/sbruno_64cpus/sys/dev/e1000/if_igb.c
==============================================================================
--- projects/sbruno_64cpus/sys/dev/e1000/if_igb.c Wed Nov 24 21:54:45 2010 (r215805)
+++ projects/sbruno_64cpus/sys/dev/e1000/if_igb.c Wed Nov 24 21:57:45 2010 (r215806)
@@ -99,7 +99,7 @@ int igb_display_debug_stats = 0;
/*********************************************************************
* Driver version:
*********************************************************************/
-char igb_driver_version[] = "version - 2.0.4";
+char igb_driver_version[] = "version - 2.0.7";
/*********************************************************************
@@ -137,6 +137,10 @@ static igb_vendor_info_t igb_vendor_info
{ 0x8086, E1000_DEV_ID_82580_SGMII, PCI_ANY_ID, PCI_ANY_ID, 0},
{ 0x8086, E1000_DEV_ID_82580_COPPER_DUAL,
PCI_ANY_ID, PCI_ANY_ID, 0},
+ { 0x8086, E1000_DEV_ID_82580_QUAD_FIBER,
+ PCI_ANY_ID, PCI_ANY_ID, 0},
+ { 0x8086, E1000_DEV_ID_DH89XXCC_SERDES, PCI_ANY_ID, PCI_ANY_ID, 0},
+ { 0x8086, E1000_DEV_ID_DH89XXCC_SGMII, PCI_ANY_ID, PCI_ANY_ID, 0},
/* required last entry */
{ 0, 0, 0, 0, 0}
};
@@ -307,11 +311,19 @@ static int igb_enable_msix = 1;
TUNABLE_INT("hw.igb.enable_msix", &igb_enable_msix);
/*
- * Header split has seemed to be beneficial in
- * many circumstances tested, however there have
- * been some stability issues, so the default is
- * off.
- */
+** Tuneable Interrupt rate
+*/
+static int igb_max_interrupt_rate = 8000;
+TUNABLE_INT("hw.igb.max_interrupt_rate", &igb_max_interrupt_rate);
+
+/*
+** Header split causes the packet header to
+** be dma'd to a seperate mbuf from the payload.
+** this can have memory alignment benefits. But
+** another plus is that small packets often fit
+** into the header and thus use no cluster. Its
+** a very workload dependent type feature.
+*/
static bool igb_header_split = FALSE;
TUNABLE_INT("hw.igb.hdr_split", &igb_header_split);
@@ -330,15 +342,6 @@ TUNABLE_INT("hw.igb.rx_process_limit", &
static int igb_fc_setting = e1000_fc_full;
TUNABLE_INT("hw.igb.fc_setting", &igb_fc_setting);
-/*
-** Shadow VFTA table, this is needed because
-** the real filter table gets cleared during
-** a soft reset and the driver needs to be able
-** to repopulate it.
-*/
-static u32 igb_shadow_vfta[IGB_VFTA_SIZE];
-
-
/*********************************************************************
* Device identification routine
*
@@ -818,7 +821,7 @@ igb_start_locked(struct tx_ring *txr, st
/* Set watchdog on */
txr->watchdog_time = ticks;
- txr->watchdog_check = TRUE;
+ txr->queue_status = IGB_QUEUE_WORKING;
}
}
@@ -922,7 +925,7 @@ igb_mq_start_locked(struct ifnet *ifp, s
}
if (enq > 0) {
/* Set the watchdog */
- txr->watchdog_check = TRUE;
+ txr->queue_status = IGB_QUEUE_WORKING;
txr->watchdog_time = ticks;
}
return (err);
@@ -1049,6 +1052,11 @@ igb_ioctl(struct ifnet *ifp, u_long comm
}
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list