PERFORCE change 124940 for review
Xin LI
delphij at FreeBSD.org
Wed Aug 8 23:31:03 PDT 2007
http://perforce.freebsd.org/chv.cgi?CH=124940
Change 124940 by delphij at delphij_odin on 2007/08/09 06:30:24
IFC
Affected files ...
.. //depot/projects/delphij_fork/ObsoleteFiles.inc#8 integrate
.. //depot/projects/delphij_fork/contrib/opensolaris/cmd/zdb/zdb.c#2 integrate
.. //depot/projects/delphij_fork/lib/libthr/thread/thr_private.h#2 integrate
.. //depot/projects/delphij_fork/share/misc/bsd-family-tree#2 integrate
.. //depot/projects/delphij_fork/sys/arm/arm/cpufunc.c#3 integrate
.. //depot/projects/delphij_fork/sys/arm/arm/genassym.c#2 integrate
.. //depot/projects/delphij_fork/sys/arm/arm/swtch.S#2 integrate
.. //depot/projects/delphij_fork/sys/boot/arm/at91/libat91/Makefile#3 integrate
.. //depot/projects/delphij_fork/sys/conf/files#7 integrate
.. //depot/projects/delphij_fork/sys/conf/kern.pre.mk#5 integrate
.. //depot/projects/delphij_fork/sys/dev/an/if_an.c#3 integrate
.. //depot/projects/delphij_fork/sys/dev/usb/if_axe.c#2 integrate
.. //depot/projects/delphij_fork/sys/dev/usb/if_axereg.h#2 integrate
.. //depot/projects/delphij_fork/sys/fs/msdosfs/denode.h#2 integrate
.. //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_denode.c#3 integrate
.. //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_fat.c#6 integrate
.. //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_vfsops.c#5 integrate
.. //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_vnops.c#4 integrate
.. //depot/projects/delphij_fork/sys/kern/kern_lockf.c#2 integrate
.. //depot/projects/delphij_fork/sys/powerpc/include/interruptvar.h#2 delete
.. //depot/projects/delphij_fork/sys/powerpc/include/intr_machdep.h#2 integrate
.. //depot/projects/delphij_fork/sys/powerpc/include/trap.h#2 integrate
.. //depot/projects/delphij_fork/sys/powerpc/powerpc/interrupt.c#2 integrate
.. //depot/projects/delphij_fork/sys/powerpc/powerpc/intr_machdep.c#2 integrate
.. //depot/projects/delphij_fork/sys/powerpc/powerpc/trap.c#3 integrate
.. //depot/projects/delphij_fork/sys/vm/device_pager.c#3 integrate
.. //depot/projects/delphij_fork/usr.sbin/bsnmpd/modules/snmp_bridge/BEGEMOT-BRIDGE-MIB.txt#2 integrate
.. //depot/projects/delphij_fork/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_port.c#2 integrate
.. //depot/projects/delphij_fork/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_snmp.h#2 integrate
.. //depot/projects/delphij_fork/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_sys.c#2 integrate
.. //depot/projects/delphij_fork/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_tree.def#2 integrate
.. //depot/projects/delphij_fork/usr.sbin/bsnmpd/modules/snmp_bridge/snmp_bridge.3#2 integrate
.. //depot/projects/delphij_fork/usr.sbin/freebsd-update/freebsd-update.sh#2 integrate
Differences ...
==== //depot/projects/delphij_fork/ObsoleteFiles.inc#8 (text+ko) ====
@@ -1,5 +1,5 @@
#
-# $FreeBSD: src/ObsoleteFiles.inc,v 1.108 2007/08/02 08:04:47 bz Exp $
+# $FreeBSD: src/ObsoleteFiles.inc,v 1.109 2007/08/07 23:48:30 marcel Exp $
#
# This file lists old files (OLD_FILES), libraries (OLD_LIBS) and
# directories (OLD_DIRS) which should get removed at an update. Recently
@@ -14,6 +14,10 @@
# The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
#
+# 20070807: removal of PowerPC specific header file.
+.if ${TARGET_ARCH} == "powerpc"
+OLD_FILES+=usr/include/machine/interruptvar.h
+.endif
# 20070801: fast_ipsec.4 gone
OLD_FILES+=usr/share/man/man4/fast_ipsec.4.gz
# 20070715: netatm temporarily disconnected
==== //depot/projects/delphij_fork/contrib/opensolaris/cmd/zdb/zdb.c#2 (text+ko) ====
@@ -1136,7 +1136,15 @@
exit(1);
}
- psize = statbuf.st_size;
+ if (S_ISCHR(statbuf.st_mode)) {
+ if (ioctl(fd, DIOCGMEDIASIZE, &psize) != 0) {
+ (void) printf("failed to get size '%s': %s\n", dev,
+ strerror(errno));
+ exit(1);
+ }
+ } else
+ psize = statbuf.st_size;
+
psize = P2ALIGN(psize, (uint64_t)sizeof (vdev_label_t));
for (l = 0; l < VDEV_LABELS; l++) {
==== //depot/projects/delphij_fork/lib/libthr/thread/thr_private.h#2 (text+ko) ====
@@ -26,7 +26,7 @@
* (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/lib/libthr/thread/thr_private.h,v 1.77 2006/12/20 04:43:34 davidxu Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_private.h,v 1.78 2007/08/07 04:50:14 davidxu Exp $
*/
#ifndef _THR_PRIVATE_H
@@ -72,7 +72,7 @@
/* Output debug messages like this: */
#define stdout_debug(args...) _thread_printf(STDOUT_FILENO, ##args)
-#define stderr_debug(args...) _thread_printf(STDOUT_FILENO, ##args)
+#define stderr_debug(args...) _thread_printf(STDERR_FILENO, ##args)
#ifdef _PTHREADS_INVARIANTS
#define THR_ASSERT(cond, msg) do { \
==== //depot/projects/delphij_fork/share/misc/bsd-family-tree#2 (text+ko) ====
@@ -174,7 +174,7 @@
| | | | \
FreeBSD 5.0 | | | |
| | | | |
-FreeBSD 5.1 | | | DragonFly 1.0
+FreeBSD 5.1 | | | DragonFly 1.0
| \ | | | |
| ----- Mac OS X | | |
| 10.3 | | |
@@ -185,7 +185,7 @@
*-------FreeBSD 5.3 | | | |
| | | | OpenBSD 3.6 |
| | | NetBSD 2.0 | |
- | | | | | | | DragonFly 1.2.0
+ | | | | | | | DragonFly 1.2.0
| | Mac OS X | | NetBSD 2.0.2 | |
| | 10.4 | | | | |
| FreeBSD 5.4 | | | | | |
@@ -198,19 +198,20 @@
| | | | | NetBSD 2.1 | |
| | | | | | |
| | | | NetBSD 3.0 | |
- | | | | | | | | DragonFly 1.4.0
+ | | | | | | | | DragonFly 1.4.0
| | | | | | | OpenBSD 3.9 |
| FreeBSD | | | | | | |
| 6.1 | | | | | | |
| | FreeBSD 5.5 | | | | | |
- | | | | | NetBSD 3.0.1 | DragonFly 1.6.0
+ | | | | | NetBSD 3.0.1 | DragonFly 1.6.0
| | | | | | | |
| | | | | | OpenBSD 4.0 |
| | | | | NetBSD 3.0.2 | |
| | | | NetBSD 3.1 | |
| FreeBSD 6.2 | | | |
- | | | | | DragonFly 1.8.0
+ | | | | | DragonFly 1.8.0
| | | | OpenBSD 4.1 |
+ | | | | | DragonFly 1.10.0
| V | | | |
FreeBSD 7 -current | NetBSD -current OpenBSD -current |
| | | | |
@@ -466,6 +467,7 @@
FreeBSD 6.2 2007-01-15 [FBD]
DragonFly 1.8.0 2007-01-30 [DFB]
OpenBSD 4.1 2007-05-01 [OBD]
+DragonFly 1.10.0 2007-08-06 [DFB]
Bibliography
------------------------
@@ -526,4 +528,4 @@
Copyright (c) 1997-2007 Wolfram Schneider <wosch at FreeBSD.ORG>
URL: http://cvsweb.freebsd.org/src/share/misc/bsd-family-tree
-$FreeBSD: src/share/misc/bsd-family-tree,v 1.113 2007/05/31 03:40:29 imp Exp $
+$FreeBSD: src/share/misc/bsd-family-tree,v 1.115 2007/08/07 15:35:24 maxim Exp $
==== //depot/projects/delphij_fork/sys/arm/arm/cpufunc.c#3 (text+ko) ====
@@ -45,7 +45,7 @@
* Created : 30/01/97
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.17 2007/07/27 14:39:41 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.18 2007/08/07 18:37:21 cognet Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -148,9 +148,9 @@
arm7tdmi_cache_flushID, /* idcache_wbinv_all */
(void *)arm7tdmi_cache_flushID, /* idcache_wbinv_range */
cpufunc_nullop, /* l2cache_wbinv_all */
- cpufunc_nullop, /* l2cache_wbinv_range */
- cpufunc_nullop, /* l2cache_inv_range */
- cpufunc_nullop, /* l2cache_wb_range */
+ (void *)cpufunc_nullop, /* l2cache_wbinv_range */
+ (void *)cpufunc_nullop, /* l2cache_inv_range */
+ (void *)cpufunc_nullop, /* l2cache_wb_range */
/* Other functions */
@@ -210,9 +210,9 @@
arm8_cache_purgeID, /* idcache_wbinv_all */
(void *)arm8_cache_purgeID, /* idcache_wbinv_range */
cpufunc_nullop, /* l2cache_wbinv_all */
- cpufunc_nullop, /* l2cache_wbinv_range */
- cpufunc_nullop, /* l2cache_inv_range */
- cpufunc_nullop, /* l2cache_wb_range */
+ (void *)cpufunc_nullop, /* l2cache_wbinv_range */
+ (void *)cpufunc_nullop, /* l2cache_inv_range */
+ (void *)cpufunc_nullop, /* l2cache_wb_range */
/* Other functions */
@@ -271,9 +271,9 @@
arm9_idcache_wbinv_all, /* idcache_wbinv_all */
arm9_idcache_wbinv_range, /* idcache_wbinv_range */
cpufunc_nullop, /* l2cache_wbinv_all */
- cpufunc_nullop, /* l2cache_wbinv_range */
- cpufunc_nullop, /* l2cache_inv_range */
- cpufunc_nullop, /* l2cache_wb_range */
+ (void *)cpufunc_nullop, /* l2cache_wbinv_range */
+ (void *)cpufunc_nullop, /* l2cache_inv_range */
+ (void *)cpufunc_nullop, /* l2cache_wb_range */
/* Other functions */
@@ -333,9 +333,9 @@
arm10_idcache_wbinv_all, /* idcache_wbinv_all */
arm10_idcache_wbinv_range, /* idcache_wbinv_range */
cpufunc_nullop, /* l2cache_wbinv_all */
- cpufunc_nullop, /* l2cache_wbinv_range */
- cpufunc_nullop, /* l2cache_inv_range */
- cpufunc_nullop, /* l2cache_wb_range */
+ (void *)cpufunc_nullop, /* l2cache_wbinv_range */
+ (void *)cpufunc_nullop, /* l2cache_inv_range */
+ (void *)cpufunc_nullop, /* l2cache_wb_range */
/* Other functions */
@@ -395,9 +395,9 @@
sa1_cache_purgeID, /* idcache_wbinv_all */
sa1_cache_purgeID_rng, /* idcache_wbinv_range */
cpufunc_nullop, /* l2cache_wbinv_all */
- cpufunc_nullop, /* l2cache_wbinv_range */
- cpufunc_nullop, /* l2cache_inv_range */
- cpufunc_nullop, /* l2cache_wb_range */
+ (void *)cpufunc_nullop, /* l2cache_wbinv_range */
+ (void *)cpufunc_nullop, /* l2cache_inv_range */
+ (void *)cpufunc_nullop, /* l2cache_wb_range */
/* Other functions */
@@ -456,9 +456,9 @@
sa1_cache_purgeID, /* idcache_wbinv_all */
sa1_cache_purgeID_rng, /* idcache_wbinv_range */
cpufunc_nullop, /* l2cache_wbinv_all */
- cpufunc_nullop, /* l2cache_wbinv_range */
- cpufunc_nullop, /* l2cache_inv_range */
- cpufunc_nullop, /* l2cache_wb_range */
+ (void *)cpufunc_nullop, /* l2cache_wbinv_range */
+ (void *)cpufunc_nullop, /* l2cache_inv_range */
+ (void *)cpufunc_nullop, /* l2cache_wb_range */
/* Other functions */
@@ -517,9 +517,9 @@
sa1_cache_purgeID, /* idcache_wbinv_all */
sa1_cache_purgeID_rng, /* idcache_wbinv_range */
cpufunc_nullop, /* l2cache_wbinv_all */
- cpufunc_nullop, /* l2cache_wbinv_range */
- cpufunc_nullop, /* l2cache_inv_range */
- cpufunc_nullop, /* l2cache_wb_range */
+ (void *)cpufunc_nullop, /* l2cache_wbinv_range */
+ (void *)cpufunc_nullop, /* l2cache_inv_range */
+ (void *)cpufunc_nullop, /* l2cache_wb_range */
/* Other functions */
@@ -581,9 +581,9 @@
xscale_cache_purgeID, /* idcache_wbinv_all */
xscale_cache_purgeID_rng, /* idcache_wbinv_range */
cpufunc_nullop, /* l2cache_wbinv_all */
- cpufunc_nullop, /* l2cache_wbinv_range */
- cpufunc_nullop, /* l2cache_inv_range */
- cpufunc_nullop, /* l2cache_wb_range */
+ (void *)cpufunc_nullop, /* l2cache_wbinv_range */
+ (void *)cpufunc_nullop, /* l2cache_inv_range */
+ (void *)cpufunc_nullop, /* l2cache_wb_range */
/* Other functions */
==== //depot/projects/delphij_fork/sys/arm/arm/genassym.c#2 (text+ko) ====
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.9 2007/05/23 13:21:57 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.10 2007/08/08 09:27:52 cognet Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/assym.h>
@@ -92,6 +92,7 @@
ASSYM(TD_PROC, offsetof(struct thread, td_proc));
ASSYM(TD_FRAME, offsetof(struct thread, td_frame));
ASSYM(TD_MD, offsetof(struct thread, td_md));
+ASSYM(TD_LOCK, offsetof(struct thread, td_lock));
ASSYM(MD_TP, offsetof(struct mdthread, md_tp));
ASSYM(TF_R0, offsetof(struct trapframe, tf_r0));
==== //depot/projects/delphij_fork/sys/arm/arm/swtch.S#2 (text+ko) ====
@@ -83,7 +83,7 @@
#include <machine/asm.h>
#include <machine/asmacros.h>
#include <machine/armreg.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/swtch.S,v 1.19 2006/04/09 20:16:47 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/swtch.S,v 1.20 2007/08/07 18:20:55 cognet Exp $");
/*
@@ -127,6 +127,8 @@
.word _C_LABEL(block_userspace_access)
.Lcpu_do_powersave:
.word _C_LABEL(cpu_do_powersave)
+.Lblocked_lock:
+ .word _C_LABEL(blocked_lock)
ENTRY(cpu_throw)
mov r5, r1
@@ -214,6 +216,7 @@
ENTRY(cpu_switch)
stmfd sp!, {r4-r7, lr}
+ mov r6, r2 /* Save the mutex */
.Lswitch_resume:
/* rem: r0 = old lwp */
@@ -241,10 +244,11 @@
/* Stage two : Save old context */
- /* Get the user structure for the old lwp. */
+ /* Get the user structure for the old thread. */
ldr r2, [r0, #(TD_PCB)]
+ mov r4, r0 /* Save the old thread. */
- /* Save all the registers in the old lwp's pcb */
+ /* Save all the registers in the old thread's pcb */
#ifndef __XSCALE__
add r7, r2, #(PCB_R8)
stmia r7, {r8-r13}
@@ -324,8 +328,7 @@
mov lr, pc
ldr pc, [r1, #CF_IDCACHE_WBINV_ALL]
.Lcs_cache_purge_skipped:
- /* rem: r4 = &block_userspace_access */
- /* rem: r6 = new lwp */
+ /* rem: r6 = lock */
/* rem: r9 = new PCB */
/* rem: r10 = old L1 */
/* rem: r11 = new L1 */
@@ -389,6 +392,17 @@
.Lcs_context_switched:
+ /* Release the old thread */
+ str r6, [r4, #TD_LOCK]
+ ldr r6, .Lblocked_lock
+ ldr r3, .Lcurthread
+ ldr r3, [r3]
+
+1:
+ ldr r4, [r3, #TD_LOCK]
+ cmp r4, r6
+ beq 1b
+
/* XXXSCW: Safe to re-enable FIQs here */
/* rem: r9 = new PCB */
@@ -419,7 +433,7 @@
ldr r13, [r7, #(PCB_SP)]
#endif
- /* rem: r6 = new lwp */
+ /* rem: r6 = lock */
/* rem: r7 = new pcb */
#ifdef ARMFPE
@@ -429,7 +443,7 @@
#endif
/* rem: r5 = new lwp's proc */
- /* rem: r6 = new lwp */
+ /* rem: r6 = lock */
/* rem: r7 = new PCB */
.Lswitch_return:
==== //depot/projects/delphij_fork/sys/boot/arm/at91/libat91/Makefile#3 (text) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/boot/arm/at91/libat91/Makefile,v 1.9 2007/07/13 14:27:04 imp Exp $
+# $FreeBSD: src/sys/boot/arm/at91/libat91/Makefile,v 1.10 2007/08/09 05:16:55 imp Exp $
.include "${.CURDIR}/../Makefile.inc"
@@ -8,7 +8,7 @@
putchar.c printf.c reset.c spi_flash.c xmodem.c \
sd-card.c strcvt.c strlen.c strcmp.c memcpy.c strcpy.c \
memset.c memcmp.c
-SRCS+=ashldi3.c divsi3.c
+SRCS+=ashldi3.c divsi3.S
NO_MAN=
.if ${MK_TAG_LIST} != "no"
==== //depot/projects/delphij_fork/sys/conf/files#7 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1241 2007/07/24 15:35:01 scottl Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1242 2007/08/09 01:11:21 marcel Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -259,7 +259,7 @@
contrib/ipfilter/netinet/ip_state.c optional ipfilter inet \
compile-with "${NORMAL_C} -I$S/contrib/ipfilter"
contrib/ipfilter/netinet/ip_lookup.c optional ipfilter inet \
- compile-with "${NORMAL_C} -I$S/contrib/ipfilter"
+ compile-with "${NORMAL_C} -Wno-error -I$S/contrib/ipfilter"
contrib/ipfilter/netinet/ip_pool.c optional ipfilter inet \
compile-with "${NORMAL_C} -I$S/contrib/ipfilter"
contrib/ipfilter/netinet/ip_htable.c optional ipfilter inet \
==== //depot/projects/delphij_fork/sys/conf/kern.pre.mk#5 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.91 2007/07/31 03:15:32 marcel Exp $
+# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.92 2007/08/08 19:12:06 marcel Exp $
# Part of a unified Makefile for building kernels. This part contains all
# of the definitions that need to be before %BEFORE_DEPEND.
@@ -88,7 +88,8 @@
CFLAGS+= --param inline-unit-growth=100
CFLAGS+= --param large-function-growth=1000
.if ${MACHINE_ARCH} == "amd64" || ${MACHINE} == "i386" || \
- ${MACHINE_ARCH} == "ia64" || ${MACHINE_ARCH} == "sparc64"
+ ${MACHINE_ARCH} == "ia64" || ${MACHINE_ARCH} == "powerpc" || \
+ ${MACHINE_ARCH} == "sparc64"
WERROR?= -Werror
.endif
.endif
==== //depot/projects/delphij_fork/sys/dev/an/if_an.c#3 (text+ko) ====
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/an/if_an.c,v 1.82 2007/08/02 02:20:19 avatar Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/an/if_an.c,v 1.83 2007/08/07 12:26:19 avatar Exp $");
/*
* The Aironet 4500/4800 series cards come in PCMCIA, ISA and PCI form.
@@ -1065,8 +1065,10 @@
rx_frame.an_rsvd0);
#endif
#endif
+ AN_UNLOCK(sc);
(*ifp->if_input)(ifp, m);
-
+ AN_LOCK(sc);
+
an_rx_desc.an_valid = 1;
an_rx_desc.an_len = AN_RX_BUFFER_SIZE;
an_rx_desc.an_done = 0;
==== //depot/projects/delphij_fork/sys/dev/usb/if_axe.c#2 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/if_axe.c,v 1.52 2007/06/30 20:08:08 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/if_axe.c,v 1.53 2007/08/09 04:40:07 imp Exp $");
/*
* ASIX Electronics AX88172 USB 2.0 ethernet driver. Used in the
@@ -468,7 +468,7 @@
/*
* Get station address.
*/
- axe_cmd(sc, AXE_CMD_READ_NODEID, 0, 0, &eaddr);
+ axe_cmd(sc, AXE_172_CMD_READ_NODEID, 0, 0, &eaddr);
/*
* Load IPG values and PHY indexes.
@@ -894,12 +894,12 @@
}
/* Set transmitter IPG values */
- axe_cmd(sc, AXE_CMD_WRITE_IPG0, 0, sc->axe_ipgs[0], NULL);
- axe_cmd(sc, AXE_CMD_WRITE_IPG1, 0, sc->axe_ipgs[1], NULL);
- axe_cmd(sc, AXE_CMD_WRITE_IPG2, 0, sc->axe_ipgs[2], NULL);
+ axe_cmd(sc, AXE_172_CMD_WRITE_IPG0, 0, sc->axe_ipgs[0], NULL);
+ axe_cmd(sc, AXE_172_CMD_WRITE_IPG1, 0, sc->axe_ipgs[1], NULL);
+ axe_cmd(sc, AXE_172_CMD_WRITE_IPG2, 0, sc->axe_ipgs[2], NULL);
/* Enable receiver, set RX mode */
- rxmode = AXE_RXCMD_UNICAST|AXE_RXCMD_MULTICAST|AXE_RXCMD_ENABLE;
+ rxmode = AXE_172_RXCMD_UNICAST|AXE_RXCMD_MULTICAST|AXE_RXCMD_ENABLE;
/* If we want promiscuous mode, set the allframes bit. */
if (ifp->if_flags & IFF_PROMISC)
==== //depot/projects/delphij_fork/sys/dev/usb/if_axereg.h#2 (text+ko) ====
@@ -29,7 +29,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/usb/if_axereg.h,v 1.13 2007/06/30 20:08:08 imp Exp $
+ * $FreeBSD: src/sys/dev/usb/if_axereg.h,v 1.14 2007/08/09 04:40:07 imp Exp $
*/
/*
@@ -53,9 +53,11 @@
#define AXE_CMD_LEN(x) (((x) & 0xF000) >> 12)
#define AXE_CMD_CMD(x) ((x) & 0x00FF)
-#define AXE_CMD_READ_RXTX_SRAM 0x2002
-#define AXE_CMD_WRITE_RX_SRAM 0x0103
-#define AXE_CMD_WRITE_TX_SRAM 0x0104
+#define AXE_172_CMD_READ_RXTX_SRAM 0x2002
+#define AXE_182_CMD_READ_RXTX_SRAM 0x8002
+#define AXE_172_CMD_WRITE_RX_SRAM 0x0103
+#define AXE_172_CMD_WRITE_TX_SRAM 0x0104
+#define AXE_182_CMD_WRITE_RXTX_SRAM 0x8103
#define AXE_CMD_MII_OPMODE_SW 0x0106
#define AXE_CMD_MII_READ_REG 0x2007
#define AXE_CMD_MII_WRITE_REG 0x2108
@@ -68,35 +70,79 @@
#define AXE_CMD_RXCTL_READ 0x200F
#define AXE_CMD_RXCTL_WRITE 0x0110
#define AXE_CMD_READ_IPG012 0x3011
-#define AXE_CMD_WRITE_IPG0 0x0112
-#define AXE_CMD_WRITE_IPG1 0x0113
-#define AXE_CMD_WRITE_IPG2 0x0114
+#define AXE_172_CMD_WRITE_IPG0 0x0112
+#define AXE_172_CMD_WRITE_IPG1 0x0113
+#define AXE_172_CMD_WRITE_IPG2 0x0114
+#define AXE_178_CMD_WRITE_IPG012 0x0112
#define AXE_CMD_READ_MCAST 0x8015
#define AXE_CMD_WRITE_MCAST 0x8116
-#define AXE_CMD_READ_NODEID 0x6017
-#define AXE_CMD_WRITE_NODEID 0x6118
+#define AXE_172_CMD_READ_NODEID 0x6017
+#define AXE_172_CMD_WRITE_NODEID 0x6118
+#define AXE_178_CMD_READ_NODEID 0x6013
+#define AXE_178_CMD_WRITE_NODEID 0x6114
#define AXE_CMD_READ_PHYID 0x2019
-#define AXE_CMD_READ_MEDIA 0x101A
+#define AXE_172_CMD_READ_MEDIA 0x101A
+#define AXE_178_CMD_READ_MEDIA 0x201A
#define AXE_CMD_WRITE_MEDIA 0x011B
#define AXE_CMD_READ_MONITOR_MODE 0x101C
#define AXE_CMD_WRITE_MONITOR_MODE 0x011D
#define AXE_CMD_READ_GPIO 0x101E
#define AXE_CMD_WRITE_GPIO 0x011F
+#define AXE_CMD_SW_RESET_REG 0x0120
+#define AXE_CMD_SW_PHY_STATUS 0x0021
+#define AXE_CMD_SW_PHY_SELECT 0x0122
+
+#define AXE_SW_RESET_CLEAR 0x00
+#define AXE_SW_RESET_RR 0x01
+#define AXE_SW_RESET_RT 0x02
+#define AXE_SW_RESET_PRTE 0x04
+#define AXE_SW_RESET_PRL 0x08
+#define AXE_SW_RESET_BZ 0x10
+#define AXE_SW_RESET_IPRL 0x20
+#define AXE_SW_RESET_IPPD 0x40
+
+/* AX88178 documentation says to always write this bit... */
+#define AXE_178_RESET_MAGIC 0x40
+
+#define AXE_178_MEDIA_GMII 0x0001
+#define AXE_MEDIA_FULL_DUPLEX 0x0002
+#define AXE_172_MEDIA_TX_ABORT_ALLOW 0x0004
+/* AX88178 documentation says to always write 1 to reserved bit... */
+#define AXE_178_MEDIA_MAGIC 0x0004
+#define AXE_178_MEDIA_ENCK 0x0008
+#define AXE_172_MEDIA_FLOW_CONTROL_EN 0x0010
+#define AXE_178_MEDIA_RXFLOW_CONTROL_EN 0x0010
+#define AXE_178_MEDIA_TXFLOW_CONTROL_EN 0x0020
+#define AXE_178_MEDIA_JUMBO_EN 0x0040
+#define AXE_178_MEDIA_LTPF_ONLY 0x0080
+#define AXE_178_MEDIA_RX_EN 0x0100
+#define AXE_178_MEDIA_100TX 0x0200
+#define AXE_178_MEDIA_SBP 0x0800
+#define AXE_178_MEDIA_SUPERMAC 0x1000
#define AXE_RXCMD_PROMISC 0x0001
#define AXE_RXCMD_ALLMULTI 0x0002
-#define AXE_RXCMD_UNICAST 0x0004
+#define AXE_172_RXCMD_UNICAST 0x0004
+#define AXE_178_RXCMD_KEEP_INVALID_CRC 0x0004
#define AXE_RXCMD_BROADCAST 0x0008
#define AXE_RXCMD_MULTICAST 0x0010
#define AXE_RXCMD_ENABLE 0x0080
+#define AXE_178_RXCMD_MFB 0x0300
#define AXE_NOPHY 0xE0
+#define AXE_INTPHY 0x10
#define AXE_TIMEOUT 1000
+#define AXE_172_BUFSZ 1536
+#define AXE_178_MIN_BUFSZ 2048
+#define AXE_178_MAX_BUFSZ 16384
#define AXE_MIN_FRAMELEN 60
#define AXE_RX_FRAMES 1
#define AXE_TX_FRAMES 1
+#define AXE_RX_LIST_CNT 1
+#define AXE_TX_LIST_CNT 1
+
#define AXE_CTL_READ 0x01
#define AXE_CTL_WRITE 0x02
@@ -134,6 +180,9 @@
device_t axe_dev;
usbd_device_handle axe_udev;
usbd_interface_handle axe_iface;
+ u_int16_t axe_vendor;
+ u_int16_t axe_product;
+ u_int16_t axe_flags;
int axe_ed[AXE_ENDPT_MAX];
usbd_pipe_handle axe_ep[AXE_ENDPT_MAX];
int axe_if_flags;
@@ -148,6 +197,7 @@
struct timeval axe_rx_notice;
struct usb_qdat axe_qdat;
struct usb_task axe_tick_task;
+ u_int axe_bufsz;
};
#if 0
==== //depot/projects/delphij_fork/sys/fs/msdosfs/denode.h#2 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/fs/msdosfs/denode.h,v 1.36 2007/01/16 23:43:14 trhodes Exp $ */
+/* $FreeBSD: src/sys/fs/msdosfs/denode.h,v 1.37 2007/08/07 03:22:10 bde Exp $ */
/* $NetBSD: denode.h,v 1.25 1997/11/17 15:36:28 ws Exp $ */
/*-
@@ -225,18 +225,18 @@
#define DETOV(de) ((de)->de_vnode)
#define DETIMES(dep, acc, mod, cre) do { \
- if ((dep)->de_flag & DE_UPDATE) { \
+ if ((dep)->de_flag & DE_UPDATE) { \
(dep)->de_flag |= DE_MODIFIED; \
timespec2fattime((mod), 0, &(dep)->de_MDate, \
&(dep)->de_MTime, NULL); \
- (dep)->de_Attributes |= ATTR_ARCHIVE; \
+ (dep)->de_Attributes |= ATTR_ARCHIVE; \
} \
if ((dep)->de_pmp->pm_flags & MSDOSFSMNT_NOWIN95) { \
(dep)->de_flag &= ~(DE_UPDATE | DE_CREATE | DE_ACCESS); \
break; \
} \
if ((dep)->de_flag & DE_ACCESS) { \
- u_int16_t adate; \
+ u_int16_t adate; \
\
timespec2fattime((acc), 0, &adate, NULL, NULL); \
if (adate != (dep)->de_ADate) { \
@@ -247,7 +247,7 @@
if ((dep)->de_flag & DE_CREATE) { \
timespec2fattime((cre), 0, &(dep)->de_CDate, \
&(dep)->de_CTime, &(dep)->de_CHun); \
- (dep)->de_flag |= DE_MODIFIED; \
+ (dep)->de_flag |= DE_MODIFIED; \
} \
(dep)->de_flag &= ~(DE_UPDATE | DE_CREATE | DE_ACCESS); \
} while (0)
==== //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_denode.c#3 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_denode.c,v 1.96 2007/08/07 02:25:55 bde Exp $ */
+/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_denode.c,v 1.97 2007/08/07 03:59:49 bde Exp $ */
/* $NetBSD: msdosfs_denode.c,v 1.28 1998/02/10 14:10:00 mrg Exp $ */
/*-
@@ -136,7 +136,7 @@
error = vfs_hash_get(mntp, inode, LK_EXCLUSIVE, curthread, &nvp,
de_vncmpf, &inode);
if (error)
- return(error);
+ return (error);
if (nvp != NULL) {
*depp = VTODE(nvp);
KASSERT((*depp)->de_dirclust == dirclust, ("wrong dirclust"));
@@ -263,13 +263,13 @@
u_long size;
/*
- * XXX Sometimes, these arrives that . entry have cluster
- * number 0, when it shouldn't. Use real cluster number
+ * XXX it sometimes happens that the "." entry has cluster
+ * number 0 when it shouldn't. Use the actual cluster number
* instead of what is written in directory entry.
*/
- if ((diroffset == 0) && (ldep->de_StartCluster != dirclust)) {
- printf("deget(): . entry at clust %ld != %ld\n",
- dirclust, ldep->de_StartCluster);
+ if (diroffset == 0 && ldep->de_StartCluster != dirclust) {
+ printf("deget(): \".\" entry at clust %lu != %lu\n",
+ dirclust, ldep->de_StartCluster);
ldep->de_StartCluster = dirclust;
}
@@ -361,7 +361,6 @@
return (EINVAL);
}
-
if (dep->de_FileSize < length) {
vnode_pager_setsize(DETOV(dep), length);
return deextend(dep, length, cred);
@@ -424,14 +423,14 @@
*/
dep->de_FileSize = length;
if (!isadir)
- dep->de_flag |= DE_UPDATE|DE_MODIFIED;
+ dep->de_flag |= DE_UPDATE | DE_MODIFIED;
allerror = vtruncbuf(DETOV(dep), cred, td, length, pmp->pm_bpcluster);
#ifdef MSDOSFS_DEBUG
if (allerror)
printf("detrunc(): vtruncbuf error %d\n", allerror);
#endif
error = deupdat(dep, 1);
- if (error && (allerror == 0))
+ if (error != 0 && allerror == 0)
allerror = error;
#ifdef MSDOSFS_DEBUG
printf("detrunc(): allerror %d, eofentry %lu\n",
@@ -508,7 +507,7 @@
}
}
dep->de_FileSize = length;
- dep->de_flag |= DE_UPDATE|DE_MODIFIED;
+ dep->de_flag |= DE_UPDATE | DE_MODIFIED;
return (deupdat(dep, 1));
}
@@ -536,7 +535,7 @@
#endif
vp = DETOV(dep);
dep->de_inode = (uint64_t)dep->de_pmp->pm_bpcluster * dep->de_dirclust +
- dep->de_diroffset;
+ dep->de_diroffset;
vfs_hash_rehash(vp, dep->de_inode);
}
==== //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_fat.c#6 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_fat.c,v 1.46 2007/08/07 02:25:55 bde Exp $ */
+/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_fat.c,v 1.47 2007/08/07 03:22:10 bde Exp $ */
/* $NetBSD: msdosfs_fat.c,v 1.28 1997/11/17 15:36:49 ws Exp $ */
/*-
@@ -114,7 +114,7 @@
*sizep = size;
if (bop)
*bop = ofs % pmp->pm_fatblocksize;
- pm_fatblocksize = pmp->pm_fatblocksize;
+ pm_fatblocksize = pmp->pm_fatblocksize;
}
/*
@@ -522,7 +522,7 @@
#ifdef MSDOSFS_DEBUG
printf("fatentry(func %d, pmp %p, clust %lu, oldcon %p, newcon %lx)\n",
- function, pmp, cn, oldcontents, newcontents);
+ function, pmp, cn, oldcontents, newcontents);
#endif
#ifdef DIAGNOSTIC
@@ -717,7 +717,7 @@
break;
map = pmp->pm_inusemap[idx];
if (map) {
- len += ffs(map) - 1;
+ len += ffs(map) - 1;
break;
}
len += N_INUSEBITS;
@@ -794,12 +794,12 @@
u_int map;
#ifdef MSDOSFS_DEBUG
- printf("clusteralloc(): find %lu clusters\n",count);
+ printf("clusteralloc(): find %lu clusters\n", count);
#endif
if (start) {
if ((len = chainlength(pmp, start, count)) >= count)
return (chainalloc(pmp, start, count, fillwith, retcluster, got));
- } else
+ } else
len = 0;
newst = pmp->pm_nxtfree;
@@ -1080,8 +1080,8 @@
*/
if (dep->de_Attributes & ATTR_DIRECTORY)
bp = getblk(pmp->pm_devvp,
- cntobn(pmp, cn++),
- pmp->pm_bpcluster, 0, 0, 0);
+ cntobn(pmp, cn++),
+ pmp->pm_bpcluster, 0, 0, 0);
else {
bp = getblk(DETOV(dep),
de_cn2bn(pmp, frcn++),
==== //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_vfsops.c#5 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_vfsops.c,v 1.172 2007/08/07 02:27:35 bde Exp $ */
+/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_vfsops.c,v 1.173 2007/08/07 03:38:36 bde Exp $ */
/* $NetBSD: msdosfs_vfsops.c,v 1.51 1997/11/17 15:36:58 ws Exp $ */
/*-
@@ -98,7 +98,7 @@
MALLOC_DEFINE(M_MSDOSFSMNT, "msdosfs_mount", "MSDOSFS mount structure");
static MALLOC_DEFINE(M_MSDOSFSFAT, "msdosfs_fat", "MSDOSFS file allocation table");
-struct iconv_functions *msdosfs_iconv = NULL;
+struct iconv_functions *msdosfs_iconv;
static int update_mp(struct mount *mp, struct thread *td);
static int mountmsdosfs(struct vnode *devvp, struct mount *mp,
@@ -185,9 +185,8 @@
if ((error =
msdosfs_root(mp, LK_EXCLUSIVE, &rootvp, td)) != 0)
return error;
- pmp->pm_flags |= findwin95(VTODE(rootvp))
- ? MSDOSFSMNT_LONGNAME
- : MSDOSFSMNT_SHORTNAME;
+ pmp->pm_flags |= findwin95(VTODE(rootvp)) ?
+ MSDOSFSMNT_LONGNAME : MSDOSFSMNT_SHORTNAME;
vput(rootvp);
}
}
@@ -213,14 +212,14 @@
ma = mount_argf(ma, "mask", "%d", args.mask);
ma = mount_argf(ma, "dirmask", "%d", args.dirmask);
- ma = mount_argb(ma, args.flags & MSDOSFSMNT_SHORTNAME, "noshortname");
- ma = mount_argb(ma, args.flags & MSDOSFSMNT_LONGNAME, "nolongname");
- ma = mount_argb(ma, !(args.flags & MSDOSFSMNT_NOWIN95), "nowin95");
- ma = mount_argb(ma, args.flags & MSDOSFSMNT_KICONV, "nokiconv");
+ ma = mount_argb(ma, args.flags & MSDOSFSMNT_SHORTNAME, "noshortname");
+ ma = mount_argb(ma, args.flags & MSDOSFSMNT_LONGNAME, "nolongname");
+ ma = mount_argb(ma, !(args.flags & MSDOSFSMNT_NOWIN95), "nowin95");
+ ma = mount_argb(ma, args.flags & MSDOSFSMNT_KICONV, "nokiconv");
- ma = mount_argsu(ma, "cs_win", args.cs_win, MAXCSLEN);
- ma = mount_argsu(ma, "cs_dos", args.cs_dos, MAXCSLEN);
- ma = mount_argsu(ma, "cs_local", args.cs_local, MAXCSLEN);
+ ma = mount_argsu(ma, "cs_win", args.cs_win, MAXCSLEN);
+ ma = mount_argsu(ma, "cs_dos", args.cs_dos, MAXCSLEN);
+ ma = mount_argsu(ma, "cs_local", args.cs_local, MAXCSLEN);
error = kernel_mount(ma, flags);
@@ -252,8 +251,8 @@
*/
if (mp->mnt_flag & MNT_UPDATE) {
int ro_to_rw = 0;
+
pmp = VFSTOMSDOSFS(mp);
-
if (vfs_flagopt(mp->mnt_optnew, "export", NULL, 0)) {
/*
* Forbid export requests if filesystem has
@@ -297,7 +296,7 @@
devvp = pmp->pm_devvp;
vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, td);
error = VOP_ACCESS(devvp, VREAD | VWRITE,
- td->td_ucred, td);
+ td->td_ucred, td);
if (error)
error = priv_check(td, PRIV_VFS_MOUNT_PERM);
if (error) {
@@ -380,7 +379,7 @@
msdosfs_unmount(mp, MNT_FORCE, td);
return error;
}
-
+
vfs_mountedfrom(mp, from);
#ifdef MSDOSFS_DEBUG
printf("msdosfs_mount(): mp %p, pmp %p, inusemap %p\n", mp, pmp, pmp->pm_inusemap);
@@ -400,7 +399,7 @@
struct byte_bpb710 *b710;
u_int8_t SecPerClust;
u_long clusters;
- int ronly, error;
+ int ronly, error;
struct g_consumer *cp;
struct bufobj *bo;
@@ -416,7 +415,7 @@
return (error);
bo = &devvp->v_bufobj;
- bp = NULL; /* both used in error_exit */
+ bp = NULL; /* This and pmp both used in error_exit. */
pmp = NULL;
/*
@@ -468,8 +467,7 @@
* filesystems are not suitable for exporting through NFS, or any other
* application that requires fixed inode numbers.
*/
- vfs_flagopt(mp->mnt_optnew, "large", &pmp->pm_flags,
- MSDOSFS_LARGEFS);
+ vfs_flagopt(mp->mnt_optnew, "large", &pmp->pm_flags, MSDOSFS_LARGEFS);
/*
* Compute several useful quantities from the bpb in the
@@ -514,7 +512,7 @@
pmp->pm_HugeSectors = pmp->pm_Sectors;
}
if (!(pmp->pm_flags & MSDOSFS_LARGEFS)) {
- if (pmp->pm_HugeSectors > 0xffffffff /
+ if (pmp->pm_HugeSectors > 0xffffffff /
(pmp->pm_BytesPerSec / sizeof(struct direntry)) + 1) {
/*
* We cannot deal currently with this size of disk
@@ -566,7 +564,7 @@
}
pmp->pm_HugeSectors *= pmp->pm_BlkPerSec;
- pmp->pm_HiddenSects *= pmp->pm_BlkPerSec; /* XXX not used? */
+ pmp->pm_HiddenSects *= pmp->pm_BlkPerSec; /* XXX not used? */
pmp->pm_FATsecs *= pmp->pm_BlkPerSec;
SecPerClust *= pmp->pm_BlkPerSec;
@@ -588,7 +586,7 @@
pmp->pm_maxcluster = (pmp->pm_HugeSectors - pmp->pm_firstcluster) /
SecPerClust + 1;
- pmp->pm_fatsize = pmp->pm_FATsecs * DEV_BSIZE; /* XXX not used? */
+ pmp->pm_fatsize = pmp->pm_FATsecs * DEV_BSIZE; /* XXX not used? */
if (pmp->pm_fatmask == 0) {
if (pmp->pm_maxcluster
@@ -848,7 +846,7 @@
sbp->f_blocks = pmp->pm_maxcluster + 1;
sbp->f_bfree = pmp->pm_freeclustercount;
sbp->f_bavail = pmp->pm_freeclustercount;
- sbp->f_files = pmp->pm_RootDirEnts; /* XXX */
+ sbp->f_files = pmp->pm_RootDirEnts; /* XXX */
sbp->f_ffree = 0; /* what to put in here? */
return (0);
}
==== //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_vnops.c#4 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_vnops.c,v 1.175 2007/08/07 02:28:33 bde Exp $ */
+/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_vnops.c,v 1.178 2007/08/07 10:35:27 bde Exp $ */
/* $NetBSD: msdosfs_vnops.c,v 1.68 1998/02/10 14:10:04 mrg Exp $ */
/*-
@@ -205,6 +205,7 @@
struct vattr *a_vap;
} */ *ap;
{
+
return (EINVAL);
}
@@ -264,14 +265,12 @@
file_mode &= (vp->v_type == VDIR ? pmp->pm_dirmask : pmp->pm_mask);
/*
- * Disallow write attempts on read-only filesystems;
- * unless the file is a socket, fifo, or a block or
- * character device resident on the filesystem.
+ * Disallow writing to directories and regular files if the
+ * filesystem is read-only.
*/
if (mode & VWRITE) {
switch (vp->v_type) {
case VDIR:
- case VLNK:
case VREG:
if (vp->v_mount->mnt_flag & MNT_RDONLY)
return (EROFS);
@@ -320,7 +319,7 @@
dirsperblk;
if (dep->de_dirclust == MSDOSFSROOT)
fileid = (uint64_t)roottobn(pmp, 0) * dirsperblk;
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list