Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Oct 2002 13:33:11 -0700 (PDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 20073 for review
Message-ID:  <200210242033.g9OKXBCH027241@repoman.freebsd.org>

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

Change 20073 by jhb@jhb_laptop on 2002/10/24 13:32:26

	IFC @20072.

Affected files ...

.. //depot/projects/smpng/sys/boot/efi/libefi/bootinfo.c#5 integrate
.. //depot/projects/smpng/sys/boot/efi/libefi/efiboot.h#5 integrate
.. //depot/projects/smpng/sys/boot/efi/libefi/elf_freebsd.c#8 integrate
.. //depot/projects/smpng/sys/conf/NOTES#27 integrate
.. //depot/projects/smpng/sys/conf/files#53 integrate
.. //depot/projects/smpng/sys/conf/files.i386#33 integrate
.. //depot/projects/smpng/sys/conf/files.ia64#21 integrate
.. //depot/projects/smpng/sys/conf/files.pc98#32 integrate
.. //depot/projects/smpng/sys/conf/majors#16 integrate
.. //depot/projects/smpng/sys/conf/options#39 integrate
.. //depot/projects/smpng/sys/conf/options.ia64#11 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_ec.c#15 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-all.c#24 integrate
.. //depot/projects/smpng/sys/dev/ata/atapi-all.h#10 integrate
.. //depot/projects/smpng/sys/dev/ata/atapi-cam.c#4 integrate
.. //depot/projects/smpng/sys/dev/firewire/sbp.c#3 integrate
.. //depot/projects/smpng/sys/dev/ic/cd180.h#1 branch
.. //depot/projects/smpng/sys/dev/rc/rc.c#1 branch
.. //depot/projects/smpng/sys/dev/rc/rcreg.h#1 branch
.. //depot/projects/smpng/sys/geom/geom_subr.c#13 integrate
.. //depot/projects/smpng/sys/i386/conf/GENERIC.hints#3 integrate
.. //depot/projects/smpng/sys/i386/conf/NOTES#45 integrate
.. //depot/projects/smpng/sys/i386/include/speaker.h#2 integrate
.. //depot/projects/smpng/sys/i386/isa/ic/cd180.h#2 delete
.. //depot/projects/smpng/sys/i386/isa/pmtimer.c#3 integrate
.. //depot/projects/smpng/sys/i386/isa/rc.c#12 delete
.. //depot/projects/smpng/sys/i386/isa/rcreg.h#2 delete
.. //depot/projects/smpng/sys/ia64/conf/GENERIC#23 integrate
.. //depot/projects/smpng/sys/ia64/ia64/machdep.c#46 integrate
.. //depot/projects/smpng/sys/kern/imgact_elf.c#22 integrate
.. //depot/projects/smpng/sys/kern/kern_mac.c#6 integrate
.. //depot/projects/smpng/sys/kern/kern_mutex.c#51 integrate
.. //depot/projects/smpng/sys/kern/kern_proc.c#39 integrate
.. //depot/projects/smpng/sys/kern/kern_thread.c#9 integrate
.. //depot/projects/smpng/sys/kern/subr_mchain.c#8 integrate
.. //depot/projects/smpng/sys/kern/vfs_default.c#11 integrate
.. //depot/projects/smpng/sys/kern/vfs_mount.c#6 integrate
.. //depot/projects/smpng/sys/kern/vfs_subr.c#35 integrate
.. //depot/projects/smpng/sys/modules/Makefile#36 integrate
.. //depot/projects/smpng/sys/modules/mac_biba/Makefile#2 integrate
.. //depot/projects/smpng/sys/modules/mac_ifoff/Makefile#2 integrate
.. //depot/projects/smpng/sys/modules/mac_mls/Makefile#2 integrate
.. //depot/projects/smpng/sys/modules/mac_none/Makefile#2 integrate
.. //depot/projects/smpng/sys/modules/mac_partition/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/mac_test/Makefile#2 integrate
.. //depot/projects/smpng/sys/modules/rc/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/vinum/Makefile#3 integrate
.. //depot/projects/smpng/sys/net/if_tun.c#17 integrate
.. //depot/projects/smpng/sys/netinet/in.c#14 integrate
.. //depot/projects/smpng/sys/netinet/ip_divert.c#20 integrate
.. //depot/projects/smpng/sys/netinet/ip_fw2.c#6 integrate
.. //depot/projects/smpng/sys/netinet/tcp_usrreq.c#17 integrate
.. //depot/projects/smpng/sys/pc98/conf/GENERIC.hints#4 integrate
.. //depot/projects/smpng/sys/pc98/i386/machdep.c#43 integrate
.. //depot/projects/smpng/sys/pc98/pc98/clock.c#12 integrate
.. //depot/projects/smpng/sys/pc98/pc98/syscons_pc98.c#4 integrate
.. //depot/projects/smpng/sys/security/mac_biba/mac_biba.c#6 integrate
.. //depot/projects/smpng/sys/security/mac_mls/mac_mls.c#6 integrate
.. //depot/projects/smpng/sys/security/mac_partition/mac_partition.c#1 branch
.. //depot/projects/smpng/sys/security/mac_partition/mac_partition.h#1 branch
.. //depot/projects/smpng/sys/sparc64/conf/GENERIC#22 integrate
.. //depot/projects/smpng/sys/sparc64/include/frame.h#11 integrate
.. //depot/projects/smpng/sys/sparc64/include/reg.h#12 integrate
.. //depot/projects/smpng/sys/sparc64/include/ucontext.h#6 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/exception.S#4 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/genassym.c#24 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/intr_machdep.c#17 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#36 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/swtch.S#2 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/tick.c#7 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/trap.c#40 integrate
.. //depot/projects/smpng/sys/sys/conf.h#16 integrate
.. //depot/projects/smpng/sys/sys/mac.h#5 integrate
.. //depot/projects/smpng/sys/sys/mac_policy.h#5 integrate
.. //depot/projects/smpng/sys/sys/proc.h#63 integrate
.. //depot/projects/smpng/sys/sys/signalvar.h#11 integrate
.. //depot/projects/smpng/sys/sys/unistd.h#8 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#19 integrate
.. //depot/projects/smpng/sys/vm/uma_core.c#20 integrate
.. //depot/projects/smpng/sys/vm/vm_mmap.c#23 integrate
.. //depot/projects/smpng/sys/vm/vm_swap.c#16 integrate

Differences ...

==== //depot/projects/smpng/sys/boot/efi/libefi/bootinfo.c#5 (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/boot/efi/libefi/bootinfo.c,v 1.6 2002/06/20 06:29:42 peter Exp $
+ * $FreeBSD: src/sys/boot/efi/libefi/bootinfo.c,v 1.7 2002/10/24 07:53:12 marcel Exp $
  */
 
 #include <stand.h>
@@ -244,7 +244,8 @@
  * - Module metadata are formatted and placed in kernel space.
  */
 int
-bi_load(struct bootinfo *bi, struct preloaded_file *fp, UINTN *mapkey)
+bi_load(struct bootinfo *bi, struct preloaded_file *fp, UINTN *mapkey,
+    UINTN pages)
 {
     char			*rootdevname;
     struct efi_devdesc		*rootdev;
@@ -254,7 +255,7 @@
     vm_offset_t			ssym, esym;
     struct file_metadata	*md;
     EFI_STATUS			status;
-    UINTN			key;
+    UINTN			bisz, key;
 
     /*
      * Version 1 bootinfo.
@@ -273,9 +274,9 @@
     bi->bi_systab = (u_int64_t) ST;
 
     /* 
-     * Allow the environment variable 'rootdev' to override the supplied device 
-     * This should perhaps go to MI code and/or have $rootdev tested/set by
-     * MI code before launching the kernel.
+     * Allow the environment variable 'rootdev' to override the supplied
+     * device. This should perhaps go to MI code and/or have $rootdev
+     * tested/set by MI code before launching the kernel.
      */
     rootdevname = getenv("rootdev");
     efi_getdev((void **)(&rootdev), rootdevname, NULL);
@@ -331,14 +332,16 @@
     /* all done copying stuff in, save end of loaded object space */
     bi->bi_kernend = addr;
 
-    /* read memory map and stash it after bootinfo */
-    bi->bi_memmap = (u_int64_t)(bi + 1);
-    bi->bi_memmap_size = 8192 - sizeof(struct bootinfo);
+    /*
+     * Read the memory map and stash it after bootinfo. Align the memory map
+     * on a 16-byte boundary (the bootinfo block is page aligned).
+     */
+    bisz = (sizeof(struct bootinfo) + 0x0f) & ~0x0f;
+    bi->bi_memmap = ((u_int64_t)bi) + bisz;
+    bi->bi_memmap_size = EFI_PAGE_SIZE * pages - bisz;
     status = BS->GetMemoryMap(&bi->bi_memmap_size,
-			      (EFI_MEMORY_DESCRIPTOR *)bi->bi_memmap,
-			      &key,
-			      &bi->bi_memdesc_size,
-			      &bi->bi_memdesc_version);
+		(EFI_MEMORY_DESCRIPTOR *)bi->bi_memmap, &key,
+		&bi->bi_memdesc_size, &bi->bi_memdesc_version);
     if (EFI_ERROR(status)) {
 	printf("bi_load: Can't read memory map\n");
 	return EINVAL;

==== //depot/projects/smpng/sys/boot/efi/libefi/efiboot.h#5 (text+ko) ====

@@ -28,7 +28,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/boot/efi/libefi/efiboot.h,v 1.6 2001/11/19 07:09:47 peter Exp $
+ * $FreeBSD: src/sys/boot/efi/libefi/efiboot.h,v 1.7 2002/10/24 07:53:12 marcel Exp $
  */
 
 /*
@@ -88,4 +88,4 @@
 struct bootinfo;
 struct preloaded_file;
 extern int		bi_load(struct bootinfo *, struct preloaded_file *,
-				UINTN *mapkey);
+				UINTN *mapkey, UINTN pages);

==== //depot/projects/smpng/sys/boot/efi/libefi/elf_freebsd.c#8 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/boot/efi/libefi/elf_freebsd.c,v 1.8 2002/05/19 04:42:18 marcel Exp $ */
+/* $FreeBSD: src/sys/boot/efi/libefi/elf_freebsd.c,v 1.9 2002/10/24 07:53:12 marcel Exp $ */
 /* $NetBSD: loadfile.c,v 1.10 1998/06/25 06:45:46 ross Exp $ */
 
 /*-
@@ -143,15 +143,31 @@
 	struct ia64_pte		pte;
 	struct bootinfo		*bi;
 	u_int64_t		psr;
-	UINTN			mapkey;
+	UINTN			mapkey, pages, size;
+	UINTN			descsz;
+	UINT32			descver;
 	EFI_STATUS		status;
 
 	if ((md = file_findmetadata(fp, MODINFOMD_ELFHDR)) == NULL)
 		return(EFTYPE);			/* XXX actually EFUCKUP */
 	hdr = (Elf_Ehdr *)&(md->md_data);
 
-	status = BS->AllocatePages(AllocateAnyPages, EfiLoaderData,
-	    EFI_SIZE_TO_PAGES(sizeof(struct bootinfo)), (void*)&bi);
+	/*
+	 * Allocate enough pages to hold the bootinfo block and the memory
+	 * map EFI will return to us. The memory map has an unknown size,
+	 * so we have to determine that first. Note that the AllocatePages
+	 * call can itself modify the memory map, so we have to take that
+	 * into account as well. The changes to the memory map are caused
+	 * by splitting a range of free memory into two (AFAICT), so that
+	 * one is marked as being loader data.
+	 */
+	size = 0;
+	descsz = sizeof(EFI_MEMORY_DESCRIPTOR);
+	BS->GetMemoryMap(&size, NULL, &mapkey, &descsz, &descver);
+	size += descsz + ((sizeof(struct bootinfo) + 0x0f) & ~0x0f);
+	pages = EFI_SIZE_TO_PAGES(size);
+	status = BS->AllocatePages(AllocateAnyPages, EfiLoaderData, pages,
+	    (void*)&bi);
 	if (EFI_ERROR(status)) {
 		printf("unable to create bootinfo block (status=0x%lx)\n",
 		    (long)status);
@@ -159,7 +175,7 @@
 	}
 
 	bzero(bi, sizeof(struct bootinfo));
-	bi_load(bi, fp, &mapkey);
+	bi_load(bi, fp, &mapkey, pages);
 
 	printf("Entering %s at 0x%lx...\n", fp->f_name, hdr->e_entry);
 

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

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/NOTES,v 1.1102 2002/10/20 08:17:34 scottl Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1103 2002/10/24 17:21:39 rwatson Exp $
 #
 # NOTES -- Lines that can be cut/pasted into kernel and hints configs.
 #
@@ -760,8 +760,15 @@
 
 # Support for Mandatory Access Control (MAC):
 options 	MAC
+options 	MAC_BIBA
+options 	MAC_BSDEXTENDED
 options 	MAC_DEBUG
-options 	MAC_NONE		# Statically link mac_none policy
+options 	MAC_IFOFF
+options 	MAC_MLS
+options 	MAC_NONE
+options 	MAC_PARTITION
+options 	MAC_SEEOTHERUIDS
+options 	MAC_TEST
 
 
 #####################################################################

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

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.725 2002/10/21 05:09:04 brooks Exp $
+# $FreeBSD: src/sys/conf/files,v 1.728 2002/10/24 19:05:03 jhb Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -65,123 +65,123 @@
 coda/coda_vfsops.c	optional vcoda
 coda/coda_vnops.c	optional vcoda
 compat/linprocfs/linprocfs.c	 optional linprocfs
-contrib/dev/acpica/dbcmds.c	 optional acpica acpi_debug nowerror
-contrib/dev/acpica/dbdisply.c	 optional acpica acpi_debug nowerror
-contrib/dev/acpica/dbexec.c	 optional acpica acpi_debug nowerror
-contrib/dev/acpica/dbfileio.c	 optional acpica acpi_debug nowerror
-contrib/dev/acpica/dbhistry.c	 optional acpica acpi_debug nowerror
-contrib/dev/acpica/dbinput.c	 optional acpica acpi_debug nowerror
-contrib/dev/acpica/dbstats.c	 optional acpica acpi_debug nowerror
-contrib/dev/acpica/dbutils.c	 optional acpica acpi_debug nowerror
-contrib/dev/acpica/dbxface.c	 optional acpica acpi_debug nowerror
-contrib/dev/acpica/dmbuffer.c	 optional acpica acpi_debug nowerror
-contrib/dev/acpica/dmnames.c	 optional acpica acpi_debug nowerror
-contrib/dev/acpica/dmopcode.c	 optional acpica acpi_debug nowerror
-contrib/dev/acpica/dmresrc.c	 optional acpica acpi_debug nowerror
-contrib/dev/acpica/dmresrcl.c	 optional acpica acpi_debug nowerror
-contrib/dev/acpica/dmresrcs.c	 optional acpica acpi_debug nowerror
-contrib/dev/acpica/dmutils.c	 optional acpica acpi_debug nowerror
-contrib/dev/acpica/dmwalk.c	 optional acpica acpi_debug nowerror
-contrib/dev/acpica/dsfield.c	 optional acpica nowerror
-contrib/dev/acpica/dsmethod.c	 optional acpica
-contrib/dev/acpica/dsmthdat.c	 optional acpica
-contrib/dev/acpica/dsobject.c	 optional acpica
-contrib/dev/acpica/dsopcode.c	 optional acpica nowerror
-contrib/dev/acpica/dsutils.c	 optional acpica
-contrib/dev/acpica/dswexec.c	 optional acpica
-contrib/dev/acpica/dswload.c	 optional acpica
-contrib/dev/acpica/dswscope.c	 optional acpica
-contrib/dev/acpica/dswstate.c	 optional acpica
-contrib/dev/acpica/evevent.c	 optional acpica
-contrib/dev/acpica/evmisc.c	 optional acpica
-contrib/dev/acpica/evregion.c	 optional acpica
-contrib/dev/acpica/evrgnini.c	 optional acpica
-contrib/dev/acpica/evsci.c	 optional acpica
-contrib/dev/acpica/evxface.c	 optional acpica
-contrib/dev/acpica/evxfevnt.c	 optional acpica
-contrib/dev/acpica/evxfregn.c	 optional acpica
-contrib/dev/acpica/exconfig.c	 optional acpica
-contrib/dev/acpica/exconvrt.c	 optional acpica nowerror
-contrib/dev/acpica/excreate.c	 optional acpica
-contrib/dev/acpica/exdump.c	 optional acpica nowerror
-contrib/dev/acpica/exfield.c	 optional acpica
-contrib/dev/acpica/exfldio.c	 optional acpica
-contrib/dev/acpica/exmisc.c	 optional acpica
-contrib/dev/acpica/exmutex.c	 optional acpica
-contrib/dev/acpica/exnames.c	 optional acpica
-contrib/dev/acpica/exoparg1.c	 optional acpica
-contrib/dev/acpica/exoparg2.c	 optional acpica
-contrib/dev/acpica/exoparg3.c	 optional acpica
-contrib/dev/acpica/exoparg6.c	 optional acpica nowerror
-contrib/dev/acpica/exprep.c	 optional acpica
-contrib/dev/acpica/exregion.c	 optional acpica
-contrib/dev/acpica/exresnte.c	 optional acpica
-contrib/dev/acpica/exresolv.c	 optional acpica
-contrib/dev/acpica/exresop.c	 optional acpica nowerror
-contrib/dev/acpica/exstore.c	 optional acpica
-contrib/dev/acpica/exstoren.c	 optional acpica
-contrib/dev/acpica/exstorob.c	 optional acpica
-contrib/dev/acpica/exsystem.c	 optional acpica
-contrib/dev/acpica/exutils.c	 optional acpica
-contrib/dev/acpica/hwacpi.c	 optional acpica
-contrib/dev/acpica/hwgpe.c	 optional acpica nowerror
-contrib/dev/acpica/hwregs.c	 optional acpica nowerror
-contrib/dev/acpica/hwsleep.c	 optional acpica
-contrib/dev/acpica/hwtimer.c	 optional acpica
-contrib/dev/acpica/nsaccess.c	 optional acpica
-contrib/dev/acpica/nsalloc.c	 optional acpica
-contrib/dev/acpica/nsdump.c	 optional acpica nowerror
-contrib/dev/acpica/nseval.c	 optional acpica
-contrib/dev/acpica/nsinit.c	 optional acpica
-contrib/dev/acpica/nsload.c	 optional acpica
-contrib/dev/acpica/nsnames.c	 optional acpica nowerror
-contrib/dev/acpica/nsobject.c	 optional acpica
-contrib/dev/acpica/nssearch.c	 optional acpica
-contrib/dev/acpica/nsutils.c	 optional acpica
-contrib/dev/acpica/nswalk.c	 optional acpica
-contrib/dev/acpica/nsxfeval.c	 optional acpica nowerror
-contrib/dev/acpica/nsxfname.c	 optional acpica nowerror
-contrib/dev/acpica/nsxfobj.c	 optional acpica nowerror
-contrib/dev/acpica/psargs.c	 optional acpica
-contrib/dev/acpica/psfind.c	 optional acpica
-contrib/dev/acpica/psopcode.c	 optional acpica
-contrib/dev/acpica/psparse.c	 optional acpica
-contrib/dev/acpica/psscope.c	 optional acpica
-contrib/dev/acpica/pstree.c	 optional acpica
-contrib/dev/acpica/psutils.c	 optional acpica
-contrib/dev/acpica/pswalk.c	 optional acpica
-contrib/dev/acpica/psxface.c	 optional acpica
-contrib/dev/acpica/rsaddr.c	 optional acpica
-contrib/dev/acpica/rscalc.c	 optional acpica
-contrib/dev/acpica/rscreate.c	 optional acpica
-contrib/dev/acpica/rsdump.c	 optional acpica nowerror
-contrib/dev/acpica/rsio.c	 optional acpica
-contrib/dev/acpica/rsirq.c	 optional acpica
-contrib/dev/acpica/rslist.c	 optional acpica
-contrib/dev/acpica/rsmemory.c	 optional acpica
-contrib/dev/acpica/rsmisc.c	 optional acpica
-contrib/dev/acpica/rsutils.c	 optional acpica
-contrib/dev/acpica/rsxface.c	 optional acpica
-contrib/dev/acpica/tbconvrt.c	 optional acpica
-contrib/dev/acpica/tbget.c	 optional acpica
-contrib/dev/acpica/tbgetall.c	 optional acpica
-contrib/dev/acpica/tbinstal.c	 optional acpica
-contrib/dev/acpica/tbrsdt.c	 optional acpica
-contrib/dev/acpica/tbutils.c	 optional acpica
-contrib/dev/acpica/tbxface.c	 optional acpica
-contrib/dev/acpica/tbxfroot.c	 optional acpica
-contrib/dev/acpica/utalloc.c	 optional acpica
-contrib/dev/acpica/utclib.c	 optional acpica nowerror
-contrib/dev/acpica/utcopy.c	 optional acpica nowerror
-contrib/dev/acpica/utdebug.c	 optional acpica nowerror
-contrib/dev/acpica/utdelete.c	 optional acpica
-contrib/dev/acpica/uteval.c	 optional acpica
-contrib/dev/acpica/utglobal.c	 optional acpica nowerror
-contrib/dev/acpica/utinit.c	 optional acpica
-contrib/dev/acpica/utmath.c	 optional acpica
-contrib/dev/acpica/utmisc.c	 optional acpica nowerror
-contrib/dev/acpica/utobject.c	 optional acpica nowerror
-contrib/dev/acpica/utxface.c	 optional acpica
+contrib/dev/acpica/dbcmds.c	 optional acpi acpi_debug nowerror
+contrib/dev/acpica/dbdisply.c	 optional acpi acpi_debug nowerror
+contrib/dev/acpica/dbexec.c	 optional acpi acpi_debug nowerror
+contrib/dev/acpica/dbfileio.c	 optional acpi acpi_debug nowerror
+contrib/dev/acpica/dbhistry.c	 optional acpi acpi_debug nowerror
+contrib/dev/acpica/dbinput.c	 optional acpi acpi_debug nowerror
+contrib/dev/acpica/dbstats.c	 optional acpi acpi_debug nowerror
+contrib/dev/acpica/dbutils.c	 optional acpi acpi_debug nowerror
+contrib/dev/acpica/dbxface.c	 optional acpi acpi_debug nowerror
+contrib/dev/acpica/dmbuffer.c	 optional acpi acpi_debug nowerror
+contrib/dev/acpica/dmnames.c	 optional acpi acpi_debug nowerror
+contrib/dev/acpica/dmopcode.c	 optional acpi acpi_debug nowerror
+contrib/dev/acpica/dmresrc.c	 optional acpi acpi_debug nowerror
+contrib/dev/acpica/dmresrcl.c	 optional acpi acpi_debug nowerror
+contrib/dev/acpica/dmresrcs.c	 optional acpi acpi_debug nowerror
+contrib/dev/acpica/dmutils.c	 optional acpi acpi_debug nowerror
+contrib/dev/acpica/dmwalk.c	 optional acpi acpi_debug nowerror
+contrib/dev/acpica/dsfield.c	 optional acpi nowerror
+contrib/dev/acpica/dsmethod.c	 optional acpi
+contrib/dev/acpica/dsmthdat.c	 optional acpi
+contrib/dev/acpica/dsobject.c	 optional acpi
+contrib/dev/acpica/dsopcode.c	 optional acpi nowerror
+contrib/dev/acpica/dsutils.c	 optional acpi
+contrib/dev/acpica/dswexec.c	 optional acpi
+contrib/dev/acpica/dswload.c	 optional acpi
+contrib/dev/acpica/dswscope.c	 optional acpi
+contrib/dev/acpica/dswstate.c	 optional acpi
+contrib/dev/acpica/evevent.c	 optional acpi
+contrib/dev/acpica/evmisc.c	 optional acpi
+contrib/dev/acpica/evregion.c	 optional acpi
+contrib/dev/acpica/evrgnini.c	 optional acpi
+contrib/dev/acpica/evsci.c	 optional acpi
+contrib/dev/acpica/evxface.c	 optional acpi
+contrib/dev/acpica/evxfevnt.c	 optional acpi
+contrib/dev/acpica/evxfregn.c	 optional acpi
+contrib/dev/acpica/exconfig.c	 optional acpi
+contrib/dev/acpica/exconvrt.c	 optional acpi nowerror
+contrib/dev/acpica/excreate.c	 optional acpi
+contrib/dev/acpica/exdump.c	 optional acpi nowerror
+contrib/dev/acpica/exfield.c	 optional acpi
+contrib/dev/acpica/exfldio.c	 optional acpi
+contrib/dev/acpica/exmisc.c	 optional acpi
+contrib/dev/acpica/exmutex.c	 optional acpi
+contrib/dev/acpica/exnames.c	 optional acpi
+contrib/dev/acpica/exoparg1.c	 optional acpi
+contrib/dev/acpica/exoparg2.c	 optional acpi
+contrib/dev/acpica/exoparg3.c	 optional acpi
+contrib/dev/acpica/exoparg6.c	 optional acpi nowerror
+contrib/dev/acpica/exprep.c	 optional acpi
+contrib/dev/acpica/exregion.c	 optional acpi
+contrib/dev/acpica/exresnte.c	 optional acpi
+contrib/dev/acpica/exresolv.c	 optional acpi
+contrib/dev/acpica/exresop.c	 optional acpi nowerror
+contrib/dev/acpica/exstore.c	 optional acpi
+contrib/dev/acpica/exstoren.c	 optional acpi
+contrib/dev/acpica/exstorob.c	 optional acpi
+contrib/dev/acpica/exsystem.c	 optional acpi
+contrib/dev/acpica/exutils.c	 optional acpi
+contrib/dev/acpica/hwacpi.c	 optional acpi
+contrib/dev/acpica/hwgpe.c	 optional acpi nowerror
+contrib/dev/acpica/hwregs.c	 optional acpi nowerror
+contrib/dev/acpica/hwsleep.c	 optional acpi
+contrib/dev/acpica/hwtimer.c	 optional acpi
+contrib/dev/acpica/nsaccess.c	 optional acpi
+contrib/dev/acpica/nsalloc.c	 optional acpi
+contrib/dev/acpica/nsdump.c	 optional acpi nowerror
+contrib/dev/acpica/nseval.c	 optional acpi
+contrib/dev/acpica/nsinit.c	 optional acpi
+contrib/dev/acpica/nsload.c	 optional acpi
+contrib/dev/acpica/nsnames.c	 optional acpi nowerror
+contrib/dev/acpica/nsobject.c	 optional acpi
+contrib/dev/acpica/nssearch.c	 optional acpi
+contrib/dev/acpica/nsutils.c	 optional acpi
+contrib/dev/acpica/nswalk.c	 optional acpi
+contrib/dev/acpica/nsxfeval.c	 optional acpi nowerror
+contrib/dev/acpica/nsxfname.c	 optional acpi nowerror
+contrib/dev/acpica/nsxfobj.c	 optional acpi nowerror
+contrib/dev/acpica/psargs.c	 optional acpi
+contrib/dev/acpica/psfind.c	 optional acpi
+contrib/dev/acpica/psopcode.c	 optional acpi
+contrib/dev/acpica/psparse.c	 optional acpi
+contrib/dev/acpica/psscope.c	 optional acpi
+contrib/dev/acpica/pstree.c	 optional acpi
+contrib/dev/acpica/psutils.c	 optional acpi
+contrib/dev/acpica/pswalk.c	 optional acpi
+contrib/dev/acpica/psxface.c	 optional acpi
+contrib/dev/acpica/rsaddr.c	 optional acpi
+contrib/dev/acpica/rscalc.c	 optional acpi
+contrib/dev/acpica/rscreate.c	 optional acpi
+contrib/dev/acpica/rsdump.c	 optional acpi nowerror
+contrib/dev/acpica/rsio.c	 optional acpi
+contrib/dev/acpica/rsirq.c	 optional acpi
+contrib/dev/acpica/rslist.c	 optional acpi
+contrib/dev/acpica/rsmemory.c	 optional acpi
+contrib/dev/acpica/rsmisc.c	 optional acpi
+contrib/dev/acpica/rsutils.c	 optional acpi
+contrib/dev/acpica/rsxface.c	 optional acpi
+contrib/dev/acpica/tbconvrt.c	 optional acpi
+contrib/dev/acpica/tbget.c	 optional acpi
+contrib/dev/acpica/tbgetall.c	 optional acpi
+contrib/dev/acpica/tbinstal.c	 optional acpi
+contrib/dev/acpica/tbrsdt.c	 optional acpi
+contrib/dev/acpica/tbutils.c	 optional acpi
+contrib/dev/acpica/tbxface.c	 optional acpi
+contrib/dev/acpica/tbxfroot.c	 optional acpi
+contrib/dev/acpica/utalloc.c	 optional acpi
+contrib/dev/acpica/utclib.c	 optional acpi nowerror
+contrib/dev/acpica/utcopy.c	 optional acpi nowerror
+contrib/dev/acpica/utdebug.c	 optional acpi nowerror
+contrib/dev/acpica/utdelete.c	 optional acpi
+contrib/dev/acpica/uteval.c	 optional acpi
+contrib/dev/acpica/utglobal.c	 optional acpi nowerror
+contrib/dev/acpica/utinit.c	 optional acpi
+contrib/dev/acpica/utmath.c	 optional acpi
+contrib/dev/acpica/utmisc.c	 optional acpi nowerror
+contrib/dev/acpica/utobject.c	 optional acpi nowerror
+contrib/dev/acpica/utxface.c	 optional acpi
 contrib/ipfilter/netinet/fil.c		optional ipfilter inet
 contrib/ipfilter/netinet/ip_auth.c	optional ipfilter inet
 contrib/ipfilter/netinet/ip_fil.c	optional ipfilter inet
@@ -224,32 +224,32 @@
 dev/aac/aac_pci.c	optional aac pci
 dev/aac/aac_cam.c	optional aacp aac
 dev/aac/aac_linux.c		optional aac compat_linux
-dev/acpica/acpi.c		optional acpica
-dev/acpica/acpica_support.c	optional acpica
-dev/acpica/acpi_acad.c		optional acpica nowerror
-dev/acpica/acpi_battery.c	optional acpica
-dev/acpica/acpi_button.c	optional acpica
-dev/acpica/acpi_cmbat.c		optional acpica nowerror
-dev/acpica/acpi_cpu.c		optional acpica
-dev/acpica/acpi_ec.c		optional acpica
-dev/acpica/acpi_lid.c		optional acpica
-dev/acpica/acpi_pci.c		optional acpica pci
-dev/acpica/acpi_pci_link.c	optional acpica pci
-dev/acpica/acpi_pcib.c		optional acpica pci
-dev/acpica/acpi_pcib_acpi.c	optional acpica pci
-dev/acpica/acpi_pcib_pci.c	optional acpica pci
-dev/acpica/acpi_powerres.c	optional acpica nowerror
-dev/acpica/acpi_resource.c	optional acpica
-dev/acpica/acpi_thermal.c	optional acpica
-dev/acpica/acpi_timer.c		optional acpica
-dev/acpica/Osd/OsdDebug.c	optional acpica
-dev/acpica/Osd/OsdHardware.c	optional acpica
-dev/acpica/Osd/OsdInterrupt.c	optional acpica
-dev/acpica/Osd/OsdMemory.c	optional acpica
-dev/acpica/Osd/OsdSchedule.c	optional acpica
-dev/acpica/Osd/OsdStream.c	optional acpica
-dev/acpica/Osd/OsdSynch.c	optional acpica
-dev/acpica/Osd/OsdTable.c	optional acpica
+dev/acpica/acpi.c		optional acpi
+dev/acpica/acpica_support.c	optional acpi
+dev/acpica/acpi_acad.c		optional acpi nowerror
+dev/acpica/acpi_battery.c	optional acpi
+dev/acpica/acpi_button.c	optional acpi
+dev/acpica/acpi_cmbat.c		optional acpi nowerror
+dev/acpica/acpi_cpu.c		optional acpi
+dev/acpica/acpi_ec.c		optional acpi
+dev/acpica/acpi_lid.c		optional acpi
+dev/acpica/acpi_pci.c		optional acpi pci
+dev/acpica/acpi_pci_link.c	optional acpi pci
+dev/acpica/acpi_pcib.c		optional acpi pci
+dev/acpica/acpi_pcib_acpi.c	optional acpi pci
+dev/acpica/acpi_pcib_pci.c	optional acpi pci
+dev/acpica/acpi_powerres.c	optional acpi nowerror
+dev/acpica/acpi_resource.c	optional acpi
+dev/acpica/acpi_thermal.c	optional acpi
+dev/acpica/acpi_timer.c		optional acpi
+dev/acpica/Osd/OsdDebug.c	optional acpi
+dev/acpica/Osd/OsdHardware.c	optional acpi
+dev/acpica/Osd/OsdInterrupt.c	optional acpi
+dev/acpica/Osd/OsdMemory.c	optional acpi
+dev/acpica/Osd/OsdSchedule.c	optional acpi
+dev/acpica/Osd/OsdStream.c	optional acpi
+dev/acpica/Osd/OsdSynch.c	optional acpi
+dev/acpica/Osd/OsdTable.c	optional acpi
 dev/advansys/adv_eisa.c	optional adv eisa
 dev/advansys/adv_pci.c	optional adv pci
 dev/advansys/advansys.c	optional adv
@@ -616,6 +616,7 @@
 crypto/sha2/sha2.c	optional random
 dev/ray/if_ray.c	optional ray card
 dev/ray/if_ray.c	optional ray pccard
+dev/rc/rc.c		optional rc
 dev/rp/rp.c		optional rp
 dev/rp/rp_isa.c		optional rp isa
 dev/rp/rp_pci.c		optional rp pci
@@ -1493,7 +1494,14 @@
 posix4/p1003_1b.c	standard
 posix4/posix4_mib.c	standard
 kern/uipc_sem.c		optional p1003_1b_semaphores
+security/mac_biba/mac_biba.c	optional mac_biba
+security/mac_bsdextended/mac_bsdextended.c	optional mac_bsdextended
+security/mac_ifoff/mac_ifoff.c	optional mac_ifoff
+security/mac_mls/mac_mls.c	optional mac_mls
 security/mac_none/mac_none.c	optional mac_none
+security/mac_partition/mac_partition.c	optional mac_partition
+security/mac_seeotheruids/mac_seeotheruids.c	optional mac_seeotheruids
+security/mac_test/mac_test.c	optional mac_test
 ufs/ffs/ffs_alloc.c	optional ffs
 ufs/ffs/ffs_balloc.c	optional ffs
 ufs/ffs/ffs_inode.c	optional ffs

==== //depot/projects/smpng/sys/conf/files.i386#33 (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.423 2002/10/05 16:35:26 phk Exp $
+# $FreeBSD: src/sys/conf/files.i386,v 1.425 2002/10/24 19:05:03 jhb Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -180,10 +180,10 @@
 gnu/i386/fpemul/reg_u_sub.s	optional	gpl_math_emulate
 gnu/i386/fpemul/wm_shrx.s	optional	gpl_math_emulate
 gnu/i386/fpemul/wm_sqrt.s	optional	gpl_math_emulate
-i386/acpica/OsdEnvironment.c	optional acpica
-i386/acpica/acpi_machdep.c	optional	acpica
-i386/acpica/acpi_wakeup.c	optional	acpica
-acpi_wakecode.h			optional	acpica			\
+i386/acpica/OsdEnvironment.c	optional	acpi
+i386/acpica/acpi_machdep.c	optional	acpi
+i386/acpica/acpi_wakeup.c	optional	acpi
+acpi_wakecode.h			optional	acpi			\
 	dependency 	"$S/i386/acpica/acpi_wakecode.S"		\
 	compile-with	"${MAKE} -f $S/i386/acpica/Makefile MAKESRCPATH=$S/i386/acpica"	\
 	no-obj no-implicit-rule before-depend				\
@@ -286,7 +286,6 @@
 i386/isa/pcvt/pcvt_vtf.c	optional	vt
 i386/isa/pmtimer.c		optional	pmtimer
 i386/isa/prof_machdep.c		optional	profiling-routine
-i386/isa/rc.c			count		rc
 i386/isa/scd.c			count		scd nowerror
 i386/isa/spic.c			optional	spic
 i386/isa/spigot.c		count		spigot

==== //depot/projects/smpng/sys/conf/files.ia64#21 (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.40 2002/10/19 04:02:16 marcel Exp $
+# $FreeBSD: src/sys/conf/files.ia64,v 1.41 2002/10/24 19:05:03 jhb Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -18,10 +18,10 @@
 	no-obj no-implicit-rule before-depend				\
 	clean		"atkbdmap.h"
 #
-ia64/acpica/acpi_machdep.c	optional	acpica
-ia64/acpica/acpi_wakeup.c	optional	acpica
-ia64/acpica/OsdEnvironment.c	optional	acpica
-ia64/acpica/madt.c		optional	acpica
+ia64/acpica/acpi_machdep.c	optional	acpi
+ia64/acpica/acpi_wakeup.c	optional	acpi
+ia64/acpica/OsdEnvironment.c	optional	acpi
+ia64/acpica/madt.c		optional	acpi
 ia64/ia32/ia32_misc.c		optional	ia32
 ia64/ia32/ia32_sysent.c		optional	ia32
 ia64/ia32/ia32_sysvec.c		optional	ia32

==== //depot/projects/smpng/sys/conf/files.pc98#32 (text+ko) ====

@@ -3,7 +3,7 @@
 #
 # modified for PC-9801
 #
-# $FreeBSD: src/sys/conf/files.pc98,v 1.250 2002/10/05 16:35:26 phk Exp $
+# $FreeBSD: src/sys/conf/files.pc98,v 1.251 2002/10/24 07:18:24 nyan Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -256,7 +256,6 @@
 i386/isa/pcf.c			optional	pcf
 i386/isa/pmtimer.c		optional	pmtimer
 i386/isa/prof_machdep.c		optional	profiling-routine
-i386/isa/rc.c			count		rc
 i386/isa/scd.c			count		scd
 i386/isa/spigot.c		count		spigot
 i386/isa/stallion.c		optional	stl nowerror

==== //depot/projects/smpng/sys/conf/majors#16 (text+ko) ====

@@ -1,4 +1,4 @@
-$FreeBSD: src/sys/conf/majors,v 1.145 2002/10/20 08:17:35 scottl Exp $
+$FreeBSD: src/sys/conf/majors,v 1.146 2002/10/22 16:40:01 mdodd Exp $
 
 Hopefully, this list will one day be obsoleted by DEVFS, but for now
 this is the current allocation of device major numbers.
@@ -195,6 +195,7 @@
 177	openfirm	OpenFirmware control device <tmm>
 178	raidctl		RAIDframe (control device)
 179	raid		RAIDframe (disk device)
+180	nvidia		NVIDIA (nvidiaN/nvidiactl)
 200	??		entries from 200-252 are reserved for local use
 252	??		entries from 200-252 are reserved for local use
 254	internal	Used internally by the kernel

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

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.360 2002/10/20 08:17:35 scottl Exp $
+# $FreeBSD: src/sys/conf/options,v 1.361 2002/10/24 17:21:40 rwatson Exp $
 #
 #        On the handling of kernel options
 #
@@ -145,8 +145,15 @@
 
 # Support for Mandatory Access Control (MAC)
 MAC		opt_mac.h
+MAC_BIBA	opt_dontuse.h
+MAC_BSDEXTENDED	opt_dontuse.h
 MAC_DEBUG	opt_mac.h
+MAC_IFOFF	opt_dontuse.h
+MAC_MLS		opt_dontuse.h
 MAC_NONE	opt_dontuse.h
+MAC_PARTITION	opt_dontuse.h
+MAC_SEEOTHERUIDS	opt_dontuse.h
+MAC_TEST	opt_dontuse.h
 
 # Do we want the config file compiled into the kernel?
 INCLUDE_CONFIG_FILE	opt_config.h

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

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options.ia64,v 1.13 2002/10/17 07:04:30 iwasaki Exp $
+# $FreeBSD: src/sys/conf/options.ia64,v 1.14 2002/10/24 19:17:06 jhb Exp $
 # Options specific to the ia64 platform kernels
 
 ITANIUM			opt_global.h
@@ -71,4 +71,4 @@
 
 # Device options
 DEV_SPLASH		opt_splash.h
-DEV_ACPICA		opt_acpica.h
+DEV_ACPI		opt_acpi.h

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

@@ -24,7 +24,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *	$FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.27 2002/10/16 17:28:52 jhb Exp $
+ *	$FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.28 2002/10/24 10:56:33 iwasaki Exp $
  */
 /******************************************************************************
  *
@@ -244,6 +244,9 @@
     int			ec_csrvalue;
 };
 
+static int			 acpi_ec_event_driven = 0;
+TUNABLE_INT("hw.acpi.ec.event_driven", &acpi_ec_event_driven);
+
 #define EC_LOCK_TIMEOUT	1000	/* 1ms */
 
 static __inline ACPI_STATUS
@@ -618,7 +621,7 @@
     ACPI_FUNCTION_TRACE_U32((char *)(uintptr_t)__func__, (UINT32)Event);
 
     /* XXX this should test whether interrupts are available some other way */
-    if(cold)
+    if (cold || acpi_ec_event_driven)
 	return_ACPI_STATUS(EcWaitEvent(sc, Event));
 
     if (!EcIsLocked(sc))

==== //depot/projects/smpng/sys/dev/ata/ata-all.c#24 (text+ko) ====

@@ -25,7 +25,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/dev/ata/ata-all.c,v 1.155 2002/10/01 15:21:57 sos Exp $
+ * $FreeBSD: src/sys/dev/ata/ata-all.c,v 1.156 2002/10/22 20:18:51 thomas Exp $
  */
 
 #include "opt_ata.h"
@@ -210,8 +210,7 @@
 	    atapi_attach(&ch->device[SLAVE]);
 #endif
 #ifdef DEV_ATAPICAM
-	if (ch->devices & (ATA_ATAPI_MASTER | ATA_ATAPI_SLAVE))
-	    atapi_cam_attach_bus(ch);
+	atapi_cam_attach_bus(ch);
 #endif
     }
     return 0;
@@ -244,8 +243,7 @@
 	atapi_detach(&ch->device[SLAVE]);
 #endif
 #ifdef DEV_ATAPICAM
-    if (ch->devices & (ATA_ATAPI_SLAVE|ATA_ATAPI_MASTER))
-	atapi_cam_detach_bus(ch);
+    atapi_cam_detach_bus(ch);
 #endif
     splx(s);
 
@@ -585,8 +583,7 @@
 	    atapi_attach(&ch->device[SLAVE]);
 #endif
 #ifdef DEV_ATAPICAM
-	if (ch->devices & (ATA_ATAPI_MASTER | ATA_ATAPI_SLAVE))
-	    atapi_cam_attach_bus(ch);
+	atapi_cam_attach_bus(ch);
 #endif
     }
 }
