Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Apr 2003 08:28:30 -0700 (PDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 28928 for review
Message-ID:  <200304141528.h3EFSUYj041716@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=28928

Change 28928 by jhb@jhb_laptop on 2003/04/14 08:28:28

	IFC @28927.

Affected files ...

.. //depot/projects/smpng/sys/alpha/alpha/busdma_machdep.c#14 integrate
.. //depot/projects/smpng/sys/alpha/alpha/pmap.c#44 integrate
.. //depot/projects/smpng/sys/alpha/include/bus.h#8 integrate
.. //depot/projects/smpng/sys/alpha/include/pmap.h#15 integrate
.. //depot/projects/smpng/sys/alpha/isa/isa.c#8 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_da.c#36 integrate
.. //depot/projects/smpng/sys/conf/NOTES#41 integrate
.. //depot/projects/smpng/sys/conf/files#71 integrate
.. //depot/projects/smpng/sys/conf/files.i386#38 integrate
.. //depot/projects/smpng/sys/conf/files.ia64#25 integrate
.. //depot/projects/smpng/sys/conf/options#50 integrate
.. //depot/projects/smpng/sys/conf/options.i386#26 integrate
.. //depot/projects/smpng/sys/conf/options.ia64#13 integrate
.. //depot/projects/smpng/sys/conf/options.pc98#27 integrate
.. //depot/projects/smpng/sys/conf/options.powerpc#7 integrate
.. //depot/projects/smpng/sys/conf/options.x86_64#5 integrate
.. //depot/projects/smpng/sys/ddb/db_ps.c#18 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi.c#41 integrate
.. //depot/projects/smpng/sys/dev/adlink/adlink.c#2 integrate
.. //depot/projects/smpng/sys/dev/advansys/advansys.c#4 integrate
.. //depot/projects/smpng/sys/dev/advansys/adwcam.c#4 integrate
.. //depot/projects/smpng/sys/dev/aha/aha.c#7 integrate
.. //depot/projects/smpng/sys/dev/ahb/ahb.c#5 integrate
.. //depot/projects/smpng/sys/dev/aic/aic_pccard.c#5 integrate
.. //depot/projects/smpng/sys/dev/aic7xxx/aic79xx_osm.c#7 integrate
.. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx_osm.c#7 integrate
.. //depot/projects/smpng/sys/dev/amd/amd.c#2 integrate
.. //depot/projects/smpng/sys/dev/an/if_an.c#29 integrate
.. //depot/projects/smpng/sys/dev/an/if_an_isa.c#7 integrate
.. //depot/projects/smpng/sys/dev/an/if_an_pccard.c#8 integrate
.. //depot/projects/smpng/sys/dev/an/if_an_pci.c#11 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-chipset.c#8 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-pci.h#5 integrate
.. //depot/projects/smpng/sys/dev/awi/if_awi_pccard.c#6 integrate
.. //depot/projects/smpng/sys/dev/buslogic/bt.c#7 integrate
.. //depot/projects/smpng/sys/dev/ccd/ccd.c#24 integrate
.. //depot/projects/smpng/sys/dev/cs/if_cs_pccard.c#4 integrate
.. //depot/projects/smpng/sys/dev/dpt/dpt_scsi.c#5 integrate
.. //depot/projects/smpng/sys/dev/ed/if_ed_pccard.c#14 integrate
.. //depot/projects/smpng/sys/dev/ep/if_ep_pccard.c#7 integrate
.. //depot/projects/smpng/sys/dev/fe/if_fe_pccard.c#6 integrate
.. //depot/projects/smpng/sys/dev/firewire/sbp.c#12 integrate
.. //depot/projects/smpng/sys/dev/fxp/if_fxp.c#29 integrate
.. //depot/projects/smpng/sys/dev/ida/ida.c#9 integrate
.. //depot/projects/smpng/sys/dev/iir/iir.c#5 integrate
.. //depot/projects/smpng/sys/dev/md/md.c#34 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpt_freebsd.c#5 integrate
.. //depot/projects/smpng/sys/dev/ncv/ncr53c500_pccard.c#9 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccard.c#20 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccarddevs#22 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccarddevs.h#22 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccardvar.h#12 integrate
.. //depot/projects/smpng/sys/dev/sbsh/if_sbsh.c#1 branch
.. //depot/projects/smpng/sys/dev/sbsh/if_sbshreg.h#1 branch
.. //depot/projects/smpng/sys/dev/sn/if_sn_pccard.c#6 integrate
.. //depot/projects/smpng/sys/dev/stg/tmc18c30_pccard.c#9 integrate
.. //depot/projects/smpng/sys/dev/sym/sym_hipd.c#11 integrate
.. //depot/projects/smpng/sys/dev/trm/trm.c#5 integrate
.. //depot/projects/smpng/sys/dev/usb/FILES#4 integrate
.. //depot/projects/smpng/sys/dev/usb/ehci.c#1 branch
.. //depot/projects/smpng/sys/dev/usb/ehci_pci.c#1 branch
.. //depot/projects/smpng/sys/dev/usb/ehcireg.h#1 branch
.. //depot/projects/smpng/sys/dev/usb/ehcivar.h#1 branch
.. //depot/projects/smpng/sys/dev/usb/uhid.c#12 integrate
.. //depot/projects/smpng/sys/dev/usb/umass.c#22 integrate
.. //depot/projects/smpng/sys/dev/usb/usb.c#19 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_quirks.c#5 integrate
.. //depot/projects/smpng/sys/dev/usb/usbdevs#28 integrate
.. //depot/projects/smpng/sys/dev/usb/usbdevs.h#29 integrate
.. //depot/projects/smpng/sys/dev/usb/usbdevs_data.h#29 integrate
.. //depot/projects/smpng/sys/dev/wi/if_wi.c#49 integrate
.. //depot/projects/smpng/sys/dev/wi/if_wi_pccard.c#14 integrate
.. //depot/projects/smpng/sys/dev/xe/if_xe_pccard.c#6 integrate
.. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_denode.c#11 integrate
.. //depot/projects/smpng/sys/geom/geom.h#24 integrate
.. //depot/projects/smpng/sys/geom/geom_aes.c#9 integrate
.. //depot/projects/smpng/sys/geom/geom_apple.c#4 integrate
.. //depot/projects/smpng/sys/geom/geom_bsd.c#25 integrate
.. //depot/projects/smpng/sys/geom/geom_dump.c#17 integrate
.. //depot/projects/smpng/sys/geom/geom_event.c#15 integrate
.. //depot/projects/smpng/sys/geom/geom_gpt.c#10 integrate
.. //depot/projects/smpng/sys/geom/geom_io.c#18 integrate
.. //depot/projects/smpng/sys/geom/geom_mbr.c#18 integrate
.. //depot/projects/smpng/sys/geom/geom_mbr_enc.c#1 branch
.. //depot/projects/smpng/sys/geom/geom_mirror.c#3 integrate
.. //depot/projects/smpng/sys/geom/geom_pc98.c#16 integrate
.. //depot/projects/smpng/sys/geom/geom_slice.c#17 integrate
.. //depot/projects/smpng/sys/geom/geom_slice.h#10 integrate
.. //depot/projects/smpng/sys/geom/geom_subr.c#23 integrate
.. //depot/projects/smpng/sys/geom/geom_sunlabel.c#17 integrate
.. //depot/projects/smpng/sys/geom/geom_vol_ffs.c#3 integrate
.. //depot/projects/smpng/sys/i386/conf/NOTES#55 integrate
.. //depot/projects/smpng/sys/i386/conf/PAE#2 integrate
.. //depot/projects/smpng/sys/i386/i386/busdma_machdep.c#15 integrate
.. //depot/projects/smpng/sys/i386/i386/genassym.c#21 integrate
.. //depot/projects/smpng/sys/i386/i386/identcpu.c#19 integrate
.. //depot/projects/smpng/sys/i386/i386/sys_machdep.c#26 integrate
.. //depot/projects/smpng/sys/i386/i386/tsc.c#4 integrate
.. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#33 integrate
.. //depot/projects/smpng/sys/i386/include/bus_dma.h#4 integrate
.. //depot/projects/smpng/sys/ia64/ia32/syscalls.master#9 integrate
.. //depot/projects/smpng/sys/ia64/ia64/busdma_machdep.c#14 integrate
.. //depot/projects/smpng/sys/ia64/include/bus.h#7 integrate
.. //depot/projects/smpng/sys/kern/init_main.c#32 integrate
.. //depot/projects/smpng/sys/kern/init_sysent.c#28 integrate
.. //depot/projects/smpng/sys/kern/kern_clock.c#25 integrate
.. //depot/projects/smpng/sys/kern/kern_conf.c#19 integrate
.. //depot/projects/smpng/sys/kern/kern_event.c#18 integrate
.. //depot/projects/smpng/sys/kern/kern_exit.c#60 integrate
.. //depot/projects/smpng/sys/kern/kern_fork.c#55 integrate
.. //depot/projects/smpng/sys/kern/kern_jail.c#25 integrate
.. //depot/projects/smpng/sys/kern/kern_mutex.c#67 integrate
.. //depot/projects/smpng/sys/kern/kern_proc.c#48 integrate
.. //depot/projects/smpng/sys/kern/kern_resource.c#33 integrate
.. //depot/projects/smpng/sys/kern/kern_sig.c#57 integrate
.. //depot/projects/smpng/sys/kern/kern_thr.c#4 integrate
.. //depot/projects/smpng/sys/kern/kern_thread.c#24 integrate
.. //depot/projects/smpng/sys/kern/sched_4bsd.c#7 integrate
.. //depot/projects/smpng/sys/kern/sched_ule.c#5 integrate
.. //depot/projects/smpng/sys/kern/subr_smp.c#18 integrate
.. //depot/projects/smpng/sys/kern/subr_witness.c#97 integrate
.. //depot/projects/smpng/sys/kern/syscalls.c#28 integrate
.. //depot/projects/smpng/sys/kern/syscalls.master#27 integrate
.. //depot/projects/smpng/sys/kern/sysv_shm.c#15 integrate
.. //depot/projects/smpng/sys/kern/uipc_cow.c#11 integrate
.. //depot/projects/smpng/sys/kern/uipc_socket.c#35 integrate
.. //depot/projects/smpng/sys/kern/vfs_bio.c#42 integrate
.. //depot/projects/smpng/sys/kern/vfs_subr.c#47 integrate
.. //depot/projects/smpng/sys/kern/vfs_syscalls.c#53 integrate
.. //depot/projects/smpng/sys/modules/Makefile#48 integrate
.. //depot/projects/smpng/sys/modules/sbsh/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/usb/Makefile#3 integrate
.. //depot/projects/smpng/sys/net/route.c#11 integrate
.. //depot/projects/smpng/sys/netinet/ip_output.c#36 integrate
.. //depot/projects/smpng/sys/netinet/tcp_subr.c#30 integrate
.. //depot/projects/smpng/sys/pci/if_vr.c#13 integrate
.. //depot/projects/smpng/sys/pci/if_xl.c#23 integrate
.. //depot/projects/smpng/sys/powerpc/include/bus.h#8 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/busdma_machdep.c#9 integrate
.. //depot/projects/smpng/sys/sparc64/conf/GENERIC#27 integrate
.. //depot/projects/smpng/sys/sparc64/include/bus.h#13 integrate
.. //depot/projects/smpng/sys/sparc64/include/iommuvar.h#9 integrate
.. //depot/projects/smpng/sys/sparc64/include/pmap.h#23 integrate
.. //depot/projects/smpng/sys/sparc64/include/tlb.h#16 integrate
.. //depot/projects/smpng/sys/sparc64/pci/psycho.c#19 integrate
.. //depot/projects/smpng/sys/sparc64/sbus/sbus.c#8 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/bus_machdep.c#15 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/cache.c#11 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/cheetah.c#3 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/iommu.c#14 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#47 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/pmap.c#37 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/spitfire.c#3 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/swtch.S#5 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/tlb.c#7 integrate
.. //depot/projects/smpng/sys/sys/bio.h#15 integrate
.. //depot/projects/smpng/sys/sys/diskmbr.h#5 integrate
.. //depot/projects/smpng/sys/sys/jail.h#7 integrate
.. //depot/projects/smpng/sys/sys/mbuf.h#21 integrate
.. //depot/projects/smpng/sys/sys/mdioctl.h#6 integrate
.. //depot/projects/smpng/sys/sys/param.h#37 integrate
.. //depot/projects/smpng/sys/sys/proc.h#77 integrate
.. //depot/projects/smpng/sys/sys/sched.h#3 integrate
.. //depot/projects/smpng/sys/sys/syscall.h#28 integrate
.. //depot/projects/smpng/sys/sys/syscall.mk#28 integrate
.. //depot/projects/smpng/sys/sys/sysproto.h#30 integrate
.. //depot/projects/smpng/sys/sys/timetc.h#11 integrate
.. //depot/projects/smpng/sys/sys/vnode.h#31 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_snapshot.c#26 integrate
.. //depot/projects/smpng/sys/vm/pmap.h#17 integrate
.. //depot/projects/smpng/sys/vm/vm_contig.c#12 integrate
.. //depot/projects/smpng/sys/vm/vm_kern.c#11 integrate
.. //depot/projects/smpng/sys/vm/vm_map.c#32 integrate
.. //depot/projects/smpng/sys/vm/vm_meter.c#14 integrate
.. //depot/projects/smpng/sys/vm/vm_object.c#29 integrate
.. //depot/projects/smpng/sys/vm/vm_object.h#15 integrate
.. //depot/projects/smpng/sys/vm/vm_page.c#34 integrate

Differences ...

==== //depot/projects/smpng/sys/alpha/alpha/busdma_machdep.c#14 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/alpha/alpha/busdma_machdep.c,v 1.34 2003/04/08 14:25:44 des Exp $
+ * $FreeBSD: src/sys/alpha/alpha/busdma_machdep.c,v 1.35 2003/04/10 23:03:32 mux Exp $
  */
 
 #include <sys/param.h>
@@ -787,7 +787,7 @@
 }
 
 void
