PERFORCE change 159535 for review

Andrew Thompson thompsa at FreeBSD.org
Fri Mar 20 11:44:21 PDT 2009


http://perforce.freebsd.org/chv.cgi?CH=159535

Change 159535 by thompsa at thompsa_burger on 2009/03/20 18:43:23

	IFC @159534

Affected files ...

.. //depot/projects/usb/src/sys/amd64/conf/GENERIC#22 integrate
.. //depot/projects/usb/src/sys/arm/conf/HL200#8 integrate
.. //depot/projects/usb/src/sys/arm/conf/KB920X#18 integrate
.. //depot/projects/usb/src/sys/boot/forth/loader.conf#16 integrate
.. //depot/projects/usb/src/sys/boot/pc98/libpc98/Makefile#3 integrate
.. //depot/projects/usb/src/sys/boot/pc98/libpc98/bioscd.c#4 integrate
.. //depot/projects/usb/src/sys/boot/pc98/libpc98/biosdisk.c#5 integrate
.. //depot/projects/usb/src/sys/boot/pc98/libpc98/time.c#2 integrate
.. //depot/projects/usb/src/sys/boot/pc98/loader/Makefile#5 integrate
.. //depot/projects/usb/src/sys/boot/pc98/loader/main.c#6 integrate
.. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#3 integrate
.. //depot/projects/usb/src/sys/conf/NOTES#31 integrate
.. //depot/projects/usb/src/sys/conf/files#56 integrate
.. //depot/projects/usb/src/sys/dev/agp/agp.c#7 integrate
.. //depot/projects/usb/src/sys/dev/agp/agp_amd64.c#4 integrate
.. //depot/projects/usb/src/sys/dev/agp/agp_i810.c#8 integrate
.. //depot/projects/usb/src/sys/dev/agp/agp_intel.c#3 integrate
.. //depot/projects/usb/src/sys/dev/agp/agp_via.c#4 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ah.h#4 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c#4 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c#4 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c#4 integrate
.. //depot/projects/usb/src/sys/dev/ath/if_ath.c#20 integrate
.. //depot/projects/usb/src/sys/dev/ath/if_athvar.h#16 integrate
.. //depot/projects/usb/src/sys/dev/dc/dcphy.c#5 integrate
.. //depot/projects/usb/src/sys/dev/dc/pnphy.c#4 integrate
.. //depot/projects/usb/src/sys/dev/drm/ati_pcigart.c#4 integrate
.. //depot/projects/usb/src/sys/dev/drm/drm_irq.c#7 integrate
.. //depot/projects/usb/src/sys/dev/drm/drm_lock.c#6 integrate
.. //depot/projects/usb/src/sys/dev/drm/drm_pciids.h#7 integrate
.. //depot/projects/usb/src/sys/dev/drm/drm_vm.c#5 integrate
.. //depot/projects/usb/src/sys/dev/drm/i915_dma.c#10 integrate
.. //depot/projects/usb/src/sys/dev/drm/i915_drv.c#6 integrate
.. //depot/projects/usb/src/sys/dev/drm/i915_drv.h#7 integrate
.. //depot/projects/usb/src/sys/dev/drm/i915_irq.c#7 integrate
.. //depot/projects/usb/src/sys/dev/drm/i915_reg.h#2 integrate
.. //depot/projects/usb/src/sys/dev/drm/i915_suspend.c#3 integrate
.. //depot/projects/usb/src/sys/dev/drm/mga_irq.c#4 integrate
.. //depot/projects/usb/src/sys/dev/drm/radeon_irq.c#8 integrate
.. //depot/projects/usb/src/sys/dev/ichwd/ichwd.c#8 integrate
.. //depot/projects/usb/src/sys/dev/syscons/teken/teken.c#6 integrate
.. //depot/projects/usb/src/sys/dev/syscons/teken/teken_subr.h#4 integrate
.. //depot/projects/usb/src/sys/dev/usb/usbdevs#51 integrate
.. //depot/projects/usb/src/sys/fs/nullfs/null_vnops.c#13 integrate
.. //depot/projects/usb/src/sys/geom/part/g_part.c#15 integrate
.. //depot/projects/usb/src/sys/geom/part/g_part_ebr.c#3 integrate
.. //depot/projects/usb/src/sys/i386/conf/GENERIC#22 integrate
.. //depot/projects/usb/src/sys/i386/conf/XBOX#7 integrate
.. //depot/projects/usb/src/sys/kern/vfs_cache.c#19 integrate
.. //depot/projects/usb/src/sys/modules/ip6_mroute_mod/Makefile#1 branch
.. //depot/projects/usb/src/sys/modules/ip_mroute_mod/Makefile#5 integrate
.. //depot/projects/usb/src/sys/modules/usb/Makefile#15 integrate
.. //depot/projects/usb/src/sys/modules/usb/uscanner/Makefile#2 delete
.. //depot/projects/usb/src/sys/net/if.c#20 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211.h#12 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_input.c#13 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_node.h#12 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_output.c#17 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_scan_sta.c#11 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_tdma.c#5 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_tdma.h#2 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_var.h#17 integrate
.. //depot/projects/usb/src/sys/netinet/igmp.h#4 integrate
.. //depot/projects/usb/src/sys/netinet/ip_mroute.c#10 integrate
.. //depot/projects/usb/src/sys/netinet/ip_mroute.h#5 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_mroute.c#12 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_mroute.h#6 integrate
.. //depot/projects/usb/src/sys/netipsec/key.c#12 integrate
.. //depot/projects/usb/src/sys/nfsserver/nfs_srvkrpc.c#4 integrate
.. //depot/projects/usb/src/sys/pc98/conf/GENERIC#17 integrate
.. //depot/projects/usb/src/sys/powerpc/conf/GENERIC#17 integrate
.. //depot/projects/usb/src/sys/sparc64/central/central.c#4 integrate
.. //depot/projects/usb/src/sys/sparc64/conf/GENERIC#16 integrate
.. //depot/projects/usb/src/sys/sparc64/ebus/ebus.c#4 integrate
.. //depot/projects/usb/src/sys/sparc64/fhc/fhc.c#7 integrate
.. //depot/projects/usb/src/sys/sparc64/include/trap.h#3 integrate
.. //depot/projects/usb/src/sys/sparc64/isa/isa.c#7 integrate
.. //depot/projects/usb/src/sys/sparc64/isa/ofw_isa.c#3 integrate
.. //depot/projects/usb/src/sys/sparc64/pci/apb.c#5 integrate
.. //depot/projects/usb/src/sys/sparc64/pci/ofw_pcib.c#6 integrate
.. //depot/projects/usb/src/sys/sparc64/pci/ofw_pcibus.c#9 integrate
.. //depot/projects/usb/src/sys/sparc64/pci/psycho.c#11 integrate
.. //depot/projects/usb/src/sys/sparc64/pci/psychovar.h#6 integrate
.. //depot/projects/usb/src/sys/sparc64/pci/schizo.c#4 integrate
.. //depot/projects/usb/src/sys/sparc64/sbus/dma_sbus.c#4 integrate
.. //depot/projects/usb/src/sys/sparc64/sbus/sbus.c#10 integrate
.. //depot/projects/usb/src/sys/sparc64/sbus/sbusvar.h#2 integrate
.. //depot/projects/usb/src/sys/sparc64/sparc64/db_disasm.c#3 integrate
.. //depot/projects/usb/src/sys/sparc64/sparc64/eeprom.c#4 integrate
.. //depot/projects/usb/src/sys/sparc64/sparc64/jbusppm.c#2 integrate
.. //depot/projects/usb/src/sys/sparc64/sparc64/machdep.c#13 integrate
.. //depot/projects/usb/src/sys/sparc64/sparc64/mp_machdep.c#9 integrate
.. //depot/projects/usb/src/sys/sparc64/sparc64/nexus.c#5 integrate
.. //depot/projects/usb/src/sys/sparc64/sparc64/rtc.c#4 integrate
.. //depot/projects/usb/src/sys/sparc64/sparc64/sc_machdep.c#3 integrate
.. //depot/projects/usb/src/sys/sparc64/sparc64/schppm.c#2 integrate
.. //depot/projects/usb/src/sys/sparc64/sparc64/trap.c#9 integrate
.. //depot/projects/usb/src/sys/sparc64/sparc64/upa.c#6 integrate
.. //depot/projects/usb/src/sys/sun4v/conf/GENERIC#12 integrate
.. //depot/projects/usb/src/sys/sun4v/include/trap.h#3 integrate
.. //depot/projects/usb/src/sys/sun4v/sun4v/trap.c#6 integrate