@@ -852,10 +849,6 @@
     ata_printf(ch, -1, "resetting devices ..\n");
     ata_reset(ch);
 
-#ifdef DEV_ATAPICAM
-    if (devices & (ATA_ATAPI_SLAVE|ATA_ATAPI_MASTER))
-	atapi_cam_detach_bus(ch);
-#endif
     if ((misdev = devices & ~ch->devices)) {
 #ifdef DEV_ATADISK
 	if (misdev & ATA_ATA_MASTER && ch->device[MASTER].driver)
@@ -923,8 +916,7 @@
     }
 #endif
 #ifdef DEV_ATAPICAM
-    if (ch->devices & (ATA_ATAPI_MASTER | ATA_ATAPI_SLAVE))
-	atapi_cam_attach_bus(ch);
+    atapi_cam_reinit_bus(ch);
 #endif
     printf("done\n");
     ATA_UNLOCK_CH(ch);

==== //depot/projects/smpng/sys/dev/ata/atapi-all.h#10 (text+ko) ====

@@ -25,7 +25,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/dev/ata/atapi-all.h,v 1.46 2002/09/23 18:54:29 alfred Exp $
+ * $FreeBSD: src/sys/dev/ata/atapi-all.h,v 1.47 2002/10/22 20:18:51 thomas Exp $
  */
 
 /* ATAPI misc defines */