-_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op)
+_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, int op)
 {
 	struct bounce_page *bpage;
 
@@ -798,28 +798,22 @@
 		 * want to add support for invalidating
 		 * the caches on broken hardware
 		 */
-		switch (op) {
-		case BUS_DMASYNC_PREWRITE:
+		if (op & BUS_DMASYNC_PREWRITE) {
 			while (bpage != NULL) {
 				bcopy((void *)bpage->datavaddr,
 				      (void *)bpage->vaddr,
 				      bpage->datacount);
 				bpage = STAILQ_NEXT(bpage, links);
 			}
-			break;
+		}
 
-		case BUS_DMASYNC_POSTREAD:
+		if (op & BUS_DMASYNC_POSTREAD) {
 			while (bpage != NULL) {
 				bcopy((void *)bpage->vaddr,
 				      (void *)bpage->datavaddr,
 				      bpage->datacount);
 				bpage = STAILQ_NEXT(bpage, links);
 			}
-			break;
-		case BUS_DMASYNC_PREREAD:
-		case BUS_DMASYNC_POSTWRITE:
-			/* No-ops */
-			break;
 		}
 	}
 }

==== //depot/projects/smpng/sys/alpha/alpha/pmap.c#44 (text+ko) ====

@@ -43,7 +43,7 @@
  *	from:	@(#)pmap.c	7.7 (Berkeley)	5/12/91
  *	from:	i386 Id: pmap.c,v 1.193 1998/04/19 15:22:48 bde Exp
  *		with some ideas from NetBSD's alpha pmap
- * $FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.121 2003/02/25 03:21:18 mux Exp $
+ * $FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.122 2003/04/10 18:42:06 jhb Exp $
  */
 
 /*

==== //depot/projects/smpng/sys/alpha/include/bus.h#8 (text+ko) ====

@@ -67,7 +67,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/sys/alpha/include/bus.h,v 1.17 2003/02/26 02:16:05 mux Exp $ */
+/* $FreeBSD: src/sys/alpha/include/bus.h,v 1.18 2003/04/10 23:03:32 mux Exp $ */
 
 #ifndef _ALPHA_BUS_H_
 #define _ALPHA_BUS_H_
@@ -480,16 +480,12 @@
 struct uio;
 
 /*
- *	bus_dmasync_op_t
- *
  *	Operations performed by bus_dmamap_sync().
  */
-typedef enum {
-	BUS_DMASYNC_PREREAD,
-	BUS_DMASYNC_POSTREAD,
-	BUS_DMASYNC_PREWRITE,
-	BUS_DMASYNC_POSTWRITE
-} bus_dmasync_op_t;
+#define	BUS_DMASYNC_PREREAD	1
+#define	BUS_DMASYNC_POSTREAD	2
+#define	BUS_DMASYNC_PREWRITE	4
+#define	BUS_DMASYNC_POSTWRITE	8
 
 /*
  *	bus_dma_tag_t
@@ -625,7 +621,7 @@
 /*
  * Perform a syncronization operation on the given map.
  */
-void _bus_dmamap_sync(bus_dma_tag_t, bus_dmamap_t, bus_dmasync_op_t);
+void _bus_dmamap_sync(bus_dma_tag_t, bus_dmamap_t, int);
 #define bus_dmamap_sync(dmat, dmamap, op) 		\
 	if ((dmamap) != NULL)				\
 		_bus_dmamap_sync(dmat, dmamap, op)

==== //depot/projects/smpng/sys/alpha/include/pmap.h#15 (text+ko) ====

@@ -43,7 +43,7 @@
  *	from: hp300: @(#)pmap.h	7.2 (Berkeley) 12/16/90
  *	from: @(#)pmap.h	7.4 (Berkeley) 5/12/91
  *	from: i386 pmap.h,v 1.54 1997/11/20 19:30:35 bde Exp
- * $FreeBSD: src/sys/alpha/include/pmap.h,v 1.22 2003/03/29 18:22:29 gallatin Exp $
+ * $FreeBSD: src/sys/alpha/include/pmap.h,v 1.23 2003/04/10 18:42:06 jhb Exp $
  */
 
 #ifndef _MACHINE_PMAP_H_

==== //depot/projects/smpng/sys/alpha/isa/isa.c#8 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/alpha/isa/isa.c,v 1.29 2002/02/08 18:30:36 jhb Exp $
+ * $FreeBSD: src/sys/alpha/isa/isa.c,v 1.31 2003/04/11 13:30:32 gallatin Exp $
  */
 
 #include <sys/param.h>
@@ -389,17 +389,31 @@
 		  struct resource *irq, void *cookie)
 {
 	struct isa_intr *ii = cookie;
+	struct intrhand *ih, *handler = (struct intrhand *)ii->ih;
+	struct ithd *ithread = handler->ih_ithread;
+	int num_handlers = 0;
+
+	mtx_lock(&ithread->it_lock);
+	TAILQ_FOREACH(ih, &ithread->it_handlers, ih_next)
+		num_handlers++;
+	mtx_unlock(&ithread->it_lock);
+
+	/* 
+	 * Only disable the interrupt in hardware if there are no
+	 * other handlers sharing it.
+	 */
 
-	mtx_lock_spin(&icu_lock);
-	isa_intr_disable(irq->r_start);
-	mtx_unlock_spin(&icu_lock);
+	if (num_handlers == 1) {
+		mtx_lock_spin(&icu_lock);
+		isa_intr_disable(irq->r_start);
+		mtx_unlock_spin(&icu_lock);
+		if (platform.isa_teardown_intr) {
+			platform.isa_teardown_intr(dev, child, irq, 
+						   cookie);	
+			return 0;
+		}
 
-	if (platform.isa_teardown_intr) {
-		platform.isa_teardown_intr(dev, child, irq, cookie);	
-		return 0;
 	}
-
 	alpha_teardown_intr(ii->ih);
-
 	return 0;
 }

==== //depot/projects/smpng/sys/cam/scsi/scsi_da.c#36 (text+ko) ====

@@ -25,7 +25,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.136 2003/04/01 15:06:21 phk Exp $
+ * $FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.137 2003/04/12 08:44:54 phk Exp $
  */
 
 #ifdef _KERNEL
@@ -763,37 +763,6 @@
 	return;
 }
 
-/* For 2.2-stable support */
-#ifndef ENOIOCTL
-#define ENOIOCTL -1
-#endif
-
-static int
-daioctl(struct disk *dp, u_long cmd, void *addr, int flag, struct thread *td)
-{
-	struct cam_periph *periph;
-	struct da_softc *softc;
-	int error;
-
-	periph = (struct cam_periph *)dp->d_drv1;
-	if (periph == NULL)
-		return (ENXIO);	
-
-	softc = (struct da_softc *)periph->softc;
-
-	CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("daioctl\n"));
-
-	if ((error = cam_periph_lock(periph, PRIBIO|PCATCH)) != 0) {
-		return (error); /* error code from tsleep */
-	}	
-
-	error = cam_periph_ioctl(periph, cmd, addr, daerror);
-
-	cam_periph_unlock(periph);
-	
-	return (error);
-}
-
 static int
 dadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t length)
 {
@@ -1205,7 +1174,6 @@
 	softc->disk.d_open = daopen;
 	softc->disk.d_close = daclose;
 	softc->disk.d_strategy = dastrategy;
-	softc->disk.d_ioctl = daioctl;
 	softc->disk.d_dump = dadump;
 	softc->disk.d_name = "da";
 	softc->disk.d_drv1 = periph;

==== //depot/projects/smpng/sys/conf/NOTES#41 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/NOTES,v 1.1142 2003/03/29 05:46:34 silby Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1146 2003/04/14 14:04:07 ticso Exp $
 #
 # NOTES -- Lines that can be cut/pasted into kernel and hints configs.
 #
@@ -568,12 +568,11 @@
 options 	PFIL_HOOKS
 options 	TCPDEBUG
 
-# MBUF_FRAG_TEST option allows you to tell the IP stack to
-# fragment all outgoing packets into mbuf fragments of size
-# net.inet.ip.mbuf_frag_size (bytes).  It is used for testing
-# if network drivers can properly handle long chains of mbufs.
-# The sysctl is '0' (no fragmentation) by default.
-options		MBUF_FRAG_TEST
+# The MBUF_STRESS_TEST option enables options which create
+# various random failures / extreme cases related to mbuf
+# functions.  See the mbuf(9) manpage for a list of available
+# test cases.
+options		MBUF_STRESS_TEST
 
 # RANDOM_IP_ID causes the ID field in IP packets to be randomized
 # instead of incremented by 1 with each packet generated.  This
@@ -1541,6 +1540,7 @@
 #       card which is 32-bit.
 # sis:  Support for NICs based on the Silicon Integrated Systems SiS 900,
 #       SiS 7016 and NS DP83815 PCI fast ethernet controller chips.
+# sbsh:	Support for Granch SBNI16 SHDSL modem PCI adapters
 # sk:   Support for the SysKonnect SK-984x series PCI gigabit ethernet NICs.
 #       This includes the SK-9841 and SK-9842 single port cards (single mode
 #       and multimode fiber) and the SK-9843 and SK-9844 dual port cards
@@ -1617,6 +1617,7 @@
 device		rl		# RealTek 8129/8139
 device		pcn		# AMD Am79C97x PCI 10/100 NICs
 device		sf		# Adaptec AIC-6915 (``Starfire'')
+device		sbsh		# Granch SBNI16 SHDSL modem
 device		sis		# Silicon Integrated Systems SiS 900/SiS 7016
 device		ste		# Sundance ST201 (D-Link DFE-550TX)
 device		tl		# Texas Instruments ThunderLAN
@@ -2039,8 +2040,9 @@
 options 	HW_WDOG
 
 #
-# Disable swapping. This option removes all code which actually performs
-# swapping, so it's not possible to turn it back on at run-time.
+# Disable swapping of upages and stack pages.  This option removes all
+# code which actually performs swapping, so it's not possible to turn
+# it back on at run-time.
 #
 # This is sometimes usable for systems which don't have any swap space
 # (see also sysctls "vm.defer_swapspace_pageouts" and
@@ -2072,6 +2074,8 @@
 device		uhci
 # OHCI controller
 device		ohci
+# EHCI controller
+device		ehci
 # General USB code (mandatory for USB)
 device		usb
 #

==== //depot/projects/smpng/sys/conf/files#71 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.778 2003/04/07 10:13:25 mdodd Exp $
+# $FreeBSD: src/sys/conf/files,v 1.781 2003/04/14 14:04:07 ticso Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -636,6 +636,7 @@
 dev/rp/rp_isa.c		optional rp isa
 dev/rp/rp_pci.c		optional rp pci
 dev/sab/sab.c		optional sab ebus
+dev/sbsh/if_sbsh.c      optional sbsh
 dev/scd/scd.c		optional scd isa
 dev/scd/scd_isa.c	optional scd isa
 dev/si/si.c		optional si
@@ -754,6 +755,8 @@
 dev/usb/if_aue.c	optional aue
 dev/usb/if_cue.c	optional cue
 dev/usb/if_kue.c	optional kue
+dev/usb/ehci.c		optional ehci
+dev/usb/ehci_pci.c	optional ehci
 dev/usb/ohci.c		optional ohci
 dev/usb/ohci_pci.c	optional ohci
 dev/usb/ubsa.c		optional ubsa ucom
@@ -897,6 +900,7 @@
 geom/geom_io.c		standard
 geom/geom_kern.c	standard
 geom/geom_mbr.c		optional geom_mbr
+geom/geom_mbr_enc.c		optional geom_mbr
 geom/geom_mirror.c	optional geom_mirror
 geom/geom_pc98.c	optional geom_pc98
 geom/geom_slice.c	standard

==== //depot/projects/smpng/sys/conf/files.i386#38 (text+ko) ====

@@ -1,7 +1,7 @@
 # This file tells config what files go into building a kernel,
 # files marked standard are always included.
 #
-# $FreeBSD: src/sys/conf/files.i386,v 1.441 2003/03/24 19:40:54 mdodd Exp $
+# $FreeBSD: src/sys/conf/files.i386,v 1.442 2003/04/12 08:34:40 phk Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -148,6 +148,7 @@
 dev/syscons/sysmouse.c		optional	sc
 geom/geom_bsd.c			standard
 geom/geom_mbr.c			standard
+geom/geom_mbr_enc.c		standard
 gnu/i386/fpemul/div_small.s	optional	gpl_math_emulate \
 	warning "kernel contains GPL contaminated math emulator"
 gnu/i386/fpemul/errors.c	optional	gpl_math_emulate

==== //depot/projects/smpng/sys/conf/files.ia64#25 (text+ko) ====

@@ -1,7 +1,7 @@
 # This file tells config what files go into building a kernel,
 # files marked standard are always included.
 #
-# $FreeBSD: src/sys/conf/files.ia64,v 1.48 2003/02/28 21:59:13 ru Exp $
+# $FreeBSD: src/sys/conf/files.ia64,v 1.49 2003/04/12 08:34:40 phk Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -95,6 +95,7 @@
 geom/geom_bsd.c			standard
 geom/geom_gpt.c			standard
 geom/geom_mbr.c			standard
+geom/geom_mbr_enc.c		standard
 isa/atkbd_isa.c			optional	atkbd
 isa/atkbdc_isa.c		optional	atkbdc
 isa/fd.c			optional	fdc

==== //depot/projects/smpng/sys/conf/options#50 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.385 2003/03/26 23:40:41 tegge Exp $
+# $FreeBSD: src/sys/conf/options,v 1.387 2003/04/12 09:40:37 des Exp $
 #
 #        On the handling of kernel options
 #
@@ -72,7 +72,7 @@
 					# mapped I/O
 
 # Miscellaneous options.
-ALQ		opt_alq.h
+ALQ
 ADAPTIVE_MUTEXES
 COMPAT_43	opt_compat.h
 COMPAT_FREEBSD4	opt_compat.h
@@ -153,7 +153,7 @@
 # SECURITY POLICY PARAMETERS
 
 # Support for Mandatory Access Control (MAC)
-MAC		opt_mac.h
+MAC
 MAC_BIBA	opt_dontuse.h
 MAC_BSDEXTENDED	opt_dontuse.h
 MAC_DEBUG	opt_mac.h
@@ -349,10 +349,10 @@
 IPV6FIREWALL_VERBOSE_LIMIT	opt_ip6fw.h
 IPV6FIREWALL_DEFAULT_TO_ACCEPT	opt_ip6fw.h
 IPSTEALTH
-IPX			opt_ipx.h
+IPX
 IPXIP			opt_ipx.h
 LIBMCHAIN
-NCP			opt_ncp.h
+NCP
 NETATALK		opt_atalk.h
 PPP_BSDCOMP		opt_ppp.h
 PPP_DEFLATE		opt_ppp.h
@@ -362,7 +362,7 @@
 TCPDEBUG
 TCP_DROP_SYNFIN		opt_tcp_input.h
 XBONEHACK
-MBUF_FRAG_TEST		opt_mbuf_frag_test.h
+MBUF_STRESS_TEST		opt_mbuf_stress_test.h
 
 # Netgraph(4). Use option NETGRAPH to enable the base netgraph code.
 # Each netgraph node type can be either be compiled into the kernel
@@ -417,7 +417,7 @@
 
 # XXX Conflict: # of devices vs network protocol (Native ATM).
 # This makes "atm.h" unusable.
-NATM			opt_natm.h
+NATM
 
 DPT_ALLOW_MEMIO		opt_dpt.h	# Allow PCI devices to use memory
 					# mapped I/O

==== //depot/projects/smpng/sys/conf/options.i386#26 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options.i386,v 1.189 2003/04/04 23:54:46 tegge Exp $
+# $FreeBSD: src/sys/conf/options.i386,v 1.191 2003/04/12 09:40:37 des Exp $
 # Options specific to the i386 platform kernels
 
 MATH_EMULATE		opt_math_emulate.h
@@ -41,7 +41,6 @@
 CLK_CALIBRATION_LOOP		opt_clock.h
 CLK_USE_I8254_CALIBRATION	opt_clock.h
 CLK_USE_TSC_CALIBRATION		opt_clock.h
-SMP_TSC				opt_clock.h
 TIMER_FREQ			opt_clock.h
 
 NO_F00F_HACK			opt_cpu.h
@@ -110,7 +109,7 @@
 VGA_SLOW_IOACCESS	opt_vga.h
 VGA_WIDTH90		opt_vga.h
 
-VESA			opt_vesa.h
+VESA
 VESA_DEBUG		opt_vesa.h
 
 PSM_HOOKRESUME		opt_psm.h

==== //depot/projects/smpng/sys/conf/options.ia64#13 (text+ko) ====

@@ -1,10 +1,10 @@
-# $FreeBSD: src/sys/conf/options.ia64,v 1.16 2002/11/24 19:50:15 marcel Exp $
+# $FreeBSD: src/sys/conf/options.ia64,v 1.17 2003/04/12 09:40:37 des Exp $
 # Options specific to the ia64 platform kernels
 
 ITANIUM			opt_global.h
 ITANIUM2		opt_global.h
 
-IA32			opt_ia32.h
+IA32
 
 PAGE_SIZE_4K		opt_global.h
 PAGE_SIZE_8K		opt_global.h

==== //depot/projects/smpng/sys/conf/options.pc98#27 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options.pc98,v 1.161 2003/04/03 12:39:51 nyan Exp $
+# $FreeBSD: src/sys/conf/options.pc98,v 1.162 2003/04/12 09:40:37 des Exp $
 # Options specific to the pc98 platform kernels
 
 MATH_EMULATE		opt_math_emulate.h
@@ -94,7 +94,7 @@
 SC_TWOBUTTON_MOUSE	opt_syscons.h
 SC_NO_SUSPEND_VTYSWITCH	opt_syscons.h
 
-GDC			opt_gdc.h
+GDC
 
 KBD_DISABLE_KEYMAP_LOAD	opt_kbd.h
 KBD_INSTALL_CDEV	opt_kbd.h

==== //depot/projects/smpng/sys/conf/options.powerpc#7 (text+ko) ====

@@ -1,8 +1,8 @@
-# $FreeBSD: src/sys/conf/options.powerpc,v 1.6 2003/02/05 11:37:58 benno Exp $
+# $FreeBSD: src/sys/conf/options.powerpc,v 1.7 2003/04/12 09:40:37 des Exp $
 # Options specific to the powerpc platform kernels
 
 OEA			opt_global.h
-IPKDB			opt_ipkdb.h
+IPKDB
 
 POWERMAC		opt_platform.h
-PSIM			opt_psim.h
+PSIM

==== //depot/projects/smpng/sys/conf/options.x86_64#5 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options.x86_64,v 1.4 2002/11/18 06:17:07 jmallett Exp $
+# $FreeBSD: src/sys/conf/options.x86_64,v 1.5 2003/04/12 09:40:37 des Exp $
 # Options specific to the AMD x86-64 platform kernels
 
 MAXMEM
@@ -40,7 +40,7 @@
 VGA_SLOW_IOACCESS	opt_vga.h
 VGA_WIDTH90		opt_vga.h
 
-VESA			opt_vesa.h
+VESA
 VESA_DEBUG		opt_vesa.h
 
 ATKBD_DFLT_KEYMAP	opt_atkbd.h

==== //depot/projects/smpng/sys/ddb/db_ps.c#18 (text+ko) ====

@@ -30,7 +30,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/ddb/db_ps.c,v 1.40 2003/02/27 02:05:16 julian Exp $
+ * $FreeBSD: src/sys/ddb/db_ps.c,v 1.41 2003/04/10 17:35:43 julian Exp $
  */
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -178,7 +178,7 @@
 		db_printf("[RUNQ]");
 		break;
 	case TDS_RUNNING:
-		db_printf("[CPU %d]", td->td_kse->ke_oncpu);
+		db_printf("[CPU %d]", td->td_oncpu);
 		break;
 	default:
 		panic("unknown thread state");

==== //depot/projects/smpng/sys/dev/acpica/acpi.c#41 (text+ko) ====

@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *	$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.87 2003/03/06 14:40:15 takawata Exp $
+ *	$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.88 2003/04/11 16:53:56 iwasaki Exp $
  */
 
 #include "opt_acpi.h"
@@ -120,6 +120,7 @@
 
 static void	acpi_system_eventhandler_sleep(void *arg, int state);
 static void	acpi_system_eventhandler_wakeup(void *arg, int state);
+static int	acpi_supported_sleep_state_sysctl(SYSCTL_HANDLER_ARGS);
 static int	acpi_sleep_state_sysctl(SYSCTL_HANDLER_ARGS);
 
 static int	acpi_pm_func(u_long cmd, void *arg, ...);
@@ -398,6 +399,9 @@
 			       SYSCTL_STATIC_CHILDREN(_hw), OID_AUTO,
 			       device_get_name(dev), CTLFLAG_RD, 0, "");
     SYSCTL_ADD_PROC(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree),