Differences ...

==== //depot/projects/usb/src/sys/amd64/conf/GENERIC#22 (text+ko) ====

@@ -16,7 +16,7 @@
 # If you are in doubt as to the purpose or necessity of a line, check first
 # in NOTES.
 #
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.521 2009/02/23 18:34:56 thompsa Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.522 2009/03/19 20:33:26 thompsa Exp $
 
 cpu		HAMMER
 ident		GENERIC
@@ -295,7 +295,6 @@
 device		ural		# Ralink Technology RT2500USB wireless NICs
 device		rum		# Ralink Technology RT2501USB wireless NICs
 device		urio		# Diamond Rio 500 MP3 player
-device		uscanner	# Scanners
 # USB Serial devices
 device		uark		# Technologies ARK3116 based serial adapters
 device		ubsa		# Belkin F5U103 and compatible serial adapters

==== //depot/projects/usb/src/sys/arm/conf/HL200#8 (text+ko) ====

@@ -15,7 +15,7 @@
 # If you are in doubt as to the purpose or necessity of a line, check first 
 # in NOTES.
 #
-# $FreeBSD: src/sys/arm/conf/HL200,v 1.9 2009/02/23 18:34:56 thompsa Exp $
+# $FreeBSD: src/sys/arm/conf/HL200,v 1.10 2009/03/19 20:33:26 thompsa Exp $
 
 ident		HL200
 
@@ -103,7 +103,6 @@
 device          ural            # Ralink Technology RT2500USB wireless NICs
 device          rum             # Ralink Technology RT2501USB wireless NICs
 device          urio            # Diamond Rio 500 MP3 player