@@ -175,6 +175,7 @@
 void atapi_cam_attach_bus(struct ata_channel *);
 void atapi_detach(struct ata_device *);
 void atapi_cam_detach_bus(struct ata_channel *);
+void atapi_cam_reinit_bus(struct ata_channel *);
 void atapi_reinit(struct ata_device *);
 void atapi_start(struct ata_device *);
 int atapi_transfer(struct atapi_request *);

==== //depot/projects/smpng/sys/dev/ata/atapi-cam.c#4 (text+ko) ====

@@ -25,7 +25,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/dev/ata/atapi-cam.c,v 1.9 2002/09/28 17:14:24 phk Exp $
+ * $FreeBSD: src/sys/dev/ata/atapi-cam.c,v 1.10 2002/10/22 20:18:51 thomas Exp $
  */
 
 #include <sys/param.h>
@@ -77,6 +77,8 @@
     LIST_ENTRY(atapi_xpt_softc) chain;
 };
 
+enum reinit_reason { BOOT_ATTACH, ATTACH, RESET };
+
 static LIST_HEAD(,atapi_xpt_softc) all_buses = LIST_HEAD_INITIALIZER(all_buses);
 
 /* CAM XPT methods */
@@ -87,6 +89,7 @@
 static int atapi_cb(struct atapi_request *);
 
 /* internal functions */