+	OID_AUTO, "supported_sleep_state", CTLTYPE_STRING | CTLFLAG_RD,
+	0, 0, acpi_supported_sleep_state_sysctl, "A", "");
+    SYSCTL_ADD_PROC(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree),
 	OID_AUTO, "power_button_state", CTLTYPE_STRING | CTLFLAG_RW,
 	&sc->acpi_power_button_sx, 0, acpi_sleep_state_sysctl, "A", "");
     SYSCTL_ADD_PROC(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree),
@@ -1914,6 +1918,25 @@
 }
 
 static int
+acpi_supported_sleep_state_sysctl(SYSCTL_HANDLER_ARGS)
+{
+    char sleep_state[4];
+    char buf[16];
+    int error;
+    UINT8 state, TypeA, TypeB;
+
+    buf[0] = '\0';
+    for (state = ACPI_STATE_S1; state < ACPI_S_STATES_MAX+1; state++) {
+	if (ACPI_SUCCESS(AcpiGetSleepTypeData(state, &TypeA, &TypeB))) {
+	    sprintf(sleep_state, "S%d ", state);
+	    strcat(buf, sleep_state);
+	}
+    }
+    error = sysctl_handle_string(oidp, buf, sizeof(buf), req);
+    return(error);
+}
+
+static int
 acpi_sleep_state_sysctl(SYSCTL_HANDLER_ARGS)
 {
     char sleep_state[10];

==== //depot/projects/smpng/sys/dev/adlink/adlink.c#2 (text+ko) ====

@@ -26,13 +26,15 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/adlink/adlink.c,v 1.1 2003/04/04 18:53:04 phk Exp $
+ * $FreeBSD: src/sys/dev/adlink/adlink.c,v 1.2 2003/04/08 19:12:48 phk Exp $
  */
 
+#ifdef _KERNEL
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/malloc.h>
 #include <sys/kernel.h>
+#include <sys/kthread.h>
 #include <sys/conf.h>
 #include <sys/bus.h>
 #include <machine/bus.h>
@@ -44,17 +46,54 @@
 #include <vm/vm.h>
 #include <vm/pmap.h>
 
+#endif /* _KERNEL */
+
+#include <sys/ioccom.h>
+
+struct wave {
+	int			index;
+	int			period;
+	int			offset;
+	int			length;
+	int			avg;
+	off_t			mapvir;
+	int			flags;
+
+	int			npages;
+	void			**virtual;
+};
+
+#define ADLINK_SETWAVE		_IOWR('A', 232, struct wave)
+#define ADLINK_GETWAVE		_IOWR('A', 233, struct wave)
+
+#ifdef _KERNEL
+
+#define INTPERPAGE (PAGE_SIZE / sizeof(int))
+#define I16PERPAGE (PAGE_SIZE / sizeof(int16_t))
+
 /*
- * We sample one channel (= 16 bits) at 1 msps giving 2Mbyte/sec,
- * 50 pages will give us about 1/10 second buffering.
+ * Sample rate
+ */
+#define SPS	1250000
+
+/*
+ * We sample one channel (= 16 bits) at 1.25 msps giving 2.5Mbyte/sec,
+ * 100 pages will give us about 1/6 second buffering.
  */
-#define NRING	50
+#define NRING	100
 
-#define IN4(sc, offset) bus_space_read_4(sc->t_io, sc->h_io, offset)
+/*
+ * How many waves are we willing to entertain
+ */
+#define NWAVE	25
 
 struct info {
 	int			nring;
 	off_t			o_ring;
+	
+	int			ngri;
+	int			ppgri;
+	off_t			o_gri;
 };
 
 struct softc {
@@ -64,21 +103,145 @@
 	bus_space_tag_t		t0, t1;
 	bus_space_handle_t	h0, h1;
 	dev_t			dev;
+	off_t			mapvir;
 
+	struct proc		*procp;
+
 	struct info		*info;
 
+	struct wave		*wave[NWAVE];
+
 	int			idx;
 	void			*ring[NRING];
-	vm_paddr_t		phys[NRING];
+	vm_paddr_t		pring[NRING];
 	int			stat[NRING];
+
+	uint64_t		cnt;
+
+	u_char			flags[I16PERPAGE];
 };
 
+static void
+adlink_wave(struct softc *sc, struct wave *wp, int16_t *sp)
+{
+	int f, i, k, m, *ip;
+
+	f = 0;
+	for (i = 0; i < I16PERPAGE; ) {
+		k = (sc->cnt - wp->offset + i) % wp->period;
+		if (k >= wp->length) {
+			i += wp->period - k;
+			sp += wp->period - k;
+			continue;
+		}
+		m = k % INTPERPAGE;
+		ip = (int *)(wp->virtual[k / INTPERPAGE]) + m;
+		while (m < INTPERPAGE && i < I16PERPAGE && k < wp->length) {
+			if (sc->flags[i] >= wp->index)
+				*ip += (*sp * 8 - *ip) >> wp->avg;
+			if (wp->flags & 1)
+				sc->flags[i] = wp->index;
+			sp++;
+			ip++;
+			m++;
+			i++;
+			k++;
+		}
+	}
+}
+
+static void
+adlink_tickle(struct softc *sc)
+{
+
+	wakeup(sc);
+	tsleep(&sc->ring, PUSER | PCATCH, "tickle", 1);
+}
+
 static int
+adlink_new_wave(struct softc *sc, int index, int period, int offset, int length, int avg, int flags)
+{
+	struct wave *wp;
+	int l, i;
+	void **oldvir, **newvir;
+
+	if (index < 0 || index >= NWAVE)
+		return (EINVAL);
+	wp = sc->wave[index];
+	if (wp == NULL) {
+		adlink_tickle(sc);
+		wp = malloc(sizeof *wp, M_DEVBUF, M_WAITOK | M_ZERO);
+	}
+	l = howmany(length, INTPERPAGE);
+	/* Setting a high average here to neuter the realtime bits */
+	wp->avg = 31;
+	if (wp->npages < l) {
+		oldvir = wp->virtual;
+		adlink_tickle(sc);
+		newvir = malloc(sizeof(void *) * l, M_DEVBUF, M_WAITOK | M_ZERO);
+		if (wp->npages > 0) {
+			adlink_tickle(sc);
+			bcopy(oldvir, newvir, wp->npages * sizeof(void *));
+		}
+		for (i = wp->npages; i < l; i++) {
+			adlink_tickle(sc);
+			newvir[i] = malloc(PAGE_SIZE, M_DEVBUF, M_WAITOK);
+		}
+		wp->virtual = newvir;
+		wp->npages = l;
+		wp->mapvir = sc->mapvir;
+		sc->mapvir += l * PAGE_SIZE;
+	} else {
+		oldvir = NULL;
+	}
+	wp->index = index;
+	wp->period = period;
+	wp->offset = offset;
+	wp->length = length;
+	wp->flags = flags;
+	
+	for (i = 0; i < l; i++) {
+		adlink_tickle(sc);
+		bzero(wp->virtual[i], PAGE_SIZE);
+	}
+	wp->avg = avg;
+	sc->wave[index] = wp;
+	printf("Wave[%d] {period %d, offset %d, length %d, avg %d, flags %x}\n",
+	    wp->index, wp->period, wp->offset, wp->length, wp->avg, wp->flags);
+	free(oldvir, M_DEVBUF);
+	return (0);
+}
+
+static void
+adlink_loran(void *arg)
+{
+	struct softc *sc;
+	int idx, i;
+
+	sc = arg;
+	idx = 0;
+	for (;;) {
+		while (sc->stat[idx] == 0)
+			msleep(sc, NULL, PRIBIO, "loran", 1);
+		memset(sc->flags, NWAVE, sizeof sc->flags);
+		for (i = 0; i < NWAVE; i++) {
+			if (sc->wave[i] != NULL)
+				adlink_wave(sc, sc->wave[i], sc->ring[idx]);
+		}
+		sc->cnt += I16PERPAGE;
+		sc->stat[idx] = 0;
+		idx++;
+		idx %= NRING;
+	}
+	kthread_exit(0);
+}
+
+static int
 adlink_open(dev_t dev, int oflags, int devtype, struct thread *td)
 {

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200304141528.h3EFSUYj041716>