-device          uscanner        # Scanners
 # USB Ethernet, requires miibus
 device		miibus
 device          aue             # ADMtek USB Ethernet

==== //depot/projects/usb/src/sys/arm/conf/KB920X#18 (text) ====

@@ -16,7 +16,7 @@
 # If you are in doubt as to the purpose or necessity of a line, check first 
 # in NOTES.
 #
-# $FreeBSD: src/sys/arm/conf/KB920X,v 1.22 2009/02/23 18:34:56 thompsa Exp $
+# $FreeBSD: src/sys/arm/conf/KB920X,v 1.23 2009/03/19 20:33:26 thompsa Exp $
 
 ident		KB920X
 
@@ -105,7 +105,6 @@
 device          ural            # Ralink Technology RT2500USB wireless NICs
 device          rum             # Ralink Technology RT2501USB wireless NICs
 device          urio            # Diamond Rio 500 MP3 player
-device          uscanner        # Scanners
 
 device		miibus
 device          aue             # ADMtek USB Ethernet

==== //depot/projects/usb/src/sys/boot/forth/loader.conf#16 (text+ko) ====

@@ -6,7 +6,7 @@
 #
 # All arguments must be in double quotes.
 #
-# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.137 2009/03/16 10:36:24 dchagin Exp $
+# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.138 2009/03/19 20:33:26 thompsa Exp $
 
 ##############################################################
 ###  Basic configuration options  ############################
@@ -379,7 +379,6 @@
 ums_load="NO"			# Mouse
 umass_load="NO"			# Mass Storage Devices
 umodem_load="NO"		# Modems
-uscanner_load="NO"		# Scanners
 if_aue_load="NO"		# ADMtek USB ethernet
 if_axe_load="NO"		# ASIX Electronics AX88172 USB ethernet
 if_cue_load="NO"		# CATC USB ethernet

==== //depot/projects/usb/src/sys/boot/pc98/libpc98/Makefile#3 (text+ko) ====

@@ -1,12 +1,13 @@
-# $FreeBSD: src/sys/boot/pc98/libpc98/Makefile,v 1.25 2008/02/29 05:06:06 nyan Exp $
+# $FreeBSD: src/sys/boot/pc98/libpc98/Makefile,v 1.26 2009/03/19 13:53:42 nyan Exp $
 #
 LIB=			pc98
 INTERNALLIB=
 
 .PATH:	${.CURDIR}/../../i386/libi386
 
-SRCS=	bioscd.c biosdisk.c biosmem.c biospnp.c biospci.c biossmap.c \
-	bootinfo.c bootinfo32.c comconsole.c devicename.c elf32_freebsd.c \
+SRCS=	bioscd.c biosdisk.c biosmem.c biospnp.c \
+	biospci.c biossmap.c bootinfo.c bootinfo32.c \
+	comconsole.c devicename.c elf32_freebsd.c \
 	i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.s \
 	time.c vidconsole.c
 