+static void reinit_bus(struct atapi_xpt_softc *scp, enum reinit_reason reason);
 static void setup_dev(struct atapi_xpt_softc *, struct ata_device *);
 static void setup_async_cb(struct atapi_xpt_softc *, uint32_t);
 static void cam_rescan_callback(struct cam_periph *, union ccb *);
@@ -95,6 +98,7 @@
 static struct atapi_hcb *allocate_hcb(struct atapi_xpt_softc *, int, int, union ccb *);
 static void free_hcb(struct atapi_hcb *hcb);
 static void free_softc(struct atapi_xpt_softc *scp);
+static struct atapi_xpt_softc *get_softc(struct ata_channel *ata_ch);
 static struct ata_device *get_ata_device(struct atapi_xpt_softc *scp, int id);
 
 static MALLOC_DEFINE(M_ATACAM, "ATA CAM transport", "ATA driver CAM-XPT layer");
@@ -147,13 +151,7 @@
     CAM_DEBUG(path, CAM_DEBUG_TRACE, ("Registered SIM for ata%d\n", unit));
 
     setup_async_cb(scp, AC_LOST_DEVICE);
-
-    if (ata_ch->devices & ATA_ATAPI_MASTER)
-	setup_dev(scp, &ata_ch->device[MASTER]);
-    if (ata_ch->devices & ATA_ATAPI_SLAVE)
-	setup_dev(scp, &ata_ch->device[SLAVE]);
-
-    cam_rescan(sim);
+    reinit_bus(scp, cold ? BOOT_ATTACH : ATTACH);
     return;
 
 error:
@@ -163,11 +161,32 @@
 void 
 atapi_cam_detach_bus(struct ata_channel *ata_ch)
 {
-    struct atapi_xpt_softc *scp;
+    struct atapi_xpt_softc *scp = get_softc(ata_ch);
+    free_softc(scp);
+}
+
+void
+atapi_cam_reinit_bus(struct ata_channel *ata_ch) {
+    struct atapi_xpt_softc *scp = get_softc(ata_ch);
+    reinit_bus(scp, RESET);
+}
+
+static void
+reinit_bus(struct atapi_xpt_softc *scp, enum reinit_reason reason) {
+    if (scp->ata_ch->devices & ATA_ATAPI_MASTER)
+	setup_dev(scp, &scp->ata_ch->device[MASTER]);
+    if (scp->ata_ch->devices & ATA_ATAPI_SLAVE)
+	setup_dev(scp, &scp->ata_ch->device[SLAVE]);
 
-    LIST_FOREACH(scp, &all_buses, chain) {
-	if (scp->ata_ch == ata_ch)
-	    free_softc(scp);
+    switch (reason) {
+	case BOOT_ATTACH:
+	    break;
+	case RESET:
+	    xpt_async(AC_BUS_RESET, scp->path, NULL);
+	    /*FALLTHROUGH*/
+	case ATTACH:
+	    cam_rescan(scp->sim);
+	    break;
     }
 }
 
@@ -261,16 +280,20 @@
 	return;
     }
 
