From owner-p4-projects Thu Oct 24 13:34:28 2002 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DBD3D37B404; Thu, 24 Oct 2002 13:33:58 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 706B537B401 for ; Thu, 24 Oct 2002 13:33:58 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6CF8043E6A for ; Thu, 24 Oct 2002 13:33:57 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id g9OKXCmV027244 for ; Thu, 24 Oct 2002 13:33:12 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id g9OKXBCH027241 for perforce@freebsd.org; Thu, 24 Oct 2002 13:33:11 -0700 (PDT) Date: Thu, 24 Oct 2002 13:33:11 -0700 (PDT) Message-Id: <200210242033.g9OKXBCH027241@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin Subject: PERFORCE change 20073 for review To: Perforce Change Reviews Sender: owner-p4-projects@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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 @@ -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 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 @@ -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