==== //depot/projects/usb/src/sys/boot/pc98/libpc98/bioscd.c#4 (text) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/pc98/libpc98/bioscd.c,v 1.3 2007/10/24 04:03:25 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/pc98/libpc98/bioscd.c,v 1.5 2009/03/20 13:03:33 nyan Exp $");
 
 /*
  * BIOS CD device handling for CD's that have been booted off of via no
@@ -170,9 +170,9 @@
 static void
 bc_print(int verbose)
 {
+	char line[80];
 	int i;
-	char line[80];
-    
+
 	for (i = 0; i < nbcinfo; i++) {
 		sprintf(line, "    cd%d: Device 0x%x\n", i,
 		    bcinfo[i].bc_sp.sp_devicespec);
@@ -232,7 +232,7 @@
 	if (dblk % (BIOSCD_SECSIZE / DEV_BSIZE) != 0)
 		return (EINVAL);
 	dblk /= (BIOSCD_SECSIZE / DEV_BSIZE);
-	DEBUG("read %d from %d to %p", blks, dblk, buf);
+	DEBUG("read %d from %lld to %p", blks, dblk, buf);
 
 	if (rsize)
 		*rsize = 0;
@@ -241,9 +241,9 @@
 		return (EIO);
 	}
 #ifdef BD_SUPPORT_FRAGS
-	DEBUG("bc_strategy: frag read %d from %d+%d to %p", 
+	DEBUG("frag read %d from %lld+%d to %p", 
 	    fragsize, dblk, blks, buf + (blks * BIOSCD_SECSIZE));
-	if (fragsize && bc_read(unit, dblk + blks, 1, fragsize)) {
+	if (fragsize && bc_read(unit, dblk + blks, 1, fragbuf)) {
 		DEBUG("frag read error");
 		return(EIO);
 	}
@@ -254,11 +254,14 @@
 	return (0);
 }
 
+/* Max number of sectors to bounce-buffer at a time. */
+#define	CD_BOUNCEBUF	8
+
 static int
 bc_read(int unit, daddr_t dblk, int blks, caddr_t dest)
 {
-	u_int result, retry;
-	static unsigned short packet[8];
+	u_int maxfer, resid, result, retry, x;
+	caddr_t bbuf, p, xp;
 	int biosdev;
 #ifdef DISK_DEBUG
 	int error;
@@ -272,40 +275,73 @@
 	if (blks == 0)
 		return (0);
 
+	/* Decide whether we have to bounce */
+	if (VTOP(dest) >> 20 != 0) {
+		/* 
+		 * The destination buffer is above first 1MB of
+		 * physical memory so we have to arrange a suitable
+		 * bounce buffer.
+		 */
+		x = min(CD_BOUNCEBUF, (unsigned)blks);
+		bbuf = alloca(x * BIOSCD_SECSIZE);
+		maxfer = x;
+	} else {
+		bbuf = NULL;
+		maxfer = 0;
+	}
+	
 	biosdev = bc_unit2bios(unit);
-	/*
-	 * Loop retrying the operation a couple of times.  The BIOS
-	 * may also retry.
-	 */
-	for (retry = 0; retry < 3; retry++) {
-		/* If retrying, reset the drive */
-		if (retry > 0) {
+	resid = blks;
+	p = dest;
+
+	while (resid > 0) {
+		if (bbuf)
+			xp = bbuf;
+		else
+			xp = p;
+		x = resid;
+		if (maxfer > 0)
+			x = min(x, maxfer);
+
+		/*
+		 * Loop retrying the operation a couple of times.  The BIOS
+		 * may also retry.
+		 */
+		for (retry = 0; retry < 3; retry++) {
+			/* If retrying, reset the drive */
+			if (retry > 0) {
+				v86.ctl = V86_FLAGS;
+				v86.addr = 0x1b;
+				v86.eax = 0x0300 | biosdev;
+				v86int();
+			}
+
 			v86.ctl = V86_FLAGS;
 			v86.addr = 0x1b;
-			v86.eax = 0x0300 | biosdev;
+			v86.eax = 0x0600 | (biosdev & 0x7f);
+			v86.ebx = x * BIOSCD_SECSIZE;
+			v86.ecx = dblk & 0xffff;
+			v86.edx = (dblk >> 16) & 0xffff;
+			v86.ebp = VTOPOFF(xp);
+			v86.es = VTOPSEG(xp);
 			v86int();
+			result = (v86.efl & PSL_C);
+			if (result == 0)
+				break;
 		}
-
-		v86.ctl = V86_FLAGS;
-		v86.addr = 0x1b;
-		v86.eax = 0x0600 | (biosdev & 0x7f);
-		v86.ebx = blks * BIOSCD_SECSIZE;
-		v86.ecx = dblk & 0xffff;
-		v86.edx = (dblk >> 16) & 0xffff;
-		v86.ebp = VTOPOFF(dest);
-		v86.es = VTOPSEG(dest);
-		v86int();
-		result = (v86.efl & PSL_C);
-		if (result == 0)
-			break;
-	}
 	
 #ifdef DISK_DEBUG
-	error = (v86.eax >> 8) & 0xff;
+		error = (v86.eax >> 8) & 0xff;
 #endif
-	DEBUG("%d sectors from %ld to %p (0x%x) %s", blks, dblk, dest,
-	    VTOP(dest), result ? "failed" : "ok");
-	DEBUG("unit %d  status 0x%x",  unit, error);
+		DEBUG("%d sectors from %lld to %p (0x%x) %s", x, dblk, p,
+		    VTOP(p), result ? "failed" : "ok");
+		DEBUG("unit %d  status 0x%x", unit, error);
+		if (bbuf != NULL)
+			bcopy(bbuf, p, x * BIOSCD_SECSIZE);
+		p += (x * BIOSCD_SECSIZE);
+		dblk += x;
+		resid -= x;
+	}
 	
 /*	hexdump(dest, (blks * BIOSCD_SECSIZE)); */
 	return(0);

==== //depot/projects/usb/src/sys/boot/pc98/libpc98/biosdisk.c#5 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/pc98/libpc98/biosdisk.c,v 1.39 2008/02/29 04:56:51 nyan Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/pc98/libpc98/biosdisk.c,v 1.41 2009/03/20 05:33:58 nyan Exp $");
 
 /*
  * BIOS disk device handling.
@@ -269,17 +269,8 @@
 
 		/* Check for a "dedicated" disk */
 		for (j = 0; j < od->od_nslices; j++) {
-		    switch(dptr[j].dp_mid) {
-		    case DOSMID_386BSD:
-		        sprintf(line, "      disk%ds%d", i, j + 1);
-			bd_printbsdslice(od,
-			    dptr[j].dp_scyl * od->od_hds * od->od_sec +
-			    dptr[j].dp_shd * od->od_sec + dptr[j].dp_ssect,
-			    line, verbose);
-			break;
-		    default:
-			break;
-		    }
+		    sprintf(line, "      disk%ds%d", i, j + 1);
+		    bd_printslice(od, &dptr[j], line, verbose);
 		}
 	    }
 	    bd_closedisk(od);
@@ -311,6 +302,52 @@
 }
 
 /*
+ * Print information about slices on a disk.  For the size calculations we
+ * assume a 512 byte sector.
+ */
+static void
+bd_printslice(struct open_disk *od, struct pc98_partition *dp, char *prefix,
+	int verbose)
+{
+	int cylsecs, start, size;
+	char stats[80];
+	char line[80];
+
+	cylsecs = od->od_hds * od->od_sec;
+	start = dp->dp_scyl * cylsecs + dp->dp_shd * od->od_sec + dp->dp_ssect;
+	size = (dp->dp_ecyl - dp->dp_scyl + 1) * cylsecs;
+
+	if (verbose)
+		sprintf(stats, " %s (%d - %d)", display_size(size),
+		    start, start + size);
+	else
+		stats[0] = '\0';
+
+	switch(dp->dp_mid & PC98_MID_MASK) {
+	case PC98_MID_386BSD:
+		bd_printbsdslice(od, start, prefix, verbose);
+		return;
+	case 0x00:				/* unused partition */
+		return;
+	case 0x01:
+		sprintf(line, "%s: FAT-12%s\n", prefix, stats);
+		break;
+	case 0x11:
+	case 0x20:
+	case 0x21:
+	case 0x22:
+	case 0x23:
+	case 0x24:
+		sprintf(line, "%s: FAT-16%s\n", prefix, stats);
+		break;
+	default:
+		sprintf(line, "%s: Unknown fs: 0x%x %s\n", prefix, dp->dp_mid,
+		    stats);
+	}
+	pager_output(line);
+}
+
+/*
  * Print out each valid partition in the disklabel of a FreeBSD slice.
  * For size calculations, we assume a 512 byte sector size.
  */
