From owner-p4-projects@FreeBSD.ORG Thu Aug 9 06:31:03 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0E86D16A420; Thu, 9 Aug 2007 06:31:03 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C354616A419 for ; Thu, 9 Aug 2007 06:31:02 +0000 (UTC) (envelope-from delphij@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B095A13C458 for ; Thu, 9 Aug 2007 06:31:02 +0000 (UTC) (envelope-from delphij@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l796V2JR094058 for ; Thu, 9 Aug 2007 06:31:02 GMT (envelope-from delphij@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l796V1Q9094046 for perforce@freebsd.org; Thu, 9 Aug 2007 06:31:01 GMT (envelope-from delphij@freebsd.org) Date: Thu, 9 Aug 2007 06:31:01 GMT Message-Id: <200708090631.l796V1Q9094046@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to delphij@freebsd.org using -f From: Xin LI To: Perforce Change Reviews Cc: Subject: PERFORCE change 124940 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Aug 2007 06:31:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=124940 Change 124940 by delphij@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 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 -__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 #include @@ -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 -__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 #include #include @@ -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 #include #include -__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 -__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 -__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) <<<