PERFORCE change 162725 for review
Edward Tomasz Napierala
trasz at FreeBSD.org
Mon May 25 16:32:25 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=162725
Change 162725 by trasz at trasz_victim on 2009/05/25 16:32:02
IFC.
Affected files ...
.. //depot/projects/soc2008/trasz_nfs4acl/sbin/fdisk/fdisk.8#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sbin/fdisk/fdisk.c#6 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sbin/geom/class/journal/gjournal.8#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man4/msk.4#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_MOUNT.9#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_QUOTACTL.9#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_ROOT.9#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_STATFS.9#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_SYNC.9#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_UNMOUNT.9#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/acl.9#7 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c#8 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/compat/ndis/kern_ndis.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/conf/files#39 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mii/e1000phy.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mii/e1000phyreg.h#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mii/miidevs#8 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/msk/if_msk.c#8 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/msk/if_mskreg.h#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/nfe/if_nfe.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/nfs/nfs_commonkrpc.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/nfs/nfs_commonport.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/nfs/nfsport.h#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/nfsserver/nfs_nfsdkrpc.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/nfsserver/nfs_nfsdserv.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/tcp_reass.c#8 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netipx/spx.h#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netipx/spx_reass.c#1 branch
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netipx/spx_usrreq.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netipx/spx_var.h#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/usr.bin/sed/multitest.t#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/usr.bin/sed/regress.multitest.out/40_2.21#1 branch
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/usr.bin/sed/regress.multitest.out/41_2.22#1 branch
.. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/sed/compile.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/sed/defs.h#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/sed/process.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/sed/sed.1#4 integrate
Differences ...
==== //depot/projects/soc2008/trasz_nfs4acl/sbin/fdisk/fdisk.8#3 (text+ko) ====
@@ -1,4 +1,4 @@
-.\" $FreeBSD: src/sbin/fdisk/fdisk.8,v 1.40 2008/07/31 00:55:29 obrien Exp $
+.\" $FreeBSD: src/sbin/fdisk/fdisk.8,v 1.41 2009/05/25 09:23:26 brian Exp $
.\"
.Dd April 30, 2007
.Dt FDISK 8
@@ -372,6 +372,31 @@
for
.Ar length
sectors.
+If the
+.Ar start
+or
+.Ar length
+is suffixed with a
+.Em K ,
+.Em M
+or
+.Em G ,
+it is taken as a
+.Em Kilobyte ,
+.Em Megabyte
+or
+.Em Gigabyte
+measurement respectively.
+If the
+.Ar start
+is given as
+.Qq *
+it is set to the value of the previous partition end.
+If the
+.Ar length
+is given as
+.Qq *
+the partition end is set to the end of the disk.
.Pp
Only those slices explicitly mentioned by these lines are modified;
any slice not referenced by a
@@ -421,6 +446,17 @@
downwards to correspond to head and cylinder boundaries):
.Pp
.Dl "p 1 165 1 2503871"
+.Pp
+Example: to set slices 1, 2 and 4 to
+.Fx
+slices, the first being 2 Gigabytes, the second being 10 Gigabytes and the
+forth being the remainder of the disk (again, numbers will be rounded
+appropriately):
+.Pp
+.Dl "p 1 165 63 2G"
+.Dl "p 2 165 * 10G"
+.Dl "p 3 0 0 0"
+.Dl "p 4 165 * *"
.It Ic a Ar slice
Make
.Ar slice
==== //depot/projects/soc2008/trasz_nfs4acl/sbin/fdisk/fdisk.c#6 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sbin/fdisk/fdisk.c,v 1.92 2009/01/14 22:05:51 luigi Exp $");
+__FBSDID("$FreeBSD: src/sbin/fdisk/fdisk.c,v 1.93 2009/05/25 09:23:26 brian Exp $");
#include <sys/disk.h>
#include <sys/disklabel.h>
@@ -49,6 +49,7 @@
int iotest;
+#define NOSECTORS ((u_int32_t)-1)
#define LBUF 100
static char lbuf[LBUF];
@@ -106,6 +107,7 @@
struct arg {
char argtype;
int arg_val;
+ char *arg_str;
} args[MAX_ARGS];
} CMD;
@@ -970,16 +972,23 @@
*/
while (1) {
while (isspace(*cp)) ++cp;
+ if (*cp == '\0')
+ break; /* eol */
if (*cp == '#')
break; /* found comment */
if (isalpha(*cp))
command->args[command->n_args].argtype = *cp++;
- if (!isdigit(*cp))
- break; /* assume end of line */
end = NULL;
command->args[command->n_args].arg_val = strtol(cp, &end, 0);
- if (cp == end)
- break; /* couldn't parse number */
+ if (cp == end || (!isspace(*end) && *end != '\0')) {
+ char ch;
+ end = cp;
+ while (!isspace(*end) && *end != '\0') ++end;
+ ch = *end; *end = '\0';
+ command->args[command->n_args].arg_str = strdup(cp);
+ *end = ch;
+ } else
+ command->args[command->n_args].arg_str = NULL;
cp = end;
command->n_args++;
}
@@ -1078,6 +1087,33 @@
return (status);
}
+static u_int32_t
+str2sectors(const char *str)
+{
+ char *end;
+ unsigned long val;
+
+ val = strtoul(str, &end, 0);
+ if (str == end || *end == '\0') {
+ warnx("ERROR line %d: unexpected size: \'%s\'",
+ current_line_number, str);
+ return NOSECTORS;
+ }
+
+ if (*end == 'K')
+ val *= 1024UL / secsize;
+ else if (*end == 'M')
+ val *= 1024UL * 1024UL / secsize;
+ else if (*end == 'G')
+ val *= 1024UL * 1024UL * 1024UL / secsize;
+ else {
+ warnx("ERROR line %d: unexpected modifier: %c "
+ "(not K/M/G)", current_line_number, *end);
+ return NOSECTORS;
+ }
+
+ return val;
+}
static int
process_partition(CMD *command)
@@ -1103,8 +1139,48 @@
partp = &mboot.parts[partition - 1];
bzero(partp, sizeof (*partp));
partp->dp_typ = command->args[1].arg_val;
- partp->dp_start = command->args[2].arg_val;
- partp->dp_size = command->args[3].arg_val;
+ if (command->args[2].arg_str != NULL) {
+ if (strcmp(command->args[2].arg_str, "*") == 0) {
+ int i;
+ partp->dp_start = dos_sectors;
+ for (i = 1; i < partition; i++) {
+ struct dos_partition *prev_partp;
+ prev_partp = ((struct dos_partition *)
+ &mboot.parts) + i - 1;
+ if (prev_partp->dp_typ != 0)
+ partp->dp_start = prev_partp->dp_start +
+ prev_partp->dp_size;
+ }
+ if (partp->dp_start % dos_sectors != 0) {
+ prev_head_boundary = partp->dp_start /
+ dos_sectors * dos_sectors;
+ partp->dp_start = prev_head_boundary +
+ dos_sectors;
+ }
+ } else {
+ partp->dp_start = str2sectors(command->args[2].arg_str);
+ if (partp->dp_start == NOSECTORS)
+ break;
+ }
+ } else
+ partp->dp_start = command->args[2].arg_val;
+
+ if (command->args[3].arg_str != NULL) {
+ if (strcmp(command->args[3].arg_str, "*") == 0)
+ partp->dp_size = ((disksecs / dos_cylsecs) *
+ dos_cylsecs) - partp->dp_start;
+ else {
+ partp->dp_size = str2sectors(command->args[3].arg_str);
+ if (partp->dp_size == NOSECTORS)
+ break;
+ }
+ prev_cyl_boundary = ((partp->dp_start + partp->dp_size) /
+ dos_cylsecs) * dos_cylsecs;
+ if (prev_cyl_boundary > partp->dp_start)
+ partp->dp_size = prev_cyl_boundary - partp->dp_start;
+ } else
+ partp->dp_size = command->args[3].arg_val;
+
max_end = partp->dp_start + partp->dp_size;
if (partp->dp_typ == 0) {
==== //depot/projects/soc2008/trasz_nfs4acl/sbin/geom/class/journal/gjournal.8#5 (text+ko) ====
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/sbin/geom/class/journal/gjournal.8,v 1.9 2009/04/29 10:02:50 trasz Exp $
+.\" $FreeBSD: src/sbin/geom/class/journal/gjournal.8,v 1.10 2009/05/25 09:52:58 maxim Exp $
.\"
.Dd February 17, 2009
.Dt GJOURNAL 8
@@ -220,7 +220,7 @@
.Bd -literal -offset indent
umount /dev/da0s1d
gjournal label da0s1d da0s1e && \e
- tunefs -J enable -n disable da01sd.journal && \e
+ tunefs -J enable -n disable da0s1d.journal && \e
mount -o async /dev/da0s1d.journal /mnt || \e
mount /dev/da0s1d /mnt
.Ed
==== //depot/projects/soc2008/trasz_nfs4acl/share/man/man4/msk.4#2 (text+ko) ====
@@ -22,9 +22,9 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man4/msk.4,v 1.6 2007/12/05 09:41:58 remko Exp $
+.\" $FreeBSD: src/share/man/man4/msk.4,v 1.8 2009/05/25 08:27:52 yongari Exp $
.\"
-.Dd December 5, 2007
+.Dd May 25, 2009
.Dt MSK 4
.Os
.Sh NAME
@@ -176,13 +176,19 @@
.It
Marvell Yukon 88E8062 SX/LX Gigabit Ethernet
.It
-Marvell Yukon 88E8035 Gigabit Ethernet
+Marvell Yukon 88E8035 Fast Ethernet
+.It
+Marvell Yukon 88E8036 Fast Ethernet
+.It
+Marvell Yukon 88E8038 Fast Ethernet
+.It
+Marvell Yukon 88E8039 Fast Ethernet
.It
-Marvell Yukon 88E8036 Gigabit Ethernet
+Marvell Yukon 88E8040 Fast Ethernet
.It
-Marvell Yukon 88E8038 Gigabit Ethernet
+Marvell Yukon 88E8040T Fast Ethernet
.It
-Marvell Yukon 88E8039 Gigabit Ethernet
+Marvell Yukon 88E8048 Fast Ethernet
.It
Marvell Yukon 88E8050 Gigabit Ethernet
.It
@@ -196,6 +202,8 @@
.It
Marvell Yukon 88E8058 Gigabit Ethernet
.It
+Marvell Yukon 88E8070 Fast Ethernet
+.It
SysKonnect SK-9Sxx Gigabit Ethernet
.It
SysKonnect SK-9Exx Gigabit Ethernet
==== //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_MOUNT.9#2 (text+ko) ====
@@ -26,9 +26,9 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/VFS_MOUNT.9,v 1.14 2005/01/07 10:57:33 keramida Exp $
+.\" $FreeBSD: src/share/man/man9/VFS_MOUNT.9,v 1.15 2009/05/24 18:34:54 tmclaugh Exp $
.\"
-.Dd January 7, 2005
+.Dd May 23, 2009
.Os
.Dt VFS_MOUNT 9
.Sh NAME
@@ -39,7 +39,7 @@
.In sys/mount.h
.In sys/vnode.h
.Ft int
-.Fn VFS_MOUNT "struct mount *mp" "struct thread *td"
+.Fn VFS_MOUNT "struct mount *mp"
.Sh DESCRIPTION
The
.Fn VFS_MOUNT
@@ -50,8 +50,6 @@
.Bl -tag -width data
.It Fa mp
Structure representing the file system.
-.It Fa td
-Thread which is mounting the file system.
.El
.Pp
The
==== //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_QUOTACTL.9#2 (text+ko) ====
@@ -26,9 +26,9 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/VFS_QUOTACTL.9,v 1.10 2003/10/23 06:24:55 hmp Exp $
+.\" $FreeBSD: src/share/man/man9/VFS_QUOTACTL.9,v 1.11 2009/05/24 18:34:54 tmclaugh Exp $
.\"
-.Dd July 24, 1996
+.Dd May 23, 2009
.Os
.Dt VFS_QUOTACTL 9
.Sh NAME
@@ -39,7 +39,7 @@
.In sys/mount.h
.In sys/vnode.h
.Ft int
-.Fn VFS_QUOTACTL "struct mount *mp" "int cmds" "uid_t uid" "caddr_t arg" "struct thread *td"
+.Fn VFS_QUOTACTL "struct mount *mp" "int cmds" "uid_t uid" "caddr_t arg"
.Sh DESCRIPTION
Implement file system quotas.
See
==== //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_ROOT.9#2 (text+ko) ====
@@ -26,9 +26,9 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/VFS_ROOT.9,v 1.12 2006/09/18 15:24:20 ru Exp $
+.\" $FreeBSD: src/share/man/man9/VFS_ROOT.9,v 1.13 2009/05/24 18:34:54 tmclaugh Exp $
.\"
-.Dd August 26, 2006
+.Dd May 23, 2009
.Os
.Dt VFS_ROOT 9
.Sh NAME
@@ -39,7 +39,7 @@
.In sys/mount.h
.In sys/vnode.h
.Ft int
-.Fn VFS_ROOT "struct mount *mp" "int flags" "struct vnode **vpp" "struct thread *td"
+.Fn VFS_ROOT "struct mount *mp" "int flags" "struct vnode **vpp"
.Sh DESCRIPTION
Return a locked vnode for the root directory of the file system.
.Pp
@@ -58,8 +58,6 @@
argument and instead acquire an exclusive lock.
.It Fa vpp
Return parameter for the root vnode.
-.It Fa td
-The calling thread.
.El
.Sh SEE ALSO
.Xr VFS 9 ,
==== //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_STATFS.9#2 (text+ko) ====
@@ -26,9 +26,9 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/VFS_STATFS.9,v 1.12 2005/01/13 09:33:06 ru Exp $
+.\" $FreeBSD: src/share/man/man9/VFS_STATFS.9,v 1.13 2009/05/24 18:34:54 tmclaugh Exp $
.\"
-.Dd January 7, 2005
+.Dd May 23, 2009
.Os
.Dt VFS_STATFS 9
.Sh NAME
@@ -39,7 +39,7 @@
.In sys/mount.h
.In sys/vnode.h
.Ft int
-.Fn VFS_STATFS "struct mount *mp" "struct statfs *sbp" "struct thread *td"
+.Fn VFS_STATFS "struct mount *mp" "struct statfs *sbp"
.Sh DESCRIPTION
The
.Fn VFS_STATFS
@@ -56,8 +56,6 @@
structure, as defined by
.In sys/mount.h ,
into which information is placed about the file system.
-.It Fa td
-The thread which is querying the file system.
.El
.Pp
The fields of
==== //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_SYNC.9#2 (text+ko) ====
@@ -26,9 +26,9 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/VFS_SYNC.9,v 1.16 2007/05/12 13:10:55 pav Exp $
+.\" $FreeBSD: src/share/man/man9/VFS_SYNC.9,v 1.17 2009/05/24 18:34:54 tmclaugh Exp $
.\"
-.Dd January 7, 2005
+.Dd May 23, 2009
.Os
.Dt VFS_SYNC 9
.Sh NAME
@@ -39,7 +39,7 @@
.In sys/mount.h
.In sys/vnode.h
.Ft int
-.Fn VFS_SYNC "struct mount *mp" "int waitfor" "struct thread *td"
+.Fn VFS_SYNC "struct mount *mp" "int waitfor"
.Sh DESCRIPTION
The
.Fn VFS_SYNC
@@ -61,8 +61,6 @@
.It Dv MNT_LAZY
push data not written by file system syncer
.El
-.It Fa td
-The calling thread.
.El
.Pp
The
==== //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_UNMOUNT.9#2 (text+ko) ====
@@ -26,9 +26,9 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/VFS_UNMOUNT.9,v 1.11 2005/01/07 11:45:11 keramida Exp $
+.\" $FreeBSD: src/share/man/man9/VFS_UNMOUNT.9,v 1.12 2009/05/24 18:34:54 tmclaugh Exp $
.\"
-.Dd January 7, 2005
+.Dd May 23, 2009
.Os
.Dt VFS_UNMOUNT 9
.Sh NAME
@@ -39,7 +39,7 @@
.In sys/mount.h
.In sys/vnode.h
.Ft int
-.Fn VFS_UNMOUNT "struct mount *mp" "int mntflags" "struct thread *td"
+.Fn VFS_UNMOUNT "struct mount *mp" "int mntflags"
.Sh DESCRIPTION
The
.Fn VFS_UNMOUNT
@@ -58,8 +58,6 @@
.It Dv MNT_FORCE
Open files are forcibly closed before the file system is unmounted.
.El
-.It Fa td
-Thread which is unmounting the file system.
.El
.Sh SEE ALSO
.Xr vflush 9 ,
==== //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/acl.9#7 (text+ko) ====
@@ -23,7 +23,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/acl.9,v 1.17 2009/05/24 09:42:53 trasz Exp $
+.\" $FreeBSD: src/share/man/man9/acl.9,v 1.19 2009/05/24 20:34:29 trasz Exp $
.\"
.Dd December 23, 1999
.Os
==== //depot/projects/soc2008/trasz_nfs4acl/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c#8 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c,v 1.6 2008/11/23 20:14:19 pjd Exp $");
+__FBSDID("$FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c,v 1.7 2009/05/24 19:21:49 trasz Exp $");
#include <sys/param.h>
#include <sys/priv.h>
==== //depot/projects/soc2008/trasz_nfs4acl/sys/compat/ndis/kern_ndis.c#5 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.103 2009/03/07 07:26:22 weongyo Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.104 2009/05/24 18:35:53 antoine Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -543,7 +543,7 @@
return;
}
-int in_reset = 0;
+
void
ndis_free_packet(p)
ndis_packet *p;
==== //depot/projects/soc2008/trasz_nfs4acl/sys/conf/files#39 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1402 2009/05/22 12:35:12 rwatson Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1403 2009/05/25 09:28:54 rwatson Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -2428,6 +2428,7 @@
netipx/ipx_proto.c optional ipx
netipx/ipx_usrreq.c optional ipx
netipx/spx_debug.c optional ipx
+netipx/spx_reass.c optional ipx
netipx/spx_usrreq.c optional ipx
netnatm/natm.c optional natm
netnatm/natm_pcb.c optional natm
==== //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mii/e1000phy.c#5 (text+ko) ====
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/mii/e1000phy.c,v 1.23 2008/10/17 05:26:51 yongari Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/mii/e1000phy.c,v 1.28 2009/05/25 02:36:29 yongari Exp $");
/*
* driver for the Marvell 88E1000 series external 1000/100/10-BT PHY.
@@ -107,6 +107,7 @@
MII_PHY_DESC(MARVELL, E1116),
MII_PHY_DESC(MARVELL, E1116R),
MII_PHY_DESC(MARVELL, E1118),
+ MII_PHY_DESC(MARVELL, E3016),
MII_PHY_DESC(xxMARVELL, E1000),
MII_PHY_DESC(xxMARVELL, E1011),
MII_PHY_DESC(xxMARVELL, E1000_3),
@@ -129,7 +130,6 @@
struct mii_softc *sc;
struct mii_attach_args *ma;
struct mii_data *mii;
- int fast_ether;
esc = device_get_softc(dev);
sc = &esc->mii_sc;
@@ -142,10 +142,8 @@
sc->mii_phy = ma->mii_phyno;
sc->mii_service = e1000phy_service;
sc->mii_pdata = mii;
- sc->mii_anegticks = MII_ANEGTICKS_GIGE;
mii->mii_instance++;
- fast_ether = 0;
esc->mii_model = MII_MODEL(ma->mii_id2);
switch (esc->mii_model) {
case MII_MODEL_MARVELL_E1011:
@@ -167,54 +165,16 @@
*/
PHY_WRITE(sc, E1000_EADR, 0);
break;
- case MII_MODEL_MARVELL_E3082:
- /* 88E3082 10/100 Fast Ethernet PHY. */
- sc->mii_anegticks = MII_ANEGTICKS;
- fast_ether = 1;
- break;
}
e1000phy_reset(sc);
+ sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & ma->mii_capmask;
+ if (sc->mii_capabilities & BMSR_EXTSTAT)
+ sc->mii_extcapabilities = PHY_READ(sc, MII_EXTSR);
device_printf(dev, " ");
-
-#define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL)
- ADD(IFM_MAKEWORD(IFM_ETHER, IFM_NONE, 0, sc->mii_inst),
- E1000_CR_ISOLATE);
- if ((sc->mii_flags & MIIF_HAVEFIBER) == 0) {
- ADD(IFM_MAKEWORD(IFM_ETHER, IFM_10_T, 0, sc->mii_inst),
- E1000_CR_SPEED_10);
- printf("10baseT, ");
- ADD(IFM_MAKEWORD(IFM_ETHER, IFM_10_T, IFM_FDX, sc->mii_inst),
- E1000_CR_SPEED_10 | E1000_CR_FULL_DUPLEX);
- printf("10baseT-FDX, ");
- ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, 0, sc->mii_inst),
- E1000_CR_SPEED_100);
- printf("100baseTX, ");
- ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_FDX, sc->mii_inst),
- E1000_CR_SPEED_100 | E1000_CR_FULL_DUPLEX);
- printf("100baseTX-FDX, ");
- if (fast_ether == 0) {
- /*
- * 1000BT-simplex not supported; driver must ignore
- * this entry, but it must be present in order to
- * manually set full-duplex.
- */
- ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_T, 0,
- sc->mii_inst), E1000_CR_SPEED_1000);
- ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_T, IFM_FDX,
- sc->mii_inst),
- E1000_CR_SPEED_1000 | E1000_CR_FULL_DUPLEX);
- printf("1000baseTX-FDX, ");
- }
- } else {
- ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_SX, IFM_FDX, sc->mii_inst),
- E1000_CR_SPEED_1000 | E1000_CR_FULL_DUPLEX);
- printf("1000baseSX-FDX, ");
- }
- ADD(IFM_MAKEWORD(IFM_ETHER, IFM_AUTO, 0, sc->mii_inst), 0);
- printf("auto\n");
-#undef ADD
+ mii_phy_add_media(sc);
+ printf("\n");
MIIBUS_MEDIAINIT(sc->mii_dev);
return (0);
@@ -253,18 +213,29 @@
reg |= E1000_SCR_AUTO_X_MODE;
if (esc->mii_model == MII_MODEL_MARVELL_E1116)
reg &= ~E1000_SCR_POWER_DOWN;
+ reg |= E1000_SCR_ASSERT_CRS_ON_TX;
break;
case MII_MODEL_MARVELL_E3082:
reg |= (E1000_SCR_AUTO_X_MODE >> 1);
+ reg |= E1000_SCR_ASSERT_CRS_ON_TX;
+ break;
+ case MII_MODEL_MARVELL_E3016:
+ reg |= E1000_SCR_AUTO_MDIX;
+ reg &= ~(E1000_SCR_EN_DETECT |
+ E1000_SCR_SCRAMBLER_DISABLE);
+ reg |= E1000_SCR_LPNP;
+ /* XXX Enable class A driver for Yukon FE+ A0. */
+ PHY_WRITE(sc, 0x1C, PHY_READ(sc, 0x1C) | 0x0001);
break;
default:
reg &= ~E1000_SCR_AUTO_X_MODE;
+ reg |= E1000_SCR_ASSERT_CRS_ON_TX;
break;
}
- /* Enable CRS on TX. */
- reg |= E1000_SCR_ASSERT_CRS_ON_TX;
- /* Auto correction for reversed cable polarity. */
- reg &= ~E1000_SCR_POLARITY_REVERSAL;
+ if (esc->mii_model != MII_MODEL_MARVELL_E3016) {
+ /* Auto correction for reversed cable polarity. */
+ reg &= ~E1000_SCR_POLARITY_REVERSAL;
+ }
PHY_WRITE(sc, E1000_SCR, reg);
if (esc->mii_model == MII_MODEL_MARVELL_E1116) {
@@ -283,6 +254,13 @@
case MII_MODEL_MARVELL_E1118:
case MII_MODEL_MARVELL_E1149:
break;
+ case MII_MODEL_MARVELL_E3016:
+ /* LED2 -> ACT, LED1 -> LINK, LED0 -> SPEED. */
+ PHY_WRITE(sc, 0x16, 0x0B << 8 | 0x05 << 4 | 0x04);
+ /* Integrated register calibration workaround. */
+ PHY_WRITE(sc, 0x1D, 17);
+ PHY_WRITE(sc, 0x1E, 0x3F60);
+ break;
default:
/* Force TX_CLK to 25MHz clock. */
reg = PHY_READ(sc, E1000_ESCR);
@@ -339,12 +317,14 @@
speed = 0;
switch (IFM_SUBTYPE(ife->ifm_media)) {
case IFM_1000_T:
- if (esc->mii_model == MII_MODEL_MARVELL_E3082)
+ if ((sc->mii_extcapabilities &
+ (EXTSR_1000TFDX | EXTSR_1000THDX)) == 0)
return (EINVAL);
speed = E1000_CR_SPEED_1000;
break;
case IFM_1000_SX:
- if (esc->mii_model == MII_MODEL_MARVELL_E3082)
+ if ((sc->mii_extcapabilities &
+ (EXTSR_1000XFDX | EXTSR_1000XHDX)) == 0)
return (EINVAL);
speed = E1000_CR_SPEED_1000;
break;
@@ -390,7 +370,8 @@
PHY_WRITE(sc, E1000_1GCR, gig |
E1000_1GCR_MS_ENABLE);
} else {
- if (esc->mii_model != MII_MODEL_MARVELL_E3082)
+ if ((sc->mii_extcapabilities &
+ (EXTSR_1000TFDX | EXTSR_1000THDX)) != 0)
PHY_WRITE(sc, E1000_1GCR, 0);
}
PHY_WRITE(sc, E1000_AR, E1000_AR_SELECTOR_FIELD);
@@ -432,7 +413,7 @@
if (sc->mii_ticks++ == 0)
break;
if (sc->mii_ticks <= sc->mii_anegticks)
- return (0);
+ break;
sc->mii_ticks = 0;
e1000phy_reset(sc);
@@ -452,18 +433,14 @@
e1000phy_status(struct mii_softc *sc)
{
struct mii_data *mii = sc->mii_pdata;
- int bmsr, bmcr, esr, gsr, ssr, isr, ar, lpar;
+ int bmcr, bmsr, gsr, ssr, ar, lpar;
mii->mii_media_status = IFM_AVALID;
mii->mii_media_active = IFM_ETHER;
bmsr = PHY_READ(sc, E1000_SR) | PHY_READ(sc, E1000_SR);
- esr = PHY_READ(sc, E1000_ESR);
bmcr = PHY_READ(sc, E1000_CR);
ssr = PHY_READ(sc, E1000_SSR);
- isr = PHY_READ(sc, E1000_ISR);
- ar = PHY_READ(sc, E1000_AR);
- lpar = PHY_READ(sc, E1000_LPAR);
if (bmsr & E1000_SR_LINK_STATUS)
mii->mii_media_status |= IFM_ACTIVE;
@@ -471,22 +448,28 @@
if (bmcr & E1000_CR_LOOPBACK)
mii->mii_media_active |= IFM_LOOP;
- if ((((bmcr & E1000_CR_AUTO_NEG_ENABLE) != 0) &&
- ((bmsr & E1000_SR_AUTO_NEG_COMPLETE) == 0)) ||
- ((ssr & E1000_SSR_LINK) == 0) ||
- ((ssr & E1000_SSR_SPD_DPLX_RESOLVED) == 0)) {
+ if ((bmcr & E1000_CR_AUTO_NEG_ENABLE) != 0 &&
+ (ssr & E1000_SSR_SPD_DPLX_RESOLVED) == 0) {
/* Erg, still trying, I guess... */
mii->mii_media_active |= IFM_NONE;
return;
}
if ((sc->mii_flags & MIIF_HAVEFIBER) == 0) {
- if (ssr & E1000_SSR_1000MBS)
+ switch (ssr & E1000_SSR_SPEED) {
+ case E1000_SSR_1000MBS:
mii->mii_media_active |= IFM_1000_T;
- else if (ssr & E1000_SSR_100MBS)
+ break;
+ case E1000_SSR_100MBS:
mii->mii_media_active |= IFM_100_TX;
- else
+ break;
+ case E1000_SSR_10MBS:
mii->mii_media_active |= IFM_10_T;
+ break;
+ default:
+ mii->mii_media_active |= IFM_NONE;
+ return;
+ }
} else {
if (ssr & E1000_SSR_1000MBS)
mii->mii_media_active |= IFM_1000_SX;
@@ -498,6 +481,8 @@
mii->mii_media_active |= IFM_HDX;
if ((sc->mii_flags & MIIF_HAVEFIBER) == 0) {
+ ar = PHY_READ(sc, E1000_AR);
+ lpar = PHY_READ(sc, E1000_LPAR);
/* FLAG0==rx-flow-control FLAG1==tx-flow-control */
if ((ar & E1000_AR_PAUSE) && (lpar & E1000_LPAR_PAUSE)) {
mii->mii_media_active |= IFM_FLAG0 | IFM_FLAG1;
@@ -524,16 +509,19 @@
e1000phy_mii_phy_auto(struct e1000phy_softc *esc)
{
struct mii_softc *sc;
+ uint16_t reg;
sc = &esc->mii_sc;
- if ((sc->mii_flags & MIIF_HAVEFIBER) == 0)
- PHY_WRITE(sc, E1000_AR, E1000_AR_10T | E1000_AR_10T_FD |
+ if ((sc->mii_flags & MIIF_HAVEFIBER) == 0) {
+ reg = PHY_READ(sc, E1000_AR);
+ reg |= E1000_AR_10T | E1000_AR_10T_FD |
E1000_AR_100TX | E1000_AR_100TX_FD |
- E1000_AR_PAUSE | E1000_AR_ASM_DIR);
- else
+ E1000_AR_PAUSE | E1000_AR_ASM_DIR;
+ PHY_WRITE(sc, E1000_AR, reg | E1000_AR_SELECTOR_FIELD);
+ } else
PHY_WRITE(sc, E1000_AR, E1000_FA_1000X_FD | E1000_FA_1000X |
E1000_FA_SYM_PAUSE | E1000_FA_ASYM_PAUSE);
- if (esc->mii_model != MII_MODEL_MARVELL_E3082)
+ if ((sc->mii_extcapabilities & (EXTSR_1000TFDX | EXTSR_1000THDX)) != 0)
PHY_WRITE(sc, E1000_1GCR,
E1000_1GCR_1000T_FD | E1000_1GCR_1000T);
PHY_WRITE(sc, E1000_CR,
==== //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mii/e1000phyreg.h#2 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/mii/e1000phyreg.h,v 1.5 2007/10/29 05:50:22 yongari Exp $ */
+/* $FreeBSD: src/sys/dev/mii/e1000phyreg.h,v 1.6 2009/05/25 02:36:29 yongari Exp $ */
/*-
* Principal Author: Parag Patel
* Copyright (c) 2001
@@ -236,6 +236,16 @@
#define E1000_SCR_TX_FIFO_DEPTH_10 0x8000
#define E1000_SCR_TX_FIFO_DEPTH_12 0xC000
+/* 88E3016 only */
+#define E1000_SCR_AUTO_MDIX 0x0030
+#define E1000_SCR_SIGDET_POLARITY 0x0040
+#define E1000_SCR_EXT_DISTANCE 0x0080
+#define E1000_SCR_FEFI_DISABLE 0x0100
+#define E1000_SCR_NLP_GEN_DISABLE 0x0800
+#define E1000_SCR_LPNP 0x1000
+#define E1000_SCR_NLP_CHK_DISABLE 0x2000
+#define E1000_SCR_EN_DETECT 0x4000
+
#define E1000_SCR_EN_DETECT_MASK 0x0300
/* 88E1112 page 2 */
==== //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mii/miidevs#8 (text+ko) ====
@@ -1,4 +1,4 @@
-$FreeBSD: src/sys/dev/mii/miidevs,v 1.63 2009/03/30 01:47:32 imp Exp $
+$FreeBSD: src/sys/dev/mii/miidevs,v 1.64 2009/05/25 02:36:29 yongari Exp $
/*$NetBSD: miidevs,v 1.6 1999/05/14 11:37:30 drochner Exp $*/
/*-
@@ -247,6 +247,7 @@
model MARVELL E1116 0x0021 Marvell 88E1116 Gigabit PHY
model MARVELL E1116R 0x0024 Marvell 88E1116R Gigabit PHY
model MARVELL E1118 0x0022 Marvell 88E1118 Gigabit PHY
+model MARVELL E3016 0x0026 Marvell 88E3016 10/100 Fast Ethernet PHY
model xxMARVELL E1000 0x0005 Marvell 88E1000 Gigabit PHY
model xxMARVELL E1011 0x0002 Marvell 88E1011 Gigabit PHY
model xxMARVELL E1000_3 0x0003 Marvell 88E1000 Gigabit PHY
==== //depot/projects/soc2008/trasz_nfs4acl/sys/dev/msk/if_msk.c#8 (text+ko) ====
@@ -99,7 +99,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/msk/if_msk.c,v 1.40 2009/03/25 07:05:23 yongari Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/msk/if_msk.c,v 1.59 2009/05/25 08:26:39 yongari Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -190,13 +190,21 @@
{ VENDORID_MARVELL, DEVICEID_MRVL_8062X,
"Marvell Yukon 88E8062 SX/LX Gigabit Ethernet" },
{ VENDORID_MARVELL, DEVICEID_MRVL_8035,
- "Marvell Yukon 88E8035 Gigabit Ethernet" },
+ "Marvell Yukon 88E8035 Fast Ethernet" },
{ VENDORID_MARVELL, DEVICEID_MRVL_8036,
- "Marvell Yukon 88E8036 Gigabit Ethernet" },
+ "Marvell Yukon 88E8036 Fast Ethernet" },
{ VENDORID_MARVELL, DEVICEID_MRVL_8038,
- "Marvell Yukon 88E8038 Gigabit Ethernet" },
+ "Marvell Yukon 88E8038 Fast Ethernet" },
{ VENDORID_MARVELL, DEVICEID_MRVL_8039,
- "Marvell Yukon 88E8039 Gigabit Ethernet" },
+ "Marvell Yukon 88E8039 Fast Ethernet" },
+ { VENDORID_MARVELL, DEVICEID_MRVL_8040,
+ "Marvell Yukon 88E8040 Fast Ethernet" },
+ { VENDORID_MARVELL, DEVICEID_MRVL_8040T,
+ "Marvell Yukon 88E8040T Fast Ethernet" },
+ { VENDORID_MARVELL, DEVICEID_MRVL_8048,
+ "Marvell Yukon 88E8048 Fast Ethernet" },
+ { VENDORID_MARVELL, DEVICEID_MRVL_8070,
+ "Marvell Yukon 88E8070 Fast Ethernet" },
{ VENDORID_MARVELL, DEVICEID_MRVL_4361,
"Marvell Yukon 88E8050 Gigabit Ethernet" },
{ VENDORID_MARVELL, DEVICEID_MRVL_4360,
@@ -220,7 +228,8 @@
"Yukon EC Ultra",
"Yukon Unknown",
"Yukon EC",
- "Yukon FE"
+ "Yukon FE",
+ "Yukon FE+"
};
static int mskc_probe(device_t);
@@ -285,7 +294,6 @@
static int msk_miibus_readreg(device_t, int, int);
static int msk_miibus_writereg(device_t, int, int, int);
static void msk_miibus_statchg(device_t);
-static void msk_link_task(void *, int);
static void msk_rxfilter(struct msk_if_softc *);
static void msk_setvlan(struct msk_if_softc *, struct ifnet *);
@@ -459,40 +467,44 @@
static void
msk_miibus_statchg(device_t dev)
{
- struct msk_if_softc *sc_if;
-
- sc_if = device_get_softc(dev);
- taskqueue_enqueue(taskqueue_swi, &sc_if->msk_link_task);
-}
-
-static void
-msk_link_task(void *arg, int pending)
-{
struct msk_softc *sc;
struct msk_if_softc *sc_if;
struct mii_data *mii;
struct ifnet *ifp;
uint32_t gmac;
- sc_if = (struct msk_if_softc *)arg;
+ sc_if = device_get_softc(dev);
sc = sc_if->msk_softc;
- MSK_IF_LOCK(sc_if);
+ MSK_IF_LOCK_ASSERT(sc_if);
mii = device_get_softc(sc_if->msk_miibus);
ifp = sc_if->msk_ifp;
- if (mii == NULL || ifp == NULL) {
- MSK_IF_UNLOCK(sc_if);
+ if (mii == NULL || ifp == NULL ||
+ (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
return;
+
+ sc_if->msk_flags &= ~MSK_FLAG_LINK;
+ if ((mii->mii_media_status & (IFM_AVALID | IFM_ACTIVE)) ==
+ (IFM_AVALID | IFM_ACTIVE)) {
+ switch (IFM_SUBTYPE(mii->mii_media_active)) {
+ case IFM_10_T:
+ case IFM_100_TX:
+ sc_if->msk_flags |= MSK_FLAG_LINK;
+ break;
+ case IFM_1000_T:
+ case IFM_1000_SX:
+ case IFM_1000_LX:
+ case IFM_1000_CX:
+ if ((sc_if->msk_flags & MSK_FLAG_FASTETHER) == 0)
+ sc_if->msk_flags |= MSK_FLAG_LINK;
+ break;
+ default:
+ break;
+ }
}
- if (mii->mii_media_status & IFM_ACTIVE) {
- if (IFM_SUBTYPE(mii->mii_media_active) != IFM_NONE)
- sc_if->msk_link = 1;
- } else
- sc_if->msk_link = 0;
-
- if (sc_if->msk_link != 0) {
+ if ((sc_if->msk_flags & MSK_FLAG_LINK) != 0) {
/* Enable Tx FIFO Underrun. */
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list