@@ -349,7 +386,7 @@
 
 	    /* Only print out statistics in verbose mode */
 	    if (verbose)
-		sprintf(line, "  %s%c: %s %s (%d - %d)\n", prefix, 'a' + i,
+	        sprintf(line, "  %s%c: %s %s (%d - %d)\n", prefix, 'a' + i,
 		    (lp->d_partitions[i].p_fstype == FS_SWAP) ? "swap " : 
 		    (lp->d_partitions[i].p_fstype == FS_VINUM) ? "vinum" :
 		    "FFS  ",
@@ -625,9 +662,9 @@
 
 	dp = &od->od_slicetab[0];
 	for (i = 0; i < od->od_nslices; i++, dp++) {
-		switch(dp->dp_mid & 0x7f) {
-		case DOSMID_386BSD & 0x7f:		/* FreeBSD */
-			if ((dp->dp_mid & 0x80) &&
+		switch(dp->dp_mid & PC98_MID_MASK) {
+		case PC98_MID_386BSD:		/* FreeBSD */
+			if ((dp->dp_mid & PC98_MID_BOOTABLE) &&
 			    (preflevel > PREF_FBSD_ACT)) {
 				pref = i;
 				preflevel = PREF_FBSD_ACT;
@@ -643,7 +680,7 @@
 		case 0x22:
 		case 0x23:
 		case 0x63:
-			if ((dp->dp_mid & 0x80) &&
+			if ((dp->dp_mid & PC98_MID_BOOTABLE) &&
 			    (preflevel > PREF_DOS_ACT)) {
 				pref = i;
 				preflevel = PREF_DOS_ACT;

==== //depot/projects/usb/src/sys/boot/pc98/libpc98/time.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/pc98/libpc98/time.c,v 1.6 2005/05/08 14:17:28 nyan Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/pc98/libpc98/time.c,v 1.7 2009/03/20 05:21:29 nyan Exp $");
 
 #include <stand.h>
 #include <btxv86.h>
@@ -33,23 +33,21 @@
 #include "bootstrap.h"
 #include "libi386.h"
 
+static int	bios_seconds(void);
+
 /*
- * Return the time in seconds since the beginning of the day.
- *
- * If we pass midnight, don't wrap back to 0.
+ * Return the BIOS time-of-day value.
  *
  * XXX uses undocumented BCD support from libstand.
  */
-
-time_t
-time(time_t *t)
+static int
+bios_seconds(void)
 {
-    static time_t	lasttime, now;
     int			hr, minute, sec;
     unsigned char	bios_time[6];
-
+    
     v86.ctl = 0;
-    v86.addr = 0x1c;            /* int 0x1c, function 0 */
+    v86.addr = 0x1c;		/* int 0x1c, function 0 */
     v86.eax = 0x0000;
     v86.es  = VTOPSEG(bios_time);
     v86.ebx = VTOPOFF(bios_time);
@@ -59,7 +57,20 @@
     minute = bcd2bin(bios_time[4]);
     sec = bcd2bin(bios_time[5]);
     
-    now = hr * 3600 + minute * 60 + sec;
+    return (hr * 3600 + minute * 60 + sec);
+}
+
+/*
+ * Return the time in seconds since the beginning of the day.
+ */
+time_t
+time(time_t *t)
+{
+    static time_t lasttime;
+    time_t now;
+
+    now = bios_seconds();
+
     if (now < lasttime)
 	now += 24 * 3600;
     lasttime = now;

==== //depot/projects/usb/src/sys/boot/pc98/loader/Makefile#5 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/boot/pc98/loader/Makefile,v 1.43 2009/02/21 15:04:31 ru Exp $
+# $FreeBSD: src/sys/boot/pc98/loader/Makefile,v 1.44 2009/03/19 13:53:42 nyan Exp $
 
 .include <bsd.own.mk>
 MK_SSP=		no
@@ -18,6 +18,7 @@
 CFLAGS+=	-DLOADER_NFS_SUPPORT
 .endif
 
+# Include bcache code.
 HAVE_BCACHE=	yes
 
 # Enable PnP and ISA-PnP code.

==== //depot/projects/usb/src/sys/boot/pc98/loader/main.c#6 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/pc98/loader/main.c,v 1.26 2008/08/08 19:41:20 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/pc98/loader/main.c,v 1.27 2009/03/19 13:53:42 nyan Exp $");
 
 /*
  * MD bootstrap main() and assorted miscellaneous
@@ -145,6 +145,14 @@
 	    bc_add(initial_bootdev);
     }
 
+    archsw.arch_autoload = i386_autoload;
+    archsw.arch_getdev = i386_getdev;
+    archsw.arch_copyin = i386_copyin;
+    archsw.arch_copyout = i386_copyout;
+    archsw.arch_readin = i386_readin;
+    archsw.arch_isainb = isa_inb;
+    archsw.arch_isaoutb = isa_outb;
+
     /*
      * March through the device switch probing for things.
      */
@@ -163,14 +171,6 @@
 
     extract_currdev();				/* set $currdev and $loaddev */
     setenv("LINES", "24", 1);			/* optional */
-    
-    archsw.arch_autoload = i386_autoload;
-    archsw.arch_getdev = i386_getdev;
-    archsw.arch_copyin = i386_copyin;
-    archsw.arch_copyout = i386_copyout;
-    archsw.arch_readin = i386_readin;
-    archsw.arch_isainb = isa_inb;
-    archsw.arch_isaoutb = isa_outb;
 
     interact();			/* doesn't return */
 
@@ -188,7 +188,8 @@
 extract_currdev(void)
 {
     struct i386_devdesc	new_currdev;
-    int			major, biosdev = -1;
+    int			major;
+    int			biosdev = -1;
 
     /* Assume we are booting from a BIOS disk by default */
     new_currdev.d_dev = &biosdisk;

==== //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#3 (text+ko) ====

@@ -940,6 +940,8 @@
 		/* NB: we already did dmu_tx_wait() if necessary */
 		goto top;
 	}
+	if (error == 0)
+		VOP_UNLOCK(*xvpp, 0);
 
 	return (error);
 }

==== //depot/projects/usb/src/sys/conf/NOTES#31 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/NOTES,v 1.1531 2009/03/15 14:21:05 rwatson Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1532 2009/03/19 20:33:26 thompsa Exp $
 #
 # NOTES -- Lines that can be cut/pasted into kernel and hints configs.
 #
@@ -2413,8 +2413,6 @@
 device		ums
 # Diamond Rio 500 MP3 player
 device		urio
-# USB scanners
-device		uscanner
 #
 # USB serial support
 device		ucom

==== //depot/projects/usb/src/sys/conf/files#56 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1382 2009/03/15 14:21:05 rwatson Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1383 2009/03/19 20:33:26 thompsa Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -1656,10 +1656,6 @@
 dev/usb/template/usb_template_msc.c	optional usb_template
 dev/usb/template/usb_template_mtp.c	optional usb_template
 #
-# USB image drivers
-#
-dev/usb/image/uscanner.c	optional uscanner
-#
 # USB END
 #
 dev/utopia/idtphy.c		optional utopia

==== //depot/projects/usb/src/sys/dev/agp/agp.c#7 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/agp/agp.c,v 1.63 2009/03/09 13:27:33 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/agp/agp.c,v 1.64 2009/03/20 18:30:20 rnoland Exp $");
 
 #include "opt_agp.h"
 #include "opt_bus.h"
@@ -532,7 +532,7 @@
 	int error;
 
 	/* Do some sanity checks first. */
-	if (offset < 0 || (offset & (AGP_PAGE_SIZE - 1)) != 0 ||
+	if ((offset & (AGP_PAGE_SIZE - 1)) != 0 ||
 	    offset + mem->am_size > AGP_GET_APERTURE(dev)) {
 		device_printf(dev, "binding memory at bad offset %#x\n",
 		    (int)offset);

==== //depot/projects/usb/src/sys/dev/agp/agp_amd64.c#4 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/agp/agp_amd64.c,v 1.18 2009/03/09 13:27:33 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/agp/agp_amd64.c,v 1.19 2009/03/20 18:30:20 rnoland Exp $");
 
 #include "opt_bus.h"
 
@@ -337,7 +337,7 @@
 {
 	struct agp_amd64_softc *sc = device_get_softc(dev);
 
-	if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT))
+	if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT))
 		return (EINVAL);
 
 	sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] =
@@ -351,7 +351,7 @@
 {
 	struct agp_amd64_softc *sc = device_get_softc(dev);
 
-	if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT))
+	if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT))
 		return (EINVAL);
 
 	sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = 0;

==== //depot/projects/usb/src/sys/dev/agp/agp_i810.c#8 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/agp/agp_i810.c,v 1.50 2009/03/09 13:27:33 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/agp/agp_i810.c,v 1.51 2009/03/20 18:30:20 rnoland Exp $");
 
 #include "opt_bus.h"
 
@@ -840,7 +840,7 @@
 {
 	struct agp_i810_softc *sc = device_get_softc(dev);
 
-	if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) {
+	if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) {
 		device_printf(dev, "failed: offset is 0x%08jx, shift is %d, entries is %d\n", (intmax_t)offset, AGP_PAGE_SHIFT, sc->gatt->ag_entries);
 		return EINVAL;
 	}
@@ -862,7 +862,7 @@
 {
 	struct agp_i810_softc *sc = device_get_softc(dev);
 
-	if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT))
+	if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT))
 		return EINVAL;
 
 	if ( sc->chiptype != CHIP_I810 ) {
@@ -1016,7 +1016,7 @@
 	vm_offset_t i;
 
 	/* Do some sanity checks first. */
-	if (offset < 0 || (offset & (AGP_PAGE_SIZE - 1)) != 0 ||
+	if ((offset & (AGP_PAGE_SIZE - 1)) != 0 ||
 	    offset + mem->am_size > AGP_GET_APERTURE(dev)) {
 		device_printf(dev, "binding memory at bad offset %#x\n",
 		    (int)offset);

==== //depot/projects/usb/src/sys/dev/agp/agp_intel.c#3 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/agp/agp_intel.c,v 1.37 2009/03/09 13:27:33 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/agp/agp_intel.c,v 1.38 2009/03/20 18:30:20 rnoland Exp $");
 
 #include "opt_bus.h"
 
@@ -371,7 +371,7 @@
 
 	sc = device_get_softc(dev);
 
-	if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT))
+	if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT))
 		return (EINVAL);
 
 	sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = physical | 0x17;