-    case XPT_RESET_DEV:
-	/* should reset the device */
+    case XPT_RESET_DEV: {
+	int tid = ccb_h->target_id;
+	struct ata_device *dev = get_ata_device(softc, tid);
+
 	CAM_DEBUG(ccb->ccb_h.path, CAM_DEBUG_SUBTRACE, ("dev reset\n"));
+	atapi_reinit(dev);
 	ccb->ccb_h.status = CAM_REQ_CMP;
 	xpt_done(ccb);
 	return;
+    }
 
     case XPT_RESET_BUS:
-	/* should reset the ATA bus */
 	CAM_DEBUG(ccb->ccb_h.path, CAM_DEBUG_SUBTRACE, ("bus reset\n"));
+	ata_reinit(softc->ata_ch);
 	ccb->ccb_h.status = CAM_REQ_CMP;
 	xpt_done(ccb);
 	return;
@@ -669,6 +692,16 @@
     }
 }
 
+static struct atapi_xpt_softc *
+get_softc(struct ata_channel *ata_ch) {
+    struct atapi_xpt_softc *scp;
+    LIST_FOREACH(scp, &all_buses, chain) {
+        if (scp->ata_ch == ata_ch)
+            return scp;
+    }
+    return NULL;
+}
+
 static struct ata_device *
 get_ata_device(struct atapi_xpt_softc *scp, int id)
 {

==== //depot/projects/smpng/sys/dev/firewire/sbp.c#3 (text+ko) ====

@@ -30,7 +30,7 @@
  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  * 
- * $FreeBSD: src/sys/dev/firewire/sbp.c,v 1.4 2002/10/21 15:36:59 simokawa Exp $
+ * $FreeBSD: src/sys/dev/firewire/sbp.c,v 1.5 2002/10/23 13:04:02 simokawa Exp $
  *
  */
 
@@ -1101,17 +1101,10 @@
 }
 
 static void
-sbp_scsi_status(struct sbp_status *sbp_status, struct sbp_ocb *ocb)
+sbp_print_scsi_cmd(struct sbp_ocb *ocb)
 {
-	struct sbp_cmd_status *sbp_cmd_status;
-	struct scsi_sense_data *sense;
 	struct ccb_scsiio *csio;
 
-
-	sbp_cmd_status = (struct sbp_cmd_status *)sbp_status->data;
-	sense = &ocb->ccb->csio.sense_data;
-
-SBP_DEBUG(0)
 	csio = &ocb->ccb->csio;
 	printf("%s:%d:%d XPT_SCSI_IO: "
 		"cmd: %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x"

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

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe p4-projects" in the body of the message




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