@@ -385,7 +385,7 @@
 
 	sc = device_get_softc(dev);
 
-	if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT))
+	if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT))
 		return (EINVAL);
 
 	sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = 0;

==== //depot/projects/usb/src/sys/dev/agp/agp_via.c#4 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/agp/agp_via.c,v 1.28 2009/03/09 13:27:33 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/agp/agp_via.c,v 1.29 2009/03/20 18:30:20 rnoland Exp $");
 
 #include "opt_bus.h"
 
@@ -362,7 +362,7 @@
 {
 	struct agp_via_softc *sc = device_get_softc(dev);
 
-	if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT))
+	if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT))
 		return EINVAL;
 
 	sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = physical;
@@ -374,7 +374,7 @@
 {
 	struct agp_via_softc *sc = device_get_softc(dev);
 
-	if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT))
+	if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT))
 		return EINVAL;
 
 	sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = 0;

==== //depot/projects/usb/src/sys/dev/ath/ath_hal/ah.h#4 (text+ko) ====

@@ -14,7 +14,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $FreeBSD: src/sys/dev/ath/ath_hal/ah.h,v 1.6 2009/02/24 01:07:06 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/ath_hal/ah.h,v 1.7 2009/03/19 19:29:10 sam Exp $
  */
 
 #ifndef _ATH_AH_H_
@@ -598,8 +598,6 @@
  */
 struct ath_hal {
 	uint32_t	ah_magic;	/* consistency check magic number */
-	uint32_t	ah_abi;		/* HAL ABI version */
-#define	HAL_ABI_VERSION	0x08112800	/* YYMMDDnn */
 	uint16_t	ah_devid;	/* PCI device ID */
 	uint16_t	ah_subvendorid;	/* PCI subvendor ID */
 	HAL_SOFTC	ah_sc;		/* back pointer to driver/os state */

==== //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c#4 (text+ko) ====

@@ -14,7 +14,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $FreeBSD: src/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c,v 1.4 2009/02/24 01:07:06 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c,v 1.5 2009/03/19 19:29:10 sam Exp $
  */
 #include "opt_ah.h"
 
@@ -38,7 +38,6 @@
 
 static const struct ath_hal_private ar5210hal = {{
 	.ah_magic			= AR5210_MAGIC,
-	.ah_abi				= HAL_ABI_VERSION,
 
 	.ah_getRateTable		= ar5210GetRateTable,
 	.ah_detach			= ar5210Detach,

==== //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c#4 (text+ko) ====

@@ -14,7 +14,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $FreeBSD: src/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c,v 1.5 2009/02/24 01:07:06 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c,v 1.6 2009/03/19 19:29:10 sam Exp $
  */
 #include "opt_ah.h"
 
@@ -38,7 +38,6 @@
 
 static const struct ath_hal_private ar5211hal = {{
 	.ah_magic			= AR5211_MAGIC,
-	.ah_abi				= HAL_ABI_VERSION,
 
 	.ah_getRateTable		= ar5211GetRateTable,
 	.ah_detach			= ar5211Detach,

==== //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c#4 (text+ko) ====

@@ -14,7 +14,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $FreeBSD: src/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c,v 1.4 2009/02/24 01:07:06 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c,v 1.5 2009/03/19 19:29:10 sam Exp $
  */
 #include "opt_ah.h"
 
@@ -34,7 +34,6 @@
 
 static const struct ath_hal_private ar5212hal = {{
 	.ah_magic			= AR5212_MAGIC,
-	.ah_abi				= HAL_ABI_VERSION,
 
 	.ah_getRateTable		= ar5212GetRateTable,
 	.ah_detach			= ar5212Detach,

==== //depot/projects/usb/src/sys/dev/ath/if_ath.c#20 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.240 2009/03/09 23:10:22 svn Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.242 2009/03/19 19:29:10 sam Exp $");
 
 /*
  * Driver for the Atheros Wireless LAN controller.
@@ -89,11 +89,6 @@
 #endif
 
 /*
- * We require a HAL w/ the changes for split tx/rx MIC.
- */
-CTASSERT(HAL_ABI_VERSION > 0x06052200);
-
-/*
  * ATH_BCBUF determines the number of vap's that can transmit
  * beacons and also (currently) the number of vap's that can
  * have unique mac addresses/bssid.  When staggering beacons
@@ -225,7 +220,7 @@
 		    const struct ieee80211_tdma_state *tdma);
 static void	ath_tdma_config(struct ath_softc *sc, struct ieee80211vap *vap);
 static void	ath_tdma_update(struct ieee80211_node *ni,
-		    const struct ieee80211_tdma_param *tdma);
+		    const struct ieee80211_tdma_param *tdma, int);
 static void	ath_tdma_beacon_send(struct ath_softc *sc,
 		    struct ieee80211vap *vap);
 
@@ -380,13 +375,6 @@
 		error = ENXIO;
 		goto bad;
 	}
-	if (ah->ah_abi != HAL_ABI_VERSION) {
-		if_printf(ifp, "HAL ABI mismatch detected "
-			"(HAL:0x%x != driver:0x%x)\n",
-			ah->ah_abi, HAL_ABI_VERSION);
-		error = ENXIO;
-		goto bad;
-	}
 	sc->sc_ah = ah;
 	sc->sc_invalid = 0;	/* ready to go, enable interrupt handling */
 #ifdef	ATH_DEBUG
@@ -2689,17 +2677,8 @@
 	u_int32_t rfilt;
 
 	rfilt = HAL_RX_FILTER_UCAST | HAL_RX_FILTER_BCAST | HAL_RX_FILTER_MCAST;
-#if HAL_ABI_VERSION < 0x08011600
-	rfilt |= (ath_hal_getrxfilter(sc->sc_ah) &
-		(HAL_RX_FILTER_PHYRADAR | HAL_RX_FILTER_PHYERR));
-#elif HAL_ABI_VERSION < 0x08060100
-	if (ic->ic_opmode == IEEE80211_M_STA &&
-	    !sc->sc_needmib && !sc->sc_scanning)
-		rfilt |= HAL_RX_FILTER_PHYERR;
-#else
 	if (!sc->sc_needmib && !sc->sc_scanning)
 		rfilt |= HAL_RX_FILTER_PHYERR;
-#endif
 	if (ic->ic_opmode != IEEE80211_M_STA)
 		rfilt |= HAL_RX_FILTER_PROBEREQ;
 	if (ic->ic_opmode == IEEE80211_M_MONITOR || (ifp->if_flags & IFF_PROMISC))
@@ -6273,10 +6252,6 @@
 		break;
 	case IEEE80211_MODE_TURBO_A:
 		rt = ath_hal_getratetable(ah, HAL_MODE_108A);
-#if HAL_ABI_VERSION < 0x07013100
-		if (rt == NULL)		/* XXX bandaid for old hal's */
-			rt = ath_hal_getratetable(ah, HAL_MODE_TURBO);
-#endif
 		break;
 	case IEEE80211_MODE_TURBO_G:
 		rt = ath_hal_getratetable(ah, HAL_MODE_108G);
@@ -7477,7 +7452,7 @@
  */
 static void
 ath_tdma_update(struct ieee80211_node *ni,
-	const struct ieee80211_tdma_param *tdma)
+	const struct ieee80211_tdma_param *tdma, int changed)
 {
 #define	TSF_TO_TU(_h,_l) \
 	((((u_int32_t)(_h)) << 22) | (((u_int32_t)(_l)) >> 10))
@@ -7498,7 +7473,7 @@
 	/*
 	 * Check for and adopt configuration changes.
 	 */
-	if (isset(ATH_VAP(vap)->av_boff.bo_flags, IEEE80211_BEACON_TDMA)) {
+	if (changed != 0) {
 		const struct ieee80211_tdma_state *ts = vap->iv_tdma;
 
 		ath_tdma_bintvalsetup(sc, ts);

==== //depot/projects/usb/src/sys/dev/ath/if_athvar.h#16 (text+ko) ====

@@ -26,7 +26,7 @@

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list