From owner-p4-projects@FreeBSD.ORG Sun Aug 23 08:13:33 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E08CF106568E; Sun, 23 Aug 2009 08:13:32 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A55B1106568D for ; Sun, 23 Aug 2009 08:13:32 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7B0668FC0A for ; Sun, 23 Aug 2009 08:13:32 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7N8DWW2027623 for ; Sun, 23 Aug 2009 08:13:32 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7N8DWXd027621 for perforce@freebsd.org; Sun, 23 Aug 2009 08:13:32 GMT (envelope-from mav@freebsd.org) Date: Sun, 23 Aug 2009 08:13:32 GMT Message-Id: <200908230813.n7N8DWXd027621@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167636 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Aug 2009 08:13:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=167636 Change 167636 by mav@mav_mavbook on 2009/08/23 08:12:58 Make SII chips provide bigger max_iosize. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-siliconimage.c#8 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-siliconimage.c#8 (text+ko) ==== @@ -340,6 +340,7 @@ ATA_OUTL(ctlr->r_res2, 0x148 + (unit01 << 7) + (unit10 << 8),(1 << 16)); } + ch->dma.max_iosize = (ATA_DMA_ENTRIES - 1) * PAGE_SIZE; if (ctlr->chip->cfg2 & SII_BUG) { /* work around errata in early chips */ ch->dma.boundary = 8192; @@ -457,7 +458,7 @@ u_int32_t control; } __packed; -#define ATA_SIIPRB_DMA_ENTRIES 125 +#define ATA_SIIPRB_DMA_ENTRIES 129 struct ata_siiprb_ata_command { struct ata_siiprb_dma_prdentry prd[ATA_SIIPRB_DMA_ENTRIES]; } __packed; @@ -556,8 +557,7 @@ } /* get a piece of the workspace for this request */ - prb = (struct ata_siiprb_command *) - (ch->dma.work + (sizeof(struct ata_siiprb_command) * request->tag)); + prb = (struct ata_siiprb_command *)ch->dma.work; /* clear the prb structure */ bzero(prb, sizeof(struct ata_siiprb_command)); @@ -595,12 +595,9 @@ } /* activate the prb */ - prb_bus = ch->dma.work_bus + - (sizeof(struct ata_siiprb_command) * request->tag); - ATA_OUTL(ctlr->r_res2, - 0x1c00 + offset + (request->tag * sizeof(u_int64_t)), prb_bus); - ATA_OUTL(ctlr->r_res2, - 0x1c04 + offset + (request->tag * sizeof(u_int64_t)), prb_bus>>32); + prb_bus = ch->dma.work_bus; + ATA_OUTL(ctlr->r_res2, 0x1c00 + offset, prb_bus); + ATA_OUTL(ctlr->r_res2, 0x1c04 + offset, prb_bus>>32); /* start the timeout */ callout_reset(&request->callout, request->timeout * hz, @@ -621,7 +618,7 @@ callout_stop(&request->callout); prb = (struct ata_siiprb_command *) - ((u_int8_t *)rman_get_virtual(ctlr->r_res2)+(request->tag << 7)+offset); + ((u_int8_t *)rman_get_virtual(ctlr->r_res2) + offset); /* any controller errors flagged ? */ if ((error = ATA_INL(ctlr->r_res2, 0x1024 + offset))) { @@ -903,6 +900,7 @@ /* note start and stop are not used here */ ch->dma.setprd = ata_siiprb_dmasetprd; ch->dma.max_address = BUS_SPACE_MAXADDR; + ch->dma.max_iosize = (ATA_SIIPRB_DMA_ENTRIES - 1) * PAGE_SIZE; } ATA_DECLARE_DRIVER(ata_sii); From owner-p4-projects@FreeBSD.ORG Sun Aug 23 08:34:57 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 590D7106568E; Sun, 23 Aug 2009 08:34:57 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1D912106568C for ; Sun, 23 Aug 2009 08:34:57 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E74178FC13 for ; Sun, 23 Aug 2009 08:34:56 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7N8Yu6Q029133 for ; Sun, 23 Aug 2009 08:34:56 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7N8YuIG029131 for perforce@freebsd.org; Sun, 23 Aug 2009 08:34:56 GMT (envelope-from zec@fer.hr) Date: Sun, 23 Aug 2009 08:34:56 GMT Message-Id: <200908230834.n7N8YuIG029131@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167639 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Aug 2009 08:34:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=167639 Change 167639 by zec@zec_tpx32 on 2009/08/23 08:34:24 Fix vnet leakages on jail -c failures. Submitted by: jamie Affected files ... .. //depot/projects/vimage-commit2/src/sys/kern/kern_jail.c#32 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/kern/kern_jail.c#32 (text+ko) ==== @@ -2456,7 +2456,7 @@ sx_downgrade(&allprison_lock); #ifdef VIMAGE - if (pr->pr_flags & PR_VNET) + if (pr->pr_vnet != ppr->pr_vnet) vnet_destroy(pr->pr_vnet); #endif if (pr->pr_root != NULL) { From owner-p4-projects@FreeBSD.ORG Sun Aug 23 08:50:14 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 99A801065697; Sun, 23 Aug 2009 08:50:14 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4509D1065695 for ; Sun, 23 Aug 2009 08:50:14 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 326EA8FC0A for ; Sun, 23 Aug 2009 08:50:14 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7N8oERU040318 for ; Sun, 23 Aug 2009 08:50:14 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7N8oDbr040316 for perforce@freebsd.org; Sun, 23 Aug 2009 08:50:13 GMT (envelope-from zec@fer.hr) Date: Sun, 23 Aug 2009 08:50:13 GMT Message-Id: <200908230850.n7N8oDbr040316@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167641 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Aug 2009 08:50:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=167641 Change 167641 by zec@zec_tpx32 on 2009/08/23 08:50:03 IFC @ 167626 Affected files ... .. //depot/projects/vimage-commit2/src/sys/amd64/amd64/local_apic.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/amd64/amd64/machdep.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/amd64/amd64/pmap.c#19 integrate .. //depot/projects/vimage-commit2/src/sys/amd64/include/apicvar.h#7 integrate .. //depot/projects/vimage-commit2/src/sys/amd64/include/pmc_mdep.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/arm/at91/uart_dev_at91usart.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/boot/i386/gptboot/gptboot.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/cam/ata/ata_xpt.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/cam/cam_ccb.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/cam/cam_xpt.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c#1 branch .. //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/rpc/xdr.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/sys/taskq.h#2 delete .. //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/sys/taskq_impl.h#2 delete .. //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/sys/vnode.h#8 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/os/taskq.c#3 delete .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c#2 delete .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c#2 delete .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c#2 delete .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.h#4 delete .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/sys/taskq.h#1 branch .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/conf/options#38 integrate .. //depot/projects/vimage-commit2/src/sys/contrib/pf/net/pf.c#19 integrate .. //depot/projects/vimage-commit2/src/sys/contrib/pf/net/pfvar.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/aac/aac.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi_battery.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi_cpu.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi_dock.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi_thermal.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/adb/adb_bus.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/amdtemp/amdtemp.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/amr/amr.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ata/ata-all.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/dev/atkbdc/psm.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/bge/if_bge.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/dev/bktr/bktr_os.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/drm/drm_drv.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/dev/e1000/if_em.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/dev/e1000/if_igb.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/dev/hptrr/hptrr_osm_bsd.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/hwpmc/hwpmc_core.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/hwpmc/hwpmc_piv.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/hwpmc/hwpmc_ppro.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/hwpmc/hwpmc_x86.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ips/ips_pci.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/iscsi/initiator/isc_cam.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/mfi/mfi.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/dev/mfi/mfi_ioctl.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/mfi/mfireg.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/mii/e1000phy.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/mlx/mlx.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/mmc/mmc.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/dev/pccbb/pccbb.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ppbus/vpo.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/pst/pst-iop.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/rp/rp.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/hda/hdac.c#20 integrate .. //depot/projects/vimage-commit2/src/sys/dev/twe/twe.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/usb_controller.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/input/ukbd.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/net/usb_ethernet.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_busdma.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_compat_linux.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_dev.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_handle_request.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_hub.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_process.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_process.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/wlan/if_upgt.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/xen/blkback/blkback.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/xen/netback/netback.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfsclient/nfs_clsubs.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/geom/part/g_part_gpt.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/i386/acpica/acpi_machdep.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/i386/bios/smapi.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/i386/bios/smbios.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/i386/bios/vpd.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/i386/i386/local_apic.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/i386/i386/machdep.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/i386/include/apicvar.h#9 integrate .. //depot/projects/vimage-commit2/src/sys/i386/include/pmc_mdep.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/i386/xen/mp_machdep.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/ia64/ia64/genassym.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/ia64/ia64/machdep.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/ia64/ia64/mp_machdep.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_lock.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_mutex.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_poll.c#21 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_rwlock.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_sx.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/kern/subr_bus.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/kern/subr_sglist.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/kern/subr_taskqueue.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/kern/tty_pty.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/kern/vfs_cache.c#22 integrate .. //depot/projects/vimage-commit2/src/sys/modules/zfs/Makefile#7 integrate .. //depot/projects/vimage-commit2/src/sys/net/flowtable.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/net/flowtable.h#10 integrate .. //depot/projects/vimage-commit2/src/sys/net/if.c#84 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_var.h#37 integrate .. //depot/projects/vimage-commit2/src/sys/net/vnet.h#33 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_input.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_carp.c#20 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_fw.h#30 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_output.c#37 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ipfw/ip_fw2.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ipfw/ip_fw_pfil.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp_indata.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp_input.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp_os_bsd.h#29 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp_output.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp_pcb.c#21 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp_timer.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctputil.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctputil.h#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_timewait.c#32 integrate .. //depot/projects/vimage-commit2/src/sys/nfsclient/nfs_subs.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/pc98/cbus/fdc.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/sys/bus.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/sys/lock.h#7 integrate .. //depot/projects/vimage-commit2/src/sys/sys/sglist.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/sys/systm.h#12 integrate .. //depot/projects/vimage-commit2/src/sys/sys/taskqueue.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/ufs/ffs/ffs_softdep.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/xen/xenbus/xenbus_probe.c#8 integrate Differences ... ==== //depot/projects/vimage-commit2/src/sys/amd64/amd64/local_apic.c#13 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.59 2009/08/13 17:09:45 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.60 2009/08/14 21:05:08 jhb Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_kdtrace.h" @@ -123,7 +123,7 @@ { 1, 1, 0, 1, APIC_LVT_DM_NMI, 0 }, /* LINT1: NMI */ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_TIMER_INT }, /* Timer */ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_ERROR_INT }, /* Error */ - { 1, 1, 0, 1, APIC_LVT_DM_NMI, 0 }, /* PMC */ + { 1, 1, 1, 1, APIC_LVT_DM_NMI, 0 }, /* PMC */ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_THERMAL_INT }, /* Thermal */ }; @@ -305,11 +305,9 @@ lapic->lvt_lint0 = lvt_mode(la, LVT_LINT0, lapic->lvt_lint0); lapic->lvt_lint1 = lvt_mode(la, LVT_LINT1, lapic->lvt_lint1); -#ifdef HWPMC_HOOKS /* Program the PMC LVT entry if present. */ if (maxlvt >= LVT_PMC) lapic->lvt_pcint = lvt_mode(la, LVT_PMC, lapic->lvt_pcint); -#endif /* Program timer LVT and setup handler. */ lapic->lvt_timer = lvt_mode(la, LVT_TIMER, lapic->lvt_timer); @@ -332,6 +330,88 @@ intr_restore(eflags); } +void +lapic_reenable_pmc(void) +{ +#ifdef HWPMC_HOOKS + uint32_t value; + + value = lapic->lvt_pcint; + value &= ~APIC_LVT_M; + lapic->lvt_pcint = value; +#endif +} + +#ifdef HWPMC_HOOKS +static void +lapic_update_pmc(void *dummy) +{ + struct lapic *la; + + la = &lapics[lapic_id()]; + lapic->lvt_pcint = lvt_mode(la, LVT_PMC, lapic->lvt_pcint); +} +#endif + +int +lapic_enable_pmc(void) +{ +#ifdef HWPMC_HOOKS + u_int32_t maxlvt; + + /* Fail if the local APIC is not present. */ + if (lapic == NULL) + return (0); + + /* Fail if the PMC LVT is not present. */ + maxlvt = (lapic->version & APIC_VER_MAXLVT) >> MAXLVTSHIFT; + if (maxlvt < LVT_PMC) + return (0); + + lvts[LVT_PMC].lvt_masked = 0; + +#ifdef SMP + /* + * If hwpmc was loaded at boot time then the APs may not be + * started yet. In that case, don't forward the request to + * them as they will program the lvt when they start. + */ + if (smp_started) + smp_rendezvous(NULL, lapic_update_pmc, NULL, NULL); + else +#endif + lapic_update_pmc(NULL); + return (1); +#else + return (0); +#endif +} + +void +lapic_disable_pmc(void) +{ +#ifdef HWPMC_HOOKS + u_int32_t maxlvt; + + /* Fail if the local APIC is not present. */ + if (lapic == NULL) + return; + + /* Fail if the PMC LVT is not present. */ + maxlvt = (lapic->version & APIC_VER_MAXLVT) >> MAXLVTSHIFT; + if (maxlvt < LVT_PMC) + return; + + lvts[LVT_PMC].lvt_masked = 1; + +#ifdef SMP + /* The APs should always be started when hwpmc is unloaded. */ + KASSERT(mp_ncpus == 1 || smp_started, ("hwpmc unloaded too early")); +#endif + smp_rendezvous(NULL, lapic_update_pmc, NULL, NULL); +#endif +} + /* * Called by cpu_initclocks() on the BSP to setup the local APIC timer so * that it can drive hardclock, statclock, and profclock. This function ==== //depot/projects/vimage-commit2/src/sys/amd64/amd64/machdep.c#16 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.707 2009/08/02 11:26:23 ed Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.709 2009/08/20 22:58:05 jkim Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -217,6 +217,7 @@ strncmp(sysenv, "MacBook3,1", 10) == 0 || strncmp(sysenv, "MacBookPro1,1", 13) == 0 || strncmp(sysenv, "MacBookPro1,2", 13) == 0 || + strncmp(sysenv, "MacBookPro3,1", 13) == 0 || strncmp(sysenv, "Macmini1,1", 10) == 0) { if (bootverbose) printf("Disabling LEGACY_USB_EN bit on " @@ -235,19 +236,21 @@ #ifdef PERFMON perfmon_init(); #endif + realmem = Maxmem; + + /* + * Display physical memory if SMBIOS reports reasonable amount. + */ + memsize = 0; sysenv = getenv("smbios.memory.enabled"); if (sysenv != NULL) { - memsize = (uintmax_t)strtoul(sysenv, (char **)NULL, 10); + memsize = (uintmax_t)strtoul(sysenv, (char **)NULL, 10) << 10; freeenv(sysenv); - } else - memsize = 0; - if (memsize > 0) - printf("real memory = %ju (%ju MB)\n", memsize << 10, - memsize >> 10); - else - printf("real memory = %ju (%ju MB)\n", ptoa((uintmax_t)Maxmem), - ptoa((uintmax_t)Maxmem) / 1048576); - realmem = Maxmem; + } + if (memsize < ptoa((uintmax_t)cnt.v_free_count)) + memsize = ptoa((uintmax_t)Maxmem); + printf("real memory = %ju (%ju MB)\n", memsize, memsize >> 20); + /* * Display any holes after the first chunk of extended memory. */ ==== //depot/projects/vimage-commit2/src/sys/amd64/amd64/pmap.c#19 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.667 2009/07/24 13:50:29 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.668 2009/08/17 13:27:55 kib Exp $"); /* * Manages physical address maps. @@ -2261,6 +2261,8 @@ " in pmap %p", va, pmap); return (FALSE); } + if (va < VM_MAXUSER_ADDRESS) + pmap->pm_stats.resident_count++; } mptepa = VM_PAGE_TO_PHYS(mpte); firstpte = (pt_entry_t *)PHYS_TO_DMAP(mptepa); ==== //depot/projects/vimage-commit2/src/sys/amd64/include/apicvar.h#7 (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/amd64/include/apicvar.h,v 1.30 2009/08/13 17:09:45 attilio Exp $ + * $FreeBSD: src/sys/amd64/include/apicvar.h,v 1.31 2009/08/14 21:05:08 jhb Exp $ */ #ifndef _MACHINE_APICVAR_H_ @@ -201,7 +201,9 @@ int ioapic_set_smi(void *cookie, u_int pin); void lapic_create(u_int apic_id, int boot_cpu); void lapic_disable(void); +void lapic_disable_pmc(void); void lapic_dump(const char *str); +int lapic_enable_pmc(void); void lapic_eoi(void); u_int lapic_error(void); int lapic_id(void); @@ -212,6 +214,7 @@ int lapic_ipi_wait(int delay); void lapic_handle_intr(int vector, struct trapframe *frame); void lapic_handle_timer(struct trapframe *frame); +void lapic_reenable_pmc(void); void lapic_set_logical_id(u_int apic_id, u_int cluster, u_int cluster_id); int lapic_set_lvt_mask(u_int apic_id, u_int lvt, u_char masked); int lapic_set_lvt_mode(u_int apic_id, u_int lvt, u_int32_t mode); ==== //depot/projects/vimage-commit2/src/sys/amd64/include/pmc_mdep.h#6 (text+ko) ==== @@ -27,7 +27,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/pmc_mdep.h,v 1.8 2008/11/27 09:00:47 jkoshy Exp $ + * $FreeBSD: src/sys/amd64/include/pmc_mdep.h,v 1.9 2009/08/14 21:05:08 jhb Exp $ */ /* Machine dependent interfaces */ @@ -115,7 +115,6 @@ */ void start_exceptions(void), end_exceptions(void); -void pmc_x86_lapic_enable_pmc_interrupt(void); struct pmc_mdep *pmc_amd_initialize(void); void pmc_amd_finalize(struct pmc_mdep *_md); ==== //depot/projects/vimage-commit2/src/sys/arm/at91/uart_dev_at91usart.c#7 (text) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/uart_dev_at91usart.c,v 1.19 2009/01/22 21:56:41 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/uart_dev_at91usart.c,v 1.20 2009/08/15 15:15:20 stas Exp $"); #include "opt_comconsole.h" @@ -307,6 +307,10 @@ int at91_usart_bus_probe(struct uart_softc *sc) { + + sc->sc_txfifosz = USART_BUFFER_SIZE; + sc->sc_rxfifosz = USART_BUFFER_SIZE; + sc->sc_hwiflow = 0; return (0); } @@ -344,10 +348,6 @@ atsc->flags |= HAS_TIMEOUT; WR4(&sc->sc_bas, USART_IDR, 0xffffffff); - sc->sc_txfifosz = USART_BUFFER_SIZE; - sc->sc_rxfifosz = USART_BUFFER_SIZE; - sc->sc_hwiflow = 0; - #ifndef SKYEYE_WORKAROUNDS /* * Allocate DMA tags and maps ==== //depot/projects/vimage-commit2/src/sys/boot/i386/gptboot/gptboot.c#3 (text+ko) ==== @@ -14,7 +14,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/gptboot/gptboot.c,v 1.88 2008/08/08 19:41:20 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/gptboot/gptboot.c,v 1.89 2009/08/17 15:19:03 jhay Exp $"); #include #include @@ -466,16 +466,13 @@ dsk.type = i; arg += 3; dsk.unit = *arg - '0'; - if (arg[1] != ',' || dsk.unit > 9) + if (arg[1] != 'p' || dsk.unit > 9) return -1; arg += 2; - dsk.part = -1; - if (arg[1] == ',') { - dsk.part = *arg - '0'; - if (dsk.part < 1 || dsk.part > 9) - return -1; - arg += 2; - } + dsk.part = *arg - '0'; + if (dsk.part < 1 || dsk.part > 9) + return -1; + arg++; if (arg[0] != ')') return -1; arg++; ==== //depot/projects/vimage-commit2/src/sys/cam/ata/ata_xpt.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.3 2009/07/13 21:21:30 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.4 2009/08/18 09:27:17 mav Exp $"); #include #include @@ -370,10 +370,10 @@ cam_fill_ataio(ataio, 1, probedone, - /*flags*/CAM_DIR_IN, - MSG_SIMPLE_Q_TAG, - /*data_ptr*/(u_int8_t *)ident_buf, - /*dxfer_len*/sizeof(struct ata_params), + /*flags*/CAM_DIR_NONE, + 0, + /*data_ptr*/NULL, + /*dxfer_len*/0, 30 * 1000); ata_36bit_cmd(ataio, ATA_SETFEATURES, ATA_SF_SETXFER, 0, ata_max_mode(ident_buf, ATA_UDMA6, ATA_UDMA6)); ==== //depot/projects/vimage-commit2/src/sys/cam/cam_ccb.h#4 (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/cam_ccb.h,v 1.37 2009/08/01 01:04:26 mjacob Exp $ + * $FreeBSD: src/sys/cam/cam_ccb.h,v 1.38 2009/08/18 08:46:54 mav Exp $ */ #ifndef _CAM_CAM_CCB_H @@ -243,6 +243,7 @@ XPORT_ATA, /* AT Attachment */ XPORT_SAS, /* Serial Attached SCSI */ XPORT_SATA, /* Serial AT Attachment */ + XPORT_ISCSI, /* iSCSI */ } cam_xport; #define PROTO_VERSION_UNKNOWN (UINT_MAX - 1) ==== //depot/projects/vimage-commit2/src/sys/cam/cam_xpt.c#8 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.217 2009/08/01 01:04:26 mjacob Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.218 2009/08/18 08:46:54 mav Exp $"); #include #include @@ -3803,6 +3803,8 @@ case XPORT_SAS: case XPORT_FC: case XPORT_USB: + case XPORT_ISCSI: + case XPORT_PPB: new_bus->xport = scsi_get_xport(); break; case XPORT_ATA: ==== //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/rpc/xdr.h#2 (text+ko) ==== ==== //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/sys/vnode.h#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/cddl/compat/opensolaris/sys/vnode.h,v 1.12 2009/06/21 13:41:32 kib Exp $ + * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/vnode.h,v 1.13 2009/08/17 09:48:34 pjd Exp $ */ #ifndef _OPENSOLARIS_SYS_VNODE_H_ @@ -75,7 +75,6 @@ #define VN_HOLD(v) vref(v) #define VN_RELE(v) vrele(v) #define VN_URELE(v) vput(v) -#define VN_RELE_ASYNC(v, tq) vn_rele_async(v, tq); #define VOP_REALVP(vp, vpp, ct) (*(vpp) = (vp), 0) ==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c#4 (text+ko) ==== @@ -2523,14 +2523,15 @@ { if (nvs->nvs_op == NVS_OP_ENCODE) { nvs_native_t *native = (nvs_native_t *)nvs->nvs_private; - nvlist_t *packed = (void *) + char *packed = (void *) (native->n_curr - nvp->nvp_size + NVP_VALOFF(nvp)); /* * Null out the pointer that is meaningless in the packed * structure. The address may not be aligned, so we have * to use bzero. */ - bzero(&packed->nvl_priv, sizeof (packed->nvl_priv)); + bzero(packed + offsetof(nvlist_t, nvl_priv), + sizeof(((nvlist_t *)NULL)->nvl_priv)); } return (nvs_embedded(nvs, EMBEDDED_NVL(nvp))); ==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c#3 (text+ko) ==== @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -36,12 +36,10 @@ * contributors. */ - -#pragma ident "%Z%%M% %I% %E% SMI" - #include #include #include +#include #include /* Extensible attribute (xva) routines. */ @@ -74,15 +72,12 @@ return (xoap); } -static STAILQ_HEAD(, vnode) vn_rele_async_list; -static struct mtx vn_rele_async_lock; -static struct cv vn_rele_async_cv; -static int vn_rele_list_length; -static int vn_rele_async_thread_exit; +static void +vn_rele_inactive(vnode_t *vp) +{ -typedef struct { - struct vnode *stqe_next; -} vnode_link_t; + vrele(vp); +} /* * Like vn_rele() except if we are going to call VOP_INACTIVE() then do it @@ -95,117 +90,16 @@ * This is because taskqs throttle back allocation if too many are created. */ void -vn_rele_async(vnode_t *vp, taskq_t *taskq /* unused */) +vn_rele_async(vnode_t *vp, taskq_t *taskq) { - - KASSERT(vp != NULL, ("vrele: null vp")); - VFS_ASSERT_GIANT(vp->v_mount); + VERIFY(vp->v_count > 0); VI_LOCK(vp); - - if (vp->v_usecount > 1 || ((vp->v_iflag & VI_DOINGINACT) && - vp->v_usecount == 1)) { - vp->v_usecount--; - vdropl(vp); - return; - } - if (vp->v_usecount != 1) { -#ifdef DIAGNOSTIC - vprint("vrele: negative ref count", vp); -#endif + if (vp->v_count == 1 && !(vp->v_iflag & VI_DOINGINACT)) { VI_UNLOCK(vp); - panic("vrele: negative ref cnt"); - } - /* - * We are exiting - */ - if (vn_rele_async_thread_exit != 0) { - vrele(vp); + VERIFY(taskq_dispatch((taskq_t *)taskq, + (task_func_t *)vn_rele_inactive, vp, TQ_SLEEP) != 0); return; } - - mtx_lock(&vn_rele_async_lock); - - /* STAILQ_INSERT_TAIL */ - (*(vnode_link_t *)&vp->v_cstart).stqe_next = NULL; - *vn_rele_async_list.stqh_last = vp; - vn_rele_async_list.stqh_last = - &((vnode_link_t *)&vp->v_cstart)->stqe_next; - - /****************************************/ - vn_rele_list_length++; - if ((vn_rele_list_length % 100) == 0) - cv_signal(&vn_rele_async_cv); - mtx_unlock(&vn_rele_async_lock); - VI_UNLOCK(vp); -} - -static void -vn_rele_async_init(void *arg) -{ - - mtx_init(&vn_rele_async_lock, "valock", NULL, MTX_DEF); - STAILQ_INIT(&vn_rele_async_list); - - /* cv_init(&vn_rele_async_cv, "vacv"); */ - vn_rele_async_cv.cv_description = "vacv"; - vn_rele_async_cv.cv_waiters = 0; -} - -void -vn_rele_async_fini(void) -{ - - mtx_lock(&vn_rele_async_lock); - vn_rele_async_thread_exit = 1; - cv_signal(&vn_rele_async_cv); - while (vn_rele_async_thread_exit != 0) - cv_wait(&vn_rele_async_cv, &vn_rele_async_lock); - mtx_unlock(&vn_rele_async_lock); - mtx_destroy(&vn_rele_async_lock); + vp->v_usecount--; + vdropl(vp); } - - -static void -vn_rele_async_cleaner(void) -{ - STAILQ_HEAD(, vnode) vn_tmp_list; - struct vnode *curvnode; - - STAILQ_INIT(&vn_tmp_list); - mtx_lock(&vn_rele_async_lock); - while (vn_rele_async_thread_exit == 0) { - STAILQ_CONCAT(&vn_tmp_list, &vn_rele_async_list); - vn_rele_list_length = 0; - mtx_unlock(&vn_rele_async_lock); - - while (!STAILQ_EMPTY(&vn_tmp_list)) { - curvnode = STAILQ_FIRST(&vn_tmp_list); - - /* STAILQ_REMOVE_HEAD */ - STAILQ_FIRST(&vn_tmp_list) = - ((vnode_link_t *)&curvnode->v_cstart)->stqe_next; - if (STAILQ_FIRST(&vn_tmp_list) == NULL) - vn_tmp_list.stqh_last = &STAILQ_FIRST(&vn_tmp_list); - /***********************/ - vrele(curvnode); - } - mtx_lock(&vn_rele_async_lock); - if (vn_rele_list_length == 0) - cv_timedwait(&vn_rele_async_cv, &vn_rele_async_lock, - hz/10); - } - - vn_rele_async_thread_exit = 0; - cv_broadcast(&vn_rele_async_cv); - mtx_unlock(&vn_rele_async_lock); - thread_exit(); -} - -static struct proc *vn_rele_async_proc; -static struct kproc_desc up_kp = { - "vaclean", - vn_rele_async_cleaner, - &vn_rele_async_proc -}; -SYSINIT(vaclean, SI_SUB_KTHREAD_UPDATE, SI_ORDER_FIRST, kproc_start, &up_kp); -SYSINIT(vn_rele_async_setup, SI_SUB_VFS, SI_ORDER_FIRST, vn_rele_async_init, NULL); ==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#6 (text+ko) ==== @@ -1199,9 +1199,6 @@ void dmu_fini(void) { -#ifdef _KERNEL - vn_rele_async_fini(); -#endif arc_fini(); dnode_fini(); dbuf_fini(); ==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c#3 (text+ko) ==== @@ -91,6 +91,9 @@ mutex_init(&dp->dp_lock, NULL, MUTEX_DEFAULT, NULL); mutex_init(&dp->dp_scrub_cancel_lock, NULL, MUTEX_DEFAULT, NULL); + dp->dp_vnrele_taskq = taskq_create("zfs_vn_rele_taskq", 1, minclsyspri, + 1, 4, 0); + return (dp); } @@ -228,6 +231,7 @@ rw_destroy(&dp->dp_config_rwlock); mutex_destroy(&dp->dp_lock); mutex_destroy(&dp->dp_scrub_cancel_lock); + taskq_destroy(dp->dp_vnrele_taskq); kmem_free(dp, sizeof (dsl_pool_t)); } @@ -611,3 +615,9 @@ dsl_dataset_rele(ds, FTAG); rw_exit(&dp->dp_config_rwlock); } + +taskq_t * +dsl_pool_vnrele_taskq(dsl_pool_t *dp) +{ + return (dp->dp_vnrele_taskq); +} ==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h#3 (text+ko) ==== @@ -57,6 +57,7 @@ struct dsl_dir *dp_mos_dir; struct dsl_dataset *dp_origin_snap; uint64_t dp_root_dir_obj; + struct taskq *dp_vnrele_taskq; /* No lock needed - sync context only */ blkptr_t dp_meta_rootbp; @@ -119,6 +120,8 @@ void dsl_pool_scrub_sync(dsl_pool_t *dp, dmu_tx_t *tx); void dsl_pool_scrub_restart(dsl_pool_t *dp); +taskq_t *dsl_pool_vnrele_taskq(dsl_pool_t *dp); + #ifdef __cplusplus } #endif ==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h#3 (text+ko) ==== @@ -49,6 +49,7 @@ #include #include #include +#include #include #include #include ==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#8 (text+ko) ==== @@ -1195,6 +1195,48 @@ return (error); } +static int +zfsctl_snapshot_vptocnp(struct vop_vptocnp_args *ap) +{ + zfsvfs_t *zfsvfs = ap->a_vp->v_vfsp->vfs_data; + vnode_t *dvp, *vp; + zfsctl_snapdir_t *sdp; + zfs_snapentry_t *sep; + int error; + + ASSERT(zfsvfs->z_ctldir != NULL); + error = zfsctl_root_lookup(zfsvfs->z_ctldir, "snapshot", &dvp, + NULL, 0, NULL, kcred, NULL, NULL, NULL); + if (error != 0) + return (error); + sdp = dvp->v_data; + + mutex_enter(&sdp->sd_lock); + sep = avl_first(&sdp->sd_snaps); + while (sep != NULL) { + vp = sep->se_root; + if (vp == ap->a_vp) + break; + sep = AVL_NEXT(&sdp->sd_snaps, sep); + } + if (sep == NULL) { + mutex_exit(&sdp->sd_lock); + error = ENOENT; + } else { + size_t len; + + len = strlen(sep->se_name); + *ap->a_buflen -= len; + bcopy(sep->se_name, ap->a_buf + *ap->a_buflen, len); + mutex_exit(&sdp->sd_lock); + vhold(dvp); + *ap->a_vpp = dvp; + } + VN_RELE(dvp); + + return (error); +} + /* * These VP's should never see the light of day. They should always * be covered. @@ -1206,6 +1248,7 @@ .vop_reclaim = zfsctl_common_reclaim, .vop_getattr = zfsctl_snapshot_getattr, .vop_fid = zfsctl_snapshot_fid, + .vop_vptocnp = zfsctl_snapshot_vptocnp, }; int ==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#6 (text+ko) ==== @@ -3056,44 +3056,35 @@ destroy_dev(zfsdev); } -static struct task zfs_start_task; static struct root_hold_token *zfs_root_token; - uint_t zfs_fsyncer_key; extern uint_t rrw_tsd_key; -static void -zfs_start(void *context __unused, int pending __unused) -{ - - zfsdev_init(); - spa_init(FREAD | FWRITE); - zfs_init(); - zvol_init(); - - tsd_create(&zfs_fsyncer_key, NULL); - tsd_create(&rrw_tsd_key, NULL); - - printf("ZFS storage pool version " SPA_VERSION_STRING "\n"); - root_mount_rel(zfs_root_token); -} - static int zfs_modevent(module_t mod, int type, void *unused __unused) { - int error; + int error = 0; - error = EOPNOTSUPP; switch (type) { case MOD_LOAD: zfs_root_token = root_mount_hold("ZFS"); printf("WARNING: ZFS is considered to be an experimental " "feature in FreeBSD.\n"); - TASK_INIT(&zfs_start_task, 0, zfs_start, NULL); - taskqueue_enqueue(taskqueue_thread, &zfs_start_task); + mutex_init(&zfs_share_lock, NULL, MUTEX_DEFAULT, NULL); - error = 0; + + spa_init(FREAD | FWRITE); + zfs_init(); + zvol_init(); + + tsd_create(&zfs_fsyncer_key, NULL); + tsd_create(&rrw_tsd_key, NULL); + + printf("ZFS storage pool version " SPA_VERSION_STRING "\n"); + root_mount_rel(zfs_root_token); + + zfsdev_init(); break; case MOD_UNLOAD: if (spa_busy() || zfs_busy() || zvol_busy() || @@ -3101,14 +3092,19 @@ error = EBUSY; break; } + + zfsdev_fini(); zvol_fini(); zfs_fini(); spa_fini(); - zfsdev_fini(); + tsd_destroy(&zfs_fsyncer_key); tsd_destroy(&rrw_tsd_key); + mutex_destroy(&zfs_share_lock); - error = 0; + break; + default: + error = EOPNOTSUPP; break; } return (error); ==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#6 (text+ko) ==== @@ -917,7 +917,7 @@ for (zp = list_head(&zfsvfs->z_all_znodes); zp != NULL; zp = list_next(&zfsvfs->z_all_znodes, zp)) if (zp->z_dbuf) { - ASSERT(ZTOV(zp)->v_count > 0); + ASSERT(ZTOV(zp)->v_count >= 0); zfs_znode_dmu_fini(zp); } mutex_exit(&zfsvfs->z_znodes_lock); ==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#15 (text+ko) ==== @@ -924,6 +924,7 @@ zgd_t *zgd = (zgd_t *)vzgd; rl_t *rl = zgd->zgd_rl; vnode_t *vp = ZTOV(rl->r_zp); + objset_t *os = rl->r_zp->z_zfsvfs->z_os; int vfslocked; vfslocked = VFS_LOCK_GIANT(vp->v_vfsp); @@ -933,7 +934,7 @@ * Release the vnode asynchronously as we currently have the * txg stopped from syncing. */ - VN_RELE_ASYNC(vp, NULL); + VN_RELE_ASYNC(vp, dsl_pool_vnrele_taskq(dmu_objset_pool(os))); zil_add_block(zgd->zgd_zilog, zgd->zgd_bp); kmem_free(zgd, sizeof (zgd_t)); VFS_UNLOCK_GIANT(vfslocked); @@ -968,8 +969,8 @@ * Release the vnode asynchronously as we currently have the * txg stopped from syncing. */ - VN_RELE_ASYNC(ZTOV(zp), NULL); - + VN_RELE_ASYNC(ZTOV(zp), >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Aug 23 09:09:44 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5B7DA1065690; Sun, 23 Aug 2009 09:09:44 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 170D6106568E for ; Sun, 23 Aug 2009 09:09:44 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 046578FC16 for ; Sun, 23 Aug 2009 09:09:44 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7N99hIn042652 for ; Sun, 23 Aug 2009 09:09:43 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7N99ZfN042646 for perforce@freebsd.org; Sun, 23 Aug 2009 09:09:35 GMT (envelope-from zec@fer.hr) Date: Sun, 23 Aug 2009 09:09:35 GMT Message-Id: <200908230909.n7N99ZfN042646@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167643 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Aug 2009 09:09:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=167643 Change 167643 by zec@zec_tpx32 on 2009/08/23 09:09:30 IFC @ 167626 Affected files ... .. //depot/projects/vimage-commit/src/sys/amd64/amd64/initcpu.c#5 integrate .. //depot/projects/vimage-commit/src/sys/amd64/amd64/local_apic.c#10 integrate .. //depot/projects/vimage-commit/src/sys/amd64/amd64/machdep.c#12 integrate .. //depot/projects/vimage-commit/src/sys/amd64/amd64/mp_machdep.c#14 integrate .. //depot/projects/vimage-commit/src/sys/amd64/amd64/pmap.c#14 integrate .. //depot/projects/vimage-commit/src/sys/amd64/amd64/trap.c#8 integrate .. //depot/projects/vimage-commit/src/sys/amd64/conf/GENERIC#16 integrate .. //depot/projects/vimage-commit/src/sys/amd64/conf/NOTES#8 integrate .. //depot/projects/vimage-commit/src/sys/amd64/conf/XENHVM#4 integrate .. //depot/projects/vimage-commit/src/sys/amd64/include/apicvar.h#6 integrate .. //depot/projects/vimage-commit/src/sys/amd64/include/cpufunc.h#7 integrate .. //depot/projects/vimage-commit/src/sys/amd64/include/md_var.h#6 integrate .. //depot/projects/vimage-commit/src/sys/amd64/include/pmc_mdep.h#6 integrate .. //depot/projects/vimage-commit/src/sys/amd64/include/smp.h#7 integrate .. //depot/projects/vimage-commit/src/sys/arm/arm/busdma_machdep.c#8 integrate .. //depot/projects/vimage-commit/src/sys/arm/arm/cpufunc.c#6 integrate .. //depot/projects/vimage-commit/src/sys/arm/arm/minidump_machdep.c#2 integrate .. //depot/projects/vimage-commit/src/sys/arm/arm/pmap.c#7 integrate .. //depot/projects/vimage-commit/src/sys/arm/arm/vm_machdep.c#6 integrate .. //depot/projects/vimage-commit/src/sys/arm/at91/uart_dev_at91usart.c#6 integrate .. //depot/projects/vimage-commit/src/sys/arm/conf/AVILA#9 integrate .. //depot/projects/vimage-commit/src/sys/arm/conf/CAMBRIA#4 integrate .. //depot/projects/vimage-commit/src/sys/boot/forth/loader.conf#12 integrate .. //depot/projects/vimage-commit/src/sys/boot/i386/gptboot/gptboot.c#4 integrate .. //depot/projects/vimage-commit/src/sys/bsm/audit.h#6 integrate .. //depot/projects/vimage-commit/src/sys/bsm/audit_kevents.h#8 integrate .. //depot/projects/vimage-commit/src/sys/cam/ata/ata_da.c#2 integrate .. //depot/projects/vimage-commit/src/sys/cam/ata/ata_xpt.c#2 integrate .. //depot/projects/vimage-commit/src/sys/cam/cam_ccb.h#4 integrate .. //depot/projects/vimage-commit/src/sys/cam/cam_xpt.c#8 integrate .. //depot/projects/vimage-commit/src/sys/cddl/compat/opensolaris/kern/opensolaris.c#7 integrate .. //depot/projects/vimage-commit/src/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c#1 branch .. //depot/projects/vimage-commit/src/sys/cddl/compat/opensolaris/rpc/xdr.h#3 integrate .. //depot/projects/vimage-commit/src/sys/cddl/compat/opensolaris/sys/taskq.h#3 delete .. //depot/projects/vimage-commit/src/sys/cddl/compat/opensolaris/sys/taskq_impl.h#3 delete .. //depot/projects/vimage-commit/src/sys/cddl/compat/opensolaris/sys/vnode.h#8 integrate .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c#5 integrate .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c#3 integrate .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#6 integrate .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c#4 integrate .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h#4 integrate .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h#4 integrate .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#4 integrate .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#5 integrate .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#5 integrate .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#5 integrate .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#7 integrate .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#7 integrate .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#10 integrate .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/os/taskq.c#4 delete .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c#2 delete .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c#2 delete .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c#2 delete .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.h#5 delete .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/sys/taskq.h#1 branch .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h#3 integrate .. //depot/projects/vimage-commit/src/sys/cddl/dev/dtrace/amd64/dtrace_subr.c#4 integrate .. //depot/projects/vimage-commit/src/sys/cddl/dev/dtrace/i386/dtrace_subr.c#4 integrate .. //depot/projects/vimage-commit/src/sys/compat/freebsd32/freebsd32_misc.c#11 integrate .. //depot/projects/vimage-commit/src/sys/compat/linprocfs/linprocfs.c#14 integrate .. //depot/projects/vimage-commit/src/sys/compat/linux/linux_ioctl.c#15 integrate .. //depot/projects/vimage-commit/src/sys/compat/linux/linux_mib.c#8 integrate .. //depot/projects/vimage-commit/src/sys/compat/linux/linux_socket.c#17 integrate .. //depot/projects/vimage-commit/src/sys/compat/svr4/svr4_sockio.c#13 integrate .. //depot/projects/vimage-commit/src/sys/conf/NOTES#23 integrate .. //depot/projects/vimage-commit/src/sys/conf/files#31 integrate .. //depot/projects/vimage-commit/src/sys/conf/newvers.sh#9 integrate .. //depot/projects/vimage-commit/src/sys/conf/options#20 integrate .. //depot/projects/vimage-commit/src/sys/conf/options.amd64#4 integrate .. //depot/projects/vimage-commit/src/sys/conf/options.i386#6 integrate .. //depot/projects/vimage-commit/src/sys/conf/options.pc98#5 integrate .. //depot/projects/vimage-commit/src/sys/contrib/altq/altq/altq_subr.c#12 integrate .. //depot/projects/vimage-commit/src/sys/contrib/ipfilter/netinet/fil.c#6 integrate .. //depot/projects/vimage-commit/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#12 integrate .. //depot/projects/vimage-commit/src/sys/contrib/pf/net/pf.c#12 integrate .. //depot/projects/vimage-commit/src/sys/contrib/pf/net/pf_if.c#9 integrate .. //depot/projects/vimage-commit/src/sys/contrib/pf/net/pf_ioctl.c#11 integrate .. //depot/projects/vimage-commit/src/sys/contrib/pf/net/pf_subr.c#7 integrate .. //depot/projects/vimage-commit/src/sys/contrib/pf/net/pfvar.h#8 integrate .. //depot/projects/vimage-commit/src/sys/contrib/rdma/rdma_cma.c#8 integrate .. //depot/projects/vimage-commit/src/sys/ddb/db_sym.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/aac/aac.c#6 integrate .. //depot/projects/vimage-commit/src/sys/dev/acpica/acpi.c#12 integrate .. //depot/projects/vimage-commit/src/sys/dev/acpica/acpi_battery.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/acpica/acpi_cpu.c#7 integrate .. //depot/projects/vimage-commit/src/sys/dev/acpica/acpi_dock.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/acpica/acpi_thermal.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/adb/adb_bus.c#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/alc/if_alc.c#2 integrate .. //depot/projects/vimage-commit/src/sys/dev/amdtemp/amdtemp.c#2 integrate .. //depot/projects/vimage-commit/src/sys/dev/amr/amr.c#6 integrate .. //depot/projects/vimage-commit/src/sys/dev/ata/ata-all.c#8 integrate .. //depot/projects/vimage-commit/src/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/ath/if_ath.c#13 integrate .. //depot/projects/vimage-commit/src/sys/dev/ath/if_athvar.h#9 integrate .. //depot/projects/vimage-commit/src/sys/dev/atkbdc/psm.c#7 integrate .. //depot/projects/vimage-commit/src/sys/dev/bge/if_bge.c#9 integrate .. //depot/projects/vimage-commit/src/sys/dev/bktr/bktr_os.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/ciss/ciss.c#9 integrate .. //depot/projects/vimage-commit/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#7 integrate .. //depot/projects/vimage-commit/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#15 integrate .. //depot/projects/vimage-commit/src/sys/dev/drm/drm_drv.c#9 integrate .. //depot/projects/vimage-commit/src/sys/dev/drm/drm_pciids.h#9 integrate .. //depot/projects/vimage-commit/src/sys/dev/drm/r600_cp.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/drm/radeon_drv.h#8 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_ich8lan.c#6 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/if_em.c#15 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/if_igb.c#11 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptrr/hptrr_osm_bsd.c#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hwpmc/hwpmc_core.c#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hwpmc/hwpmc_piv.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/hwpmc/hwpmc_ppro.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/hwpmc/hwpmc_x86.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/if_ndis/if_ndis.c#14 integrate .. //depot/projects/vimage-commit/src/sys/dev/ips/ips_pci.c#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/iscsi/initiator/isc_cam.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/isp/isp.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/isp/isp_freebsd.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/isp/isp_freebsd.h#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/isp/isp_ioctl.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/isp/isp_library.c#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/isp/isp_library.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/isp/isp_pci.c#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/isp/isp_sbus.c#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/isp/isp_stds.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/isp/isp_target.c#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/isp/isp_target.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/isp/ispmbox.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/isp/ispreg.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/isp/ispvar.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/ispfw/asm_2300.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/ispfw/asm_2400.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/ispfw/asm_2500.h#1 branch .. //depot/projects/vimage-commit/src/sys/dev/ispfw/ispfw.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/ixgbe/ixgbe.c#8 integrate .. //depot/projects/vimage-commit/src/sys/dev/mfi/mfi.c#10 integrate .. //depot/projects/vimage-commit/src/sys/dev/mfi/mfi_ioctl.h#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/mfi/mfireg.h#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/mii/e1000phy.c#6 integrate .. //depot/projects/vimage-commit/src/sys/dev/mlx/mlx.c#6 integrate .. //depot/projects/vimage-commit/src/sys/dev/mmc/mmc.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/mxge/if_mxge.c#8 integrate .. //depot/projects/vimage-commit/src/sys/dev/pccbb/pccbb.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/pci/pci.c#12 integrate .. //depot/projects/vimage-commit/src/sys/dev/ppbus/vpo.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/pst/pst-iop.c#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/rp/rp.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/siis/siis.c#1 branch .. //depot/projects/vimage-commit/src/sys/dev/siis/siis.h#1 branch .. //depot/projects/vimage-commit/src/sys/dev/sound/pci/hda/hdac.c#10 integrate .. //depot/projects/vimage-commit/src/sys/dev/sound/usb/uaudio.c#11 integrate .. //depot/projects/vimage-commit/src/sys/dev/twe/twe.c#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/uart/uart_cpu_powerpc.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/controller/at91dci.c#9 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/controller/atmegadci.c#9 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/controller/avr32dci.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/controller/ehci.c#10 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/controller/ehci_pci.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/controller/musb_otg.c#9 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/controller/ohci.c#10 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/controller/ohci_pci.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/controller/uhci.c#10 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/controller/uhci_pci.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/controller/usb_controller.c#10 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/controller/uss820dci.c#9 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/input/ukbd.c#7 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/input/ums.c#7 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/net/usb_ethernet.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/serial/u3g.c#8 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/serial/ulpt.c#7 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/usb_busdma.c#8 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/usb_compat_linux.c#8 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/usb_compat_linux.h#6 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/usb_controller.h#9 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/usb_dev.c#7 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/usb_dev.h#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/usb_device.c#12 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/usb_handle_request.c#8 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/usb_hid.c#7 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/usb_hub.c#11 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/usb_parse.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/usb_process.c#6 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/usb_process.h#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/usb_request.c#9 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/usb_transfer.c#11 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/usbdevs#18 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/usbdi.h#7 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/wlan/if_uath.c#7 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/wlan/if_upgt.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/xen/blkback/blkback.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/xen/netback/netback.c#4 integrate .. //depot/projects/vimage-commit/src/sys/fs/nfs/nfsport.h#8 integrate .. //depot/projects/vimage-commit/src/sys/fs/nfsclient/nfs_clbio.c#5 integrate .. //depot/projects/vimage-commit/src/sys/fs/nfsclient/nfs_clrpcops.c#4 integrate .. //depot/projects/vimage-commit/src/sys/fs/nfsclient/nfs_clstate.c#6 integrate .. //depot/projects/vimage-commit/src/sys/fs/nfsclient/nfs_clsubs.c#2 integrate .. //depot/projects/vimage-commit/src/sys/fs/nfsclient/nfs_clvfsops.c#7 integrate .. //depot/projects/vimage-commit/src/sys/fs/nfsclient/nfs_clvnops.c#6 integrate .. //depot/projects/vimage-commit/src/sys/fs/procfs/procfs_map.c#6 integrate .. //depot/projects/vimage-commit/src/sys/fs/unionfs/union_subr.c#6 integrate .. //depot/projects/vimage-commit/src/sys/geom/part/g_part_gpt.c#7 integrate .. //depot/projects/vimage-commit/src/sys/geom/vinum/geom_vinum.c#8 integrate .. //depot/projects/vimage-commit/src/sys/i386/acpica/acpi_machdep.c#7 integrate .. //depot/projects/vimage-commit/src/sys/i386/bios/smapi.c#5 integrate .. //depot/projects/vimage-commit/src/sys/i386/bios/smbios.c#3 integrate .. //depot/projects/vimage-commit/src/sys/i386/bios/vpd.c#3 integrate .. //depot/projects/vimage-commit/src/sys/i386/conf/GENERIC#15 integrate .. //depot/projects/vimage-commit/src/sys/i386/conf/NOTES#15 integrate .. //depot/projects/vimage-commit/src/sys/i386/i386/initcpu.c#5 integrate .. //depot/projects/vimage-commit/src/sys/i386/i386/local_apic.c#10 integrate .. //depot/projects/vimage-commit/src/sys/i386/i386/machdep.c#12 integrate .. //depot/projects/vimage-commit/src/sys/i386/i386/mp_machdep.c#13 integrate .. //depot/projects/vimage-commit/src/sys/i386/i386/pmap.c#12 integrate .. //depot/projects/vimage-commit/src/sys/i386/i386/trap.c#8 integrate .. //depot/projects/vimage-commit/src/sys/i386/i386/vm_machdep.c#8 integrate .. //depot/projects/vimage-commit/src/sys/i386/include/apicvar.h#8 integrate .. //depot/projects/vimage-commit/src/sys/i386/include/cpufunc.h#10 integrate .. //depot/projects/vimage-commit/src/sys/i386/include/md_var.h#4 integrate .. //depot/projects/vimage-commit/src/sys/i386/include/pmap.h#8 integrate .. //depot/projects/vimage-commit/src/sys/i386/include/pmc_mdep.h#5 integrate .. //depot/projects/vimage-commit/src/sys/i386/include/sf_buf.h#3 integrate .. //depot/projects/vimage-commit/src/sys/i386/include/smp.h#6 integrate .. //depot/projects/vimage-commit/src/sys/i386/xen/mp_machdep.c#7 integrate .. //depot/projects/vimage-commit/src/sys/i386/xen/pmap.c#10 integrate .. //depot/projects/vimage-commit/src/sys/ia64/ia64/genassym.c#3 integrate .. //depot/projects/vimage-commit/src/sys/ia64/ia64/interrupt.c#4 integrate .. //depot/projects/vimage-commit/src/sys/ia64/ia64/machdep.c#6 integrate .. //depot/projects/vimage-commit/src/sys/ia64/ia64/mp_machdep.c#7 integrate .. //depot/projects/vimage-commit/src/sys/ia64/ia64/pmap.c#6 integrate .. //depot/projects/vimage-commit/src/sys/ia64/include/smp.h#4 integrate .. //depot/projects/vimage-commit/src/sys/kern/init_main.c#15 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_exec.c#12 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_exit.c#14 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_fork.c#15 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_jail.c#19 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_linker.c#14 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_lock.c#11 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_mutex.c#8 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_poll.c#12 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_proc.c#9 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_prot.c#15 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_rwlock.c#8 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_shutdown.c#7 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_sx.c#9 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_sysctl.c#12 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_uuid.c#13 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_vimage.c#22 delete .. //depot/projects/vimage-commit/src/sys/kern/link_elf_obj.c#10 integrate .. //depot/projects/vimage-commit/src/sys/kern/subr_bus.c#9 integrate .. //depot/projects/vimage-commit/src/sys/kern/subr_kdb.c#4 integrate .. //depot/projects/vimage-commit/src/sys/kern/subr_pcpu.c#9 integrate .. //depot/projects/vimage-commit/src/sys/kern/subr_sglist.c#2 integrate .. //depot/projects/vimage-commit/src/sys/kern/subr_smp.c#7 integrate .. //depot/projects/vimage-commit/src/sys/kern/subr_taskqueue.c#5 integrate .. //depot/projects/vimage-commit/src/sys/kern/sys_socket.c#9 integrate .. //depot/projects/vimage-commit/src/sys/kern/tty_pts.c#11 integrate .. //depot/projects/vimage-commit/src/sys/kern/tty_pty.c#6 integrate .. //depot/projects/vimage-commit/src/sys/kern/tty_ttydisc.c#6 integrate .. //depot/projects/vimage-commit/src/sys/kern/uipc_domain.c#10 integrate .. //depot/projects/vimage-commit/src/sys/kern/uipc_socket.c#15 integrate .. //depot/projects/vimage-commit/src/sys/kern/uipc_syscalls.c#13 integrate .. //depot/projects/vimage-commit/src/sys/kern/uipc_usrreq.c#12 integrate .. //depot/projects/vimage-commit/src/sys/kern/vfs_bio.c#15 integrate .. //depot/projects/vimage-commit/src/sys/kern/vfs_cache.c#16 integrate .. //depot/projects/vimage-commit/src/sys/kern/vfs_lookup.c#14 integrate .. //depot/projects/vimage-commit/src/sys/kern/vfs_mount.c#16 integrate .. //depot/projects/vimage-commit/src/sys/kern/vfs_syscalls.c#12 integrate .. //depot/projects/vimage-commit/src/sys/mips/include/smp.h#4 integrate .. //depot/projects/vimage-commit/src/sys/mips/mips/mp_machdep.c#6 integrate .. //depot/projects/vimage-commit/src/sys/mips/mips/pmap.c#11 integrate .. //depot/projects/vimage-commit/src/sys/modules/Makefile#22 integrate .. //depot/projects/vimage-commit/src/sys/modules/if_epair/Makefile#1 branch .. //depot/projects/vimage-commit/src/sys/modules/ispfw/Makefile#3 integrate .. //depot/projects/vimage-commit/src/sys/modules/ispfw/isp_2400_multi/Makefile#1 branch .. //depot/projects/vimage-commit/src/sys/modules/ispfw/isp_2500/Makefile#1 branch .. //depot/projects/vimage-commit/src/sys/modules/ispfw/isp_2500_multi/Makefile#1 branch .. //depot/projects/vimage-commit/src/sys/modules/siis/Makefile#1 branch .. //depot/projects/vimage-commit/src/sys/modules/wlan/Makefile#8 integrate .. //depot/projects/vimage-commit/src/sys/modules/zfs/Makefile#7 integrate .. //depot/projects/vimage-commit/src/sys/net/bpf.c#14 integrate .. //depot/projects/vimage-commit/src/sys/net/bpf_buffer.c#4 integrate .. //depot/projects/vimage-commit/src/sys/net/bpf_zerocopy.c#5 integrate .. //depot/projects/vimage-commit/src/sys/net/bpfdesc.h#4 integrate .. //depot/projects/vimage-commit/src/sys/net/bridgestp.c#11 integrate .. //depot/projects/vimage-commit/src/sys/net/flowtable.c#5 integrate .. //depot/projects/vimage-commit/src/sys/net/flowtable.h#4 integrate .. //depot/projects/vimage-commit/src/sys/net/if.c#28 integrate .. //depot/projects/vimage-commit/src/sys/net/if_bridge.c#13 integrate .. //depot/projects/vimage-commit/src/sys/net/if_clone.c#10 integrate .. //depot/projects/vimage-commit/src/sys/net/if_clone.h#4 integrate .. //depot/projects/vimage-commit/src/sys/net/if_ef.c#10 integrate .. //depot/projects/vimage-commit/src/sys/net/if_enc.c#8 integrate .. //depot/projects/vimage-commit/src/sys/net/if_epair.c#2 integrate .. //depot/projects/vimage-commit/src/sys/net/if_ethersubr.c#14 integrate .. //depot/projects/vimage-commit/src/sys/net/if_faith.c#11 integrate .. //depot/projects/vimage-commit/src/sys/net/if_gif.c#17 integrate .. //depot/projects/vimage-commit/src/sys/net/if_gif.h#13 integrate .. //depot/projects/vimage-commit/src/sys/net/if_gre.c#12 integrate .. //depot/projects/vimage-commit/src/sys/net/if_llatbl.c#5 integrate .. //depot/projects/vimage-commit/src/sys/net/if_loop.c#22 integrate .. //depot/projects/vimage-commit/src/sys/net/if_mib.c#15 integrate .. //depot/projects/vimage-commit/src/sys/net/if_spppsubr.c#13 integrate .. //depot/projects/vimage-commit/src/sys/net/if_stf.c#14 integrate .. //depot/projects/vimage-commit/src/sys/net/if_tun.c#12 integrate .. //depot/projects/vimage-commit/src/sys/net/if_var.h#20 integrate .. //depot/projects/vimage-commit/src/sys/net/if_vlan.c#13 integrate .. //depot/projects/vimage-commit/src/sys/net/netisr.c#10 integrate .. //depot/projects/vimage-commit/src/sys/net/netisr.h#7 integrate .. //depot/projects/vimage-commit/src/sys/net/raw_cb.c#14 integrate .. //depot/projects/vimage-commit/src/sys/net/raw_cb.h#7 integrate .. //depot/projects/vimage-commit/src/sys/net/raw_usrreq.c#14 integrate .. //depot/projects/vimage-commit/src/sys/net/route.c#19 integrate .. //depot/projects/vimage-commit/src/sys/net/rtsock.c#19 integrate .. //depot/projects/vimage-commit/src/sys/net/vnet.c#2 integrate .. //depot/projects/vimage-commit/src/sys/net/vnet.h#12 integrate .. //depot/projects/vimage-commit/src/sys/net80211/ieee80211.c#15 integrate .. //depot/projects/vimage-commit/src/sys/net80211/ieee80211_crypto.c#5 integrate .. //depot/projects/vimage-commit/src/sys/net80211/ieee80211_crypto.h#6 integrate .. //depot/projects/vimage-commit/src/sys/net80211/ieee80211_ddb.c#16 integrate .. //depot/projects/vimage-commit/src/sys/net80211/ieee80211_freebsd.c#15 integrate .. //depot/projects/vimage-commit/src/sys/net80211/ieee80211_hwmp.c#2 integrate .. //depot/projects/vimage-commit/src/sys/net80211/ieee80211_input.c#10 integrate .. //depot/projects/vimage-commit/src/sys/net80211/ieee80211_input.h#5 integrate .. //depot/projects/vimage-commit/src/sys/net80211/ieee80211_ioctl.h#8 integrate .. //depot/projects/vimage-commit/src/sys/net80211/ieee80211_mesh.c#2 integrate .. //depot/projects/vimage-commit/src/sys/net80211/ieee80211_mesh.h#2 integrate .. //depot/projects/vimage-commit/src/sys/net80211/ieee80211_output.c#15 integrate .. //depot/projects/vimage-commit/src/sys/net80211/ieee80211_scan_sta.c#10 integrate .. //depot/projects/vimage-commit/src/sys/netatalk/at_control.c#5 integrate .. //depot/projects/vimage-commit/src/sys/netgraph/atm/ng_atm.c#10 integrate .. //depot/projects/vimage-commit/src/sys/netgraph/bluetooth/socket/ng_btsocket.c#4 integrate .. //depot/projects/vimage-commit/src/sys/netgraph/netgraph.h#13 integrate .. //depot/projects/vimage-commit/src/sys/netgraph/ng_base.c#20 integrate .. //depot/projects/vimage-commit/src/sys/netgraph/ng_bridge.c#7 integrate .. //depot/projects/vimage-commit/src/sys/netgraph/ng_eiface.c#17 integrate .. //depot/projects/vimage-commit/src/sys/netgraph/ng_ether.c#16 integrate .. //depot/projects/vimage-commit/src/sys/netgraph/ng_gif.c#10 integrate .. //depot/projects/vimage-commit/src/sys/netgraph/ng_iface.c#16 integrate .. //depot/projects/vimage-commit/src/sys/netgraph/ng_pipe.c#5 integrate .. //depot/projects/vimage-commit/src/sys/netgraph/ng_socket.c#4 integrate .. //depot/projects/vimage-commit/src/sys/netgraph/ng_source.c#5 integrate .. //depot/projects/vimage-commit/src/sys/netinet/icmp6.h#7 integrate .. //depot/projects/vimage-commit/src/sys/netinet/icmp_var.h#7 integrate .. //depot/projects/vimage-commit/src/sys/netinet/if_ether.c#17 integrate .. //depot/projects/vimage-commit/src/sys/netinet/igmp.c#26 integrate .. //depot/projects/vimage-commit/src/sys/netinet/in.c#19 integrate .. //depot/projects/vimage-commit/src/sys/netinet/in_gif.c#12 integrate .. //depot/projects/vimage-commit/src/sys/netinet/in_mcast.c#19 integrate .. //depot/projects/vimage-commit/src/sys/netinet/in_pcb.c#20 integrate .. //depot/projects/vimage-commit/src/sys/netinet/in_pcb.h#16 integrate .. //depot/projects/vimage-commit/src/sys/netinet/in_proto.c#8 integrate .. //depot/projects/vimage-commit/src/sys/netinet/in_rmx.c#17 integrate .. //depot/projects/vimage-commit/src/sys/netinet/in_var.h#11 integrate .. //depot/projects/vimage-commit/src/sys/netinet/ip_carp.c#15 integrate .. //depot/projects/vimage-commit/src/sys/netinet/ip_divert.c#17 integrate .. //depot/projects/vimage-commit/src/sys/netinet/ip_fastfwd.c#12 integrate .. //depot/projects/vimage-commit/src/sys/netinet/ip_fw.h#15 integrate .. //depot/projects/vimage-commit/src/sys/netinet/ip_icmp.c#13 integrate .. //depot/projects/vimage-commit/src/sys/netinet/ip_input.c#22 integrate .. //depot/projects/vimage-commit/src/sys/netinet/ip_ipsec.c#15 integrate .. //depot/projects/vimage-commit/src/sys/netinet/ip_mroute.c#17 integrate .. //depot/projects/vimage-commit/src/sys/netinet/ip_options.c#12 integrate .. //depot/projects/vimage-commit/src/sys/netinet/ip_output.c#19 integrate .. //depot/projects/vimage-commit/src/sys/netinet/ip_var.h#9 integrate .. //depot/projects/vimage-commit/src/sys/netinet/ipfw/ip_fw2.c#3 integrate .. //depot/projects/vimage-commit/src/sys/netinet/ipfw/ip_fw_nat.c#3 integrate .. //depot/projects/vimage-commit/src/sys/netinet/ipfw/ip_fw_pfil.c#3 integrate .. //depot/projects/vimage-commit/src/sys/netinet/raw_ip.c#18 integrate .. //depot/projects/vimage-commit/src/sys/netinet/sctp_auth.c#5 integrate .. //depot/projects/vimage-commit/src/sys/netinet/sctp_indata.c#11 integrate .. //depot/projects/vimage-commit/src/sys/netinet/sctp_input.c#10 integrate .. //depot/projects/vimage-commit/src/sys/netinet/sctp_os_bsd.h#12 integrate .. //depot/projects/vimage-commit/src/sys/netinet/sctp_output.c#13 integrate .. //depot/projects/vimage-commit/src/sys/netinet/sctp_pcb.c#13 integrate .. //depot/projects/vimage-commit/src/sys/netinet/sctp_sysctl.c#9 integrate .. //depot/projects/vimage-commit/src/sys/netinet/sctp_sysctl.h#8 integrate .. //depot/projects/vimage-commit/src/sys/netinet/sctp_timer.c#8 integrate .. //depot/projects/vimage-commit/src/sys/netinet/sctp_uio.h#11 integrate .. //depot/projects/vimage-commit/src/sys/netinet/sctputil.c#10 integrate .. //depot/projects/vimage-commit/src/sys/netinet/sctputil.h#5 integrate .. //depot/projects/vimage-commit/src/sys/netinet/tcp_hostcache.c#16 integrate .. //depot/projects/vimage-commit/src/sys/netinet/tcp_input.c#18 integrate .. //depot/projects/vimage-commit/src/sys/netinet/tcp_offload.c#11 integrate .. //depot/projects/vimage-commit/src/sys/netinet/tcp_output.c#16 integrate .. //depot/projects/vimage-commit/src/sys/netinet/tcp_reass.c#14 integrate .. //depot/projects/vimage-commit/src/sys/netinet/tcp_sack.c#14 integrate .. //depot/projects/vimage-commit/src/sys/netinet/tcp_subr.c#24 integrate .. //depot/projects/vimage-commit/src/sys/netinet/tcp_syncache.c#22 integrate .. //depot/projects/vimage-commit/src/sys/netinet/tcp_timer.c#13 integrate .. //depot/projects/vimage-commit/src/sys/netinet/tcp_timewait.c#18 integrate .. //depot/projects/vimage-commit/src/sys/netinet/tcp_usrreq.c#15 integrate .. //depot/projects/vimage-commit/src/sys/netinet/tcp_var.h#14 integrate .. //depot/projects/vimage-commit/src/sys/netinet/udp_usrreq.c#21 integrate .. //depot/projects/vimage-commit/src/sys/netinet/udp_var.h#9 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/dest6.c#10 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/frag6.c#15 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/icmp6.c#20 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/in6.c#17 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/in6_gif.c#12 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/in6_ifattach.c#18 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/in6_mcast.c#6 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/in6_pcb.c#16 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/in6_proto.c#13 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/in6_rmx.c#18 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/in6_src.c#14 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/in6_var.h#9 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/ip6_forward.c#11 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/ip6_input.c#20 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/ip6_ipsec.c#13 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/ip6_mroute.c#15 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/ip6_output.c#14 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/ip6_var.h#11 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/mld6.c#19 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/nd6.c#19 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/nd6.h#11 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/nd6_nbr.c#14 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/nd6_rtr.c#16 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/raw_ip6.c#16 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/raw_ip6.h#5 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/route6.c#11 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/scope6.c#15 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/tcp6_var.h#5 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/udp6_usrreq.c#17 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/ah_var.h#4 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/esp_var.h#4 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/ipcomp_var.h#4 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/ipip_var.h#5 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/ipsec.c#22 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/ipsec.h#12 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/ipsec6.h#8 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/ipsec_input.c#12 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/ipsec_mbuf.c#10 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/ipsec_output.c#12 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/key.c#18 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/key_debug.h#7 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/keysock.c#13 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/keysock.h#6 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/xform_ah.c#12 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/xform_esp.c#13 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/xform_ipcomp.c#12 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/xform_ipip.c#14 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/xform_tcp.c#6 integrate .. //depot/projects/vimage-commit/src/sys/nfsclient/bootp_subr.c#11 integrate .. //depot/projects/vimage-commit/src/sys/nfsclient/nfs_diskless.c#12 integrate .. //depot/projects/vimage-commit/src/sys/nfsclient/nfs_subs.c#8 integrate .. //depot/projects/vimage-commit/src/sys/nfsclient/nfs_vnops.c#16 integrate .. //depot/projects/vimage-commit/src/sys/pc98/cbus/fdc.c#3 integrate .. //depot/projects/vimage-commit/src/sys/pc98/conf/NOTES#10 integrate .. //depot/projects/vimage-commit/src/sys/powerpc/booke/pmap.c#11 integrate .. //depot/projects/vimage-commit/src/sys/powerpc/include/smp.h#5 integrate .. //depot/projects/vimage-commit/src/sys/powerpc/mpc85xx/lbc.h#3 integrate .. //depot/projects/vimage-commit/src/sys/powerpc/powerpc/mp_machdep.c#6 integrate .. //depot/projects/vimage-commit/src/sys/security/audit/audit.c#11 integrate .. //depot/projects/vimage-commit/src/sys/security/audit/audit.h#8 integrate .. //depot/projects/vimage-commit/src/sys/security/audit/audit_arg.c#7 integrate .. //depot/projects/vimage-commit/src/sys/security/audit/audit_bsm.c#8 integrate .. //depot/projects/vimage-commit/src/sys/security/audit/audit_bsm_errno.c#2 integrate .. //depot/projects/vimage-commit/src/sys/security/audit/audit_bsm_klib.c#8 integrate .. //depot/projects/vimage-commit/src/sys/security/audit/audit_bsm_token.c#8 integrate .. //depot/projects/vimage-commit/src/sys/security/audit/audit_private.h#9 integrate .. //depot/projects/vimage-commit/src/sys/sparc64/include/param.h#5 integrate .. //depot/projects/vimage-commit/src/sys/sparc64/include/smp.h#4 integrate .. //depot/projects/vimage-commit/src/sys/sparc64/sparc64/pmap.c#8 integrate .. //depot/projects/vimage-commit/src/sys/sun4v/include/smp.h#4 integrate .. //depot/projects/vimage-commit/src/sys/sys/bus.h#5 integrate .. //depot/projects/vimage-commit/src/sys/sys/domain.h#5 integrate .. //depot/projects/vimage-commit/src/sys/sys/jail.h#13 integrate .. //depot/projects/vimage-commit/src/sys/sys/kernel.h#12 integrate .. //depot/projects/vimage-commit/src/sys/sys/lock.h#8 integrate .. //depot/projects/vimage-commit/src/sys/sys/param.h#27 integrate .. //depot/projects/vimage-commit/src/sys/sys/pcpu.h#7 integrate .. //depot/projects/vimage-commit/src/sys/sys/priv.h#12 integrate .. //depot/projects/vimage-commit/src/sys/sys/sglist.h#2 integrate .. //depot/projects/vimage-commit/src/sys/sys/smp.h#5 integrate .. //depot/projects/vimage-commit/src/sys/sys/sockio.h#7 integrate .. //depot/projects/vimage-commit/src/sys/sys/sysctl.h#15 integrate .. //depot/projects/vimage-commit/src/sys/sys/systm.h#10 integrate .. //depot/projects/vimage-commit/src/sys/sys/taskqueue.h#4 integrate .. //depot/projects/vimage-commit/src/sys/sys/ucred.h#8 integrate .. //depot/projects/vimage-commit/src/sys/sys/user.h#8 integrate .. //depot/projects/vimage-commit/src/sys/sys/vimage.h#32 delete .. //depot/projects/vimage-commit/src/sys/ufs/ffs/ffs_softdep.c#7 integrate .. //depot/projects/vimage-commit/src/sys/vm/device_pager.c#6 integrate .. //depot/projects/vimage-commit/src/sys/vm/sg_pager.c#1 branch .. //depot/projects/vimage-commit/src/sys/vm/vm.h#5 integrate .. //depot/projects/vimage-commit/src/sys/vm/vm_fault.c#9 integrate .. //depot/projects/vimage-commit/src/sys/vm/vm_map.c#9 integrate .. //depot/projects/vimage-commit/src/sys/vm/vm_meter.c#9 integrate .. //depot/projects/vimage-commit/src/sys/vm/vm_object.c#11 integrate .. //depot/projects/vimage-commit/src/sys/vm/vm_object.h#6 integrate .. //depot/projects/vimage-commit/src/sys/vm/vm_page.c#11 integrate .. //depot/projects/vimage-commit/src/sys/vm/vm_pageout.c#10 integrate .. //depot/projects/vimage-commit/src/sys/vm/vm_pager.c#5 integrate .. //depot/projects/vimage-commit/src/sys/vm/vm_pager.h#4 integrate .. //depot/projects/vimage-commit/src/sys/xdr/xdr_mbuf.c#4 integrate .. //depot/projects/vimage-commit/src/sys/xen/evtchn/evtchn.c#7 integrate .. //depot/projects/vimage-commit/src/sys/xen/xenbus/xenbus_probe.c#6 integrate Differences ... ==== //depot/projects/vimage-commit/src/sys/amd64/amd64/initcpu.c#5 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/initcpu.c,v 1.53 2009/01/12 19:17:35 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/initcpu.c,v 1.54 2009/07/22 14:32:38 kib Exp $"); #include "opt_cpu.h" @@ -65,6 +65,7 @@ u_int cpu_vendor_id; /* CPU vendor ID */ u_int cpu_fxsr; /* SSE enabled */ u_int cpu_mxcsr_mask; /* Valid bits in mxcsr */ +u_int cpu_clflush_line_size = 32; SYSCTL_UINT(_hw, OID_AUTO, via_feature_rng, CTLFLAG_RD, &via_feature_rng, 0, "VIA C3/C7 RNG feature available in CPU"); @@ -156,4 +157,12 @@ AMD64_CPU_FAMILY(cpu_id) == 0x6 && AMD64_CPU_MODEL(cpu_id) >= 0xf) init_via(); + + /* + * CPUID with %eax = 1, %ebx returns + * Bits 15-8: CLFLUSH line size + * (Value * 8 = cache line size in bytes) + */ + if ((cpu_feature & CPUID_CLFSH) != 0) + cpu_clflush_line_size = ((cpu_procinfo >> 8) & 0xff) * 8; } ==== //depot/projects/vimage-commit/src/sys/amd64/amd64/local_apic.c#10 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.58 2009/07/01 17:20:07 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.60 2009/08/14 21:05:08 jhb Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_kdtrace.h" @@ -123,7 +123,7 @@ { 1, 1, 0, 1, APIC_LVT_DM_NMI, 0 }, /* LINT1: NMI */ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_TIMER_INT }, /* Timer */ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_ERROR_INT }, /* Error */ - { 1, 1, 0, 1, APIC_LVT_DM_NMI, 0 }, /* PMC */ + { 1, 1, 1, 1, APIC_LVT_DM_NMI, 0 }, /* PMC */ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_THERMAL_INT }, /* Thermal */ }; @@ -305,11 +305,9 @@ lapic->lvt_lint0 = lvt_mode(la, LVT_LINT0, lapic->lvt_lint0); lapic->lvt_lint1 = lvt_mode(la, LVT_LINT1, lapic->lvt_lint1); -#ifdef HWPMC_HOOKS /* Program the PMC LVT entry if present. */ if (maxlvt >= LVT_PMC) lapic->lvt_pcint = lvt_mode(la, LVT_PMC, lapic->lvt_pcint); -#endif /* Program timer LVT and setup handler. */ lapic->lvt_timer = lvt_mode(la, LVT_TIMER, lapic->lvt_timer); @@ -332,6 +330,88 @@ intr_restore(eflags); } +void +lapic_reenable_pmc(void) +{ +#ifdef HWPMC_HOOKS + uint32_t value; + + value = lapic->lvt_pcint; + value &= ~APIC_LVT_M; + lapic->lvt_pcint = value; +#endif +} + +#ifdef HWPMC_HOOKS +static void +lapic_update_pmc(void *dummy) +{ + struct lapic *la; + + la = &lapics[lapic_id()]; + lapic->lvt_pcint = lvt_mode(la, LVT_PMC, lapic->lvt_pcint); +} +#endif + +int +lapic_enable_pmc(void) +{ +#ifdef HWPMC_HOOKS + u_int32_t maxlvt; + + /* Fail if the local APIC is not present. */ + if (lapic == NULL) + return (0); + + /* Fail if the PMC LVT is not present. */ + maxlvt = (lapic->version & APIC_VER_MAXLVT) >> MAXLVTSHIFT; + if (maxlvt < LVT_PMC) + return (0); + + lvts[LVT_PMC].lvt_masked = 0; + +#ifdef SMP + /* + * If hwpmc was loaded at boot time then the APs may not be + * started yet. In that case, don't forward the request to + * them as they will program the lvt when they start. + */ + if (smp_started) + smp_rendezvous(NULL, lapic_update_pmc, NULL, NULL); + else +#endif + lapic_update_pmc(NULL); + return (1); +#else + return (0); +#endif +} + +void +lapic_disable_pmc(void) +{ +#ifdef HWPMC_HOOKS + u_int32_t maxlvt; + + /* Fail if the local APIC is not present. */ + if (lapic == NULL) + return; + + /* Fail if the PMC LVT is not present. */ + maxlvt = (lapic->version & APIC_VER_MAXLVT) >> MAXLVTSHIFT; + if (maxlvt < LVT_PMC) + return; + + lvts[LVT_PMC].lvt_masked = 1; + +#ifdef SMP + /* The APs should always be started when hwpmc is unloaded. */ + KASSERT(mp_ncpus == 1 || smp_started, ("hwpmc unloaded too early")); +#endif + smp_rendezvous(NULL, lapic_update_pmc, NULL, NULL); +#endif +} + /* * Called by cpu_initclocks() on the BSP to setup the local APIC timer so * that it can drive hardclock, statclock, and profclock. This function @@ -1238,8 +1318,17 @@ KASSERT((vector & ~APIC_VECTOR_MASK) == 0, ("%s: invalid vector %d", __func__, vector)); - icrlo = vector | APIC_DELMODE_FIXED | APIC_DESTMODE_PHY | - APIC_LEVEL_DEASSERT | APIC_TRIGMOD_EDGE; + icrlo = APIC_DESTMODE_PHY | APIC_TRIGMOD_EDGE; + + /* + * IPI_STOP_HARD is just a "fake" vector used to send a NMI. + * Use special rules regard NMI if passed, otherwise specify + * the vector. + */ + if (vector == IPI_STOP_HARD) + icrlo |= APIC_DELMODE_NMI | APIC_LEVEL_ASSERT; + else + icrlo |= vector | APIC_DELMODE_FIXED | APIC_LEVEL_DEASSERT; destfield = 0; switch (dest) { case APIC_IPI_DEST_SELF: ==== //depot/projects/vimage-commit/src/sys/amd64/amd64/machdep.c#12 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.705 2009/07/09 09:34:11 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.709 2009/08/20 22:58:05 jkim Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -213,7 +213,12 @@ */ sysenv = getenv("smbios.system.product"); if (sysenv != NULL) { - if (strncmp(sysenv, "MacBook", 7) == 0) { + if (strncmp(sysenv, "MacBook1,1", 10) == 0 || + strncmp(sysenv, "MacBook3,1", 10) == 0 || + strncmp(sysenv, "MacBookPro1,1", 13) == 0 || + strncmp(sysenv, "MacBookPro1,2", 13) == 0 || + strncmp(sysenv, "MacBookPro3,1", 13) == 0 || + strncmp(sysenv, "Macmini1,1", 10) == 0) { if (bootverbose) printf("Disabling LEGACY_USB_EN bit on " "Intel ICH.\n"); @@ -231,19 +236,21 @@ #ifdef PERFMON perfmon_init(); #endif + realmem = Maxmem; + + /* + * Display physical memory if SMBIOS reports reasonable amount. + */ + memsize = 0; sysenv = getenv("smbios.memory.enabled"); if (sysenv != NULL) { - memsize = (uintmax_t)strtoul(sysenv, (char **)NULL, 10); + memsize = (uintmax_t)strtoul(sysenv, (char **)NULL, 10) << 10; freeenv(sysenv); - } else - memsize = 0; - if (memsize > 0) - printf("real memory = %ju (%ju MB)\n", memsize << 10, - memsize >> 10); - else - printf("real memory = %ju (%ju MB)\n", ptoa((uintmax_t)Maxmem), - ptoa((uintmax_t)Maxmem) / 1048576); - realmem = Maxmem; + } + if (memsize < ptoa((uintmax_t)cnt.v_free_count)) + memsize = ptoa((uintmax_t)Maxmem); + printf("real memory = %ju (%ju MB)\n", memsize, memsize >> 20); + /* * Display any holes after the first chunk of extended memory. */ ==== //depot/projects/vimage-commit/src/sys/amd64/amd64/mp_machdep.c#14 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.309 2009/06/23 22:42:39 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.310 2009/08/13 17:09:45 attilio Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -114,31 +114,12 @@ extern inthand_t IDTVEC(fast_syscall), IDTVEC(fast_syscall32); -#ifdef STOP_NMI -static volatile cpumask_t ipi_nmi_pending; - -static void ipi_nmi_selected(cpumask_t cpus); -#endif - /* * Local data and functions. */ -#ifdef STOP_NMI -/* - * Provide an alternate method of stopping other CPUs. If another CPU has - * disabled interrupts the conventional STOP IPI will be blocked. This - * NMI-based stop should get through in that case. - */ -static int stop_cpus_with_nmi = 1; -SYSCTL_INT(_debug, OID_AUTO, stop_cpus_with_nmi, CTLTYPE_INT | CTLFLAG_RW, - &stop_cpus_with_nmi, 0, ""); -TUNABLE_INT("debug.stop_cpus_with_nmi", &stop_cpus_with_nmi); -#else -#define stop_cpus_with_nmi 0 -#endif - static u_int logical_cpus; +static volatile cpumask_t ipi_nmi_pending; /* used to hold the AP's until we are ready to release them */ static struct mtx ap_boot_mtx; @@ -1158,12 +1139,14 @@ ipi = IPI_BITMAP_VECTOR; } -#ifdef STOP_NMI - if (ipi == IPI_STOP && stop_cpus_with_nmi) { - ipi_nmi_selected(cpus); - return; - } -#endif + /* + * IPI_STOP_HARD maps to a NMI and the trap handler needs a bit + * of help in order to understand what is the source. + * Set the mask of receiving CPUs for this purpose. + */ + if (ipi == IPI_STOP_HARD) + atomic_set_int(&ipi_nmi_pending, cpus); + CTR3(KTR_SMP, "%s: cpus: %x ipi: %x", __func__, cpus, ipi); while ((cpu = ffs(cpus)) != 0) { cpu--; @@ -1194,64 +1177,43 @@ ipi_all_but_self(u_int ipi) { - if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { + if (IPI_IS_BITMAPED(ipi)) { ipi_selected(PCPU_GET(other_cpus), ipi); return; } + + /* + * IPI_STOP_HARD maps to a NMI and the trap handler needs a bit + * of help in order to understand what is the source. + * Set the mask of receiving CPUs for this purpose. + */ + if (ipi == IPI_STOP_HARD) + atomic_set_int(&ipi_nmi_pending, PCPU_GET(other_cpus)); + CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); lapic_ipi_vectored(ipi, APIC_IPI_DEST_OTHERS); } -#ifdef STOP_NMI -/* - * send NMI IPI to selected CPUs - */ - -#define BEFORE_SPIN 1000000 - -static void -ipi_nmi_selected(cpumask_t cpus) -{ - int cpu; - register_t icrlo; - - icrlo = APIC_DELMODE_NMI | APIC_DESTMODE_PHY | APIC_LEVEL_ASSERT - | APIC_TRIGMOD_EDGE; - - CTR2(KTR_SMP, "%s: cpus: %x nmi", __func__, cpus); - - atomic_set_int(&ipi_nmi_pending, cpus); - - while ((cpu = ffs(cpus)) != 0) { - cpu--; - cpus &= ~(1 << cpu); - - KASSERT(cpu_apic_ids[cpu] != -1, - ("IPI NMI to non-existent CPU %d", cpu)); - - /* Wait for an earlier IPI to finish. */ - if (!lapic_ipi_wait(BEFORE_SPIN)) - panic("ipi_nmi_selected: previous IPI has not cleared"); - - lapic_ipi_raw(icrlo, cpu_apic_ids[cpu]); - } -} - int -ipi_nmi_handler(void) +ipi_nmi_handler() { - int cpumask = PCPU_GET(cpumask); + cpumask_t cpumask; - if (!(ipi_nmi_pending & cpumask)) - return 1; + /* + * As long as there is not a simple way to know about a NMI's + * source, if the bitmask for the current CPU is present in + * the global pending bitword an IPI_STOP_HARD has been issued + * and should be handled. + */ + cpumask = PCPU_GET(cpumask); + if ((ipi_nmi_pending & cpumask) == 0) + return (1); atomic_clear_int(&ipi_nmi_pending, cpumask); cpustop_handler(); - return 0; + return (0); } -#endif /* STOP_NMI */ - /* * Handle an IPI_STOP by saving our current context and spinning until we * are resumed. ==== //depot/projects/vimage-commit/src/sys/amd64/amd64/pmap.c#14 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.663 2009/07/12 23:31:20 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.668 2009/08/17 13:27:55 kib Exp $"); /* * Manages physical address maps. @@ -231,6 +231,7 @@ vm_page_t m, vm_prot_t prot, vm_page_t mpte); static void pmap_fill_ptp(pt_entry_t *firstpte, pt_entry_t newpte); static void pmap_insert_pt_page(pmap_t pmap, vm_page_t mpte); +static void pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva); static boolean_t pmap_is_modified_pvh(struct md_page *pvh); static void pmap_kenter_attr(vm_offset_t va, vm_paddr_t pa, int mode); static vm_page_t pmap_lookup_pt_page(pmap_t pmap, vm_offset_t va); @@ -752,21 +753,6 @@ /* The PAT bit is different for PTE's and PDE's. */ pat_flag = is_pde ? PG_PDE_PAT : PG_PTE_PAT; - /* If we don't support PAT, map extended modes to older ones. */ - if (!(cpu_feature & CPUID_PAT)) { - switch (mode) { - case PAT_UNCACHEABLE: - case PAT_WRITE_THROUGH: - case PAT_WRITE_BACK: - break; - case PAT_UNCACHED: - case PAT_WRITE_COMBINING: - case PAT_WRITE_PROTECTED: - mode = PAT_UNCACHEABLE; - break; - } - } - /* Map the caching mode to a PAT index. */ switch (mode) { case PAT_UNCACHEABLE: @@ -936,6 +922,40 @@ } #endif /* !SMP */ +static void +pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva) +{ + + KASSERT((sva & PAGE_MASK) == 0, + ("pmap_invalidate_cache_range: sva not page-aligned")); + KASSERT((eva & PAGE_MASK) == 0, + ("pmap_invalidate_cache_range: eva not page-aligned")); + + if (cpu_feature & CPUID_SS) + ; /* If "Self Snoop" is supported, do nothing. */ + else if (cpu_feature & CPUID_CLFSH) { + + /* + * Otherwise, do per-cache line flush. Use the mfence + * instruction to insure that previous stores are + * included in the write-back. The processor + * propagates flush to other processors in the cache + * coherence domain. + */ + mfence(); + for (; eva < sva; eva += cpu_clflush_line_size) + clflush(eva); + mfence(); + } else { + + /* + * No targeted cache flush methods are supported by CPU, + * globally invalidate cache as a last resort. + */ + pmap_invalidate_cache(); + } +} + /* * Are we current address space or kernel? */ @@ -2241,6 +2261,8 @@ " in pmap %p", va, pmap); return (FALSE); } + if (va < VM_MAXUSER_ADDRESS) + pmap->pm_stats.resident_count++; } mptepa = VM_PAGE_TO_PHYS(mpte); firstpte = (pt_entry_t *)PHYS_TO_DMAP(mptepa); @@ -3339,7 +3361,7 @@ int pat_mode; VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); - KASSERT(object->type == OBJT_DEVICE, + KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG, ("pmap_object_init_pt: non-device object")); if ((addr & (NBPDR - 1)) == 0 && (size & (NBPDR - 1)) == 0) { if (!vm_object_populate(object, pindex, pindex + atop(size))) @@ -4271,7 +4293,8 @@ void * pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode) { - vm_offset_t va, tmpva, offset; + vm_offset_t va, offset; + vm_size_t tmpsize; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Aug 23 09:21:58 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3F3921065692; Sun, 23 Aug 2009 09:21:58 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 02C65106568B for ; Sun, 23 Aug 2009 09:21:58 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E46008FC17 for ; Sun, 23 Aug 2009 09:21:57 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7N9LvvY043590 for ; Sun, 23 Aug 2009 09:21:57 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7N9LvUd043588 for perforce@freebsd.org; Sun, 23 Aug 2009 09:21:57 GMT (envelope-from zec@fer.hr) Date: Sun, 23 Aug 2009 09:21:57 GMT Message-Id: <200908230921.n7N9LvUd043588@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167645 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Aug 2009 09:21:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=167645 Change 167645 by zec@zec_tpx32 on 2009/08/23 09:21:54 IFC @ 167626 Affected files ... .. //depot/projects/vimage/src/share/man/man4/mfi.4#2 integrate .. //depot/projects/vimage/src/share/man/man4/mpt.4#3 integrate .. //depot/projects/vimage/src/share/man/man4/polling.4#2 integrate .. //depot/projects/vimage/src/share/man/man5/freebsd-update.conf.5#2 integrate .. //depot/projects/vimage/src/share/man/man7/release.7#2 integrate .. //depot/projects/vimage/src/share/man/man9/Makefile#12 integrate .. //depot/projects/vimage/src/share/man/man9/ieee80211.9#2 integrate .. //depot/projects/vimage/src/share/man/man9/ieee80211_amrr.9#1 branch .. //depot/projects/vimage/src/share/man/man9/ieee80211_beacon.9#1 branch .. //depot/projects/vimage/src/share/man/man9/ieee80211_bmiss.9#1 branch .. //depot/projects/vimage/src/share/man/man9/ieee80211_crypto.9#2 integrate .. //depot/projects/vimage/src/share/man/man9/ieee80211_ddb.9#1 branch .. //depot/projects/vimage/src/share/man/man9/ieee80211_input.9#2 integrate .. //depot/projects/vimage/src/share/man/man9/ieee80211_ioctl.9#2 delete .. //depot/projects/vimage/src/share/man/man9/ieee80211_node.9#2 integrate .. //depot/projects/vimage/src/share/man/man9/ieee80211_output.9#2 integrate .. //depot/projects/vimage/src/share/man/man9/ieee80211_proto.9#2 integrate .. //depot/projects/vimage/src/share/man/man9/ieee80211_radiotap.9#2 integrate .. //depot/projects/vimage/src/share/man/man9/ieee80211_regdomain.9#1 branch .. //depot/projects/vimage/src/share/man/man9/ieee80211_scan.9#1 branch .. //depot/projects/vimage/src/share/man/man9/ieee80211_vap.9#1 branch .. //depot/projects/vimage/src/share/man/man9/sglist.9#2 integrate .. //depot/projects/vimage/src/share/man/man9/taskqueue.9#2 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/local_apic.c#22 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/machdep.c#23 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/mp_machdep.c#25 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/pmap.c#33 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/trap.c#15 integrate .. //depot/projects/vimage/src/sys/amd64/conf/GENERIC#35 integrate .. //depot/projects/vimage/src/sys/amd64/conf/NOTES#20 integrate .. //depot/projects/vimage/src/sys/amd64/conf/XENHVM#4 integrate .. //depot/projects/vimage/src/sys/amd64/include/apicvar.h#9 integrate .. //depot/projects/vimage/src/sys/amd64/include/pmc_mdep.h#7 integrate .. //depot/projects/vimage/src/sys/amd64/include/smp.h#10 integrate .. //depot/projects/vimage/src/sys/arm/arm/pmap.c#23 integrate .. //depot/projects/vimage/src/sys/arm/at91/uart_dev_at91usart.c#12 integrate .. //depot/projects/vimage/src/sys/boot/i386/gptboot/gptboot.c#4 integrate .. //depot/projects/vimage/src/sys/cam/ata/ata_xpt.c#2 integrate .. //depot/projects/vimage/src/sys/cam/cam_ccb.h#6 integrate .. //depot/projects/vimage/src/sys/cam/cam_xpt.c#21 integrate .. //depot/projects/vimage/src/sys/cddl/compat/opensolaris/kern/opensolaris.c#5 integrate .. //depot/projects/vimage/src/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c#1 branch .. //depot/projects/vimage/src/sys/cddl/compat/opensolaris/rpc/xdr.h#2 integrate .. //depot/projects/vimage/src/sys/cddl/compat/opensolaris/sys/taskq.h#2 delete .. //depot/projects/vimage/src/sys/cddl/compat/opensolaris/sys/taskq_impl.h#2 delete .. //depot/projects/vimage/src/sys/cddl/compat/opensolaris/sys/vnode.h#8 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c#4 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c#3 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#6 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c#3 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h#3 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h#3 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#7 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#7 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#6 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#14 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/os/taskq.c#3 delete .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c#2 delete .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c#2 delete .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c#2 delete .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.h#4 delete .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/sys/taskq.h#1 branch .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h#3 integrate .. //depot/projects/vimage/src/sys/conf/options#56 integrate .. //depot/projects/vimage/src/sys/conf/options.amd64#8 integrate .. //depot/projects/vimage/src/sys/conf/options.i386#9 integrate .. //depot/projects/vimage/src/sys/conf/options.pc98#7 integrate .. //depot/projects/vimage/src/sys/contrib/pf/net/pf.c#26 integrate .. //depot/projects/vimage/src/sys/contrib/pf/net/pfvar.h#11 integrate .. //depot/projects/vimage/src/sys/dev/aac/aac.c#12 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi.c#23 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_battery.c#8 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_cpu.c#14 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_dock.c#6 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_thermal.c#9 integrate .. //depot/projects/vimage/src/sys/dev/adb/adb_bus.c#6 integrate .. //depot/projects/vimage/src/sys/dev/amdtemp/amdtemp.c#3 integrate .. //depot/projects/vimage/src/sys/dev/amr/amr.c#10 integrate .. //depot/projects/vimage/src/sys/dev/ata/ata-all.c#17 integrate .. //depot/projects/vimage/src/sys/dev/atkbdc/psm.c#14 integrate .. //depot/projects/vimage/src/sys/dev/bge/if_bge.c#24 integrate .. //depot/projects/vimage/src/sys/dev/bktr/bktr_os.c#6 integrate .. //depot/projects/vimage/src/sys/dev/drm/drm_drv.c#17 integrate .. //depot/projects/vimage/src/sys/dev/drm/drm_pciids.h#10 integrate .. //depot/projects/vimage/src/sys/dev/drm/r600_cp.c#5 integrate .. //depot/projects/vimage/src/sys/dev/drm/radeon_drv.h#8 integrate .. //depot/projects/vimage/src/sys/dev/e1000/if_em.c#15 integrate .. //depot/projects/vimage/src/sys/dev/e1000/if_igb.c#13 integrate .. //depot/projects/vimage/src/sys/dev/hptrr/hptrr_osm_bsd.c#4 integrate .. //depot/projects/vimage/src/sys/dev/hwpmc/hwpmc_core.c#5 integrate .. //depot/projects/vimage/src/sys/dev/hwpmc/hwpmc_piv.c#8 integrate .. //depot/projects/vimage/src/sys/dev/hwpmc/hwpmc_ppro.c#9 integrate .. //depot/projects/vimage/src/sys/dev/hwpmc/hwpmc_x86.c#8 integrate .. //depot/projects/vimage/src/sys/dev/ips/ips_pci.c#4 integrate .. //depot/projects/vimage/src/sys/dev/iscsi/initiator/isc_cam.c#4 integrate .. //depot/projects/vimage/src/sys/dev/isp/isp_freebsd.c#16 integrate .. //depot/projects/vimage/src/sys/dev/mfi/mfi.c#21 integrate .. //depot/projects/vimage/src/sys/dev/mfi/mfi_ioctl.h#7 integrate .. //depot/projects/vimage/src/sys/dev/mfi/mfireg.h#7 integrate .. //depot/projects/vimage/src/sys/dev/mii/e1000phy.c#9 integrate .. //depot/projects/vimage/src/sys/dev/mlx/mlx.c#8 integrate .. //depot/projects/vimage/src/sys/dev/mmc/mmc.c#15 integrate .. //depot/projects/vimage/src/sys/dev/pccbb/pccbb.c#13 integrate .. //depot/projects/vimage/src/sys/dev/ppbus/vpo.c#8 integrate .. //depot/projects/vimage/src/sys/dev/pst/pst-iop.c#4 integrate .. //depot/projects/vimage/src/sys/dev/rp/rp.c#7 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/hda/hdac.c#38 integrate .. //depot/projects/vimage/src/sys/dev/twe/twe.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/usb_controller.c#12 integrate .. //depot/projects/vimage/src/sys/dev/usb/input/ukbd.c#11 integrate .. //depot/projects/vimage/src/sys/dev/usb/net/usb_ethernet.c#8 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_busdma.c#8 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_compat_linux.c#12 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_dev.c#14 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_handle_request.c#12 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_hub.c#16 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_process.c#7 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_process.h#6 integrate .. //depot/projects/vimage/src/sys/dev/usb/wlan/if_upgt.c#7 integrate .. //depot/projects/vimage/src/sys/dev/xen/blkback/blkback.c#5 integrate .. //depot/projects/vimage/src/sys/dev/xen/netback/netback.c#4 integrate .. //depot/projects/vimage/src/sys/fs/nfsclient/nfs_clsubs.c#2 integrate .. //depot/projects/vimage/src/sys/geom/part/g_part_gpt.c#12 integrate .. //depot/projects/vimage/src/sys/i386/acpica/acpi_machdep.c#12 integrate .. //depot/projects/vimage/src/sys/i386/bios/smapi.c#6 integrate .. //depot/projects/vimage/src/sys/i386/bios/smbios.c#4 integrate .. //depot/projects/vimage/src/sys/i386/bios/vpd.c#4 integrate .. //depot/projects/vimage/src/sys/i386/conf/GENERIC#38 integrate .. //depot/projects/vimage/src/sys/i386/conf/NOTES#33 integrate .. //depot/projects/vimage/src/sys/i386/i386/local_apic.c#22 integrate .. //depot/projects/vimage/src/sys/i386/i386/machdep.c#25 integrate .. //depot/projects/vimage/src/sys/i386/i386/mp_machdep.c#24 integrate .. //depot/projects/vimage/src/sys/i386/i386/trap.c#16 integrate .. //depot/projects/vimage/src/sys/i386/include/apicvar.h#12 integrate .. //depot/projects/vimage/src/sys/i386/include/pmc_mdep.h#6 integrate .. //depot/projects/vimage/src/sys/i386/include/smp.h#12 integrate .. //depot/projects/vimage/src/sys/i386/xen/mp_machdep.c#14 integrate .. //depot/projects/vimage/src/sys/ia64/ia64/genassym.c#2 integrate .. //depot/projects/vimage/src/sys/ia64/ia64/interrupt.c#10 integrate .. //depot/projects/vimage/src/sys/ia64/ia64/machdep.c#17 integrate .. //depot/projects/vimage/src/sys/ia64/ia64/mp_machdep.c#11 integrate .. //depot/projects/vimage/src/sys/ia64/include/smp.h#3 integrate .. //depot/projects/vimage/src/sys/kern/kern_jail.c#34 integrate .. //depot/projects/vimage/src/sys/kern/kern_lock.c#20 integrate .. //depot/projects/vimage/src/sys/kern/kern_mutex.c#17 integrate .. //depot/projects/vimage/src/sys/kern/kern_poll.c#25 integrate .. //depot/projects/vimage/src/sys/kern/kern_rwlock.c#19 integrate .. //depot/projects/vimage/src/sys/kern/kern_shutdown.c#15 integrate .. //depot/projects/vimage/src/sys/kern/kern_sx.c#18 integrate .. //depot/projects/vimage/src/sys/kern/kern_sysctl.c#29 integrate .. //depot/projects/vimage/src/sys/kern/subr_bus.c#21 integrate .. //depot/projects/vimage/src/sys/kern/subr_kdb.c#6 integrate .. //depot/projects/vimage/src/sys/kern/subr_pcpu.c#11 integrate .. //depot/projects/vimage/src/sys/kern/subr_sglist.c#2 integrate .. //depot/projects/vimage/src/sys/kern/subr_smp.c#16 integrate .. //depot/projects/vimage/src/sys/kern/subr_taskqueue.c#9 integrate .. //depot/projects/vimage/src/sys/kern/tty_pty.c#10 integrate .. //depot/projects/vimage/src/sys/kern/vfs_cache.c#30 integrate .. //depot/projects/vimage/src/sys/mips/include/smp.h#3 integrate .. //depot/projects/vimage/src/sys/mips/mips/mp_machdep.c#5 integrate .. //depot/projects/vimage/src/sys/modules/zfs/Makefile#11 integrate .. //depot/projects/vimage/src/sys/net/bpf.c#41 integrate .. //depot/projects/vimage/src/sys/net/bpf_buffer.c#3 integrate .. //depot/projects/vimage/src/sys/net/bpf_zerocopy.c#4 integrate .. //depot/projects/vimage/src/sys/net/bpfdesc.h#6 integrate .. //depot/projects/vimage/src/sys/net/flowtable.c#8 integrate .. //depot/projects/vimage/src/sys/net/flowtable.h#7 integrate .. //depot/projects/vimage/src/sys/net/if.c#91 integrate .. //depot/projects/vimage/src/sys/net/if_var.h#45 integrate .. //depot/projects/vimage/src/sys/net/rtsock.c#43 integrate .. //depot/projects/vimage/src/sys/net/vnet.c#3 integrate .. //depot/projects/vimage/src/sys/net/vnet.h#31 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211.c#41 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_input.c#22 integrate .. //depot/projects/vimage/src/sys/netatalk/at_control.c#6 integrate .. //depot/projects/vimage/src/sys/netinet/ip_carp.c#27 integrate .. //depot/projects/vimage/src/sys/netinet/ip_fw.h#37 integrate .. //depot/projects/vimage/src/sys/netinet/ip_output.c#44 integrate .. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw2.c#8 integrate .. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw_pfil.c#5 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_indata.c#36 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_input.c#36 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_os_bsd.h#33 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_output.c#42 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_pcb.c#40 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_timer.c#25 integrate .. //depot/projects/vimage/src/sys/netinet/sctputil.c#41 integrate .. //depot/projects/vimage/src/sys/netinet/sctputil.h#22 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_timewait.c#37 integrate .. //depot/projects/vimage/src/sys/netinet6/in6.c#42 integrate .. //depot/projects/vimage/src/sys/nfsclient/nfs_subs.c#13 integrate .. //depot/projects/vimage/src/sys/pc98/cbus/fdc.c#4 integrate .. //depot/projects/vimage/src/sys/pc98/conf/NOTES#14 integrate .. //depot/projects/vimage/src/sys/powerpc/include/smp.h#6 integrate .. //depot/projects/vimage/src/sys/powerpc/powerpc/mp_machdep.c#7 integrate .. //depot/projects/vimage/src/sys/security/audit/audit.h#14 integrate .. //depot/projects/vimage/src/sys/sparc64/include/smp.h#7 integrate .. //depot/projects/vimage/src/sys/sun4v/include/smp.h#6 integrate .. //depot/projects/vimage/src/sys/sys/bus.h#8 integrate .. //depot/projects/vimage/src/sys/sys/jail.h#18 integrate .. //depot/projects/vimage/src/sys/sys/lock.h#13 integrate .. //depot/projects/vimage/src/sys/sys/pcpu.h#15 integrate .. //depot/projects/vimage/src/sys/sys/sglist.h#2 integrate .. //depot/projects/vimage/src/sys/sys/smp.h#7 integrate .. //depot/projects/vimage/src/sys/sys/sysctl.h#42 integrate .. //depot/projects/vimage/src/sys/sys/systm.h#22 integrate .. //depot/projects/vimage/src/sys/sys/taskqueue.h#4 integrate .. //depot/projects/vimage/src/sys/ufs/ffs/ffs_softdep.c#16 integrate .. //depot/projects/vimage/src/sys/xdr/xdr_mbuf.c#4 integrate .. //depot/projects/vimage/src/sys/xen/xenbus/xenbus_probe.c#8 integrate Differences ... ==== //depot/projects/vimage/src/share/man/man4/mfi.4#2 (text) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/mfi.4,v 1.7 2008/01/17 19:36:13 ambrisko Exp $ +.\" $FreeBSD: src/share/man/man4/mfi.4,v 1.8 2009/08/15 11:47:05 trasz Exp $ .\" -.Dd January 17, 2008 +.Dd August 15, 2009 .Dt MFI 4 .Os .Sh NAME @@ -102,6 +102,7 @@ An attempt was made to remove a mounted volume. .El .Sh SEE ALSO +.Xr mfiutil 1 , .Xr amr 4 , .Xr pci 4 .Sh HISTORY ==== //depot/projects/vimage/src/share/man/man4/mpt.4#3 (text+ko) ==== @@ -33,9 +33,9 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/mpt.4,v 1.16 2009/05/05 13:48:53 trasz Exp $ +.\" $FreeBSD: src/share/man/man4/mpt.4,v 1.17 2009/08/15 11:47:05 trasz Exp $ .\" -.Dd April 6, 2007 +.Dd August 15, 2009 .Dt MPT 4 .Os .Sh NAME @@ -155,6 +155,7 @@ .Xr sa 4 , .Xr scsi 4 , .Xr targ 4 , +.Xr mptutil 8 , .Xr gmultipath 8 .Rs .%T "LSI Logic Website" ==== //depot/projects/vimage/src/share/man/man4/polling.4#2 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/polling.4,v 1.27 2007/04/06 14:25:14 brueffer Exp $ +.\" $FreeBSD: src/share/man/man4/polling.4,v 1.28 2009/08/15 23:07:43 rwatson Exp $ .\" .Dd April 6, 2007 .Dt POLLING 4 @@ -87,6 +87,16 @@ It is turned on and off with help of .Xr ifconfig 8 command. +.Pp +The historic +.Va kern.polling.enable , +which enabled polling for all interfaces, can be replaced with the following +code: +.Bd -literal +for i in `ifconfig -l` ; + do ifconfig $i polling; # use -polling to disable +done +.Ed .Ss MIB Variables The operation of .Nm @@ -156,15 +166,6 @@ How many active devices have registered for .Nm . .Pp -.It Va kern.polling.enable -Legacy MIB, that was used to enable or disable polling globally. -Currently if set to 1, -.Nm -is enabled on all capable interfaces. -If set to 0, -.Nm -is disabled on all interfaces. -.Pp .It Va kern.polling.short_ticks .It Va kern.polling.lost_polls .It Va kern.polling.pending_polls ==== //depot/projects/vimage/src/share/man/man5/freebsd-update.conf.5#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man5/freebsd-update.conf.5,v 1.4 2008/08/02 00:13:51 cperciva Exp $ +.\" $FreeBSD: src/share/man/man5/freebsd-update.conf.5,v 1.5 2009/08/19 20:47:31 simon Exp $ .\" -.Dd August 30, 2006 +.Dd August 19, 2009 .Dt FREEBSD-UPDATE.CONF 5 .Os FreeBSD .Sh NAME @@ -48,7 +48,7 @@ .Pp The possible options and their meanings are as follows: .Pp -.Bl -tag -width "KeepModifiedMetadata" +.Bl -tag -width ".Cm BackupKernelSymbolFiles" .It Cm KeyPrint The single parameter following this keyword is the SHA256 hash of the RSA key which will be trusted to sign updates. @@ -171,6 +171,54 @@ which might be installed, of which .Cm freebsd-update should identify which in fact are present ("no"). +.It Cm BackupKernel +The single parameter following this keyword must be +.Dq yes +or +.Dq no +and specifies whether +.Cm freebsd-update +will create a backup of the old kernel before installing a new kernel. +This backup kernel can be used to recover a system where the newly +installed kernel somehow did not work. +Note that the backup kernel is not reverted to its original state by +the +.Cm freebsd-update +rollback command. +.It Cm BackupKernelDir +This keyword sets the directory which is used to store a backup +kernel, if the BackupKernel feature is enabled. +If the directory already exist, and it was not created by +.Cm freebsd-update , +the directory is skipped. +In the case of the primary directory name not being usable, a number +starting with +.Sq 1 +is appended to the directory name. +Like with the primary directory name, the constructed directory name is +only used if the path name does not exist, or if the directory was +previously created by +.Cm freebsd-update . +If the constructed directory still exist the appended number is +incremented with 1 and the directory search process restarted. +Should the number increment go above 9, +.Cm freebsd-update +will abort. +.It Cm BackupKernelSymbolFiles +The single parameter following this keyword must be +.Dq yes +or +.Dq no +and specifies whether +.Cm freebsd-update +will also backup kernel symbol files, if they exist. +The kernel symbol files takes up a lot of disk space and are not +needed for recovery purposes. +If the symbol files are needed, after recovering a system using the +backup kernel, the +.Cm freebsd-update +rollback command will recreate the symbol files along with the old +kernel. .El .Sh FILES .Bl -tag -width "/etc/freebsd-update.conf" ==== //depot/projects/vimage/src/share/man/man7/release.7#2 (text+ko) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man7/release.7,v 1.58 2006/11/11 23:18:28 ru Exp $ +.\" $FreeBSD: src/share/man/man7/release.7,v 1.60 2009/08/18 12:24:27 trhodes Exp $ .\" -.Dd November 12, 2006 +.Dd August 17, 2009 .Dt RELEASE 7 .Os .Sh NAME @@ -332,6 +332,10 @@ A script that will be run in the .Xr chroot 8 environment immediately after any local patches are applied. +.It Va MAKE_DVD +If defined, build a bootable ISO DVD image in the CD-ROM +stage directory. +This option may not be available for all architectures. .It Va MAKE_ISOS If defined, bootable ISO CD-ROM images will be created from the contents of the CD-ROM stage directory. @@ -390,6 +394,35 @@ .It Va SEPARATE_LIVEFS Store the live file system on its own CD-ROM image rather than placing it on the first disc. +.It Va SVNCMDARGS +Additional arguments for svn +.Ic checkout +and +.Ic switch +commands. +.It Va SVNROOT +The location of the FreeBSD SVN source repository. +If this variable is set, +then the source tree will be extracted using Subversion rather than +CVS. +.It Va SVNBRANCH +The branch to check out from a SVN source repository. +It is specified as a path such as +.Pa head +or +.Pa stable/7 . +If this variable is not set, +then the branch that corresponds to the current value of +.Va RELEASETAG +will be used. +If neither +.Va SVNBRANCH +nor +.Va RELEASETAG +are set, +then the +.Pa head +branch will be used. .It Va TARGET_ARCH The target machine processor architecture. This is analogous to the @@ -474,6 +507,7 @@ .Xr install 1 , .Xr make 1 , .Xr patch 1 , +.Xr svn 1 Pq Pa ports/devel/subversion-freebsd , .Xr uname 1 , .Xr md 4 , .Xr make.conf 5 , @@ -511,7 +545,7 @@ into a shape where it could at least automate most of the tediousness of building a release in a sterile environment. .Pp -With its almost 1000 revisions spread over multiple branches, the +At near 1000 revisions spread over multiple branches, the .Xr cvs 1 log of .Pa src/release/Makefile ==== //depot/projects/vimage/src/share/man/man9/Makefile#12 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/man/man9/Makefile,v 1.357 2009/07/11 17:36:59 cperciva Exp $ +# $FreeBSD: src/share/man/man9/Makefile,v 1.358 2009/08/12 21:03:16 sam Exp $ MAN= accept_filter.9 \ accf_data.9 \ @@ -121,13 +121,19 @@ hashinit.9 \ hexdump.9 \ ieee80211.9 \ + ieee80211_amrr.9 \ + ieee80211_beacon.9 \ + ieee80211_bmiss.9 \ ieee80211_crypto.9 \ + ieee80211_ddb.9 \ ieee80211_input.9 \ - ieee80211_ioctl.9 \ ieee80211_node.9 \ ieee80211_output.9 \ ieee80211_proto.9 \ ieee80211_radiotap.9 \ + ieee80211_regdomain.9 \ + ieee80211_scan.9 \ + ieee80211_vap.9 \ ifnet.9 \ inittodr.9 \ insmntque.9 \ @@ -627,52 +633,62 @@ MLINKS+=hashinit.9 hashdestroy.9 \ hashinit.9 hashinit_flags.9 \ hashinit.9 phashinit.9 -MLINKS+=ieee80211.9 ieee80211_attach.9 \ - ieee80211.9 ieee80211_chan2ieee.9 \ - ieee80211.9 ieee80211_chan2mode.9 \ - ieee80211.9 ieee80211_ieee2mhz.9 \ - ieee80211.9 ieee80211_ifattach.9 \ - ieee80211.9 ieee80211_ifdetach.9 \ - ieee80211.9 ieee80211_media2rate.9 \ - ieee80211.9 ieee80211_media_change.9 \ - ieee80211.9 ieee80211_media_init.9 \ - ieee80211.9 ieee80211_media_status.9 \ - ieee80211.9 ieee80211_mhz2ieee.9 \ - ieee80211.9 ieee80211_rate2media.9 \ - ieee80211.9 ieee80211_setmode.9 \ - ieee80211.9 ieee80211_watchdog.9 -MLINKS+=ieee80211_crypto.9 ieee80211_crypto_attach.9 \ - ieee80211_crypto.9 ieee80211_crypto_detach.9 \ - ieee80211_crypto.9 ieee80211_wep_crypt.9 -MLINKS+=ieee80211_input.9 ieee80211_decap.9 \ - ieee80211_input.9 ieee80211_recv_mgmt.9 -MLINKS+=ieee80211_ioctl.9 ieee80211_cfgget.9 \ - ieee80211_ioctl.9 ieee80211_cfgset.9 -MLINKS+=ieee80211_node.9 ieee80211_alloc_node.9 \ - ieee80211_node.9 ieee80211_begin_scan.9 \ - ieee80211_node.9 ieee80211_create_ibss.9 \ - ieee80211_node.9 ieee80211_dup_bss.9 \ - ieee80211_node.9 ieee80211_end_scan.9 \ - ieee80211_node.9 ieee80211_find_node.9 \ - ieee80211_node.9 ieee80211_free_allnodes.9 \ +MLINKS+=ieee80211.9 ieee80211_ifattach.9 \ + ieee80211.9 ieee80211_ifdetach.9 +MLINKS+=ieee80211_amrr.9 ieee80211_amrr_init.9 \ + ieee80211_amrr.9 ieee80211_amrr_cleanup.9 \ + ieee80211_amrr.9 ieee80211_amrr_setinterval.9 \ + ieee80211_amrr.9 ieee80211_amrr_node_init.9 \ + ieee80211_amrr.9 ieee80211_amrr_tx_complete.9 \ + ieee80211_amrr.9 ieee80211_amrr_tx_update.9 +MLINKS+=ieee80211_beacon.9 ieee80211_beacon_alloc.9 \ + ieee80211_beacon.9 ieee80211_beacon_update.9 \ + ieee80211_beacon.9 ieee80211_beacon_notify.9 +MLINKS+=ieee80211_bmiss.9 ieee80211_beacon_miss.9 +MLINKS+=ieee80211_crypto.9 ieee80211_key_update_begin.9 \ + ieee80211_crypto.9 ieee80211_key_update_end.9 \ + ieee80211_crypto.9 ieee80211_crypto_newkey.9 \ + ieee80211_crypto.9 ieee80211_crypto_setkey.9 \ + ieee80211_crypto.9 ieee80211_crypto_delglobalkeys.9 \ + ieee80211_crypto.9 ieee80211_crypto_reload_keys.9 \ + ieee80211_crypto.9 ieee80211_crypto_decap.9 \ + ieee80211_crypto.9 ieee80211_crypto_encap.9 \ + ieee80211_crypto.9 ieee80211_crypto_demic.9 \ + ieee80211_crypto.9 ieee80211_crypto_enmic.9 \ + ieee80211_crypto.9 ieee80211_notify_michael_failure.9 \ + ieee80211_crypto.9 ieee80211_notify_replay_failure.9 \ + ieee80211_crypto.9 ieee80211_crypto_register.9 \ + ieee80211_crypto.9 ieee80211_crypto_unregister.9 \ + ieee80211_crypto.9 ieee80211_crypto_available.9 +MLINKS+=ieee80211_input.9 ieee80211_input_all.9 +MLINKS+=ieee80211_node.9 ieee80211_find_rxnode.9 \ + ieee80211_node.9 ieee80211_find_rxnode_withkey.9 \ + ieee80211_node.9 ieee80211_ref_node.9 \ + ieee80211_node.9 ieee80211_unref_node.9 \ ieee80211_node.9 ieee80211_free_node.9 \ ieee80211_node.9 ieee80211_iterate_nodes.9 \ - ieee80211_node.9 ieee80211_lookup_node.9 \ - ieee80211_node.9 ieee80211_next_scan.9 \ - ieee80211_node.9 ieee80211_node_attach.9 \ - ieee80211_node.9 ieee80211_node_detach.9 \ - ieee80211_node.9 ieee80211_node_lateattach.9 \ - ieee80211_node.9 ieee80211_timeout_nodes.9 -MLINKS+=ieee80211_output.9 ieee80211_add_rates.9 \ - ieee80211_output.9 ieee80211_add_xrates.9 \ - ieee80211_output.9 ieee80211_encap.9 \ - ieee80211_output.9 ieee80211_send_mgmt.9 -MLINKS+=ieee80211_proto.9 ieee80211_dump_pkt.9 \ - ieee80211_proto.9 ieee80211_fix_rate.9 \ - ieee80211_proto.9 ieee80211_print_essid.9 \ - ieee80211_proto.9 ieee80211_proto_attach.9 \ - ieee80211_proto.9 ieee80211_proto_detach.9 -MLINKS+=ieee80211_radiotap.9 radiotap.9 + ieee80211_node.9 ieee80211_dump_node.9 \ + ieee80211_node.9 ieee80211_dump_nodes.9 +MLINKS+=ieee80211_output.9 M_WME_GETAC.9 \ + ieee80211_output.9 M_SEQNO_GET.9 \ + ieee80211_output.9 ieee80211_process_callback.9 +MLINKS+=ieee80211_proto.9 ieee80211_new_state.9 \ + ieee80211_proto.9 ieee80211_start_all.9 \ + ieee80211_proto.9 ieee80211_stop_all.9 \ + ieee80211_proto.9 ieee80211_suspend_all.9 \ + ieee80211_proto.9 ieee80211_resume_all.9 \ + ieee80211_proto.9 ieee80211_waitfor_parent.9 +MLINKS+=ieee80211_radiotap.9 radiotap.9 \ + ieee80211_radiotap.9 ieee80211_radiotap_attach.9 \ + ieee80211_radiotap.9 ieee80211_radiotap_active_vap.9 \ + ieee80211_radiotap.9 ieee80211_radiotap_active.9 \ + ieee80211_radiotap.9 ieee80211_radiotap_tx.9 +MLINKS+=ieee80211_regdomain.9 ieee80211_init_channels.9 \ + ieee80211_regdomain.9 ieee80211_sort_channels.9 \ + ieee80211_regdomain.9 ieee80211_alloc_countryie.9 +MLINKS+=ieee80211_vap.9 ieee80211_vap_setup.9 \ + ieee80211_vap.9 ieee80211_vap_attach.9 \ + ieee80211_vap.9 ieee80211_vap_detach.9 MLINKS+=ifnet.9 ifaddr.9 \ ifnet.9 if_data.9 \ ifnet.9 ifqueue.9 ==== //depot/projects/vimage/src/share/man/man9/ieee80211.9#2 (text+ko) ==== @@ -1,6 +1,5 @@ .\" -.\" Copyright (c) 2004 Bruce M. Simpson -.\" Copyright (c) 2004 Darron Broad +.\" Copyright (c) 2009 Sam Leffler, Errno Consulting .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -24,237 +23,539 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/ieee80211.9,v 1.4 2005/06/28 20:15:18 hmp Exp $ -.\" $Id: ieee80211.9,v 1.5 2004/03/04 12:33:27 bruce Exp $ +.\" $FreeBSD: src/share/man/man9/ieee80211.9,v 1.5 2009/08/12 21:03:16 sam Exp $ .\" -.Dd March 2, 2004 -.Dt IEEE80211 9 +.Dd August 4, 2009 +.Dt NET80211 9 .Os .Sh NAME -.Nm ieee80211_ifattach , ieee80211_ifdetach , -.Nm ieee80211_mhz2ieee , ieee80211_chan2ieee , ieee80211_ieee2mhz , -.Nm ieee80211_media_init , ieee80211_media_change , ieee80211_media_status , -.Nm ieee80211_watchdog , -.Nm ieee80211_setmode , ieee80211_chan2mode , -.Nm ieee80211_rate2media , ieee80211_media2rate -.Nd core 802.11 network stack functions +.Nm net80211 +.Nd 802.11 network layer .Sh SYNOPSIS .In net80211/ieee80211_var.h -.In net80211/ieee80211_proto.h .Ft void -.Fn ieee80211_ifattach "struct ifnet *ifp" +.Fn ieee80211_ifattach "struct ieee80211com *ic" "const uint8_t macaddr[IEEE80211_ADDR_LEN]" .Ft void -.Fn ieee80211_ifdetach "struct ifnet *ifp" -.Ft u_int -.Fn ieee80211_mhz2ieee "u_int freq" "u_int flags" -.Ft u_int -.Fn ieee80211_chan2ieee "struct ieee80211com *ic" "struct ieee80211_channel *c" -.Ft u_int -.Fn ieee80211_ieee2mhz "u_int chan" "u_int flags" -.Ft void -.Fo ieee80211_media_init -.Fa "struct ifnet *ifp" "ifm_change_cb_t media_change" -.Fa "ifm_stat_cb_t media_stat" -.Fc -.Fa int -.Fn ieee80211_media_change "struct ifnet *ifp" -.Fa void -.Fn ieee80211_media_status "struct ifnet *ifp" "struct ifmediareq *imr" -.Ft void -.Fn ieee80211_watchdog "struct ifnet *ifp" -.Ft int -.Fn ieee80211_setmode "struct ieee80211com *ic" "enum ieee80211_phymode mode" -.Ft enum ieee80211_phymode -.Fo ieee80211_chan2mode -.Fa "struct ieee80211com *ic" "struct ieee80211_channel *chan" -.Fc -.Ft int -.Fo ieee80211_rate2media -.Fa "struct ieee80211com *ic" "int rate" "enum ieee80211_phymode mode" -.Fc -.Ft int -.Fn ieee80211_media2rate "int mword" +.Fn ieee80211_ifdetach "struct ieee80211com *ic" .Sh DESCRIPTION +IEEE 802.11 device drivers are written to use the infrastructure provided +by the +.Nm +software layer. +This software provides a support framework for drivers that includes +ifnet cloning, state management, and a user management API by which +applications interact with 802.11 devices. +Most drivers depend on the +.Nm +layer for protocol services but devices that off-load functionality +may bypass the layer to connect directly to the device +(e.g. the +.Xr ndis 4 +emulation support does this). +.Pp +A +.Nm +device driver implements a virtual radio API that is exported to +users through network interfaces (aka vaps) that are cloned from the +underlying device. +These interfaces have an operating mode +(station, adhoc, hostap, wds, monitor, etc.) +that is fixed for the lifetime of the interface. +Devices that can support multiple concurrent interfaces allow +multiple vaps to be cloned. +This enables construction of interesting applications such as +an AP vap and one or more WDS vaps +or multiple AP vaps, each with a different security model. The -.Nm ieee80211 -collection of functions are used to manage wireless network interfaces in the -system which use the system's software 802.11 network stack. -Most of these functions require that attachment to the stack is performed -before calling. -Several utility functions are also provided; these are safe to call from -any driver without prior initialization. +.Nm +layer virtualizes most 802.11 state +and coordinates vap state changes including scheduling multiple vaps. +State that is not virtualized includes the current channel and +WME/WMM parameters. +Protocol processing is typically handled entirely in the +.Nm +layer with drivers responsible purely for moving data between the host +and device. +Similarly, +.Nm +handles most +.Xr ioctl 2 +requests without entering the driver; +instead drivers are notified of state changes that +require their involvement. .Pp -.\" +The virtual radio interface defined by the +.Nm +layer means that drivers must be structured to follow specific rules. +Drivers that support only a single interface at any time must still +follow these rules. +.Sh DATA STRUCTURES +The virtual radio architecture splits state between a single per-device +.Vt ieee80211com +structure and one or more +.Vt ieee80211vap +structures. +Drivers are expected to setup various shared state in these structures +at device attach and during vap creation but otherwise should treat them +as read-only. The -.Fn ieee80211_ifattach -function attaches the network interface -.Fa ifp -to the 802.11 network stack layer. -This function must be called before using any of the -.Nm ieee80211 -functions which need to store driver state across invocations; +.Vt ieee80211com +structure is allocated by the +.Nm +layer as adjunct data to a device's +.Vt ifnet ; +it is accessed through the +.Vt if_l2com +structure member. The -.Vt struct ifnet -instance pointed to by -.Fa ifp -MUST be an instance of -.Vt struct ieee80211com , -with various fields initialized to tell -.Nm ieee80211 -about its capabilities. -This function performs Ethernet and BPF attachment (by calling -.Fn ether_ifattach -and -.Fn bpfattach2 ) -on behalf of the caller. -It also implements the -.Vt ifmedia -interface. +.Vt ieee80211vap +structure is allocated by the driver in the +.Dq vap create +method +and should be extended with any driver-private state. +This technique of giving the driver control to allocate data structures +is used for other +.Nm +data structures and should be exploited to maintain driver-private state +together with public +.Nm +state. .Pp -.\" -The -.Fn ieee80211_ifdetach -function frees any -.Nm ieee80211 -structures associated with the driver, and performs Ethernet and BPF -detachment on behalf of the caller. +The other main data structures are the station, or node, table +that tracks peers in the local BSS, and the channel table that defines +the current set of available radio channels. +Both tables are bound to the +.Vt ieee80211com +structure and shared by all vaps. +Long-lasting references to a node are counted to guard against +premature reclamation. +In particular every packet sent/received holds a node reference +(either explicitly for transmit or implicitly on receive). .Pp -.\" The -.Fn ieee80211_mhz2ieee -utility function converts the frequency -.Fa freq -(specified in MHz) to an IEEE 802.11 channel number. +.Vt ieee80211com +and +.Vt ieee80211vap +structures also hold a collection of method pointers that drivers +fill-in and/or override to take control of certain operations. +These methods are the primary way drivers are bound to the +.Nm +layer and are described below. +.Sh DRIVER ATTACH/DETACH +Drivers attach to the +.Nm +layer with the +.Fn ieee80211_ifattach +function. +The driver is expected to allocate and setup any device-private +data structures before passing control. The -.Fa flags -argument is a hint which specifies whether the frequency is in -the 2GHz ISM band -.Pq Vt IEEE80211_CHAN_2GHZ -or the 5GHz band -.Pq Vt IEEE80211_CHAN_5GHZ ; -appropriate clipping of the result is then performed. +.Vt ieee80211com +structure must be pre-initialized with state required to setup the +.Nm +layer: +.Bl -tag -width ic_channels +.It Dv ic_ifp +Backpointer to the physical device's ifnet. +.It Dv ic_caps +Device/driver capabilities; see below for a complete description. +.It Dv ic_channels +Table of channels the device is capable of operating on. +This is initially provided by the driver but may be changed +through calls that change the regulatory state. +.It Dv ic_nchan +Number of entries in +.Dv ic_channels . +.El .Pp -.\" -The -.Fn ieee80211_chan2ieee -function converts the channel specified in -.Fa *c -to an IEEE channel number for the driver -.Fa ic . -If the conversion would be invalid, an error message is printed to the -system console. -This function REQUIRES that the driver is hooked up to the -.Nm ieee80211 -subsystem. +On return from +.Fn ieee80211_ifattach +the driver is expected to override default callback functions in the +.Vt ieee80211com +structure to register it's private routines. +Methods marked with a +.Dq * +must be provided by the driver. +.Bl -tag -width ic_channels +.It Dv ic_vap_create* +Create a vap instance of the specified type (operating mode). +Any fixed BSSID and/or MAC address is provided. +Drivers that support multi-bssid operation may honor the requested BSSID +or assign their own. +.It Dv ic_vap_delete* +Destroy a vap instance created with +.Dv ic_vap_create . +.It Dv ic_getradiocaps +Return the list of calibrated channels for the radio. +The default method returns the current list of channels +(space permitting). +.It Dv ic_setregdomain +Process a request to change regulatory state. +The routine may reject a request or constrain changes (e.g. reduce +transmit power caps). +The default method accepts all proposed changes. +.It Dv ic_send_mgmt +Send an 802.11 management frame. +The default method fabricates the frame using +.Nm +state and passes it to the driver through the +.Dv ic_raw_xmit +method. +.It Dv ic_raw_xmit +Transmit a raw 802.11 frame. +The default method drops the frame and generates a message on the console. +.It Dv ic_updateslot +Update hardware state after an 802.11 IFS slot time change, +There is no default method; the pointer may be NULL in which case +it will not be used. +.It Dv ic_update_mcast +Update hardware for a change in the multicast packet filter, +The default method prints a console message. +.It Dv ic_update_promisc +Update hardware for a change in the promiscuous mode setting. +The default method prints a console message. +.It Dv ic_newassoc +Update driver/device state for association to a new AP (in station mode) +or when a new station associates (e.g. in AP mode). +There is no default method; the pointer may be NULL in which case +it will not be used. +.It Dv ic_node_alloc +Allocate and initialize a +.Vt ieee80211_node +structure. +This method cannot sleep. +The default method allocates zero'd memory using +.Xr malloc 9. +Drivers should override this method to allocate extended storage +for their own needs. +Memory allocated by the driver must be tagged with +.Dv M_80211_NODE +to balance the memory allocation statistics. +.It Dv ic_node_free +Reclaim storage of a node allocated by +.Dv ic_node_alloc . +Drivers are expected to +.Em interpose +their own method to cleanup private state but must call through +this method to allow +.Nm +to reclaim it's private state. +.It Dv ic_node_cleanup +Cleanup state in a +.Vt ieee80211_node +created by +.Dv ic_node_alloc . +This operation is distinguished from +.Dv ic_node_free +in that it may be called long before the node is actually reclaimed +to cleanup adjunct state. +This can happen, for example, when a node must not be reclaimed +due to references held by packets in the transmit queue. +Drivers typically interpose +.Dv ic_node_cleanup +instead of +.Dv ic_node_free . +.It Dv ic_node_age +Age, and potentially reclaim, resources associated with a node. +The default method ages frames on the power-save queue (in AP mode) +and pending frames in the receive reorder queues (for stations using A-MPDU). +.It Dv ic_node_drain +Reclaim all optional resources associated with a node. +This call is used to free up resources when they are in short supply, +.It Dv ic_node_getrssi +Return the Receive Signal Strength Indication (RSSI) in .5 dBm units for +the specified node. +This interface returns a subset of the information +returned by +.Dv ic_node_getsignal , +The default method calculates a filtered average over the last ten +samples passed in to +.Xr ieee80211_input 9 +or +.Xr ieee80211_input_all 9 . +.It Dv ic_node_getsignal +Return the RSSI and noise floor (in .5 dBm units) for a station. +The default method calculates RSSI as described above; +the noise floor returned is the last value supplied to +.Xr ieee80211_input 9 +or +.Xr ieee80211_input_all 9 . +.It Dv ic_node_getmimoinfo +Return MIMO radio state for a station in support of the +.Dv IEEE80211_IOC_STA_INFO +ioctl request. +The default method returns nothing. +.It Dv ic_scan_start* +Prepare driver/hardware state for scanning. +This callback is done in a sleepable context. +.It Dv ic_scan_end* +Restore driver/hardware state after scanning completes. +This callback is done in a sleepable context. +.It Dv ic_set_channel* +Set the current radio channel using +.Vt ic_curchan . +This callback is done in a sleepable context. +.It Dv ic_scan_curchan +Start scanning on a channel. +This method is called immediately after each channel change +and must initiate the work to scan a channel and schedule a timer >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Aug 23 10:53:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BC6FD1065693; Sun, 23 Aug 2009 10:53:38 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8105A106568B for ; Sun, 23 Aug 2009 10:53:38 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 562C58FC14 for ; Sun, 23 Aug 2009 10:53:38 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7NArcDL051428 for ; Sun, 23 Aug 2009 10:53:38 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7NArcTK051426 for perforce@freebsd.org; Sun, 23 Aug 2009 10:53:38 GMT (envelope-from pgj@FreeBSD.org) Date: Sun, 23 Aug 2009 10:53:38 GMT Message-Id: <200908231053.n7NArcTK051426@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 167648 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Aug 2009 10:53:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=167648 Change 167648 by pgj@beehive on 2009/08/23 10:52:40 IFC Affected files ... .. //depot/projects/docproj_hu/www/en/releng/index.sgml#31 integrate .. //depot/projects/docproj_hu/www/hu/share/sgml/events.xml#16 integrate .. //depot/projects/docproj_hu/www/share/sgml/press.xml#20 integrate Differences ... ==== //depot/projects/docproj_hu/www/en/releng/index.sgml#31 (text+ko) ==== @@ -1,6 +1,6 @@ - + @@ -81,12 +81,16 @@ HEAD + Open + committers + Active development branch for 9-CURRENT. + + + + RELENG_8 Frozen &contact.re; - Active development branch for 8-CURRENT. Code Freeze in - preparation for 8.0-RELEASE. All commits must have - &contact.re; approval until after RELENG_8 branch has been - created. + Development branch for 8-STABLE. ==== //depot/projects/docproj_hu/www/hu/share/sgml/events.xml#16 (text+ko) ==== @@ -17,7 +17,7 @@ - $FreeBSD: www/hu/share/sgml/events.xml,v 1.6 2009/08/16 20:39:07 pgj Exp $ + $FreeBSD: www/hu/share/sgml/events.xml,v 1.7 2009/08/21 22:28:14 pgj Exp $ ==== //depot/projects/docproj_hu/www/share/sgml/press.xml#20 (text+ko) ==== @@ -9,7 +9,7 @@ - $FreeBSD: www/share/sgml/press.xml,v 1.85 2009/07/19 22:07:54 danger Exp $ + $FreeBSD: www/share/sgml/press.xml,v 1.86 2009/08/21 22:22:17 danger Exp $ @@ -17,6 +17,23 @@ 2009 + 8 + + + &os; 8 Getting New Routing Architecture + http://www.internetnews.com/dev-news/article.php/3835746 + InternetNews.com ‐ WebMediaBrands Inc. + http://www.internetnews.com/ + 21 August 2009 + Sean Michael Kerner +

This article introduces recent work on &os; network routing + architecture done by senior network architect from Blue Coat + ‐ Quing Li. Its main goal is to optimize &os; routing + code to better utilize parallel processing CPUs.

+
+
+ + 7 From owner-p4-projects@FreeBSD.ORG Sun Aug 23 11:31:20 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ADC68106568F; Sun, 23 Aug 2009 11:31:20 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 727D1106568B for ; Sun, 23 Aug 2009 11:31:20 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 614C48FC1D for ; Sun, 23 Aug 2009 11:31:20 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7NBVKMp055245 for ; Sun, 23 Aug 2009 11:31:20 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7NBVK3m055243 for perforce@freebsd.org; Sun, 23 Aug 2009 11:31:20 GMT (envelope-from pgj@FreeBSD.org) Date: Sun, 23 Aug 2009 11:31:20 GMT Message-Id: <200908231131.n7NBVK3m055243@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 167655 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Aug 2009 11:31:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=167655 Change 167655 by pgj@beehive on 2009/08/23 11:30:41 MFen (www): 1.85 -> 1.86 hu/share/sgml/press.xml Affected files ... .. //depot/projects/docproj_hu/www/hu/share/sgml/press.xml#19 edit Differences ... ==== //depot/projects/docproj_hu/www/hu/share/sgml/press.xml#19 (text+ko) ==== @@ -5,7 +5,7 @@ @@ -19,6 +19,31 @@ 2009 + 8 + + + A &os; 8 új útválasztási + architektúrát kap + http://www.internetnews.com/dev-news/article.php/3835746 + InternetNews.com ‐ WebMediaBrands Inc. + http://www.internetnews.com/ + 2009. augusztus 21. + Sean Michael Kerner +

A cikk bemutatja Quing Li, a Blue Coat hálózati + tervezõmérnökének a &os; + legújabb változatának + útválasztási + architektúráján végzett + munkáját. Az elsõdleges cél a &os; + hálózati + útválasztásért felelõs + részeinek párhuzamosítása + és ezáltal hatékonyabbá + tétele.

+
+
+ + 7 From owner-p4-projects@FreeBSD.ORG Sun Aug 23 11:41:32 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 54008106568F; Sun, 23 Aug 2009 11:41:32 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 18226106568B for ; Sun, 23 Aug 2009 11:41:32 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E097D8FC1A for ; Sun, 23 Aug 2009 11:41:31 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7NBfVmC056067 for ; Sun, 23 Aug 2009 11:41:31 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7NBfVJI056065 for perforce@freebsd.org; Sun, 23 Aug 2009 11:41:31 GMT (envelope-from pgj@FreeBSD.org) Date: Sun, 23 Aug 2009 11:41:31 GMT Message-Id: <200908231141.n7NBfVJI056065@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 167658 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Aug 2009 11:41:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=167658 Change 167658 by pgj@beehive on 2009/08/23 11:41:31 MFen (doc): 1.89 -> 1.91 hu_HU.ISO8859-2/books/handbook/desktop/chapter.sgml 1.7 -> 1.8 hu_HU.ISO8859-2/books/handbook/dtrace/chapter.sgml Affected files ... .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/desktop/chapter.sgml#20 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/dtrace/chapter.sgml#14 edit Differences ... ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/desktop/chapter.sgml#20 (text+ko) ==== @@ -6,7 +6,7 @@ The FreeBSD Hungarian Documentation Project Translated by: PALI, Gabor %SOURCE% en_US.ISO8859-1/books/handbook/desktop/chapter.sgml - %SRCID% 1.89 + %SRCID% 1.91 --> @@ -302,16 +302,21 @@ eredményül kapott oldalon láthatjuk az eddig telepített pluginok listáját, ahol mostanra már a &java; pluginnak is meg - kell jelennie. Amennyiben ez nem következne be, - root felhasználóként - adjuk ki az alábbi parancsot: + kell jelennie. Amennyiben ez nem következne be, mindegyik + felhasználónál adjuk ki az alábbi + parancsot: + + &prompt.user; ln -s /usr/local/diablo-jre1.6.0/plugin/i386/ns7/libjavaplugin_oji.so \ + $HOME/.mozilla/plugins/ + + Vagy ha a Diablo &jdk; csomagot + telepítettük: - &prompt.root; ln -s /usr/local/diablo-jre1.6.0/plugin/i386/ns7/libjavaplugin_oji.so \ - /usr/local/lib/browser_plugins/ + &prompt.user; ln -s /usr/local/diablo-jdk1.6.0/jre/plugin/i386/ns7/libjavaplugin_oji.so \ + $HOME/.mozilla/plugins/ Ezt követõen indítsuk újra a böngészõnket. - ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/dtrace/chapter.sgml#14 (text+ko) ==== @@ -6,7 +6,7 @@ From owner-p4-projects@FreeBSD.ORG Sun Aug 23 12:17:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 69C25106568B; Sun, 23 Aug 2009 12:17:12 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2E358106564A for ; Sun, 23 Aug 2009 12:17:12 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1CACD8FC0A for ; Sun, 23 Aug 2009 12:17:12 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7NCHChi059722 for ; Sun, 23 Aug 2009 12:17:12 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7NCHBIm059720 for perforce@freebsd.org; Sun, 23 Aug 2009 12:17:11 GMT (envelope-from mav@freebsd.org) Date: Sun, 23 Aug 2009 12:17:11 GMT Message-Id: <200908231217.n7NCHBIm059720@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167667 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Aug 2009 12:17:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=167667 Change 167667 by mav@mav_mavbook on 2009/08/23 12:17:02 Some more ATA_CAM improvements. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#27 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#27 (text+ko) ==== @@ -59,6 +59,7 @@ #include #endif +#ifndef ATA_CAM /* device structure */ static d_ioctl_t ata_ioctl; static struct cdevsw ata_cdevsw = { @@ -67,15 +68,16 @@ .d_ioctl = ata_ioctl, .d_name = "ata", }; +#endif /* prototypes */ #ifndef ATA_CAM static void ata_boot_attach(void); +static device_t ata_add_child(device_t, struct ata_device *, int); #else static void ataaction(struct cam_sim *sim, union ccb *ccb); static void atapoll(struct cam_sim *sim); #endif -static device_t ata_add_child(device_t, struct ata_device *, int); static void ata_conn_event(void *, int); static void bswap(int8_t *, int); static void btrim(int8_t *, int); @@ -277,8 +279,11 @@ ata_conn_event(void *context, int dummy) { device_t dev = (device_t)context; + struct ata_channel *ch = device_get_softc(dev); + mtx_lock(&ch->state_mtx); ata_reinit(dev); + mtx_unlock(&ch->state_mtx); } int @@ -286,6 +291,7 @@ { struct ata_channel *ch = device_get_softc(dev); struct ata_request *request; +#ifndef ATA_CAM device_t *children; int nchildren, i; @@ -372,7 +378,23 @@ /* kick off requests on the queue */ ata_start(dev); - return 0; +#else + if ((request = ch->running)) { + ch->running = NULL; + if (ch->state == ATA_ACTIVE) + ch->state = ATA_IDLE; + callout_stop(&request->callout); + if (ch->dma.unload) + ch->dma.unload(request); + request->result = ERESTART; + ata_cam_end_transaction(dev, request); + } + /* reset the controller HW, the channel and device(s) */ + ATA_RESET(dev); + /* Tell the XPT about the event */ + xpt_async(AC_BUS_RESET, ch->path, NULL); +#endif + return(0); } int @@ -384,6 +406,7 @@ if (!dev || !(ch = device_get_softc(dev))) return ENXIO; +#ifndef ATA_CAM /* wait for the channel to be IDLE or detached before suspending */ while (ch->r_irq) { mtx_lock(&ch->state_mtx); @@ -396,7 +419,8 @@ tsleep(ch, PRIBIO, "atasusp", hz/10); } ATA_LOCKING(dev, ATA_LF_UNLOCK); - return 0; +#endif + return(0); } int @@ -411,8 +435,10 @@ /* reinit the devices, we dont know what mode/state they are in */ error = ata_reinit(dev); +#ifndef ATA_CAM /* kick off requests on the queue */ ata_start(dev); +#endif return error; } @@ -482,6 +508,7 @@ /* * device related interfaces */ +#ifndef ATA_CAM static int ata_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int32_t flag, struct thread *td) @@ -563,6 +590,7 @@ } return error; } +#endif int ata_device_ioctl(device_t dev, u_long cmd, caddr_t data) @@ -692,6 +720,7 @@ /* * misc support functions */ +#ifndef ATA_CAM static device_t ata_add_child(device_t parent, struct ata_device *atadev, int unit) { @@ -706,6 +735,7 @@ } return child; } +#endif int ata_getparam(struct ata_device *atadev, int init) @@ -802,6 +832,7 @@ return error; } +#ifndef ATA_CAM int ata_identify(device_t dev) { @@ -875,6 +906,7 @@ mtx_unlock(&Giant); return 0; } +#endif void ata_default_registers(device_t dev) @@ -1263,7 +1295,7 @@ void ata_cam_end_transaction(device_t dev, struct ata_request *request) { -// struct ata_channel *ch = device_get_softc(dev); + struct ata_channel *ch = device_get_softc(dev); union ccb *ccb = request->ccb; ccb->ccb_h.status &= ~CAM_STATUS_MASK; @@ -1276,10 +1308,16 @@ ccb->ccb_h.status |= CAM_SCSI_STATUS_ERROR; ccb->csio.scsi_status = SCSI_STATUS_CHECK_COND; } - } else if (request->result != 0) + } else if (request->result == ERESTART) + ccb->ccb_h.status |= CAM_REQUEUE_REQ; + else if (request->result != 0) ccb->ccb_h.status |= CAM_REQ_CMP_ERR; else ccb->ccb_h.status |= CAM_REQ_CMP; + if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { + xpt_freeze_simq(ch->sim, 1); + ccb->ccb_h.status |= CAM_RELEASE_SIMQ; + } if (ccb->ccb_h.func_code == XPT_ATA_IO && ((request->status & ATA_S_ERROR) || (ccb->ataio.cmd.flags & CAM_ATAIO_NEEDRESULT))) { @@ -1321,6 +1359,8 @@ xpt_done(ccb); break; } + if (ch->running) + device_printf(dev, "already running!\n"); if (ccb->ccb_h.func_code == XPT_ATA_IO && (ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL) && (ccb->ataio.cmd.control & ATA_A_RESET)) { @@ -1401,8 +1441,7 @@ #endif case XPT_RESET_BUS: /* Reset the specified SCSI bus */ case XPT_RESET_DEV: /* Bus Device Reset the specified SCSI device */ - ATA_RESET(dev); - xpt_async(AC_BUS_RESET, ch->path, NULL); + ata_reinit(dev); ccb->ccb_h.status = CAM_REQ_CMP; xpt_done(ccb); break; @@ -1460,14 +1499,16 @@ static int ata_module_event_handler(module_t mod, int what, void *arg) { +#ifndef ATA_CAM static struct cdev *atacdev; +#endif switch (what) { case MOD_LOAD: +#ifndef ATA_CAM /* register controlling device */ atacdev = make_dev(&ata_cdevsw, 0, UID_ROOT, GID_OPERATOR, 0600, "ata"); -#ifndef ATA_CAM if (cold) { /* register boot attach to be run when interrupts are enabled */ if (!(ata_delayed_attach = (struct intr_config_hook *) @@ -1486,8 +1527,10 @@ return 0; case MOD_UNLOAD: +#ifndef ATA_CAM /* deregister controlling device */ destroy_dev(atacdev); +#endif return 0; default: From owner-p4-projects@FreeBSD.ORG Sun Aug 23 12:43:43 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9A1621065694; Sun, 23 Aug 2009 12:43:43 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5EB2E1065690 for ; Sun, 23 Aug 2009 12:43:43 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 342E98FC0A for ; Sun, 23 Aug 2009 12:43:43 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7NChheN061709 for ; Sun, 23 Aug 2009 12:43:43 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7NChhdE061707 for perforce@freebsd.org; Sun, 23 Aug 2009 12:43:43 GMT (envelope-from mav@freebsd.org) Date: Sun, 23 Aug 2009 12:43:43 GMT Message-Id: <200908231243.n7NChhdE061707@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167673 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Aug 2009 12:43:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=167673 Change 167673 by mav@mav_mavbook on 2009/08/23 12:42:53 Remove RETRY_UA SCSI'sm from ADA driver. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#24 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#24 (text+ko) ==== @@ -75,7 +75,6 @@ ADA_FLAG_CAN_DMA = 0x010, ADA_FLAG_NEED_OTAG = 0x020, ADA_FLAG_WENT_IDLE = 0x040, - ADA_FLAG_RETRY_UA = 0x080, ADA_FLAG_OPEN = 0x100, ADA_FLAG_SCTX_INIT = 0x200 } ada_flags; @@ -90,7 +89,6 @@ ADA_CCB_WAITING = 0x04, ADA_CCB_DUMP = 0x05, ADA_CCB_TYPE_MASK = 0x0F, - ADA_CCB_RETRY_UA = 0x10 } ada_ccb_state; /* Offsets into our private area for storing information */ @@ -287,8 +285,7 @@ else ata_48bit_cmd(&ccb->ataio, ATA_FLUSHCACHE, 0, 0, 0); cam_periph_runccb(ccb, /*error_routine*/NULL, /*cam_flags*/0, - /*sense_flags*/SF_RETRY_UA, - softc->disk->d_devstat); + /*sense_flags*/0, softc->disk->d_devstat); if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) xpt_print(periph->path, "Synchronize cache failed\n"); @@ -562,23 +559,14 @@ case AC_SENT_BDR: case AC_BUS_RESET: { - struct ada_softc *softc; - struct ccb_hdr *ccbh; + struct ada_softc *softc = (struct ada_softc *)periph->softc; - softc = (struct ada_softc *)periph->softc; /* * Restore device configuration. */ softc->state = ADA_STATE_SET_MULTI; (void)cam_periph_hold(periph, PRIBIO); xpt_schedule(periph, CAM_PRIORITY_DEV); - /* - * Don't fail on the expected unit attention - * that will occur. - */ - softc->flags |= ADA_FLAG_RETRY_UA; - LIST_FOREACH(ccbh, &softc->pending_ccbs, periph_links.le) - ccbh->ccb_state |= ADA_CCB_RETRY_UA; /* FALLTHROUGH*/ } default: @@ -902,12 +890,6 @@ &start_ccb->ccb_h, periph_links.le); softc->outstanding_cmds++; - /* We expect a unit attention from this device */ - if ((softc->flags & ADA_FLAG_RETRY_UA) != 0) { - start_ccb->ccb_h.ccb_state |= ADA_CCB_RETRY_UA; - softc->flags &= ~ADA_FLAG_RETRY_UA; - } - start_ccb->ccb_h.ccb_bp = bp; bp = bioq_first(&softc->bio_queue); From owner-p4-projects@FreeBSD.ORG Sun Aug 23 14:26:36 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F26D8106568C; Sun, 23 Aug 2009 14:26:35 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B7114106564A for ; Sun, 23 Aug 2009 14:26:35 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A5CF28FC16 for ; Sun, 23 Aug 2009 14:26:35 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7NEQZRc081220 for ; Sun, 23 Aug 2009 14:26:35 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7NEQZn5081218 for perforce@freebsd.org; Sun, 23 Aug 2009 14:26:35 GMT (envelope-from truncs@FreeBSD.org) Date: Sun, 23 Aug 2009 14:26:35 GMT Message-Id: <200908231426.n7NEQZn5081218@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 167676 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Aug 2009 14:26:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=167676 Change 167676 by truncs@aditya on 2009/08/23 14:26:27 Change the position of vnode_pager_setsize. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode.c#8 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode.c#8 (text+ko) ==== @@ -165,12 +165,12 @@ aflags = B_CLRBUF; if (flags & IO_SYNC) aflags |= B_SYNC; - vnode_pager_setsize(ovp, length); error = ext2_balloc(oip, lbn, offset + 1, cred, &bp, aflags); if(error) return (error); oip->i_size = length; + vnode_pager_setsize(ovp, length); if (aflags & B_SYNC) bwrite(bp); else From owner-p4-projects@FreeBSD.ORG Mon Aug 24 05:39:15 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 461461065692; Mon, 24 Aug 2009 05:39:15 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0AA59106568B for ; Mon, 24 Aug 2009 05:39:15 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D4D7A8FC12 for ; Mon, 24 Aug 2009 05:39:14 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7O5dEnj006052 for ; Mon, 24 Aug 2009 05:39:14 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7O5dEbp006050 for perforce@freebsd.org; Mon, 24 Aug 2009 05:39:14 GMT (envelope-from truncs@FreeBSD.org) Date: Mon, 24 Aug 2009 05:39:14 GMT Message-Id: <200908240539.n7O5dEbp006050@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 167704 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 05:39:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=167704 Change 167704 by truncs@aditya on 2009/08/24 05:39:13 Build fix Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode.c#9 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode.c#9 (text+ko) ==== @@ -446,7 +446,7 @@ nb = bap[i]; if (nb != 0) { error = ext2_indirtrunc(ip, nlbn, fsbtodb(fs, nb), - last, level - 1, &blkcount) + last, level - 1, &blkcount); if (error) allerror = error; blocksreleased += blkcount; From owner-p4-projects@FreeBSD.ORG Mon Aug 24 05:43:20 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D3D4B1065692; Mon, 24 Aug 2009 05:43:19 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 78B2E106568F for ; Mon, 24 Aug 2009 05:43:19 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 67E458FC1B for ; Mon, 24 Aug 2009 05:43:19 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7O5hJEP006361 for ; Mon, 24 Aug 2009 05:43:19 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7O5hJFN006359 for perforce@freebsd.org; Mon, 24 Aug 2009 05:43:19 GMT (envelope-from truncs@FreeBSD.org) Date: Mon, 24 Aug 2009 05:43:19 GMT Message-Id: <200908240543.n7O5hJFN006359@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 167705 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 05:43:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=167705 Change 167705 by truncs@aditya on 2009/08/24 05:42:23 Move ext2fs to /sys/fs Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_alloc.c#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_balloc.c#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_bitops.h#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_bmap.c#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_dinode.h#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_dir.h#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_extern.h#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_fs.h#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_inode.c#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_inode_cnv.c#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_lookup.c#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_mount.h#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_readwrite.c#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_subr.c#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_vfsops.c#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_vnops.c#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/fs.h#1 add .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/inode.h#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Mon Aug 24 05:44:21 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0B169106568D; Mon, 24 Aug 2009 05:44:21 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C3AC7106568B for ; Mon, 24 Aug 2009 05:44:20 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B31B28FC16 for ; Mon, 24 Aug 2009 05:44:20 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7O5iKtu006433 for ; Mon, 24 Aug 2009 05:44:20 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7O5iKBC006431 for perforce@freebsd.org; Mon, 24 Aug 2009 05:44:20 GMT (envelope-from truncs@FreeBSD.org) Date: Mon, 24 Aug 2009 05:44:20 GMT Message-Id: <200908240544.n7O5iKBC006431@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 167706 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 05:44:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=167706 Change 167706 by truncs@aditya on 2009/08/24 05:43:56 Remove old files. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/COPYRIGHT.INFO#7 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_alloc.c#35 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_balloc.c#4 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_bitops.h#4 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_bmap.c#4 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_dinode.h#3 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_dir.h#4 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_extern.h#7 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#33 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode.c#10 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode_cnv.c#8 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_lookup.c#9 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_mount.h#5 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_readwrite.c#6 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_subr.c#5 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#19 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vnops.c#13 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/fs.h#12 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/inode.h#5 delete Differences ... From owner-p4-projects@FreeBSD.ORG Mon Aug 24 06:37:19 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6000F106568E; Mon, 24 Aug 2009 06:37:19 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 23BA2106568B for ; Mon, 24 Aug 2009 06:37:19 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 118E28FC0A for ; Mon, 24 Aug 2009 06:37:19 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7O6bIL1011282 for ; Mon, 24 Aug 2009 06:37:18 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7O6bIFo011280 for perforce@freebsd.org; Mon, 24 Aug 2009 06:37:18 GMT (envelope-from rene@FreeBSD.org) Date: Mon, 24 Aug 2009 06:37:18 GMT Message-Id: <200908240637.n7O6bIFo011280@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 167707 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 06:37:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=167707 Change 167707 by rene@rene_self on 2009/08/24 06:37:16 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/committers-guide/article.sgml#28 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#32 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.committers.sgml#28 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/portbuild/article.sgml#15 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#18 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/basics/chapter.sgml#6 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#15 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/desktop/chapter.sgml#10 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/dtrace/chapter.sgml#7 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/filesystems/chapter.sgml#5 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/multimedia/chapter.sgml#5 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/x11/chapter.sgml#6 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/share/sgml/authors.ent#23 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml#19 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml#11 integrate .. //depot/projects/docproj_nl/share/pgpkeys/fluffy.key#1 branch .. //depot/projects/docproj_nl/share/pgpkeys/lulf.key#2 integrate .. //depot/projects/docproj_nl/share/pgpkeys/marck.key#3 integrate .. //depot/projects/docproj_nl/share/pgpkeys/pgpkeys-developers.sgml#25 integrate .. //depot/projects/docproj_nl/share/pgpkeys/pgpkeys.ent#22 integrate .. //depot/projects/docproj_nl/www/en/donations/donors.sgml#19 integrate .. //depot/projects/docproj_nl/www/en/gnome/docs/halfaq.sgml#4 integrate .. //depot/projects/docproj_nl/www/en/platforms/arm.sgml#2 integrate .. //depot/projects/docproj_nl/www/en/projects/newbies.sgml#2 integrate .. //depot/projects/docproj_nl/www/en/releases/8.0R/Makefile#1 branch .. //depot/projects/docproj_nl/www/en/releases/8.0R/schedule.sgml#1 branch .. //depot/projects/docproj_nl/www/en/releng/index.sgml#27 integrate .. //depot/projects/docproj_nl/www/nl/share/sgml/header.l10n.ent#14 integrate .. //depot/projects/docproj_nl/www/share/sgml/commercial.consult.xml#11 integrate .. //depot/projects/docproj_nl/www/share/sgml/commercial.isp.xml#11 integrate .. //depot/projects/docproj_nl/www/share/sgml/events.xml#20 integrate .. //depot/projects/docproj_nl/www/share/sgml/news.xml#47 integrate .. //depot/projects/docproj_nl/www/share/sgml/press.xml#15 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/articles/committers-guide/article.sgml#28 (text+ko) ==== @@ -9,7 +9,7 @@ The &os; Documentation Project - $FreeBSD: doc/en_US.ISO8859-1/articles/committers-guide/article.sgml,v 1.285 2009/07/18 15:46:44 keramida Exp $ + $FreeBSD: doc/en_US.ISO8859-1/articles/committers-guide/article.sgml,v 1.286 2009/08/13 15:51:59 rwatson Exp $ 1999 @@ -60,11 +60,16 @@ - Main Repository Host + Main CVS Repository Host ncvs.FreeBSD.org + Main Subversion Repository Host + svn.FreeBSD.org + + + Login Methods &man.ssh.1;, protocol 2 only @@ -77,8 +82,15 @@ + Main Subversion Root + + svn+ssh://svn.FreeBSD.org/base (although also see ). + + + + Main &a.cvsadm; - &a.peter; and &a.markm;, as well as &a.joe; and &a.marcus; for + &a.peter; and &a.simon;, as well as &a.joe; and &a.marcus; for ports/ @@ -115,6 +127,7 @@ RELENG_6 (6.X-STABLE), RELENG_7 (7.X-STABLE), + RELENG_8 (7.X-STABLE), HEAD (-CURRENT) @@ -125,6 +138,7 @@ stable/6 (6.X-STABLE), stable/7 (7.X-STABLE), + stable/8 (8.X-STABLE), head (-CURRENT) ==== //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#32 (text+ko) ==== @@ -1,4 +1,4 @@ - + + @@ -427,7 +427,7 @@ changing the following variable to YES in &man.rc.conf.5;: - gateway_enable=YES # Set to YES if this host will be a gateway + gateway_enable="YES" # Set to YES if this host will be a gateway This option will set the &man.sysctl.8; variable net.inet.ip.forwarding to ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/basics/chapter.sgml#6 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -998,7 +998,7 @@ - /usr/ports + /usr/ports/ The FreeBSD Ports Collection (optional). @@ -1060,7 +1060,7 @@ - /var/yp + /var/yp/ NIS maps. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#15 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -275,14 +275,14 @@ If any kernel patches have been applied the system will need a reboot. If all went well the system should be patched - and freebsd-update may be ran as a nightly + and freebsd-update may be run as a nightly &man.cron.8; job. An entry in /etc/crontab would be sufficient to accomplish this task: @daily root freebsd-update cron This entry states that once every day, the - freebsd-update will be ran. In this way, + freebsd-update utility will be run. In this way, using the argument, freebsd-update will only check if updates exist. If patches exist, they will automatically be downloaded ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/desktop/chapter.sgml#10 (text+ko) ==== @@ -1,6 +1,6 @@ @@ -226,11 +226,17 @@ about:plugins in the location bar and press Enter. A page listing the installed plugins will be displayed; the &java; - plugin should be listed there now. If it is not, as - root, run the following command: + plugin should be listed there now. If it is not, each user + will have to run the following command: + + &prompt.user; ln -s /usr/local/diablo-jre1.6.0/plugin/i386/ns7/libjavaplugin_oji.so \ + $HOME/.mozilla/plugins/ + + or, if you installed the Diablo + &jdk; package: - &prompt.root; ln -s /usr/local/diablo-jre1.6.0/plugin/i386/ns7/libjavaplugin_oji.so \ - /usr/local/lib/browser_plugins/ + &prompt.user; ln -s /usr/local/diablo-jdk1.6.0/jre/plugin/i386/ns7/libjavaplugin_oji.so \ + $HOME/.mozilla/plugins/ Then relaunch your browser. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/dtrace/chapter.sgml#7 (text+ko) ==== @@ -8,7 +8,7 @@ @@ -120,7 +120,7 @@ This CTF data is added to the binaries by the ctfconvert and ctfmerge build tools. The ctfconvert utility parses - DWARF debug ELF sections + DWARF ELF debug sections created by the compiler and ctfmerge merges CTF ELF sections from objects into either executables or shared libraries. More on ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/filesystems/chapter.sgml#5 (text+ko) ==== @@ -1,6 +1,6 @@ @@ -108,7 +108,7 @@ - The Z File System + The Z File System (ZFS) The Z file system, developed by &sun;, is a new technology designed to use a pooled storage method. This means @@ -151,7 +151,7 @@ devices are available as modules, they may simply be loaded using the /boot/loader.conf file. - Users of the i386 architecture should add the following + Users of the &i386; architecture should add the following option to their kernel configuration file, rebuild their kernel, and reboot: @@ -198,19 +198,20 @@ &prompt.root; echo 'zfs_enable="YES"' >> /etc/rc.conf &prompt.root; /etc/rc.d/zfs start - The remainder of this document assumes two + The remainder of this document assumes three SCSI disks are available, and their device names - are da0 - and da1 - respectively. Users of IDE hardware may - use the ad + are da0, + da1 + and da2. + Users of IDE hardware may use the + ad devices in place of SCSI hardware. Single Disk Pool - To create a ZFS over a single disk - device, use the zpool command: + To create a simple, non-redundant ZFS pool using a + single disk device, use the zpool command: &prompt.root; zpool create example /dev/da0 @@ -340,13 +341,22 @@ <acronym>ZFS</acronym> RAID-Z As previously noted, this section will assume that - two SCSI exists as devices - da0 and - da1. To create a + three SCSI disks exist as devices + da0, da1 + and da2 (or ad0 + and beyond in case IDE disks are being used). To create a RAID-Z pool, issue the following command: - &prompt.root; zpool create storage raidz da0 da1 + &prompt.root; zpool create storage raidz da0 da1 da2 + + &sun; recommends that the amount of devices used in a + RAID-Z configuration is between three and nine. If your needs + call for a single pool to consist of 10 disks or more, consider + breaking it up into smaller RAID-Z groups. If + you only have two disks and still require redundancy, consider using + a ZFS mirror instead. See the &man.zpool.8; + manual page for more details. The storage zpool should have been created. This may be verified by using the &man.mount.8; and @@ -432,8 +442,8 @@ /dev/ad0s1a 2026030 235240 1628708 13% / devfs 1 1 0 100% /dev /dev/ad0s1d 54098308 1032826 48737618 2% /usr -storage 17547008 0 17547008 0% /storage -storage/home 17547008 0 17547008 0% /home +storage 26320512 0 26320512 0% /storage +storage/home 26320512 0 26320512 0% /home This completes the RAID-Z configuration. To get status updates about the file systems @@ -477,6 +487,7 @@ raidz1 DEGRADED 0 0 0 da0 ONLINE 0 0 0 da1 OFFLINE 0 0 0 + da2 ONLINE 0 0 0 errors: No known data errors @@ -509,6 +520,7 @@ raidz1 ONLINE 0 0 0 da0 ONLINE 0 0 0 da1 ONLINE 0 0 0 + da2 ONLINE 0 0 0 errors: No known data errors @@ -556,6 +568,7 @@ raidz1 ONLINE 0 0 0 da0 ONLINE 0 0 0 da1 ONLINE 0 0 0 + da2 ONLINE 0 0 0 errors: No known data errors ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/multimedia/chapter.sgml#5 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -1484,7 +1484,8 @@ SANE has a supported devices list that can provide you with information - about the support for a scanner and its status. The + about the support for a scanner and its status. On systems + prior to &os; 8.X the &man.uscanner.4; manual page also provides a list of supported USB scanners. @@ -1508,36 +1509,35 @@ device usb device uhci device ohci -device uscanner +device ehci - Depending upon the USB chipset on your motherboard, you - will only need either device uhci or - device ohci, however having both in the - kernel configuration file is harmless. + On systems prior to &os; 8.X, the following line is + also needed: - If you do not want to rebuild your kernel and your - kernel is not the GENERIC one, you can - directly load the &man.uscanner.4; device driver module with - the &man.kldload.8; command: + device uscanner - &prompt.root; kldload uscanner + On these versions of &os;, the &man.uscanner.4; device + driver provides support for the USB scanners. Since + &os; 8.0, this support is directly provided by + the &man.libusb.3; library. - To load this module at each system startup, add the - following line to - /boot/loader.conf: - - uscanner_load="YES" - - After rebooting with the correct kernel, or after - loading the required module, plug in your USB scanner. A + After rebooting with the correct kernel, + plug in your USB scanner. A line showing the detection of your scanner should appear in the system message buffer (&man.dmesg.8;): + ugen0.2: <EPSON> at usbus0 + + or on a &os; 7.X system: + uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2 - This shows that our scanner is using the - /dev/uscanner0 device node. + These messages show that our scanner is using + either /dev/ugen0.2 or + /dev/uscanner0 as device node according + to the &os; version we run. For this example, a + &epson.perfection; 1650 USB scanner was used. @@ -1639,6 +1639,19 @@ &prompt.root; scanimage -L device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner + Or, for example with the USB scanner used in the : + + &prompt.root; scanimage -L +device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner + + This output comes from a &os; 8.X system, the + `epson2:libusb:/dev/usb:/dev/ugen0.2' item + gives us the backend name (epson2) and the + device node (/dev/ugen0.2) used by our + scanner. + + No output or a message saying that no scanners were identified indicates that &man.scanimage.1; is unable to identify the scanner. If this happens, you will need to edit @@ -1650,7 +1663,9 @@ scanners. For example, with the USB scanner used in the , + linkend="scanners-kernel-usb">, under &os; 8.X the + scanner is perfectly detected and working but under prior + versions of &os; (where &man.uscanner.4; driver is used) sane-find-scanner gives us the following information: @@ -1669,9 +1684,9 @@ which came with this software (README, FAQ, manpages). Since the scanner is not identified, we will need to edit - the /usr/local/etc/sane.d/epson.conf + the /usr/local/etc/sane.d/epson2.conf file. The scanner model used was the &epson.perfection; 1650, - so we know the scanner will use the epson + so we know the scanner will use the epson2 backend. Be sure to read the help comments in the backends configuration files. Line changes are quite simple: comment out all lines that have the wrong interface for your scanner @@ -1696,6 +1711,7 @@ concerned with is the `epson:/dev/uscanner0' field, which give us the right backend name and the right device node. + Once the scanimage -L command is able to see the scanner, the configuration is complete. The device @@ -1727,23 +1743,48 @@ to the scanner. The user will need read and write permissions to the device node used by the scanner. As an example, our USB scanner uses the device node - /dev/uscanner0 which is owned by the - operator group. Adding the user - joe to the - operator group will allow him to use - the scanner: + /dev/ugen0.2 which is in fact just a + symlink to the real device node called + /dev/usb/0.2.0 (a quick look at the + contain of the /dev + directory will confirm it). Both, the symlink and the + device node, are owned respectively by the + wheel and the + operator groups. Adding the user + joe to these + groups will allow him to use + the scanner but, for obvious security reasons, you should + think twice before adding a user to any group, especially the + wheel group. A better solution would + be creating a specific group for using the USB devices + and make the scanner device accessible to members of this + group. + + So we will use, for example, a group called + usb. The + first step is the creation of this group with the help of the + &man.pw.8; command: - &prompt.root; pw groupmod operator -m joe + &prompt.root; pw groupadd usb - For more details read the &man.pw.8; manual page. You - also have to set the correct write permissions (0660 or 0664) - on the /dev/uscanner0 device node, by - default the operator group can only - read the device node. This is done by adding the following + Then we have to make the /dev/ugen0.2 + symlink and the /dev/usb/0.2.0 device node accessible to the usb group + with the correct write permissions (0660 or + 0664), cause by default only the owner of + these files (root) can write to them. + All of this is done by adding the following lines to the /etc/devfs.rules file: [system=5] -add path uscanner0 mode 660 +add path ugen0.2 mode 0660 group usb +add path usb/0.2.0 mode 0666 group usb + + For the &os; 7.X users, the following lines with the + correct device node, most of time + /dev/uscanner0, are needed: + + [system=5] +add path uscanner0 mode 660 group usb Then add the following to /etc/rc.conf and reboot the @@ -1754,11 +1795,13 @@ More information regarding these lines can be found in the &man.devfs.8; manual page. - - Of course, for security reasons, you should think twice - before adding a user to any group, especially the - operator group. - + Now, one will just have to add users to the + usb group to + allow the access to the scanner: + + &prompt.root; pw groupmod usb -m joe + + For more details read the &man.pw.8; manual page. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/x11/chapter.sgml#6 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -434,7 +434,7 @@ Desktop environments like GNOME, KDE or - XFce have tools allowing the user + Xfce have tools allowing the user to easily set the screen parameters such as the resolution. So if the default configuration is not acceptable and you planned to install a desktop environment then just continue @@ -1617,18 +1617,18 @@ - XFce + Xfce - About XFce + About Xfce - XFce is a desktop environment + Xfce is a desktop environment based on the GTK+ toolkit used by GNOME, but is much more lightweight and meant for those who want a simple, efficient desktop which is nevertheless easy to use and configure. Visually, it looks very much like CDE, found on commercial &unix; - systems. Some of XFce's features + systems. Some of Xfce's features are: @@ -1661,15 +1661,15 @@ - More information on XFce - can be found on the XFce + More information on Xfce + can be found on the Xfce website. - Installing XFce + Installing Xfce - A binary package for XFce + A binary package for Xfce exists (at the time of writing). To install, simply type: &prompt.root; pkg_add -r xfce4 @@ -1681,13 +1681,13 @@ &prompt.root; make install clean Now, tell the X server to launch - XFce the next time X is started. + Xfce the next time X is started. Simply type this: &prompt.user; echo "/usr/local/bin/startxfce4" > ~/.xinitrc The next time X is started, - XFce will be the desktop. + Xfce will be the desktop. As before, if a display manager like XDM is being used, create an .xsession, as described in the ==== //depot/projects/docproj_nl/en_US.ISO8859-1/share/sgml/authors.ent#23 (text+ko) ==== @@ -13,7 +13,7 @@ builds for the other languages, and we will poke fun of you in public. - $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.487 2009/07/20 14:15:44 yzlin Exp $ + $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.488 2009/08/10 16:50:10 fluffy Exp $ --> aaron@FreeBSD.org"> @@ -348,6 +348,8 @@ flathill@FreeBSD.org"> +fluffy@FreeBSD.org"> + flz@FreeBSD.org"> foxfair@FreeBSD.org"> ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml#19 (text+ko) ==== @@ -1,7 +1,7 @@ + -uid Ulf Lilleengen -uid Ulf Lilleengen +pub 1024D/ADE1B837 2009-08-19 [expires: 2014-08-18] + Key fingerprint = 3822 B4E6 6D1C 6F71 4AA8 7A27 ADDF C400 ADE1 B837 +uid Ulf Lilleengen +uid Ulf Lilleengen uid Ulf Lilleengen -uid Ulf Lilleengen -uid Ulf Lilleengen uid Ulf Lilleengen -sub 1024g/CD5F3420 2003-12-21 +uid Ulf Lilleengen +sub 2048g/B5409122 2009-08-19 [expires: 2014-08-18] ]]> ==== //depot/projects/docproj_nl/share/pgpkeys/marck.key#3 (text+ko) ==== @@ -1,4 +1,4 @@ - + @@ -82,19 +82,33 @@ x4EQJ+mIRgQQEQIABgUCR5ZYAgAKCRBZxqJbrEANAhg6AJ4nm2EzjE/SDAh4H+LF +BKMOw2xGwCeOWOm7pr3bShpwsVtE8Os3NimZ/iIRgQQEQIABgUCSHJXhAAKCRA9 6g22+4pu9KAzAJ0cfSUFB4HhdLve85oDa3m94RcPjACdGs+PIT5+jAX1O7Te/g7t -wu/j4kS5Ag0EO1hObhAIANX5TO/cDWaKqIaSRz4NyjTpHgtIDQpzT8D94KOnRmaP -0B46pcNxP62+zRXIP3iHFKTGits2EoGqsw/2Y+S4RxtL/669ykxb4W7TtBwHG9mX -EsgoiEol5eylKhNHOe2ZUwm5BIq3PTPywueehMMB7A4cqg+k+PDLyibzz6lvYKrp -oVvaXezfX8k6vOmiRIWyazhEG3KOjiS3fnzI+qYXHUiiWjGx/CM+DcBzcuvebW5e -j1ewB7O0qjIvxzuJep/KYO6n748CLYqLzF5mkSa0SCBWcK2LvfjlOjxp4mCSslIP -eJO2DbGeBsmzhCWV10DqZdds9t3T7tBAKr56QAswUHsAAwUH/3Un3UAEi2tgn7Cm -lOuM6l2iyxm0dT4xrzUzBrhPHUKpY28vUv3CFn+3qvhv/F2S56Oe+jbjhG2gljfP -E16MUSbYwCjCuLpU76ZgFpQL17TLn+1hehhCjihqSIL3mWK09W95Gyxj9xrzG7fM -gLgzwsZk/r3qh1Y2Mef+47FD4Om5conFeoqdJCyH59LJQ0zZVG8Ldr/tYYvcKvTb -pxqGjaYQ3eOAVgVJPvqHpMeWETA34HUfOVDZHtM2w03KeHR4Tlxa/opdIrmZchzk -0ETdYPy/t6AfbJ+avbIbH8rJUd6ifblrKUqGyrc+gJ5435T3YowGVGpVVRZQyyfg -uRP+CIOIRgQYEQIABgUCO1hObgAKCRCF1FBFa2kbA5t6AJ9B0laWrFnyRvVGo/NV -QHmv6xkKhwCbBo5yKzSSgAUpfzjAw5PKW481T6g= -=nJcP +wu/j4kSIRgQQEQIABgUCO1wQigAKCRD05kd+98Xhk/nFAKDPr/T/knlIoray7RDO +cqjTlUTncACeNLX6jfvow8AKnB3laC/Ymrt+ASmIRgQQEQIABgUCPEXRvwAKCRCz +/c1UhFFFUb7QAJ9aSw93GcOUCKkayV3iH3HgZAt1/ACg5xpMDxm8WpZ6q89RtSN0 +HSMiBQmIRgQQEQIABgUCPxU2kwAKCRC0EDmiWTkEzOMpAJ9xwYSASXStYKGlGFr+ +AMWsDg/1/wCeKtdBHOIcI/zgr6D6+xAxNegGJwSIRgQQEQIABgUCP8tZNgAKCRDH +9XXLUPkQeNMGAJwNMgkXVgrUicL+wr5cCKfLrMKXuACgtOMBUMGTy+/i+ocQkG1S +3KPTtMuIRgQTEQIABgUCPjaxlwAKCRAL8GQSYLofR/pQAJsEcOIcAgWv2cMiiAFb +QtjXggpZEQCgpQWcE8tHGi+42R7zQy7wH+1i/siIRgQTEQIABgUCP6FL2wAKCRD9 +LjUgMMgeauw2AJ9wqTN/auShtbpRZOC/NoxtsYg/9wCcDWoEYJ14cQ+2Wilc5x/A +OhDL7ASIRgQTEQIABgUCQF8aXwAKCRCFt2wt19VfGh/gAJ9VSfwUs10rKN7QjVi0 +Ro+9U22VTQCgnsmdxivQAiC3tVXKwLFoLGZWbuCIVwQTEQIAFwUCO1hOQQULBwoD +BAMVAwIDFgIBAheAAAoJEIXUUEVraRsDU1cAn3W3KI6pFIZ3Tqv2X5FUzRV/StQT +AKCC+oelCEntN8wlOYx6/jy24NfijYhaBBMRAgAaBQsHCgMEAxUDAgMWAgECF4AF +AkEYjrUCGQEACgkQhdRQRWtpGwN77QCghQMNJImV8v37n32a+5FCELO9c+kAniw2 +TeeriYrXOMC3DGJPX9GCuN6MuQINBDtYTm4QCADV+Uzv3A1miqiGkkc+Dco06R4L +SA0Kc0/A/eCjp0Zmj9AeOqXDcT+tvs0VyD94hxSkxorbNhKBqrMP9mPkuEcbS/+u +vcpMW+Fu07QcBxvZlxLIKIhKJeXspSoTRzntmVMJuQSKtz0z8sLnnoTDAewOHKoP +pPjwy8om88+pb2Cq6aFb2l3s31/JOrzpokSFsms4RBtyjo4kt358yPqmFx1Iolox +sfwjPg3Ac3Lr3m1uXo9XsAeztKoyL8c7iXqfymDup++PAi2Ki8xeZpEmtEggVnCt +i7345To8aeJgkrJSD3iTtg2xngbJs4QllddA6mXXbPbd0+7QQCq+ekALMFB7AAMF +B/91J91ABItrYJ+wppTrjOpdossZtHU+Ma81Mwa4Tx1CqWNvL1L9whZ/t6r4b/xd +kuejnvo244RtoJY3zxNejFEm2MAowri6VO+mYBaUC9e0y5/tYXoYQo4oakiC95li +tPVveRssY/ca8xu3zIC4M8LGZP696odWNjHn/uOxQ+DpuXKJxXqKnSQsh+fSyUNM +2VRvC3a/7WGL3Cr026caho2mEN3jgFYFST76h6THlhEwN+B1HzlQ2R7TNsNNynh0 +eE5cWv6KXSK5mXIc5NBE3WD8v7egH2yfmr2yGx/KyVHeon25aylKhsq3PoCeeN+U +92KMBlRqVVUWUMsn4LkT/giDiEYEGBECAAYFAjtYTm4ACgkQhdRQRWtpGwObegCf +QdJWlqxZ8kb1RqPzVUB5r+sZCocAmwaOcis0koAFKX84wMOTyluPNU+o +=M8uk -----END PGP PUBLIC KEY BLOCK----- ]]> ==== //depot/projects/docproj_nl/share/pgpkeys/pgpkeys-developers.sgml#25 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -971,6 +971,11 @@ &pgpkey.hmp; + + &a.fluffy; + &pgpkey.fluffy; + + &a.sat; &pgpkey.sat; ==== //depot/projects/docproj_nl/share/pgpkeys/pgpkeys.ent#22 (text+ko) ==== @@ -1,5 +1,5 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Aug 24 11:08:17 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EE34B1065690; Mon, 24 Aug 2009 11:08:16 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 99B5210656A4 for ; Mon, 24 Aug 2009 11:08:16 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8818A8FC08 for ; Mon, 24 Aug 2009 11:08:16 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7OB8Gom046148 for ; Mon, 24 Aug 2009 11:08:16 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7OB8GsM046146 for perforce@freebsd.org; Mon, 24 Aug 2009 11:08:16 GMT (envelope-from zec@fer.hr) Date: Mon, 24 Aug 2009 11:08:16 GMT Message-Id: <200908241108.n7OB8GsM046146@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167720 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 11:08:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=167720 Change 167720 by zec@zec_tpx32 on 2009/08/24 11:08:13 Garbage collect old / dead code. Affected files ... .. //depot/projects/vimage/src/sys/cddl/compat/opensolaris/rpc/xdr.h#3 edit .. //depot/projects/vimage/src/sys/kern/uipc_accf.c#5 edit .. //depot/projects/vimage/src/sys/kern/vfs_export.c#23 edit .. //depot/projects/vimage/src/sys/kern/vfs_lookup.c#27 edit .. //depot/projects/vimage/src/sys/modules/if_epair/Makefile#4 edit .. //depot/projects/vimage/src/sys/modules/netgraph/pipe/Makefile#4 edit .. //depot/projects/vimage/src/sys/netinet/accf_http.c#12 edit .. //depot/projects/vimage/src/sys/netinet/in_mcast.c#32 edit .. //depot/projects/vimage/src/sys/netinet/ip_divert.c#38 edit .. //depot/projects/vimage/src/sys/netinet/ip_fw.h#38 edit .. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw2.c#9 edit .. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw_nat.c#6 edit .. //depot/projects/vimage/src/sys/netinet6/sctp6_usrreq.c#30 edit .. //depot/projects/vimage/src/sys/nfsclient/nfs_vfsops.c#32 edit .. //depot/projects/vimage/src/sys/rpc/rpc_generic.c#5 edit .. //depot/projects/vimage/src/sys/rpc/svc_dg.c#7 edit .. //depot/projects/vimage/src/sys/rpc/svc_generic.c#6 edit .. //depot/projects/vimage/src/sys/sys/socketvar.h#17 edit Differences ... ==== //depot/projects/vimage/src/sys/cddl/compat/opensolaris/rpc/xdr.h#3 (text+ko) ==== @@ -1,112 +1,70 @@ /* - * CDDL HEADER START + * Sun RPC is a product of Sun Microsystems, Inc. and is provided for + * unrestricted use provided that this legend is included on all tape + * media and as a part of the software program in whole or part. Users + * may copy or modify Sun RPC without charge, but are not authorized + * to license or distribute it to anyone else except as part of a product or + * program developed by the user. * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. + * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE + * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR + * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. + * Sun RPC is provided with no support and without any obligation on the + * part of Sun Microsystems, Inc. to assist in its use, correction, + * modification or enhancement. * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] + * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE + * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC + * OR ANY PART THEREOF. * - * CDDL HEADER END + * In no event will Sun Microsystems, Inc. be liable for any lost revenue + * or profits or other special, indirect and consequential damages, even if + * Sun has been advised of the possibility of such damages. * - * $FreeBSD: src/sys/cddl/compat/opensolaris/rpc/xdr.h,v 1.4 2008/04/22 07:42:59 jb Exp $ + * Sun Microsystems, Inc. + * 2550 Garcia Avenue + * Mountain View, California 94043 */ -/* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ -/* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ -/* All Rights Reserved */ - -/* - * Portions of this source code were derived from Berkeley 4.3 BSD - * under license from the Regents of the University of California. - */ - #ifndef _OPENSOLARIS_RPC_XDR_H_ #define _OPENSOLARIS_RPC_XDR_H_ #include_next #ifndef _KERNEL -#include_next -/* - * Strangely, my glibc version (2.3.6) doesn't have xdr_control(), so - * we have to hack it in here (source taken from OpenSolaris). - * By the way, it is assumed the xdrmem implementation is used. - */ - -#undef xdr_control -#define xdr_control(a,b,c) xdrmem_control(a,b,c) +#include /* - * These are the request arguments to XDR_CONTROL. + * Taken from sys/xdr/xdr_mem.c. * - * XDR_PEEK - returns the contents of the next XDR unit on the XDR stream. - * XDR_SKIPBYTES - skips the next N bytes in the XDR stream. - * XDR_RDMAGET - for xdr implementation over RDMA, gets private flags from - * the XDR stream being moved over RDMA - * XDR_RDMANOCHUNK - for xdr implementaion over RDMA, sets private flags in - * the XDR stream moving over RDMA. + * FreeBSD's userland XDR doesn't implement control method (only the kernel), + * but OpenSolaris nvpair still depend on it, so we have to implement it here. */ -#define XDR_PEEK 2 -#define XDR_SKIPBYTES 3 -#define XDR_RDMAGET 4 -#define XDR_RDMASET 5 - -/* FIXME: probably doesn't work */ static __inline bool_t xdrmem_control(XDR *xdrs, int request, void *info) { xdr_bytesrec *xptr; - int32_t *int32p; - int len; switch (request) { - case XDR_GET_BYTES_AVAIL: xptr = (xdr_bytesrec *)info; xptr->xc_is_last_record = TRUE; xptr->xc_num_avail = xdrs->x_handy; return (TRUE); - - case XDR_PEEK: - /* - * Return the next 4 byte unit in the XDR stream. - */ - if (xdrs->x_handy < sizeof (int32_t)) - return (FALSE); - int32p = (int32_t *)info; - *int32p = (int32_t)ntohl((uint32_t) - (*((int32_t *)(xdrs->x_private)))); - return (TRUE); - - case XDR_SKIPBYTES: - /* - * Skip the next N bytes in the XDR stream. - */ - int32p = (int32_t *)info; - len = RNDUP((int)(*int32p)); - if ((xdrs->x_handy -= len) < 0) - return (FALSE); - xdrs->x_private += len; - return (TRUE); - + default: + assert(!"unexpected request"); } return (FALSE); } + +#undef XDR_CONTROL +#define XDR_CONTROL(xdrs, req, op) \ + (((xdrs)->x_ops->x_control == NULL) ? \ + xdrmem_control((xdrs), (req), (op)) : \ + (*(xdrs)->x_ops->x_control)(xdrs, req, op)) + #endif /* !_KERNEL */ #endif /* !_OPENSOLARIS_RPC_XDR_H_ */ ==== //depot/projects/vimage/src/sys/kern/uipc_accf.c#5 (text+ko) ==== @@ -58,12 +58,11 @@ MALLOC_DEFINE(M_ACCF, "accf", "accept filter data"); -int accf_unloadable = 0; +static int unloadable = 0; SYSCTL_DECL(_net_inet); /* XXX: some header should do this for me */ SYSCTL_NODE(_net_inet, OID_AUTO, accf, CTLFLAG_RW, 0, "Accept filters"); -SYSCTL_INT(_net_inet_accf, OID_AUTO, unloadable, CTLFLAG_RW, - &accf_unloadable, 0, +SYSCTL_INT(_net_inet_accf, OID_AUTO, unloadable, CTLFLAG_RW, &unloadable, 0, "Allow unload of accept filters (not recommended)"); /* @@ -145,7 +144,7 @@ * having it called is a bad thing. A simple fix would be to * track the refcount in the struct accept_filter. */ - if (accf_unloadable != 0) { + if (unloadable != 0) { error = accept_filt_del(accfp->accf_name); } else error = EOPNOTSUPP; ==== //depot/projects/vimage/src/sys/kern/vfs_export.c#23 (text+ko) ==== @@ -52,7 +52,6 @@ #include #include #include -#include #include ==== //depot/projects/vimage/src/sys/kern/vfs_lookup.c#27 (text+ko) ==== @@ -55,7 +55,6 @@ #include #include #include -#include #ifdef KTRACE #include #endif ==== //depot/projects/vimage/src/sys/modules/if_epair/Makefile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD$ +# $FreeBSD: src/sys/modules/if_epair/Makefile,v 1.1 2009/07/26 12:20:07 bz Exp $ .PATH: ${.CURDIR}/../../net ==== //depot/projects/vimage/src/sys/modules/netgraph/pipe/Makefile#4 (text+ko) ==== @@ -1,6 +1,5 @@ # $FreeBSD: src/sys/modules/netgraph/pipe/Makefile,v 1.1 2009/06/23 06:11:04 zec Exp $ - KMOD= ng_pipe SRCS= ng_pipe.c ==== //depot/projects/vimage/src/sys/netinet/accf_http.c#12 (text+ko) ==== @@ -37,7 +37,6 @@ #include #include #include -#include /* check for GET/HEAD */ static int sohashttpget(struct socket *so, void *arg, int waitflag); @@ -52,8 +51,6 @@ int max, char *cmp); /* socketbuffer is full */ static int sbfull(struct sockbuf *sb); -static int -accept_filt_http_mod_event(module_t mod, int event, void *data); static struct accept_filter accf_http_filter = { "httpready", @@ -64,51 +61,19 @@ static moduledata_t accf_http_mod = { "accf_http", - accept_filt_http_mod_event, - NULL, + accept_filt_generic_mod_event, + &accf_http_filter }; DECLARE_MODULE(accf_http, accf_http_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE); -#ifdef VIMAGE_GLOBALS -static int parse_http_version; -#endif +static int parse_http_version = 1; -struct vnet_accf_http { - int _parse_http_version; -}; - -#ifndef VIMAGE -#ifndef VIMAGE_GLOBALS -struct vnet_accf_http vnet_accf_http_0; -#endif -#endif - -#define INIT_VNET_ACCF_HTTP(vnet) \ - INIT_FROM_VNET(vnet, VNET_MOD_ACCF_HTTP, struct vnet_accf_http, vnet_accf_http) - -#define VNET_ACCF_HTTP(sym) VSYM(vnet_accf_http, sym) - -#define V_parse_http_version VNET_ACCF_HTTP(parse_http_version) - -#define V_MOD_vnet_accf_http VNET_MOD_ACCF_HTTP - -static vnet_attach_fn vnet_accf_http_iattach; - -#ifndef VIMAGE_GLOBALS -vnet_modinfo_t vnet_accf_http_modinfo = { - .vmi_id = VNET_MOD_ACCF_HTTP, - .vmi_name = "accf_http", - .vmi_dependson = VNET_MOD_INET, - .vmi_iattach = vnet_accf_http_iattach -}; -#endif - SYSCTL_NODE(_net_inet_accf, OID_AUTO, http, CTLFLAG_RW, 0, "HTTP accept filter"); -SYSCTL_V_INT(V_NET, vnet_accf_http, _net_inet_accf_http, OID_AUTO, - parsehttpversion, CTLFLAG_RW, parse_http_version, 1, - "Parse http version so that non 1.x requests work"); +SYSCTL_INT(_net_inet_accf_http, OID_AUTO, parsehttpversion, CTLFLAG_RW, +&parse_http_version, 1, +"Parse http version so that non 1.x requests work"); #ifdef ACCF_HTTP_DEBUG #define DPRINT(fmt, args...) \ @@ -196,7 +161,6 @@ static int sohashttpget(struct socket *so, void *arg, int waitflag) { - INIT_VNET_ACCF_HTTP(so->so_vnet); if ((so->so_rcv.sb_state & SBS_CANTRCVMORE) == 0 && !sbfull(&so->so_rcv)) { struct mbuf *m; @@ -228,7 +192,7 @@ } if (mbufstrcmp(m, m->m_nextpkt, 1, cmp) == 1) { DPRINT("mbufstrcmp ok"); - if (V_parse_http_version == 0) + if (parse_http_version == 0) return (soishttpconnected(so, arg, waitflag)); else return (soparsehttpvers(so, arg, waitflag)); @@ -383,58 +347,3 @@ gotit: return (SU_ISCONNECTED); } - -static int -accept_filt_http_mod_event(module_t mod, int event, void *data) -{ - struct accept_filter *p; - int error; - - switch (event) { - case MOD_LOAD: -#ifndef VIMAGE_GLOBALS - vnet_mod_register(&vnet_accf_http_modinfo); -#else - vnet_accf_http_iattach(NULL); -#endif /* !VIMAGE */ - - MALLOC(p, struct accept_filter *, sizeof(*p), M_ACCF, - M_WAITOK); - bcopy(&accf_http_filter, p, sizeof(*p)); - error = accept_filt_add(p); - break; - - case MOD_UNLOAD: - /* - * Do not support unloading yet. we don't keep track of - * refcounts and unloading an accept filter callback and then - * having it called is a bad thing. A simple fix would be to - * track the refcount in the struct accept_filter. - */ - if (accf_unloadable != 0) { - error = accept_filt_del(accf_http_filter.accf_name); - } else - error = EOPNOTSUPP; - break; - - case MOD_SHUTDOWN: - error = 0; - break; - - default: - error = EOPNOTSUPP; - break; - } - - return (error); -} - -static int vnet_accf_http_iattach(const void *unused) -{ - INIT_VNET_ACCF_HTTP(curvnet); - - V_parse_http_version = 1; - - return (0); -} - ==== //depot/projects/vimage/src/sys/netinet/in_mcast.c#32 (text+ko) ==== @@ -201,8 +201,6 @@ return (ifp == NULL); } -static struct ifnet *ip_multicast_if(const struct in_addr *a); - /* * Initialize an in_mfilter structure to a known state at t0, t1 * with an empty source filter list. @@ -1809,7 +1807,7 @@ ifp = NULL; if (!in_nullhost(ina)) { - ifp = ip_multicast_if(&ina); + INADDR_TO_IFP(ina, ifp); } else { struct route ro; @@ -2334,7 +2332,7 @@ if (in_nullhost(addr)) { ifp = NULL; } else { - ifp = ip_multicast_if(&addr); + INADDR_TO_IFP(addr, ifp); if (ifp == NULL) return (EADDRNOTAVAIL); } @@ -2854,24 +2852,3 @@ #endif /* KTR */ RB_GENERATE(ip_msource_tree, ip_msource, ims_link, ip_msource_cmp); -/* - * following RFC1724 section 3.3, 0.0.0.0/8 is interpreted as interface index. - */ -static struct ifnet * -ip_multicast_if(const struct in_addr *a) -{ - INIT_VNET_NET(curvnet); - INIT_VNET_INET(curvnet); - int ifindex; - struct ifnet *ifp; - - if (ntohl(a->s_addr) >> 24 == 0) { - ifindex = ntohl(a->s_addr) & 0xffffff; - if (ifindex < 0 || V_if_index < ifindex) - return NULL; - ifp = ifnet_byindex(ifindex); - } else - INADDR_TO_IFP(*a, ifp); - return ifp; -} - ==== //depot/projects/vimage/src/sys/netinet/ip_divert.c#38 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/netinet/ip_divert.c,v 1.156 2009/08/02 19:43:32 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/ip_divert.c,v 1.157 2009/08/24 10:06:02 zec Exp $"); #if !defined(KLD_MODULE) #include "opt_inet.h" @@ -125,7 +125,36 @@ static u_long div_sendspace = DIVSNDQ; /* XXX sysctl ? */ static u_long div_recvspace = DIVRCVQ; /* XXX sysctl ? */ -void +static eventhandler_tag ip_divert_event_tag; + +/* + * Initialize divert connection block queue. + */ +static void +div_zone_change(void *tag) +{ + + uma_zone_set_max(V_divcbinfo.ipi_zone, maxsockets); +} + +static int +div_inpcb_init(void *mem, int size, int flags) +{ + struct inpcb *inp = mem; + + INP_LOCK_INIT(inp, "inp", "divinp"); + return (0); +} + +static void +div_inpcb_fini(void *mem, int size) +{ + struct inpcb *inp = mem; + + INP_LOCK_DESTROY(inp); +} + +static void div_init(void) { @@ -143,6 +172,21 @@ V_divcbinfo.ipi_hashbase = hashinit(1, M_PCB, &V_divcbinfo.ipi_hashmask); V_divcbinfo.ipi_porthashbase = hashinit(1, M_PCB, &V_divcbinfo.ipi_porthashmask); + V_divcbinfo.ipi_zone = uma_zcreate("divcb", sizeof(struct inpcb), + NULL, NULL, div_inpcb_init, div_inpcb_fini, UMA_ALIGN_PTR, + UMA_ZONE_NOFREE); + uma_zone_set_max(V_divcbinfo.ipi_zone, maxsockets); +} + +static void +div_destroy(void) +{ + + INP_INFO_LOCK_DESTROY(&V_divcbinfo); + uma_zdestroy(V_divcbinfo.ipi_zone); + hashdestroy(V_divcbinfo.ipi_hashbase, M_PCB, V_divcbinfo.ipi_hashmask); + hashdestroy(V_divcbinfo.ipi_porthashbase, M_PCB, + V_divcbinfo.ipi_porthashmask); } /* @@ -676,6 +720,9 @@ .pr_ctlinput = div_ctlinput, .pr_ctloutput = ip_ctloutput, .pr_init = div_init, +#ifdef VIMAGE + .pr_destroy = div_destroy, +#endif .pr_usrreqs = &div_usrreqs }; @@ -683,7 +730,9 @@ div_modevent(module_t mod, int type, void *unused) { int err = 0; +#ifndef VIMAGE int n; +#endif switch (type) { case MOD_LOAD: @@ -693,7 +742,11 @@ * a true IP protocol that goes over the wire. */ err = pf_proto_register(PF_INET, &div_protosw); + if (err != 0) + return (err); ip_divert_ptr = divert_packet; + ip_divert_event_tag = EVENTHANDLER_REGISTER(maxsockets_change, + div_zone_change, NULL, EVENTHANDLER_PRI_ANY); break; case MOD_QUIESCE: /* @@ -704,6 +757,10 @@ err = EPERM; break; case MOD_UNLOAD: +#ifdef VIMAGE + err = EPERM; + break; +#else /* * Forced unload. * @@ -725,8 +782,10 @@ ip_divert_ptr = NULL; err = pf_proto_unregister(PF_INET, IPPROTO_DIVERT, SOCK_RAW); INP_INFO_WUNLOCK(&V_divcbinfo); - INP_INFO_LOCK_DESTROY(&V_divcbinfo); + div_destroy(); + EVENTHANDLER_DEREGISTER(maxsockets_change, ip_divert_event_tag); break; +#endif /* !VIMAGE */ default: err = EOPNOTSUPP; break; ==== //depot/projects/vimage/src/sys/netinet/ip_fw.h#38 (text+ko) ==== @@ -28,9 +28,6 @@ #ifndef _IPFW2_H #define _IPFW2_H -#include -#include - /* * The default rule number. By the design of ip_fw, the default rule * is the last one, so its number can also serve as the highest number @@ -581,35 +578,6 @@ #define MTAG_IPFW 1148380143 /* IPFW-tagged cookie */ -/* - * Data structure to cache our ucred related - * information. This structure only gets used if - * the user specified UID/GID based constraints in - * a firewall rule. - */ -struct ip_fw_ugid { - gid_t fw_groups[NGROUPS]; - int fw_ngroups; - uid_t fw_uid; - int fw_prid; -}; - -#define IPFW_TABLES_MAX 128 -struct ip_fw_chain { - struct ip_fw *rules; /* list of rules */ - struct ip_fw *reap; /* list of rules to reap */ - LIST_HEAD(, cfg_nat) nat; /* list of nat entries */ - struct radix_node_head *tables[IPFW_TABLES_MAX]; - struct rwlock rwmtx; - uint32_t id; /* ruleset id */ -}; - -struct table_entry { - struct radix_node rn[2]; - struct sockaddr_in addr, mask; - u_int32_t value; -}; - /* Return values from ipfw_chk() */ enum { IP_FW_PASS = 0, @@ -683,6 +651,7 @@ int ipfw6_unhook(void); #ifdef NOTYET void ipfw_nat_destroy(void); +#endif VNET_DECLARE(int, fw_one_pass); VNET_DECLARE(int, fw_enable); @@ -694,6 +663,15 @@ #define V_fw6_enable VNET(fw6_enable) #endif +struct ip_fw_chain { + struct ip_fw *rules; /* list of rules */ + struct ip_fw *reap; /* list of rules to reap */ + LIST_HEAD(, cfg_nat) nat; /* list of nat entries */ + struct radix_node_head *tables[IPFW_TABLES_MAX]; + struct rwlock rwmtx; + uint32_t id; /* ruleset id */ +}; + #ifdef IPFW_INTERNAL #define IPFW_LOCK_INIT(_chain) \ ==== //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw2.c#9 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/netinet/ipfw/ip_fw2.c,v 1.13 2009/08/21 11:20:10 julian Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/ipfw/ip_fw2.c,v 1.15 2009/08/23 08:49:32 julian Exp $"); #define DEB(x) #define DDB(x) x @@ -145,6 +145,12 @@ ipfw_nat_cfg_t *ipfw_nat_get_cfg_ptr; ipfw_nat_cfg_t *ipfw_nat_get_log_ptr; +struct table_entry { + struct radix_node rn[2]; + struct sockaddr_in addr, mask; + u_int32_t value; +}; + static VNET_DEFINE(int, autoinc_step); #define V_autoinc_step VNET(autoinc_step) static VNET_DEFINE(int, fw_deny_unknown_exthdrs); @@ -4647,7 +4653,7 @@ #endif /* * Other things that are only done the first time. - * (now that we a re cuaranteed of success). + * (now that we are guaranteed of success). */ ip_fw_ctl_ptr = ipfw_ctl; ip_fw_chk_ptr = ipfw_chk; ==== //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw_nat.c#6 (text+ko) ==== @@ -599,7 +599,7 @@ NULL, EVENTHANDLER_PRI_ANY); } -void +static void ipfw_nat_destroy(void) { struct ip_fw *rule; ==== //depot/projects/vimage/src/sys/netinet6/sctp6_usrreq.c#30 (text+ko) ==== @@ -34,7 +34,6 @@ #include #include -#include #include #include #include @@ -804,7 +803,6 @@ sctp6_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr *addr, struct mbuf *control, struct thread *p) { - INIT_VNET_INET6(curvnet); struct sctp_inpcb *inp; struct inpcb *in_inp; struct in6pcb *inp6; @@ -917,7 +915,6 @@ static int sctp6_connect(struct socket *so, struct sockaddr *addr, struct thread *p) { - INIT_VNET_INET6(curvnet); uint32_t vrf_id; int error = 0; struct sctp_inpcb *inp; ==== //depot/projects/vimage/src/sys/nfsclient/nfs_vfsops.c#32 (text+ko) ==== @@ -57,7 +57,6 @@ #include #include #include -#include #include #include @@ -422,17 +421,14 @@ char buf[128]; char *cp; - CURVNET_SET(TD_TO_VNET(td)); #if defined(BOOTP_NFSROOT) && defined(BOOTP) bootpc_init(); /* use bootp to get nfs_diskless filled in */ #elif defined(NFS_ROOT) nfs_setup_diskless(); #endif - if (nfs_diskless_valid == 0) { - CURVNET_RESTORE(); + if (nfs_diskless_valid == 0) return (-1); - } if (nfs_diskless_valid == 1) nfs_convert_diskless(); @@ -516,7 +512,6 @@ nd->root_args.hostname = buf; if ((error = nfs_mountdiskless(buf, &nd->root_saddr, &nd->root_args, td, &vp, mp)) != 0) { - CURVNET_RESTORE(); return (error); } @@ -530,8 +525,6 @@ sizeof (prison0.pr_hostname)); mtx_unlock(&prison0.pr_mtx); inittodr(ntohl(nd->root_time)); - - CURVNET_RESTORE(); return (0); } ==== //depot/projects/vimage/src/sys/rpc/rpc_generic.c#5 (text+ko) ==== @@ -34,7 +34,7 @@ /* #pragma ident "@(#)rpc_generic.c 1.17 94/04/24 SMI" */ #include -__FBSDID("$FreeBSD: src/sys/rpc/rpc_generic.c,v 1.4 2008/11/03 10:38:00 dfr Exp $"); +__FBSDID("$FreeBSD: src/sys/rpc/rpc_generic.c,v 1.5 2009/08/24 10:09:30 zec Exp $"); /* * rpc_generic.c, Miscl routines for RPC. @@ -55,7 +55,8 @@ #include #include #include -#include + +#include #include #include @@ -185,12 +186,9 @@ struct sockopt opt; int error; - CURVNET_SET(so->so_vnet); error = so->so_proto->pr_usrreqs->pru_sockaddr(so, &sa); - if (error) { - CURVNET_RESTORE(); + if (error) return 0; - } sip->si_alen = sa->sa_len; family = sa->sa_family; @@ -203,7 +201,6 @@ opt.sopt_valsize = sizeof type; opt.sopt_td = NULL; error = sogetopt(so, &opt); - CURVNET_RESTORE(); if (error) return 0; @@ -700,9 +697,7 @@ struct sockaddr *sa; int error, bound; - CURVNET_SET(so->so_vnet); error = so->so_proto->pr_usrreqs->pru_sockaddr(so, &sa); - CURVNET_RESTORE(); if (error) return (0); @@ -829,6 +824,7 @@ sa->sa_len = salen; if (*portp == 0) { + CURVNET_SET(so->so_vnet); bzero(&opt, sizeof(opt)); opt.sopt_dir = SOPT_GET; opt.sopt_level = proto; @@ -836,12 +832,15 @@ opt.sopt_val = &old; opt.sopt_valsize = sizeof(old); error = sogetopt(so, &opt); - if (error) + if (error) { + CURVNET_RESTORE(); goto out; + } opt.sopt_dir = SOPT_SET; opt.sopt_val = &portlow; error = sosetopt(so, &opt); + CURVNET_RESTORE(); if (error) goto out; } @@ -852,7 +851,9 @@ if (error) { opt.sopt_dir = SOPT_SET; opt.sopt_val = &old; + CURVNET_SET(so->so_vnet); sosetopt(so, &opt); + CURVNET_RESTORE(); } } out: ==== //depot/projects/vimage/src/sys/rpc/svc_dg.c#7 (text+ko) ==== @@ -37,7 +37,7 @@ #ident "@(#)svc_dg.c 1.17 94/04/24 SMI" #endif #include -__FBSDID("$FreeBSD: src/sys/rpc/svc_dg.c,v 1.4 2009/06/01 21:17:03 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/rpc/svc_dg.c,v 1.5 2009/08/24 10:09:30 zec Exp $"); /* * svc_dg.c, Server side for connectionless RPC. @@ -56,7 +56,8 @@ #include #include #include -#include + +#include #include @@ -102,8 +103,10 @@ struct sockaddr* sa; int error; + CURVNET_SET(so->so_vnet); if (!__rpc_socket2sockinfo(so, &si)) { printf(svc_dg_str, svc_dg_err1); + CURVNET_RESTORE(); return (NULL); } /* @@ -113,6 +116,7 @@ recvsize = __rpc_get_t_size(si.si_af, si.si_proto, (int)recvsize); if ((sendsize == 0) || (recvsize == 0)) { printf(svc_dg_str, svc_dg_err2); + CURVNET_RESTORE(); return (NULL); } @@ -124,7 +128,6 @@ xprt->xp_p2 = NULL; xprt->xp_ops = &svc_dg_ops; - CURVNET_SET(so->so_vnet); error = so->so_proto->pr_usrreqs->pru_sockaddr(so, &sa); CURVNET_RESTORE(); if (error) ==== //depot/projects/vimage/src/sys/rpc/svc_generic.c#6 (text+ko) ==== @@ -38,7 +38,7 @@ static char sccsid[] = "@(#)svc_generic.c 1.21 89/02/28 Copyr 1988 Sun Micro"; #endif #include -__FBSDID("$FreeBSD: src/sys/rpc/svc_generic.c,v 1.4 2009/06/17 22:50:26 rmacklem Exp $"); +__FBSDID("$FreeBSD: src/sys/rpc/svc_generic.c,v 1.5 2009/08/24 10:09:30 zec Exp $"); /* * svc_generic.c, Server side for RPC. @@ -59,7 +59,8 @@ #include #include #include -#include + +#include #include #include @@ -229,17 +230,19 @@ /* * It is an open socket. Get the transport info. */ + CURVNET_SET(so->so_vnet); if (!__rpc_socket2sockinfo(so, &si)) { printf( "svc_tli_create: could not get transport information\n"); + CURVNET_RESTORE(); return (NULL); } + CURVNET_RESTORE(); } /* * If the socket is unbound, try to bind it. */ - CURVNET_SET(so->so_vnet); if (madeso || !__rpc_sockisbound(so)) { if (bindaddr == NULL) { if (bindresvport(so, NULL)) { @@ -261,7 +264,9 @@ "svc_tli_create: could not bind to requested address\n"); goto freedata; } + CURVNET_SET(so->so_vnet); solisten(so, (int)bindaddr->qlen, curthread); + CURVNET_RESTORE(); } } @@ -309,11 +314,9 @@ if (nconf) { xprt->xp_netid = strdup(nconf->nc_netid, M_RPC); } - CURVNET_RESTORE(); return (xprt); freedata: - CURVNET_RESTORE(); if (madeso) (void)soclose(so); if (xprt) { ==== //depot/projects/vimage/src/sys/sys/socketvar.h#17 (text+ko) ==== @@ -296,7 +296,6 @@ MALLOC_DECLARE(M_SONAME); #endif -extern int accf_unloadable; extern int maxsockets; extern u_long sb_max; extern struct uma_zone *socket_zone; From owner-p4-projects@FreeBSD.ORG Mon Aug 24 11:21:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9DFEF1065695; Mon, 24 Aug 2009 11:21:31 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4A7B41065693 for ; Mon, 24 Aug 2009 11:21:31 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 39A3A8FC35 for ; Mon, 24 Aug 2009 11:21:31 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7OBLVwV047174 for ; Mon, 24 Aug 2009 11:21:31 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7OBLVNS047172 for perforce@freebsd.org; Mon, 24 Aug 2009 11:21:31 GMT (envelope-from stas@freebsd.org) Date: Mon, 24 Aug 2009 11:21:31 GMT Message-Id: <200908241121.n7OBLVNS047172@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167722 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 11:21:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=167722 Change 167722 by stas@stas_yandex on 2009/08/24 11:20:32 - Perform memory functions replacements for FreeBSD rtld. Affected files ... .. //depot/projects/valgrind/memcheck/mc_replace_strmem.c#7 edit Differences ... ==== //depot/projects/valgrind/memcheck/mc_replace_strmem.c#7 (text+ko) ==== @@ -116,6 +116,9 @@ STRRCHR(VG_Z_LIBC_SONAME, rindex) #if defined(VGO_linux) STRRCHR(VG_Z_LD_LINUX_SO_2, rindex) +#elif defined(VGO_freebsd) +STRRCHR(VG_Z_LD_ELF_SO_1, strrchr) +STRRCHR(VG_Z_LD_ELF32_SO_1, strrchr) #elif defined(VGO_darwin) STRRCHR(VG_Z_DYLD, strrchr) STRRCHR(VG_Z_DYLD, rindex) @@ -143,6 +146,9 @@ STRCHR(VG_Z_LD_LINUX_SO_2, index) STRCHR(VG_Z_LD_LINUX_X86_64_SO_2, strchr) STRCHR(VG_Z_LD_LINUX_X86_64_SO_2, index) +#elif defined(VGO_freebsd) +STRCHR(VG_Z_LD_ELF_SO_1, strchr) +STRCHR(VG_Z_LD_ELF32_SO_1, strchr) #elif defined(VGO_darwin) STRCHR(VG_Z_DYLD, strchr) STRCHR(VG_Z_DYLD, index) @@ -171,6 +177,10 @@ } STRCAT(VG_Z_LIBC_SONAME, strcat) +#if defined(VGO_freebsd) +STRCAT(VG_Z_LD_ELF_SO_1, strcat) +STRCAT(VG_Z_LD_ELF32_SO_1, strcat) +#endif #define STRNCAT(soname, fnname) \ @@ -243,6 +253,9 @@ #if defined(VGO_darwin) STRLCAT(VG_Z_LIBC_SONAME, strlcat) STRLCAT(VG_Z_DYLD, strlcat) +#elif defined(VGO_freebsd) +STRLCAT(VG_Z_LD_ELF_SO_1, strlcat) +STRLCAT(VG_Z_LD_ELF32_SO_1, strlcat) #endif @@ -275,6 +288,9 @@ #if defined(VGO_linux) STRLEN(VG_Z_LD_LINUX_SO_2, strlen) STRLEN(VG_Z_LD_LINUX_X86_64_SO_2, strlen) +#elif defined(VGO_freebsd) +STRLEN(VG_Z_LD_ELF_SO_1, strlen) +STRLEN(VG_Z_LD_ELF32_SO_1, strlen) #endif @@ -302,6 +318,9 @@ STRCPY(VG_Z_LIBC_SONAME, strcpy) #if defined(VGO_darwin) STRCPY(VG_Z_DYLD, strcpy) +#elif defined(VGO_freebsd) +STRCPY(VG_Z_LD_ELF_SO_1, strcpy) +STRCPY(VG_Z_LD_ELF32_SO_1, strcpy) #endif @@ -328,6 +347,9 @@ STRNCPY(VG_Z_LIBC_SONAME, strncpy) #if defined(VGO_darwin) STRNCPY(VG_Z_DYLD, strncpy) +#elif defined(VGO_freebsd) +STRNCPY(VG_Z_LD_ELF_SO_1, strncpy) +STRNCPY(VG_Z_LD_ELF32_SO_1, strncpy) #endif @@ -359,6 +381,9 @@ #if defined(VGO_darwin) STRLCPY(VG_Z_LIBC_SONAME, strlcpy) STRLCPY(VG_Z_DYLD, strlcpy) +#elif defined(VGO_freebsd) +STRLCPY(VG_Z_LD_ELF_SO_1, strlcpy) +STRLCPY(VG_Z_LD_ELF32_SO_1, strlcpy) #endif @@ -385,6 +410,9 @@ STRNCMP(VG_Z_LIBC_SONAME, strncmp) #if defined(VGO_darwin) STRNCMP(VG_Z_DYLD, strncmp) +#elif defined(VGO_freebsd) +STRNCMP(VG_Z_LD_ELF_SO_1, strncmp) +STRNCMP(VG_Z_LD_ELF32_SO_1, strncmp) #endif @@ -412,6 +440,9 @@ #if defined(VGO_linux) STRCMP(VG_Z_LD_LINUX_X86_64_SO_2, strcmp) STRCMP(VG_Z_LD64_SO_1, strcmp) +#elif defined(VGO_freebsd) +STRCMP(VG_Z_LD_ELF_SO_1, strcmp) +STRCMP(VG_Z_LD_ELF32_SO_1, strcmp) #endif @@ -430,6 +461,9 @@ MEMCHR(VG_Z_LIBC_SONAME, memchr) #if defined(VGO_darwin) MEMCHR(VG_Z_DYLD, memchr) +#elif defined(VGO_freebsd) +MEMCHR(VG_Z_LD_ELF_SO_1, memchr) +MEMCHR(VG_Z_LD_ELF32_SO_1, memchr) #endif @@ -482,6 +516,9 @@ #if defined(VGO_linux) MEMCPY(VG_Z_LD_SO_1, memcpy) /* ld.so.1 */ MEMCPY(VG_Z_LD64_SO_1, memcpy) /* ld64.so.1 */ +#elif defined(VGO_freebsd) +MEMCPY(VG_Z_LD_ELF_SO_1, memcpy) +MEMCPY(VG_Z_LD_ELF32_SO_1, memcpy) #elif defined(VGO_darwin) MEMCPY(VG_Z_DYLD, memcpy) #endif @@ -558,6 +595,9 @@ #if defined(VGO_linux) STPCPY(VG_Z_LD_LINUX_SO_2, stpcpy) STPCPY(VG_Z_LD_LINUX_X86_64_SO_2, stpcpy) +#elif defined(VGO_freebsd) +STPCPY(VG_Z_LD_ELF_SO_1, stpcpy) +STPCPY(VG_Z_LD_ELF32_SO_1, stpcpy) #elif defined(VGO_darwin) STPCPY(VG_Z_DYLD, stpcpy) #endif @@ -585,6 +625,9 @@ MEMSET(VG_Z_LIBC_SONAME, memset) #if defined(VGO_darwin) MEMSET(VG_Z_DYLD, memset) +#elif defined(VGO_freebsd) +MEMSET(VG_Z_LD_ELF_SO_1, memset) +MEMSET(VG_Z_LD_ELF32_SO_1, memset) #endif @@ -612,6 +655,9 @@ MEMMOVE(VG_Z_LIBC_SONAME, memmove) #if defined(VGO_darwin) MEMMOVE(VG_Z_DYLD, memmove) +#elif defined(VGO_freebsd) +MEMMOVE(VG_Z_LD_ELF_SO_1, memmove) +MEMMOVE(VG_Z_LD_ELF32_SO_1, memmove) #endif @@ -638,6 +684,9 @@ #if defined(VGO_darwin) BCOPY(VG_Z_LIBC_SONAME, bcopy) BCOPY(VG_Z_DYLD, bcopy) +#elif defined(VGO_freebsd) +BCOPY(VG_Z_LD_ELF_SO_1, bcopy) +BCOPY(VG_Z_LD_ELF32_SO_1, bcopy) #endif From owner-p4-projects@FreeBSD.ORG Mon Aug 24 12:06:21 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 33DA31065693; Mon, 24 Aug 2009 12:06:21 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D3A73106568B for ; Mon, 24 Aug 2009 12:06:20 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C31638FC0C for ; Mon, 24 Aug 2009 12:06:20 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7OC6KSh051449 for ; Mon, 24 Aug 2009 12:06:20 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7OC6KZY051445 for perforce@freebsd.org; Mon, 24 Aug 2009 12:06:20 GMT (envelope-from zec@fer.hr) Date: Mon, 24 Aug 2009 12:06:20 GMT Message-Id: <200908241206.n7OC6KZY051445@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167725 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 12:06:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=167725 Change 167725 by zec@zec_tpx32 on 2009/08/24 12:06:15 Unbreak build. Affected files ... .. //depot/projects/vimage/src/sys/kern/vfs_export.c#24 edit .. //depot/projects/vimage/src/sys/kern/vfs_lookup.c#28 edit .. //depot/projects/vimage/src/sys/net/bpf.c#42 edit Differences ... ==== //depot/projects/vimage/src/sys/kern/vfs_export.c#24 (text+ko) ==== @@ -54,6 +54,7 @@ #include #include +#include static MALLOC_DEFINE(M_NETADDR, "export_host", "Export host address structure"); ==== //depot/projects/vimage/src/sys/kern/vfs_lookup.c#28 (text+ko) ==== @@ -59,6 +59,8 @@ #include #endif +#include + #include #include @@ -77,8 +79,12 @@ #endif #ifdef IMUNES_SYMLINK_HACK -SYSCTL_V_INT(V_PROCG, vprocg, _vfs, OID_AUTO, morphing_symlinks, CTLFLAG_RW, - morphing_symlinks, 0, "Resolve @ to vimage name in symlinks"); +static VNET_DEFINE(int, morphing_symlinks); +#define V_morphing_symlinks VNET(morphing_symlinks) + +SYSCTL_VNET_INT(_vfs, OID_AUTO, morphing_symlinks, CTLFLAG_RW, + &VNET_NAME(morphing_symlinks), 0, + "Resolve @ to vimage name in symlinks"); #endif /* @@ -142,9 +148,6 @@ struct thread *td = cnp->cn_thread; struct proc *p = td->td_proc; int vfslocked; -#ifdef IMUNES_SYMLINK_HACK - INIT_VPROCG(TD_TO_VPROCG(td)); -#endif KASSERT((cnp->cn_flags & MPSAFE) != 0 || mtx_owned(&Giant) != 0, ("NOT MPSAFE and Giant not held")); @@ -348,7 +351,7 @@ #ifdef IMUNES_SYMLINK_HACK if (V_morphing_symlinks) { char *sp = strchr(cp, '@'); - int vnamelen = strlen(TD_TO_VIMAGE(td)->vi_name); + int vnamelen = strlen(td->td_ucred->cr_prison->pr_name); if (sp) { if (vnamelen >= auio.uio_resid) { @@ -359,7 +362,8 @@ } bcopy(sp + 1, sp + vnamelen, linklen - (sp - cp)); - bcopy(TD_TO_VIMAGE(td)->vi_name, sp, vnamelen); + bcopy(td->td_ucred->cr_prison->pr_name, + sp, vnamelen); linklen += (vnamelen - 1); } } ==== //depot/projects/vimage/src/sys/net/bpf.c#42 (text+ko) ==== @@ -44,6 +44,7 @@ #include #include #include +#include #include #include #include @@ -1435,29 +1436,30 @@ struct bpf_if *bp; struct ifnet *theywant; -#define IMUNES_BPF_HACK -#if defined(VIMAGE) && defined(IMUNES_BPF_HACK) +#define XVNET_BPF_SNOOPING +#if defined(VIMAGE) && defined(XVNET_BPF_SNOOPING) struct vnet *target_vnet = curvnet; char *c; - /* Hack to support tapping in foreign vnets */ + /* Attempt to attach to an ifnet in a foreign vnet, specified as @ */ c = rindex(ifr->ifr_name, '@'); if ( c != NULL ) { -printf("bpf_setif: %s\n", c); - struct vimage *target_vimage; + struct prison *target_pr; *c++ = 0; - target_vimage = vimage_by_name(TD_TO_VIMAGE(curthread), c); - if (target_vimage == NULL) + if (!isascii(*c) && !isdigit(*c)) + return ENXIO; + target_pr = prison_find_name(curthread->td_ucred->cr_prison, c); + if (target_pr == NULL) return ENXIO; - target_vnet = target_vimage->v_net; + target_vnet = target_pr->pr_vnet; } CURVNET_SET_QUIET(target_vnet); #endif theywant = ifunit(ifr->ifr_name); if (theywant == NULL || theywant->if_bpf == NULL) { -#if defined(VIMAGE) && defined(IMUNES_BPF_HACK) +#if defined(VIMAGE) && defined(XVNET_BPF_SNOOPING) CURVNET_RESTORE(); #endif return (ENXIO); @@ -1501,7 +1503,7 @@ BPFD_LOCK(d); reset_d(d); BPFD_UNLOCK(d); -#if defined(VIMAGE) && defined(IMUNES_BPF_HACK) +#if defined(VIMAGE) && defined(XVNET_BPF_SNOOPING) CURVNET_RESTORE(); #endif return (0); From owner-p4-projects@FreeBSD.ORG Mon Aug 24 12:10:25 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CB365106568F; Mon, 24 Aug 2009 12:10:25 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 76C33106568B for ; Mon, 24 Aug 2009 12:10:25 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 647CC8FC12 for ; Mon, 24 Aug 2009 12:10:25 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7OCAPjY051789 for ; Mon, 24 Aug 2009 12:10:25 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7OCAPbv051787 for perforce@freebsd.org; Mon, 24 Aug 2009 12:10:25 GMT (envelope-from zec@fer.hr) Date: Mon, 24 Aug 2009 12:10:25 GMT Message-Id: <200908241210.n7OCAPbv051787@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167726 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 12:10:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=167726 Change 167726 by zec@zec_tpx32 on 2009/08/24 12:10:09 IFC @ 167724 Affected files ... .. //depot/projects/vimage/src/share/man/man9/Makefile#13 integrate .. //depot/projects/vimage/src/share/man/man9/kproc.9#2 integrate .. //depot/projects/vimage/src/share/man/man9/kthread.9#3 integrate .. //depot/projects/vimage/src/sys/arm/arm/undefined.c#4 integrate .. //depot/projects/vimage/src/sys/arm/xscale/ixp425/ixdp425_pci.c#3 integrate .. //depot/projects/vimage/src/sys/cddl/compat/opensolaris/sys/mutex.h#4 integrate .. //depot/projects/vimage/src/sys/cddl/compat/opensolaris/sys/proc.h#3 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#4 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#8 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c#3 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/sys/callb.h#3 integrate .. //depot/projects/vimage/src/sys/compat/linux/linux_ioctl.c#27 integrate .. //depot/projects/vimage/src/sys/conf/files#77 integrate .. //depot/projects/vimage/src/sys/conf/newvers.sh#11 integrate .. //depot/projects/vimage/src/sys/conf/options#57 integrate .. //depot/projects/vimage/src/sys/contrib/altq/altq/altq_subr.c#24 integrate .. //depot/projects/vimage/src/sys/dev/asmc/asmc.c#7 integrate .. //depot/projects/vimage/src/sys/dev/drm/drmP.h#12 integrate .. //depot/projects/vimage/src/sys/dev/drm/drm_bufs.c#10 integrate .. //depot/projects/vimage/src/sys/dev/drm/drm_drv.c#18 integrate .. //depot/projects/vimage/src/sys/dev/drm/drm_fops.c#7 integrate .. //depot/projects/vimage/src/sys/dev/drm/drm_sysctl.c#7 integrate .. //depot/projects/vimage/src/sys/dev/drm/r600_blit.c#1 branch .. //depot/projects/vimage/src/sys/dev/drm/r600_cp.c#6 integrate .. //depot/projects/vimage/src/sys/dev/drm/radeon_cp.c#12 integrate .. //depot/projects/vimage/src/sys/dev/drm/radeon_cs.c#1 branch .. //depot/projects/vimage/src/sys/dev/drm/radeon_drm.h#4 integrate .. //depot/projects/vimage/src/sys/dev/drm/radeon_drv.h#9 integrate .. //depot/projects/vimage/src/sys/dev/drm/radeon_state.c#4 integrate .. //depot/projects/vimage/src/sys/dev/pty/pty.c#1 branch .. //depot/projects/vimage/src/sys/dev/snp/snp.c#14 integrate .. //depot/projects/vimage/src/sys/dev/sound/usb/uaudio.c#19 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/usb_controller.c#13 integrate .. //depot/projects/vimage/src/sys/dev/usb/input/ukbd.c#12 integrate .. //depot/projects/vimage/src/sys/dev/usb/misc/ufm.c#7 integrate .. //depot/projects/vimage/src/sys/dev/usb/net/if_aue.c#11 integrate .. //depot/projects/vimage/src/sys/dev/usb/net/if_cdce.c#12 integrate .. //depot/projects/vimage/src/sys/dev/usb/serial/uipaq.c#8 integrate .. //depot/projects/vimage/src/sys/dev/usb/serial/uvisor.c#9 integrate .. //depot/projects/vimage/src/sys/dev/usb/storage/umass.c#11 integrate .. //depot/projects/vimage/src/sys/dev/usb/storage/urio.c#9 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb.h#12 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_busdma.c#9 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_dev.c#15 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_device.c#17 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_device.h#14 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_handle_request.c#13 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_hub.c#17 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_process.c#8 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_process.h#7 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_transfer.c#15 integrate .. //depot/projects/vimage/src/sys/dev/usb/usbdevs#54 integrate .. //depot/projects/vimage/src/sys/dev/usb/wlan/if_upgt.c#8 integrate .. //depot/projects/vimage/src/sys/dev/xen/console/console.c#11 integrate .. //depot/projects/vimage/src/sys/fs/nfsclient/nfs_clvnops.c#9 integrate .. //depot/projects/vimage/src/sys/kern/kern_cons.c#3 integrate .. //depot/projects/vimage/src/sys/kern/kern_jail.c#35 integrate .. //depot/projects/vimage/src/sys/kern/kern_subr.c#8 integrate .. //depot/projects/vimage/src/sys/kern/kern_uuid.c#20 integrate .. //depot/projects/vimage/src/sys/kern/sys_generic.c#16 integrate .. //depot/projects/vimage/src/sys/kern/tty_pts.c#19 integrate .. //depot/projects/vimage/src/sys/kern/tty_pty.c#11 delete .. //depot/projects/vimage/src/sys/kern/tty_ttydisc.c#9 integrate .. //depot/projects/vimage/src/sys/kern/uipc_domain.c#25 integrate .. //depot/projects/vimage/src/sys/kern/uipc_socket.c#42 integrate .. //depot/projects/vimage/src/sys/modules/drm/radeon/Makefile#3 integrate .. //depot/projects/vimage/src/sys/modules/pty/Makefile#1 branch .. //depot/projects/vimage/src/sys/net/bridgestp.c#25 integrate .. //depot/projects/vimage/src/sys/net/if.c#92 integrate .. //depot/projects/vimage/src/sys/net/if_ef.c#18 integrate .. //depot/projects/vimage/src/sys/net/if_llatbl.c#8 integrate .. //depot/projects/vimage/src/sys/net/if_var.h#46 integrate .. //depot/projects/vimage/src/sys/net/if_vlan.c#23 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_gif.c#17 integrate .. //depot/projects/vimage/src/sys/netinet/in.c#41 integrate .. //depot/projects/vimage/src/sys/netinet/ip_divert.c#39 integrate .. //depot/projects/vimage/src/sys/netinet/ip_divert.h#2 integrate .. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw2.c#10 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_indata.c#37 integrate .. //depot/projects/vimage/src/sys/netinet6/icmp6.c#50 integrate .. //depot/projects/vimage/src/sys/netinet6/in6.c#43 integrate .. //depot/projects/vimage/src/sys/netinet6/in6_ifattach.c#46 integrate .. //depot/projects/vimage/src/sys/netinet6/nd6.c#58 integrate .. //depot/projects/vimage/src/sys/netipsec/xform_ipip.c#35 integrate .. //depot/projects/vimage/src/sys/nfsclient/bootp_subr.c#25 integrate .. //depot/projects/vimage/src/sys/nfsclient/nfs_vnops.c#41 integrate .. //depot/projects/vimage/src/sys/rpc/clnt_dg.c#8 integrate .. //depot/projects/vimage/src/sys/rpc/clnt_rc.c#9 integrate .. //depot/projects/vimage/src/sys/rpc/clnt_vc.c#8 integrate .. //depot/projects/vimage/src/sys/rpc/rpc_generic.c#6 integrate .. //depot/projects/vimage/src/sys/rpc/svc_dg.c#8 integrate .. //depot/projects/vimage/src/sys/rpc/svc_generic.c#7 integrate .. //depot/projects/vimage/src/sys/rpc/svc_vc.c#8 integrate .. //depot/projects/vimage/src/sys/sys/cons.h#4 integrate .. //depot/projects/vimage/src/sys/sys/param.h#61 integrate .. //depot/projects/vimage/src/sys/sys/ttydisc.h#5 integrate Differences ... ==== //depot/projects/vimage/src/share/man/man9/Makefile#13 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/man/man9/Makefile,v 1.358 2009/08/12 21:03:16 sam Exp $ +# $FreeBSD: src/share/man/man9/Makefile,v 1.359 2009/08/23 07:48:11 julian Exp $ MAN= accept_filter.9 \ accf_data.9 \ @@ -713,6 +713,7 @@ kobj.9 kobj_delete.9 \ kobj.9 kobj_init.9 MLINKS+=kproc.9 kproc_create.9 \ + kproc.9 kthread_create.9 \ kproc.9 kproc_exit.9 \ kproc.9 kproc_resume.9 \ kproc.9 kproc_shutdown.9 \ ==== //depot/projects/vimage/src/share/man/man9/kproc.9#2 (text+ko) ==== @@ -23,7 +23,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/share/man/man9/kproc.9,v 1.3 2008/04/29 22:43:15 julian Exp $ +.\" $FreeBSD: src/share/man/man9/kproc.9,v 1.4 2009/08/23 07:48:11 julian Exp $ .\" .Dd October 19, 2007 .Dt KPROC 9 @@ -64,6 +64,28 @@ .Fa "int flags" "int pages" "char * procname" "const char *fmt" "..." .Fc .Sh DESCRIPTION +In +.Fx 8.0 , +the +.Fn kthread* 9 +family of functions was renamed to be the +.Fn kproc* 9 +family of functions, as they were misnamed +and actually produced kernel processes. +A new family of +.Em different +.Fn kthread_* 9 +functions was added to produce +.Em real +kernel +.Em threads . +See the +.Xr kthread 9 +man page for more information on those calls. +Also note that the +.Fn kproc_kthread_add 9 +function appears in both pages as its functionality is split. +.Pp The function .Fn kproc_start is used to start ==== //depot/projects/vimage/src/share/man/man9/kthread.9#3 (text+ko) ==== @@ -23,7 +23,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/share/man/man9/kthread.9,v 1.19 2009/01/27 00:22:16 trhodes Exp $ +.\" $FreeBSD: src/share/man/man9/kthread.9,v 1.20 2009/08/23 07:48:11 julian Exp $ .\" .Dd January 26, 2009 .Dt KTHREAD 9 @@ -65,6 +65,27 @@ .Fa "int flags" "int pages" "char * procname" "const char *fmt" "..." .Fc .Sh DESCRIPTION +In +.Fx 8.0 , +the older family of +.Fn kthread_* 9 +functions was renamed to be the +.Fn kproc_* 9 +family of functions, +as they were previously misnamed +and actually produced kernel processes. +This new family of +.Fn kthread_* 9 +functions was added to produce +.Em real +kernel threads. +See the +.Xr kproc 9 +man page for more information on the renamed calls. +Also note that the +.Fn kproc_kthread_add 9 +function appears in both pages as its functionality is split. +.Pp The function .Fn kthread_start is used to start ==== //depot/projects/vimage/src/sys/arm/arm/undefined.c#4 (text+ko) ==== @@ -48,7 +48,7 @@ #include "opt_ddb.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/undefined.c,v 1.16 2008/10/23 15:53:51 des Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/undefined.c,v 1.17 2009/08/23 23:37:53 cognet Exp $"); #include #include @@ -82,11 +82,10 @@ #ifdef DDB #include -#include #endif -#ifdef acorn26 -#include +#ifdef KDB +#include #endif static int gdb_trapper(u_int, u_int, struct trapframe *, int); ==== //depot/projects/vimage/src/sys/arm/xscale/ixp425/ixdp425_pci.c#3 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixdp425_pci.c,v 1.2 2008/03/20 15:54:19 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixdp425_pci.c,v 1.3 2009/08/23 19:54:36 cognet Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include @@ -62,12 +62,12 @@ /* PCI Reset Assert */ reg = GPIO_CONF_READ_4(sc, IXP425_GPIO_GPOUTR); reg &= ~(1U << GPIO_PCI_RESET); - GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPOUTR, reg & ~(1U << GPIO_PCI_RESET)); + GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPOUTR, reg); /* PCI Clock Disable */ reg = GPIO_CONF_READ_4(sc, IXP425_GPIO_GPCLKR); reg &= ~GPCLKR_MUX14; - GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPCLKR, reg & ~GPCLKR_MUX14); + GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPCLKR, reg); /* * set GPIO Direction ==== //depot/projects/vimage/src/sys/cddl/compat/opensolaris/sys/mutex.h#4 (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/cddl/compat/opensolaris/sys/mutex.h,v 1.7 2009/05/29 01:49:27 attilio Exp $ + * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/mutex.h,v 1.8 2009/08/23 11:22:46 pjd Exp $ */ #ifndef _OPENSOLARIS_SYS_MUTEX_H_ @@ -32,9 +32,9 @@ #ifdef _KERNEL #include -#include #include #include_next +#include #include typedef enum { ==== //depot/projects/vimage/src/sys/cddl/compat/opensolaris/sys/proc.h#3 (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/cddl/compat/opensolaris/sys/proc.h,v 1.6 2008/11/17 20:49:29 pjd Exp $ + * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/proc.h,v 1.8 2009/08/23 11:33:46 pjd Exp $ */ #ifndef _OPENSOLARIS_SYS_PROC_H_ @@ -34,13 +34,16 @@ #include_next #include #include +#include +#include +#include #include #ifdef _KERNEL #define CPU curcpu -#define minclsyspri 0 -#define maxclsyspri 0 +#define minclsyspri PRIBIO +#define maxclsyspri PVM #define max_ncpus mp_ncpus #define boot_max_ncpus mp_ncpus @@ -54,11 +57,13 @@ typedef struct thread *kthread_id_t; typedef struct proc proc_t; +extern struct proc *zfsproc; + static __inline kthread_t * thread_create(caddr_t stk, size_t stksize, void (*proc)(void *), void *arg, size_t len, proc_t *pp, int state, pri_t pri) { - proc_t *p; + kthread_t *td = NULL; int error; /* @@ -67,13 +72,19 @@ ASSERT(stk == NULL); ASSERT(len == 0); ASSERT(state == TS_RUN); + ASSERT(pp == &p0); - error = kproc_create(proc, arg, &p, 0, stksize / PAGE_SIZE, - "solthread %p", proc); - return (error == 0 ? FIRST_THREAD_IN_PROC(p) : NULL); + error = kproc_kthread_add(proc, arg, &zfsproc, &td, 0, + stksize / PAGE_SIZE, "zfskern", "solthread %p", proc); + if (error == 0) { + thread_lock(td); + sched_prio(td, pri); + thread_unlock(td); + } + return (td); } -#define thread_exit() kproc_exit(0) +#define thread_exit() kthread_exit() #endif /* _KERNEL */ ==== //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#4 (text+ko) ==== @@ -194,6 +194,10 @@ zio_t *zio; struct bio *bp; + thread_lock(curthread); + sched_prio(curthread, PRIBIO); + thread_unlock(curthread); + ctx = arg; for (;;) { mtx_lock(&ctx->gc_queue_mtx); @@ -203,7 +207,7 @@ ctx->gc_state = 2; wakeup_one(&ctx->gc_state); mtx_unlock(&ctx->gc_queue_mtx); - kproc_exit(0); + kthread_exit(); } msleep(&ctx->gc_queue, &ctx->gc_queue_mtx, PRIBIO | PDROP, "vgeom:io", 0); @@ -530,8 +534,8 @@ vd->vdev_tsd = ctx; pp = cp->provider; - kproc_create(vdev_geom_worker, ctx, NULL, 0, 0, "vdev:worker %s", - pp->name); + kproc_kthread_add(vdev_geom_worker, ctx, &zfsproc, NULL, 0, 0, + "zfskern", "vdev %s", pp->name); /* * Determine the actual size of the device. ==== //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#8 (text+ko) ==== @@ -3057,6 +3057,7 @@ } static struct root_hold_token *zfs_root_token; +struct proc *zfsproc; uint_t zfs_fsyncer_key; extern uint_t rrw_tsd_key; ==== //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c#3 (text+ko) ==== @@ -402,6 +402,10 @@ zvol_state_t *zv; struct bio *bp; + thread_lock(curthread); + sched_prio(curthread, PRIBIO); + thread_unlock(curthread); + zv = arg; for (;;) { mtx_lock(&zv->zv_queue_mtx); @@ -411,7 +415,7 @@ zv->zv_state = 2; wakeup(&zv->zv_state); mtx_unlock(&zv->zv_queue_mtx); - kproc_exit(0); + kthread_exit(); } msleep(&zv->zv_queue, &zv->zv_queue_mtx, PRIBIO | PDROP, "zvol:io", 0); @@ -824,7 +828,8 @@ bioq_init(&zv->zv_queue); mtx_init(&zv->zv_queue_mtx, "zvol", NULL, MTX_DEF); zv->zv_state = 0; - kproc_create(zvol_worker, zv, NULL, 0, 0, "zvol:worker %s", pp->name); + kproc_kthread_add(zvol_worker, zv, &zfsproc, NULL, 0, 0, "zfskern", + "zvol %s", pp->name + strlen(ZVOL_DEV_DIR) + 1); zvol_minors++; end: ==== //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/sys/callb.h#3 (text+ko) ==== @@ -135,8 +135,6 @@ #define CALLB_CPR_INIT(cp, lockp, func, name) { \ strlcpy(curthread->td_name, (name), \ sizeof(curthread->td_name)); \ - strlcpy(curthread->td_proc->p_comm, (name), \ - sizeof(curthread->td_proc->p_comm)); \ bzero((caddr_t)(cp), sizeof (callb_cpr_t)); \ (cp)->cc_lockp = lockp; \ (cp)->cc_id = callb_add(func, (void *)(cp), \ ==== //depot/projects/vimage/src/sys/compat/linux/linux_ioctl.c#27 (text+ko) ==== @@ -29,7 +29,7 @@ #include "opt_compat.h" #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.155 2009/08/01 19:26:27 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.156 2009/08/23 20:40:19 rwatson Exp $"); #include #include @@ -2061,22 +2061,20 @@ struct ifnet *ifscan; int ethno; + IFNET_RLOCK_ASSERT(); + /* Short-circuit non ethernet interfaces */ if (!IFP_IS_ETH(ifp)) return (strlcpy(buffer, ifp->if_xname, buflen)); /* Determine the (relative) unit number for ethernet interfaces */ ethno = 0; - IFNET_RLOCK(); TAILQ_FOREACH(ifscan, &V_ifnet, if_link) { - if (ifscan == ifp) { - IFNET_RUNLOCK(); + if (ifscan == ifp) return (snprintf(buffer, buflen, "eth%d", ethno)); - } if (IFP_IS_ETH(ifscan)) ethno++; } - IFNET_RUNLOCK(); return (0); } @@ -2177,7 +2175,7 @@ valid_len = 0; /* Return all AF_INET addresses of all interfaces */ - IFNET_RLOCK(); /* could sleep XXX */ + IFNET_RLOCK(); TAILQ_FOREACH(ifp, &V_ifnet, if_link) { int addrs = 0; ==== //depot/projects/vimage/src/sys/conf/files#77 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1459 2009/08/01 19:26:27 rwatson Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1461 2009/08/23 20:26:09 ed Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -845,8 +845,10 @@ dev/drm/r128_state.c optional r128drm \ compile-with "${NORMAL_C} -finline-limit=13500" dev/drm/r300_cmdbuf.c optional radeondrm +dev/drm/r600_blit.c optional radeondrm dev/drm/r600_cp.c optional radeondrm dev/drm/radeon_cp.c optional radeondrm +dev/drm/radeon_cs.c optional radeondrm dev/drm/radeon_drv.c optional radeondrm dev/drm/radeon_irq.c optional radeondrm dev/drm/radeon_mem.c optional radeondrm @@ -1295,6 +1297,7 @@ dev/pst/pst-iop.c optional pst dev/pst/pst-pci.c optional pst pci dev/pst/pst-raid.c optional pst +dev/pty/pty.c optional pty dev/puc/puc.c optional puc dev/puc/puc_cfg.c optional puc dev/puc/puc_pccard.c optional puc pccard @@ -2057,7 +2060,6 @@ kern/tty_inq.c standard kern/tty_outq.c standard kern/tty_pts.c standard -kern/tty_pty.c optional pty kern/tty_tty.c standard kern/tty_ttydisc.c standard kern/uipc_accf.c optional inet ==== //depot/projects/vimage/src/sys/conf/newvers.sh#11 (text+ko) ==== @@ -28,11 +28,11 @@ # SUCH DAMAGE. # # @(#)newvers.sh 8.1 (Berkeley) 4/20/94 -# $FreeBSD: src/sys/conf/newvers.sh,v 1.83 2009/07/15 17:29:05 kensmith Exp $ +# $FreeBSD: src/sys/conf/newvers.sh,v 1.85 2009/08/23 05:45:38 dougb Exp $ TYPE="FreeBSD" -REVISION="8.0" -BRANCH="BETA2" +REVISION="9.0" +BRANCH="CURRENT" if [ "X${BRANCH_OVERRIDE}" != "X" ]; then BRANCH=${BRANCH_OVERRIDE} fi @@ -87,29 +87,25 @@ v=`cat version` u=${USER:-root} d=`pwd` h=${HOSTNAME:-`hostname`} t=`date` i=`${MAKE:-make} -V KERN_IDENT` -for dir in /bin /usr/bin /usr/local/bin; do - if [ -x "${dir}/svnversion" ]; then - svnversion=${dir}/svnversion - SRCDIR=${d##*obj} - if [ -n "$MACHINE" ]; then - SRCDIR=${SRCDIR##/$MACHINE} +case "$d" in +*/sys/*) + for dir in /bin /usr/bin /usr/local/bin; do + if [ -x "${dir}/svnversion" ]; then + svnversion=${dir}/svnversion + SRCDIR=${d##*obj} + if [ -n "$MACHINE" ]; then + SRCDIR=${SRCDIR##/$MACHINE} + fi + SRCDIR=${SRCDIR%%/sys/*} + break fi - SRCDIR=${SRCDIR%%/sys/*} - break - fi -done + done -if [ -n "$svnversion" -a -d "${SRCDIR}/.svn" ] ; then - # If we are called from the kernel build, limit - # the scope of svnversion to sys/ . - if [ -e "${SRCDIR}/sys/conf/newvers.sh" ] ; then - svn=" r`cd $SRCDIR/sys && $svnversion`" - else - svn=" r`cd $SRCDIR && $svnversion`" + if [ -n "$svnversion" -a -d "${SRCDIR}/sys/.svn" ] ; then + svn=" r`cd ${SRCDIR}/sys && $svnversion`" fi -else - svn="" -fi + ;; +esac cat << EOF > vers.c $COPYRIGHT ==== //depot/projects/vimage/src/sys/conf/options#57 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.688 2009/08/14 22:41:39 zec Exp $ +# $FreeBSD: src/sys/conf/options,v 1.689 2009/08/23 20:26:09 ed Exp $ # # On the handling of kernel options # @@ -672,7 +672,6 @@ DEV_BPF opt_bpf.h DEV_MCA opt_mca.h DEV_CARP opt_carp.h -DEV_PTY opt_tty.h DEV_SPLASH opt_splash.h # EISA support ==== //depot/projects/vimage/src/sys/contrib/altq/altq/altq_subr.c#24 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/altq/altq/altq_subr.c,v 1.25 2009/08/01 19:26:27 rwatson Exp $ */ +/* $FreeBSD: src/sys/contrib/altq/altq/altq_subr.c,v 1.26 2009/08/23 20:40:19 rwatson Exp $ */ /* $KAME: altq_subr.c,v 1.21 2003/11/06 06:32:53 kjc Exp $ */ /* @@ -462,8 +462,8 @@ s = splimp(); #endif #if defined(__FreeBSD__) && (__FreeBSD_version >= 500000) - IFNET_RLOCK(); - VNET_LIST_RLOCK(); + IFNET_RLOCK_NOSLEEP(); + VNET_LIST_RLOCK_NOSLEEP(); VNET_FOREACH(vnet_iter) { CURVNET_SET(vnet_iter); #endif @@ -480,8 +480,8 @@ #if defined(__FreeBSD__) && (__FreeBSD_version >= 500000) CURVNET_RESTORE(); } - VNET_LIST_RUNLOCK(); - IFNET_RUNLOCK(); + VNET_LIST_RUNLOCK_NOSLEEP(); + IFNET_RUNLOCK_NOSLEEP(); #endif splx(s); if (active > 0) ==== //depot/projects/vimage/src/sys/dev/asmc/asmc.c#7 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/asmc/asmc.c,v 1.13 2009/06/26 10:23:17 rpaulo Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/asmc/asmc.c,v 1.14 2009/08/23 09:58:06 rpaulo Exp $"); #include #include @@ -419,7 +419,8 @@ SYSCTL_ADD_PROC(sysctlctx, SYSCTL_CHILDREN(sc->sc_light_tree), - OID_AUTO, "control", CTLTYPE_INT | CTLFLAG_RW, + OID_AUTO, "control", + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY, dev, 0, model->smc_light_control, "I", "Keyboard backlight brightness control"); } ==== //depot/projects/vimage/src/sys/dev/drm/drmP.h#12 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/drm/drmP.h,v 1.37 2009/06/23 18:09:35 rnoland Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/drm/drmP.h,v 1.39 2009/08/23 14:33:12 rnoland Exp $"); #ifndef _DRM_P_H_ #define _DRM_P_H_ @@ -148,6 +148,8 @@ MALLOC_DECLARE(DRM_MEM_SGLISTS); MALLOC_DECLARE(DRM_MEM_DRAWABLE); +SYSCTL_DECL(_hw_drm); + #define DRM_MAX_CTXBITMAP (PAGE_SIZE * 8) /* Internal types and structures */ @@ -416,7 +418,6 @@ struct drm_device *dev; int authenticated; int master; - int minor; pid_t pid; uid_t uid; drm_magic_t magic; ==== //depot/projects/vimage/src/sys/dev/drm/drm_bufs.c#10 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/drm/drm_bufs.c,v 1.13 2009/06/20 16:37:24 rnoland Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/drm/drm_bufs.c,v 1.14 2009/08/23 14:27:46 rnoland Exp $"); /** @file drm_bufs.c * Implementation of the ioctls for setup of DRM mappings and DMA buffers. @@ -45,25 +45,33 @@ */ static int drm_alloc_resource(struct drm_device *dev, int resource) { + struct resource *res; + int rid; + + DRM_SPINLOCK_ASSERT(&dev->dev_lock); + if (resource >= DRM_MAX_PCI_RESOURCE) { DRM_ERROR("Resource %d too large\n", resource); return 1; } - DRM_UNLOCK(); if (dev->pcir[resource] != NULL) { - DRM_LOCK(); return 0; } - dev->pcirid[resource] = PCIR_BAR(resource); - dev->pcir[resource] = bus_alloc_resource_any(dev->device, - SYS_RES_MEMORY, &dev->pcirid[resource], RF_SHAREABLE); + DRM_UNLOCK(); + rid = PCIR_BAR(resource); + res = bus_alloc_resource_any(dev->device, SYS_RES_MEMORY, &rid, + RF_SHAREABLE); DRM_LOCK(); + if (res == NULL) { + DRM_ERROR("Couldn't find resource 0x%x\n", resource); + return 1; + } if (dev->pcir[resource] == NULL) { - DRM_ERROR("Couldn't find resource 0x%x\n", resource); - return 1; + dev->pcirid[resource] = rid; + dev->pcir[resource] = res; } return 0; ==== //depot/projects/vimage/src/sys/dev/drm/drm_drv.c#18 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/drm/drm_drv.c,v 1.29 2009/08/20 19:17:53 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/drm/drm_drv.c,v 1.31 2009/08/23 14:33:12 rnoland Exp $"); /** @file drm_drv.c * The catch-all file for DRM device support, including module setup/teardown, @@ -53,9 +53,6 @@ static drm_pci_id_list_t *drm_find_description(int vendor, int device, drm_pci_id_list_t *idlist); -#define DRIVER_SOFTC(unit) \ - ((struct drm_device *)devclass_get_softc(drm_devclass, unit)) - MODULE_VERSION(drm, 1); MODULE_DEPEND(drm, agp, 1, 1, 1); MODULE_DEPEND(drm, pci, 1, 1, 1); @@ -136,6 +133,9 @@ static int drm_msi = 1; /* Enable by default. */ TUNABLE_INT("hw.drm.msi", &drm_msi); +SYSCTL_NODE(_hw, OID_AUTO, drm, CTLFLAG_RW, NULL, "DRM device"); +SYSCTL_INT(_hw_drm, OID_AUTO, msi, CTLFLAG_RDTUN, &drm_msi, 1, + "Enable MSI interrupts for drm devices"); static struct drm_msi_blacklist_entry drm_msi_blacklist[] = { {0x8086, 0x2772}, /* Intel i945G */ \ @@ -210,11 +210,12 @@ dev->device = kdev; #endif dev->devnode = make_dev(&drm_cdevsw, - unit, + 0, DRM_DEV_UID, DRM_DEV_GID, DRM_DEV_MODE, "dri/card%d", unit); + dev->devnode->si_drv1 = dev; #if __FreeBSD_version >= 700053 dev->pci_domain = pci_get_domain(dev->device); @@ -606,7 +607,7 @@ struct drm_device *dev = NULL; int retcode = 0; - dev = DRIVER_SOFTC(dev2unit(kdev)); + dev = kdev->si_drv1; DRM_DEBUG("open_count = %d\n", dev->open_count); ==== //depot/projects/vimage/src/sys/dev/drm/drm_fops.c#7 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/drm/drm_fops.c,v 1.7 2008/10/23 20:23:03 rnoland Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/drm/drm_fops.c,v 1.8 2009/08/23 14:31:20 rnoland Exp $"); /** @file drm_fops.c * Support code for dealing with the file privates associated with each @@ -44,14 +44,13 @@ struct drm_device *dev) { struct drm_file *priv; - int m = dev2unit(kdev); int retcode; if (flags & O_EXCL) return EBUSY; /* No exclusive opens */ dev->flags = flags; - DRM_DEBUG("pid = %d, minor = %d\n", DRM_CURRENTPID, m); + DRM_DEBUG("pid = %d, device = %s\n", DRM_CURRENTPID, devtoname(kdev)); priv = malloc(sizeof(*priv), DRM_MEM_FILES, M_NOWAIT | M_ZERO); if (priv == NULL) { @@ -68,7 +67,6 @@ priv->dev = dev; priv->uid = p->td_ucred->cr_svuid; priv->pid = p->td_proc->p_pid; - priv->minor = m; priv->ioctl_count = 0; /* for compatibility root is always authenticated */ ==== //depot/projects/vimage/src/sys/dev/drm/drm_sysctl.c#7 (text+ko) ==== @@ -22,7 +22,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/drm/drm_sysctl.c,v 1.7 2009/06/23 20:19:02 rnoland Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/drm/drm_sysctl.c,v 1.8 2009/08/23 14:31:20 rnoland Exp $"); /** @file drm_sysctl.c * Implementation of various sysctls for controlling DRM behavior and reporting @@ -298,12 +298,13 @@ DRM_UNLOCK(); - DRM_SYSCTL_PRINT("\na dev pid uid magic ioctls\n"); + DRM_SYSCTL_PRINT( + "\na dev pid uid magic ioctls\n"); for (i = 0; i < privcount; i++) { priv = &tempprivs[i]; - DRM_SYSCTL_PRINT("%c %3d %5d %5d %10u %10lu\n", + DRM_SYSCTL_PRINT("%c %-12s %5d %5d %10u %10lu\n", priv->authenticated ? 'y' : 'n', - priv->minor, + devtoname(priv->dev->devnode), priv->pid, priv->uid, priv->magic, ==== //depot/projects/vimage/src/sys/dev/drm/r600_cp.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/drm/r600_cp.c,v 1.9 2009/08/12 12:57:02 rnoland Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/drm/r600_cp.c,v 1.10 2009/08/23 14:55:57 rnoland Exp $"); #include "dev/drm/drmP.h" #include "dev/drm/drm.h" @@ -1843,6 +1843,7 @@ */ dev_priv->vblank_crtc = DRM_RADEON_VBLANK_CRTC1; + dev_priv->do_boxes = 0; dev_priv->cp_mode = init->cp_mode; /* We don't support anything other than bus-mastering ring mode, @@ -2100,6 +2101,8 @@ r600_do_engine_reset(dev); r600_test_writeback(dev_priv); + r600_cs_init(dev); + return 0; } @@ -2232,3 +2235,135 @@ return 0; } + +void r600_cp_dispatch_swap(struct drm_device * dev) +{ + drm_radeon_private_t *dev_priv = dev->dev_private; + drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; + int nbox = sarea_priv->nbox; + struct drm_clip_rect *pbox = sarea_priv->boxes; + int i, cpp, src_pitch, dst_pitch; + uint64_t src, dst; + RING_LOCALS; + DRM_DEBUG("\n"); + + if (dev_priv->color_fmt == RADEON_COLOR_FORMAT_ARGB8888) + cpp = 4; + else + cpp = 2; + + if (dev_priv->sarea_priv->pfCurrentPage == 0) { + src_pitch = dev_priv->back_pitch; + dst_pitch = dev_priv->front_pitch; + src = dev_priv->back_offset + dev_priv->fb_location; + dst = dev_priv->front_offset + dev_priv->fb_location; + } else { + src_pitch = dev_priv->front_pitch; + dst_pitch = dev_priv->back_pitch; + src = dev_priv->front_offset + dev_priv->fb_location; + dst = dev_priv->back_offset + dev_priv->fb_location; + } + + if (r600_prepare_blit_copy(dev)) { + DRM_ERROR("unable to allocate vertex buffer for swap buffer\n"); + return; + } + for (i = 0; i < nbox; i++) { + int x = pbox[i].x1; + int y = pbox[i].y1; + int w = pbox[i].x2 - x; + int h = pbox[i].y2 - y; + + DRM_DEBUG("%d,%d-%d,%d\n", x, y, w, h); + + r600_blit_swap(dev, + src, dst, + x, y, x, y, w, h, + src_pitch, dst_pitch, cpp); + } + r600_done_blit_copy(dev); + + /* Increment the frame counter. The client-side 3D driver must + * throttle the framerate by waiting for this value before + * performing the swapbuffer ioctl. + */ + dev_priv->sarea_priv->last_frame++; + + BEGIN_RING(3); + R600_FRAME_AGE(dev_priv->sarea_priv->last_frame); + ADVANCE_RING(); +} + +int r600_cp_dispatch_texture(struct drm_device * dev, + struct drm_file *file_priv, + drm_radeon_texture_t * tex, + drm_radeon_tex_image_t * image) +{ + drm_radeon_private_t *dev_priv = dev->dev_private; + struct drm_buf *buf; + u32 *buffer; + const u8 __user *data; + int size, pass_size; + u64 src_offset, dst_offset; + + if (!radeon_check_offset(dev_priv, tex->offset)) { + DRM_ERROR("Invalid destination offset\n"); + return -EINVAL; + } + + /* this might fail for zero-sized uploads - are those illegal? */ + if (!radeon_check_offset(dev_priv, tex->offset + tex->height * tex->pitch - 1)) { + DRM_ERROR("Invalid final destination offset\n"); + return -EINVAL; + } + + size = tex->height * tex->pitch; + + if (size == 0) + return 0; + + dst_offset = tex->offset; + + r600_prepare_blit_copy(dev); + do { + data = (const u8 __user *)image->data; + pass_size = size; + + buf = radeon_freelist_get(dev); + if (!buf) { + DRM_DEBUG("EAGAIN\n"); + if (DRM_COPY_TO_USER(tex->image, image, sizeof(*image))) + return -EFAULT; + return -EAGAIN; + } + + if (pass_size > buf->total) + pass_size = buf->total; + + /* Dispatch the indirect buffer. + */ + buffer = + (u32 *) ((char *)dev->agp_buffer_map->handle + buf->offset); + >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Aug 24 12:14:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 91FCD1065690; Mon, 24 Aug 2009 12:14:30 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 54D9E106568B for ; Mon, 24 Aug 2009 12:14:30 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4246E8FC19 for ; Mon, 24 Aug 2009 12:14:30 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7OCEUoG052054 for ; Mon, 24 Aug 2009 12:14:30 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7OCETDh052052 for perforce@freebsd.org; Mon, 24 Aug 2009 12:14:29 GMT (envelope-from zec@fer.hr) Date: Mon, 24 Aug 2009 12:14:29 GMT Message-Id: <200908241214.n7OCETDh052052@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167727 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 12:14:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=167727 Change 167727 by zec@zec_tpx32 on 2009/08/24 12:14:04 IFC @ 167724 Affected files ... .. //depot/projects/vimage-commit2/src/sys/arm/arm/undefined.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixdp425_pci.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/sys/mutex.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/sys/proc.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/sys/callb.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/compat/linux/linux_ioctl.c#23 integrate .. //depot/projects/vimage-commit2/src/sys/conf/files#49 integrate .. //depot/projects/vimage-commit2/src/sys/conf/newvers.sh#9 integrate .. //depot/projects/vimage-commit2/src/sys/conf/options#39 integrate .. //depot/projects/vimage-commit2/src/sys/contrib/altq/altq/altq_subr.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/dev/asmc/asmc.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/drm/drmP.h#9 integrate .. //depot/projects/vimage-commit2/src/sys/dev/drm/drm_bufs.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/dev/drm/drm_drv.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/dev/drm/drm_fops.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/drm/drm_sysctl.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/drm/r600_blit.c#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/drm/r600_cp.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/drm/radeon_cp.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/dev/drm/radeon_cs.c#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/drm/radeon_drm.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/drm/radeon_drv.h#9 integrate .. //depot/projects/vimage-commit2/src/sys/dev/drm/radeon_state.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/pty/pty.c#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/snp/snp.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/usb/uaudio.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/usb_controller.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/input/ukbd.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/misc/ufm.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/net/if_aue.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/net/if_cdce.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/serial/uipaq.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/serial/uvisor.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/storage/umass.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/storage/urio.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb.h#10 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_busdma.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_dev.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_device.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_device.h#15 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_handle_request.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_hub.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_process.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_process.h#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_transfer.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usbdevs#30 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/wlan/if_upgt.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/dev/xen/console/console.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfsclient/nfs_clvnops.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_cons.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_jail.c#33 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_subr.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_uuid.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/kern/sys_generic.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/kern/tty_pts.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/kern/tty_pty.c#7 delete .. //depot/projects/vimage-commit2/src/sys/kern/tty_ttydisc.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/kern/uipc_domain.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/kern/uipc_socket.c#33 integrate .. //depot/projects/vimage-commit2/src/sys/modules/drm/radeon/Makefile#3 integrate .. //depot/projects/vimage-commit2/src/sys/modules/pty/Makefile#1 branch .. //depot/projects/vimage-commit2/src/sys/net/bridgestp.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/net/if.c#85 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_ef.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_llatbl.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_var.h#38 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_vlan.c#20 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_gif.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in.c#34 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_divert.c#42 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_divert.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ipfw/ip_fw2.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp_indata.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/icmp6.c#35 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6.c#27 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_ifattach.c#35 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/nd6.c#41 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/xform_ipip.c#22 integrate .. //depot/projects/vimage-commit2/src/sys/nfsclient/bootp_subr.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/nfsclient/nfs_vnops.c#28 integrate .. //depot/projects/vimage-commit2/src/sys/rpc/clnt_dg.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/rpc/clnt_rc.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/rpc/clnt_vc.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/rpc/rpc_generic.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/rpc/svc_dg.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/rpc/svc_generic.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/rpc/svc_vc.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/sys/cons.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/sys/param.h#52 integrate .. //depot/projects/vimage-commit2/src/sys/sys/ttydisc.h#5 integrate Differences ... ==== //depot/projects/vimage-commit2/src/sys/arm/arm/undefined.c#3 (text+ko) ==== @@ -48,7 +48,7 @@ #include "opt_ddb.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/undefined.c,v 1.16 2008/10/23 15:53:51 des Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/undefined.c,v 1.17 2009/08/23 23:37:53 cognet Exp $"); #include #include @@ -82,11 +82,10 @@ #ifdef DDB #include -#include #endif -#ifdef acorn26 -#include +#ifdef KDB +#include #endif static int gdb_trapper(u_int, u_int, struct trapframe *, int); ==== //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixdp425_pci.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixdp425_pci.c,v 1.2 2008/03/20 15:54:19 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixdp425_pci.c,v 1.3 2009/08/23 19:54:36 cognet Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include @@ -62,12 +62,12 @@ /* PCI Reset Assert */ reg = GPIO_CONF_READ_4(sc, IXP425_GPIO_GPOUTR); reg &= ~(1U << GPIO_PCI_RESET); - GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPOUTR, reg & ~(1U << GPIO_PCI_RESET)); + GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPOUTR, reg); /* PCI Clock Disable */ reg = GPIO_CONF_READ_4(sc, IXP425_GPIO_GPCLKR); reg &= ~GPCLKR_MUX14; - GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPCLKR, reg & ~GPCLKR_MUX14); + GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPCLKR, reg); /* * set GPIO Direction ==== //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/sys/mutex.h#4 (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/cddl/compat/opensolaris/sys/mutex.h,v 1.7 2009/05/29 01:49:27 attilio Exp $ + * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/mutex.h,v 1.8 2009/08/23 11:22:46 pjd Exp $ */ #ifndef _OPENSOLARIS_SYS_MUTEX_H_ @@ -32,9 +32,9 @@ #ifdef _KERNEL #include -#include #include #include_next +#include #include typedef enum { ==== //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/sys/proc.h#3 (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/cddl/compat/opensolaris/sys/proc.h,v 1.6 2008/11/17 20:49:29 pjd Exp $ + * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/proc.h,v 1.8 2009/08/23 11:33:46 pjd Exp $ */ #ifndef _OPENSOLARIS_SYS_PROC_H_ @@ -34,13 +34,16 @@ #include_next #include #include +#include +#include +#include #include #ifdef _KERNEL #define CPU curcpu -#define minclsyspri 0 -#define maxclsyspri 0 +#define minclsyspri PRIBIO +#define maxclsyspri PVM #define max_ncpus mp_ncpus #define boot_max_ncpus mp_ncpus @@ -54,11 +57,13 @@ typedef struct thread *kthread_id_t; typedef struct proc proc_t; +extern struct proc *zfsproc; + static __inline kthread_t * thread_create(caddr_t stk, size_t stksize, void (*proc)(void *), void *arg, size_t len, proc_t *pp, int state, pri_t pri) { - proc_t *p; + kthread_t *td = NULL; int error; /* @@ -67,13 +72,19 @@ ASSERT(stk == NULL); ASSERT(len == 0); ASSERT(state == TS_RUN); + ASSERT(pp == &p0); - error = kproc_create(proc, arg, &p, 0, stksize / PAGE_SIZE, - "solthread %p", proc); - return (error == 0 ? FIRST_THREAD_IN_PROC(p) : NULL); + error = kproc_kthread_add(proc, arg, &zfsproc, &td, 0, + stksize / PAGE_SIZE, "zfskern", "solthread %p", proc); + if (error == 0) { + thread_lock(td); + sched_prio(td, pri); + thread_unlock(td); + } + return (td); } -#define thread_exit() kproc_exit(0) +#define thread_exit() kthread_exit() #endif /* _KERNEL */ ==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#4 (text+ko) ==== @@ -194,6 +194,10 @@ zio_t *zio; struct bio *bp; + thread_lock(curthread); + sched_prio(curthread, PRIBIO); + thread_unlock(curthread); + ctx = arg; for (;;) { mtx_lock(&ctx->gc_queue_mtx); @@ -203,7 +207,7 @@ ctx->gc_state = 2; wakeup_one(&ctx->gc_state); mtx_unlock(&ctx->gc_queue_mtx); - kproc_exit(0); + kthread_exit(); } msleep(&ctx->gc_queue, &ctx->gc_queue_mtx, PRIBIO | PDROP, "vgeom:io", 0); @@ -530,8 +534,8 @@ vd->vdev_tsd = ctx; pp = cp->provider; - kproc_create(vdev_geom_worker, ctx, NULL, 0, 0, "vdev:worker %s", - pp->name); + kproc_kthread_add(vdev_geom_worker, ctx, &zfsproc, NULL, 0, 0, + "zfskern", "vdev %s", pp->name); /* * Determine the actual size of the device. ==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#7 (text+ko) ==== @@ -3057,6 +3057,7 @@ } static struct root_hold_token *zfs_root_token; +struct proc *zfsproc; uint_t zfs_fsyncer_key; extern uint_t rrw_tsd_key; ==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c#3 (text+ko) ==== @@ -402,6 +402,10 @@ zvol_state_t *zv; struct bio *bp; + thread_lock(curthread); + sched_prio(curthread, PRIBIO); + thread_unlock(curthread); + zv = arg; for (;;) { mtx_lock(&zv->zv_queue_mtx); @@ -411,7 +415,7 @@ zv->zv_state = 2; wakeup(&zv->zv_state); mtx_unlock(&zv->zv_queue_mtx); - kproc_exit(0); + kthread_exit(); } msleep(&zv->zv_queue, &zv->zv_queue_mtx, PRIBIO | PDROP, "zvol:io", 0); @@ -824,7 +828,8 @@ bioq_init(&zv->zv_queue); mtx_init(&zv->zv_queue_mtx, "zvol", NULL, MTX_DEF); zv->zv_state = 0; - kproc_create(zvol_worker, zv, NULL, 0, 0, "zvol:worker %s", pp->name); + kproc_kthread_add(zvol_worker, zv, &zfsproc, NULL, 0, 0, "zfskern", + "zvol %s", pp->name + strlen(ZVOL_DEV_DIR) + 1); zvol_minors++; end: ==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/sys/callb.h#3 (text+ko) ==== @@ -135,8 +135,6 @@ #define CALLB_CPR_INIT(cp, lockp, func, name) { \ strlcpy(curthread->td_name, (name), \ sizeof(curthread->td_name)); \ - strlcpy(curthread->td_proc->p_comm, (name), \ - sizeof(curthread->td_proc->p_comm)); \ bzero((caddr_t)(cp), sizeof (callb_cpr_t)); \ (cp)->cc_lockp = lockp; \ (cp)->cc_id = callb_add(func, (void *)(cp), \ ==== //depot/projects/vimage-commit2/src/sys/compat/linux/linux_ioctl.c#23 (text+ko) ==== @@ -29,7 +29,7 @@ #include "opt_compat.h" #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.155 2009/08/01 19:26:27 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.156 2009/08/23 20:40:19 rwatson Exp $"); #include #include @@ -2061,22 +2061,20 @@ struct ifnet *ifscan; int ethno; + IFNET_RLOCK_ASSERT(); + /* Short-circuit non ethernet interfaces */ if (!IFP_IS_ETH(ifp)) return (strlcpy(buffer, ifp->if_xname, buflen)); /* Determine the (relative) unit number for ethernet interfaces */ ethno = 0; - IFNET_RLOCK(); TAILQ_FOREACH(ifscan, &V_ifnet, if_link) { - if (ifscan == ifp) { - IFNET_RUNLOCK(); + if (ifscan == ifp) return (snprintf(buffer, buflen, "eth%d", ethno)); - } if (IFP_IS_ETH(ifscan)) ethno++; } - IFNET_RUNLOCK(); return (0); } @@ -2177,7 +2175,7 @@ valid_len = 0; /* Return all AF_INET addresses of all interfaces */ - IFNET_RLOCK(); /* could sleep XXX */ + IFNET_RLOCK(); TAILQ_FOREACH(ifp, &V_ifnet, if_link) { int addrs = 0; ==== //depot/projects/vimage-commit2/src/sys/conf/files#49 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1459 2009/08/01 19:26:27 rwatson Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1461 2009/08/23 20:26:09 ed Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -845,8 +845,10 @@ dev/drm/r128_state.c optional r128drm \ compile-with "${NORMAL_C} -finline-limit=13500" dev/drm/r300_cmdbuf.c optional radeondrm +dev/drm/r600_blit.c optional radeondrm dev/drm/r600_cp.c optional radeondrm dev/drm/radeon_cp.c optional radeondrm +dev/drm/radeon_cs.c optional radeondrm dev/drm/radeon_drv.c optional radeondrm dev/drm/radeon_irq.c optional radeondrm dev/drm/radeon_mem.c optional radeondrm @@ -1295,6 +1297,7 @@ dev/pst/pst-iop.c optional pst dev/pst/pst-pci.c optional pst pci dev/pst/pst-raid.c optional pst +dev/pty/pty.c optional pty dev/puc/puc.c optional puc dev/puc/puc_cfg.c optional puc dev/puc/puc_pccard.c optional puc pccard @@ -2057,7 +2060,6 @@ kern/tty_inq.c standard kern/tty_outq.c standard kern/tty_pts.c standard -kern/tty_pty.c optional pty kern/tty_tty.c standard kern/tty_ttydisc.c standard kern/uipc_accf.c optional inet ==== //depot/projects/vimage-commit2/src/sys/conf/newvers.sh#9 (text+ko) ==== @@ -28,11 +28,11 @@ # SUCH DAMAGE. # # @(#)newvers.sh 8.1 (Berkeley) 4/20/94 -# $FreeBSD: src/sys/conf/newvers.sh,v 1.83 2009/07/15 17:29:05 kensmith Exp $ +# $FreeBSD: src/sys/conf/newvers.sh,v 1.85 2009/08/23 05:45:38 dougb Exp $ TYPE="FreeBSD" -REVISION="8.0" -BRANCH="BETA2" +REVISION="9.0" +BRANCH="CURRENT" if [ "X${BRANCH_OVERRIDE}" != "X" ]; then BRANCH=${BRANCH_OVERRIDE} fi @@ -87,29 +87,25 @@ v=`cat version` u=${USER:-root} d=`pwd` h=${HOSTNAME:-`hostname`} t=`date` i=`${MAKE:-make} -V KERN_IDENT` -for dir in /bin /usr/bin /usr/local/bin; do - if [ -x "${dir}/svnversion" ]; then - svnversion=${dir}/svnversion - SRCDIR=${d##*obj} - if [ -n "$MACHINE" ]; then - SRCDIR=${SRCDIR##/$MACHINE} +case "$d" in +*/sys/*) + for dir in /bin /usr/bin /usr/local/bin; do + if [ -x "${dir}/svnversion" ]; then + svnversion=${dir}/svnversion + SRCDIR=${d##*obj} + if [ -n "$MACHINE" ]; then + SRCDIR=${SRCDIR##/$MACHINE} + fi + SRCDIR=${SRCDIR%%/sys/*} + break fi - SRCDIR=${SRCDIR%%/sys/*} - break - fi -done + done -if [ -n "$svnversion" -a -d "${SRCDIR}/.svn" ] ; then - # If we are called from the kernel build, limit - # the scope of svnversion to sys/ . - if [ -e "${SRCDIR}/sys/conf/newvers.sh" ] ; then - svn=" r`cd $SRCDIR/sys && $svnversion`" - else - svn=" r`cd $SRCDIR && $svnversion`" + if [ -n "$svnversion" -a -d "${SRCDIR}/sys/.svn" ] ; then + svn=" r`cd ${SRCDIR}/sys && $svnversion`" fi -else - svn="" -fi + ;; +esac cat << EOF > vers.c $COPYRIGHT ==== //depot/projects/vimage-commit2/src/sys/conf/options#39 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.688 2009/08/14 22:41:39 zec Exp $ +# $FreeBSD: src/sys/conf/options,v 1.689 2009/08/23 20:26:09 ed Exp $ # # On the handling of kernel options # @@ -675,7 +675,6 @@ DEV_BPF opt_bpf.h DEV_MCA opt_mca.h DEV_CARP opt_carp.h -DEV_PTY opt_tty.h DEV_SPLASH opt_splash.h # EISA support ==== //depot/projects/vimage-commit2/src/sys/contrib/altq/altq/altq_subr.c#16 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/altq/altq/altq_subr.c,v 1.25 2009/08/01 19:26:27 rwatson Exp $ */ +/* $FreeBSD: src/sys/contrib/altq/altq/altq_subr.c,v 1.26 2009/08/23 20:40:19 rwatson Exp $ */ /* $KAME: altq_subr.c,v 1.21 2003/11/06 06:32:53 kjc Exp $ */ /* @@ -462,8 +462,8 @@ s = splimp(); #endif #if defined(__FreeBSD__) && (__FreeBSD_version >= 500000) - IFNET_RLOCK(); - VNET_LIST_RLOCK(); + IFNET_RLOCK_NOSLEEP(); + VNET_LIST_RLOCK_NOSLEEP(); VNET_FOREACH(vnet_iter) { CURVNET_SET(vnet_iter); #endif @@ -480,8 +480,8 @@ #if defined(__FreeBSD__) && (__FreeBSD_version >= 500000) CURVNET_RESTORE(); } - VNET_LIST_RUNLOCK(); - IFNET_RUNLOCK(); + VNET_LIST_RUNLOCK_NOSLEEP(); + IFNET_RUNLOCK_NOSLEEP(); #endif splx(s); if (active > 0) ==== //depot/projects/vimage-commit2/src/sys/dev/asmc/asmc.c#6 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/asmc/asmc.c,v 1.13 2009/06/26 10:23:17 rpaulo Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/asmc/asmc.c,v 1.14 2009/08/23 09:58:06 rpaulo Exp $"); #include #include @@ -419,7 +419,8 @@ SYSCTL_ADD_PROC(sysctlctx, SYSCTL_CHILDREN(sc->sc_light_tree), - OID_AUTO, "control", CTLTYPE_INT | CTLFLAG_RW, + OID_AUTO, "control", + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY, dev, 0, model->smc_light_control, "I", "Keyboard backlight brightness control"); } ==== //depot/projects/vimage-commit2/src/sys/dev/drm/drmP.h#9 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/drm/drmP.h,v 1.37 2009/06/23 18:09:35 rnoland Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/drm/drmP.h,v 1.39 2009/08/23 14:33:12 rnoland Exp $"); #ifndef _DRM_P_H_ #define _DRM_P_H_ @@ -148,6 +148,8 @@ MALLOC_DECLARE(DRM_MEM_SGLISTS); MALLOC_DECLARE(DRM_MEM_DRAWABLE); +SYSCTL_DECL(_hw_drm); + #define DRM_MAX_CTXBITMAP (PAGE_SIZE * 8) /* Internal types and structures */ @@ -416,7 +418,6 @@ struct drm_device *dev; int authenticated; int master; - int minor; pid_t pid; uid_t uid; drm_magic_t magic; ==== //depot/projects/vimage-commit2/src/sys/dev/drm/drm_bufs.c#9 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/drm/drm_bufs.c,v 1.13 2009/06/20 16:37:24 rnoland Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/drm/drm_bufs.c,v 1.14 2009/08/23 14:27:46 rnoland Exp $"); /** @file drm_bufs.c * Implementation of the ioctls for setup of DRM mappings and DMA buffers. @@ -45,25 +45,33 @@ */ static int drm_alloc_resource(struct drm_device *dev, int resource) { + struct resource *res; + int rid; + + DRM_SPINLOCK_ASSERT(&dev->dev_lock); + if (resource >= DRM_MAX_PCI_RESOURCE) { DRM_ERROR("Resource %d too large\n", resource); return 1; } - DRM_UNLOCK(); if (dev->pcir[resource] != NULL) { - DRM_LOCK(); return 0; } - dev->pcirid[resource] = PCIR_BAR(resource); - dev->pcir[resource] = bus_alloc_resource_any(dev->device, - SYS_RES_MEMORY, &dev->pcirid[resource], RF_SHAREABLE); + DRM_UNLOCK(); + rid = PCIR_BAR(resource); + res = bus_alloc_resource_any(dev->device, SYS_RES_MEMORY, &rid, + RF_SHAREABLE); DRM_LOCK(); + if (res == NULL) { + DRM_ERROR("Couldn't find resource 0x%x\n", resource); + return 1; + } if (dev->pcir[resource] == NULL) { - DRM_ERROR("Couldn't find resource 0x%x\n", resource); - return 1; + dev->pcirid[resource] = rid; + dev->pcir[resource] = res; } return 0; ==== //depot/projects/vimage-commit2/src/sys/dev/drm/drm_drv.c#15 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/drm/drm_drv.c,v 1.29 2009/08/20 19:17:53 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/drm/drm_drv.c,v 1.31 2009/08/23 14:33:12 rnoland Exp $"); /** @file drm_drv.c * The catch-all file for DRM device support, including module setup/teardown, @@ -53,9 +53,6 @@ static drm_pci_id_list_t *drm_find_description(int vendor, int device, drm_pci_id_list_t *idlist); -#define DRIVER_SOFTC(unit) \ - ((struct drm_device *)devclass_get_softc(drm_devclass, unit)) - MODULE_VERSION(drm, 1); MODULE_DEPEND(drm, agp, 1, 1, 1); MODULE_DEPEND(drm, pci, 1, 1, 1); @@ -136,6 +133,9 @@ static int drm_msi = 1; /* Enable by default. */ TUNABLE_INT("hw.drm.msi", &drm_msi); +SYSCTL_NODE(_hw, OID_AUTO, drm, CTLFLAG_RW, NULL, "DRM device"); +SYSCTL_INT(_hw_drm, OID_AUTO, msi, CTLFLAG_RDTUN, &drm_msi, 1, + "Enable MSI interrupts for drm devices"); static struct drm_msi_blacklist_entry drm_msi_blacklist[] = { {0x8086, 0x2772}, /* Intel i945G */ \ @@ -210,11 +210,12 @@ dev->device = kdev; #endif dev->devnode = make_dev(&drm_cdevsw, - unit, + 0, DRM_DEV_UID, DRM_DEV_GID, DRM_DEV_MODE, "dri/card%d", unit); + dev->devnode->si_drv1 = dev; #if __FreeBSD_version >= 700053 dev->pci_domain = pci_get_domain(dev->device); @@ -606,7 +607,7 @@ struct drm_device *dev = NULL; int retcode = 0; - dev = DRIVER_SOFTC(dev2unit(kdev)); + dev = kdev->si_drv1; DRM_DEBUG("open_count = %d\n", dev->open_count); ==== //depot/projects/vimage-commit2/src/sys/dev/drm/drm_fops.c#6 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/drm/drm_fops.c,v 1.7 2008/10/23 20:23:03 rnoland Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/drm/drm_fops.c,v 1.8 2009/08/23 14:31:20 rnoland Exp $"); /** @file drm_fops.c * Support code for dealing with the file privates associated with each @@ -44,14 +44,13 @@ struct drm_device *dev) { struct drm_file *priv; - int m = dev2unit(kdev); int retcode; if (flags & O_EXCL) return EBUSY; /* No exclusive opens */ dev->flags = flags; - DRM_DEBUG("pid = %d, minor = %d\n", DRM_CURRENTPID, m); + DRM_DEBUG("pid = %d, device = %s\n", DRM_CURRENTPID, devtoname(kdev)); priv = malloc(sizeof(*priv), DRM_MEM_FILES, M_NOWAIT | M_ZERO); if (priv == NULL) { @@ -68,7 +67,6 @@ priv->dev = dev; priv->uid = p->td_ucred->cr_svuid; priv->pid = p->td_proc->p_pid; - priv->minor = m; priv->ioctl_count = 0; /* for compatibility root is always authenticated */ ==== //depot/projects/vimage-commit2/src/sys/dev/drm/drm_sysctl.c#6 (text+ko) ==== @@ -22,7 +22,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/drm/drm_sysctl.c,v 1.7 2009/06/23 20:19:02 rnoland Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/drm/drm_sysctl.c,v 1.8 2009/08/23 14:31:20 rnoland Exp $"); /** @file drm_sysctl.c * Implementation of various sysctls for controlling DRM behavior and reporting @@ -298,12 +298,13 @@ DRM_UNLOCK(); - DRM_SYSCTL_PRINT("\na dev pid uid magic ioctls\n"); + DRM_SYSCTL_PRINT( + "\na dev pid uid magic ioctls\n"); for (i = 0; i < privcount; i++) { priv = &tempprivs[i]; - DRM_SYSCTL_PRINT("%c %3d %5d %5d %10u %10lu\n", + DRM_SYSCTL_PRINT("%c %-12s %5d %5d %10u %10lu\n", priv->authenticated ? 'y' : 'n', - priv->minor, + devtoname(priv->dev->devnode), priv->pid, priv->uid, priv->magic, ==== //depot/projects/vimage-commit2/src/sys/dev/drm/r600_cp.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/drm/r600_cp.c,v 1.9 2009/08/12 12:57:02 rnoland Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/drm/r600_cp.c,v 1.10 2009/08/23 14:55:57 rnoland Exp $"); #include "dev/drm/drmP.h" #include "dev/drm/drm.h" @@ -1843,6 +1843,7 @@ */ dev_priv->vblank_crtc = DRM_RADEON_VBLANK_CRTC1; + dev_priv->do_boxes = 0; dev_priv->cp_mode = init->cp_mode; /* We don't support anything other than bus-mastering ring mode, @@ -2100,6 +2101,8 @@ r600_do_engine_reset(dev); r600_test_writeback(dev_priv); + r600_cs_init(dev); + return 0; } @@ -2232,3 +2235,135 @@ return 0; } + +void r600_cp_dispatch_swap(struct drm_device * dev) +{ + drm_radeon_private_t *dev_priv = dev->dev_private; + drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; + int nbox = sarea_priv->nbox; + struct drm_clip_rect *pbox = sarea_priv->boxes; + int i, cpp, src_pitch, dst_pitch; + uint64_t src, dst; + RING_LOCALS; + DRM_DEBUG("\n"); + + if (dev_priv->color_fmt == RADEON_COLOR_FORMAT_ARGB8888) + cpp = 4; + else + cpp = 2; + + if (dev_priv->sarea_priv->pfCurrentPage == 0) { + src_pitch = dev_priv->back_pitch; + dst_pitch = dev_priv->front_pitch; + src = dev_priv->back_offset + dev_priv->fb_location; + dst = dev_priv->front_offset + dev_priv->fb_location; + } else { + src_pitch = dev_priv->front_pitch; + dst_pitch = dev_priv->back_pitch; + src = dev_priv->front_offset + dev_priv->fb_location; + dst = dev_priv->back_offset + dev_priv->fb_location; + } + + if (r600_prepare_blit_copy(dev)) { + DRM_ERROR("unable to allocate vertex buffer for swap buffer\n"); + return; + } + for (i = 0; i < nbox; i++) { + int x = pbox[i].x1; + int y = pbox[i].y1; + int w = pbox[i].x2 - x; + int h = pbox[i].y2 - y; + + DRM_DEBUG("%d,%d-%d,%d\n", x, y, w, h); + + r600_blit_swap(dev, + src, dst, + x, y, x, y, w, h, + src_pitch, dst_pitch, cpp); + } + r600_done_blit_copy(dev); + + /* Increment the frame counter. The client-side 3D driver must + * throttle the framerate by waiting for this value before + * performing the swapbuffer ioctl. + */ + dev_priv->sarea_priv->last_frame++; + + BEGIN_RING(3); + R600_FRAME_AGE(dev_priv->sarea_priv->last_frame); + ADVANCE_RING(); +} + +int r600_cp_dispatch_texture(struct drm_device * dev, + struct drm_file *file_priv, + drm_radeon_texture_t * tex, + drm_radeon_tex_image_t * image) +{ + drm_radeon_private_t *dev_priv = dev->dev_private; + struct drm_buf *buf; + u32 *buffer; + const u8 __user *data; + int size, pass_size; + u64 src_offset, dst_offset; + + if (!radeon_check_offset(dev_priv, tex->offset)) { + DRM_ERROR("Invalid destination offset\n"); + return -EINVAL; + } + + /* this might fail for zero-sized uploads - are those illegal? */ + if (!radeon_check_offset(dev_priv, tex->offset + tex->height * tex->pitch - 1)) { + DRM_ERROR("Invalid final destination offset\n"); + return -EINVAL; + } + + size = tex->height * tex->pitch; + + if (size == 0) + return 0; + + dst_offset = tex->offset; + + r600_prepare_blit_copy(dev); + do { + data = (const u8 __user *)image->data; + pass_size = size; + + buf = radeon_freelist_get(dev); + if (!buf) { + DRM_DEBUG("EAGAIN\n"); + if (DRM_COPY_TO_USER(tex->image, image, sizeof(*image))) + return -EFAULT; + return -EAGAIN; + } + + if (pass_size > buf->total) + pass_size = buf->total; + + /* Dispatch the indirect buffer. + */ + buffer = + (u32 *) ((char *)dev->agp_buffer_map->handle + buf->offset); + + if (DRM_COPY_FROM_USER(buffer, data, pass_size)) { + DRM_ERROR("EFAULT on pad, %d bytes\n", pass_size); + return -EFAULT; + } + + buf->file_priv = file_priv; + buf->used = pass_size; + src_offset = dev_priv->gart_buffers_offset + buf->offset; + + r600_blit_copy(dev, src_offset, dst_offset, pass_size); + + radeon_cp_discard_buffer(dev, buf); + + /* Update the input parameters for next time */ + image->data = (const u8 __user *)image->data + pass_size; + dst_offset += pass_size; + size -= pass_size; + } while (size > 0); + r600_done_blit_copy(dev); + + return 0; +} ==== //depot/projects/vimage-commit2/src/sys/dev/drm/radeon_cp.c#11 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/drm/radeon_cp.c,v 1.33 2009/06/25 16:17:07 rnoland Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/drm/radeon_cp.c,v 1.35 2009/08/23 15:02:58 rnoland Exp $"); #include "dev/drm/drmP.h" #include "dev/drm/drm.h" @@ -408,6 +408,15 @@ { uint32_t gb_tile_config, gb_pipe_sel = 0; + if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV530) { + uint32_t z_pipe_sel = RADEON_READ(RV530_GB_PIPE_SELECT2); + if ((z_pipe_sel & 3) == 3) + dev_priv->num_z_pipes = 2; + else + dev_priv->num_z_pipes = 1; + } else + dev_priv->num_z_pipes = 1; + /* RS4xx/RS6xx/R4xx/R5xx */ if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R420) { gb_pipe_sel = RADEON_READ(R400_GB_PIPE_SELECT); @@ -2060,6 +2069,8 @@ else dev_priv->flags |= RADEON_IS_PCI; + mtx_init(&dev_priv->cs.cs_mutex, "cs_mtx", NULL, MTX_DEF); + ret = drm_addmap(dev, drm_get_resource_start(dev, 2), drm_get_resource_len(dev, 2), _DRM_REGISTERS, _DRM_READ_ONLY | _DRM_DRIVER, &dev_priv->mmio); @@ -2112,6 +2123,8 @@ drm_rmmap(dev, dev_priv->mmio); + mtx_destroy(&dev_priv->cs.cs_mutex); + drm_free(dev_priv, sizeof(*dev_priv), DRM_MEM_DRIVER); dev->dev_private = NULL; @@ -2126,9 +2139,9 @@ /* check if the ring is padded out to 16-dword alignment */ - tail_aligned = dev_priv->ring.tail & 0xf; + tail_aligned = dev_priv->ring.tail & (RADEON_RING_ALIGN - 1); if (tail_aligned) { - int num_p2 = 16 - tail_aligned; + int num_p2 = RADEON_RING_ALIGN - tail_aligned; ring = dev_priv->ring.start; /* pad with some CP_PACKET2 */ ==== //depot/projects/vimage-commit2/src/sys/dev/drm/radeon_drm.h#4 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/drm/radeon_drm.h,v 1.16 2009/03/07 21:36:57 rnoland Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/drm/radeon_drm.h,v 1.18 2009/08/23 15:02:58 rnoland Exp $"); #ifndef __RADEON_DRM_H__ #define __RADEON_DRM_H__ @@ -497,6 +497,8 @@ #define DRM_RADEON_SURF_ALLOC 0x1a #define DRM_RADEON_SURF_FREE 0x1b +#define DRM_RADEON_CS 0x26 + #define DRM_IOCTL_RADEON_CP_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_INIT, drm_radeon_init_t) #define DRM_IOCTL_RADEON_CP_START DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_START) #define DRM_IOCTL_RADEON_CP_STOP DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_STOP, drm_radeon_cp_stop_t) >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Aug 24 12:19:36 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 464631065693; Mon, 24 Aug 2009 12:19:36 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0936C106568C for ; Mon, 24 Aug 2009 12:19:36 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EBE958FC18 for ; Mon, 24 Aug 2009 12:19:35 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7OCJZSZ052429 for ; Mon, 24 Aug 2009 12:19:35 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7OCJZWW052427 for perforce@freebsd.org; Mon, 24 Aug 2009 12:19:35 GMT (envelope-from zec@fer.hr) Date: Mon, 24 Aug 2009 12:19:35 GMT Message-Id: <200908241219.n7OCJZWW052427@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167728 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 12:19:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=167728 Change 167728 by zec@zec_tpx32 on 2009/08/24 12:18:35 Resolve misintegrations and garbage collect leftovers. vc2 == head now, open for testing VIMAGE bugfixes here. Affected files ... .. //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/rpc/xdr.h#3 edit .. //depot/projects/vimage-commit2/src/sys/conf/NOTES#37 edit .. //depot/projects/vimage-commit2/src/sys/conf/options#40 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/rpc/xdr.h#3 (text+ko) ==== @@ -1,112 +1,70 @@ /* - * CDDL HEADER START + * Sun RPC is a product of Sun Microsystems, Inc. and is provided for + * unrestricted use provided that this legend is included on all tape + * media and as a part of the software program in whole or part. Users + * may copy or modify Sun RPC without charge, but are not authorized + * to license or distribute it to anyone else except as part of a product or + * program developed by the user. * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. + * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE + * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR + * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. + * Sun RPC is provided with no support and without any obligation on the + * part of Sun Microsystems, Inc. to assist in its use, correction, + * modification or enhancement. * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] + * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE + * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC + * OR ANY PART THEREOF. * - * CDDL HEADER END + * In no event will Sun Microsystems, Inc. be liable for any lost revenue + * or profits or other special, indirect and consequential damages, even if + * Sun has been advised of the possibility of such damages. * - * $FreeBSD: src/sys/cddl/compat/opensolaris/rpc/xdr.h,v 1.4 2008/04/22 07:42:59 jb Exp $ + * Sun Microsystems, Inc. + * 2550 Garcia Avenue + * Mountain View, California 94043 */ -/* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ -/* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ -/* All Rights Reserved */ - -/* - * Portions of this source code were derived from Berkeley 4.3 BSD - * under license from the Regents of the University of California. - */ - #ifndef _OPENSOLARIS_RPC_XDR_H_ #define _OPENSOLARIS_RPC_XDR_H_ #include_next #ifndef _KERNEL -#include_next -/* - * Strangely, my glibc version (2.3.6) doesn't have xdr_control(), so - * we have to hack it in here (source taken from OpenSolaris). - * By the way, it is assumed the xdrmem implementation is used. - */ - -#undef xdr_control -#define xdr_control(a,b,c) xdrmem_control(a,b,c) +#include /* - * These are the request arguments to XDR_CONTROL. + * Taken from sys/xdr/xdr_mem.c. * - * XDR_PEEK - returns the contents of the next XDR unit on the XDR stream. - * XDR_SKIPBYTES - skips the next N bytes in the XDR stream. - * XDR_RDMAGET - for xdr implementation over RDMA, gets private flags from - * the XDR stream being moved over RDMA - * XDR_RDMANOCHUNK - for xdr implementaion over RDMA, sets private flags in - * the XDR stream moving over RDMA. + * FreeBSD's userland XDR doesn't implement control method (only the kernel), + * but OpenSolaris nvpair still depend on it, so we have to implement it here. */ -#define XDR_PEEK 2 -#define XDR_SKIPBYTES 3 -#define XDR_RDMAGET 4 -#define XDR_RDMASET 5 - -/* FIXME: probably doesn't work */ static __inline bool_t xdrmem_control(XDR *xdrs, int request, void *info) { xdr_bytesrec *xptr; - int32_t *int32p; - int len; switch (request) { - case XDR_GET_BYTES_AVAIL: xptr = (xdr_bytesrec *)info; xptr->xc_is_last_record = TRUE; xptr->xc_num_avail = xdrs->x_handy; return (TRUE); - - case XDR_PEEK: - /* - * Return the next 4 byte unit in the XDR stream. - */ - if (xdrs->x_handy < sizeof (int32_t)) - return (FALSE); - int32p = (int32_t *)info; - *int32p = (int32_t)ntohl((uint32_t) - (*((int32_t *)(xdrs->x_private)))); - return (TRUE); - - case XDR_SKIPBYTES: - /* - * Skip the next N bytes in the XDR stream. - */ - int32p = (int32_t *)info; - len = RNDUP((int)(*int32p)); - if ((xdrs->x_handy -= len) < 0) - return (FALSE); - xdrs->x_private += len; - return (TRUE); - + default: + assert(!"unexpected request"); } return (FALSE); } + +#undef XDR_CONTROL +#define XDR_CONTROL(xdrs, req, op) \ + (((xdrs)->x_ops->x_control == NULL) ? \ + xdrmem_control((xdrs), (req), (op)) : \ + (*(xdrs)->x_ops->x_control)(xdrs, req, op)) + #endif /* !_KERNEL */ #endif /* !_OPENSOLARIS_RPC_XDR_H_ */ ==== //depot/projects/vimage-commit2/src/sys/conf/NOTES#37 (text+ko) ==== @@ -273,10 +273,6 @@ options WITNESS_KDB options WITNESS_SKIPSPIN -# VNET_DEBUG attempts to detect usage of faulty / NULL vnets, and -# reports unintended curvnet recursions on console. -options VNET_DEBUG - # LOCK_PROFILING - Profiling locks. See LOCK_PROFILING(9) for details. options LOCK_PROFILING # Set the number of buffers and the hash size. The hash size MUST be larger ==== //depot/projects/vimage-commit2/src/sys/conf/options#40 (text+ko) ==== @@ -659,9 +659,6 @@ WITNESS_KDB opt_witness.h WITNESS_SKIPSPIN opt_witness.h -# VIMAGE / VNET debugging -VNET_DEBUG opt_global.h - # options for ACPI support ACPI_DEBUG opt_acpi.h ACPI_MAX_TASKS opt_acpi.h From owner-p4-projects@FreeBSD.ORG Mon Aug 24 12:34:53 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 19479106568D; Mon, 24 Aug 2009 12:34:53 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D1FAB106568B for ; Mon, 24 Aug 2009 12:34:52 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C14F98FC1D for ; Mon, 24 Aug 2009 12:34:52 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7OCYqJ6053619 for ; Mon, 24 Aug 2009 12:34:52 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7OCYq6o053617 for perforce@freebsd.org; Mon, 24 Aug 2009 12:34:52 GMT (envelope-from mav@freebsd.org) Date: Mon, 24 Aug 2009 12:34:52 GMT Message-Id: <200908241234.n7OCYq6o053617@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167729 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 12:34:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=167729 Change 167729 by mav@mav_mavbook on 2009/08/24 12:34:15 Report maximum supported PIO mode. Affected files ... .. //depot/projects/scottl-camlock/src/sbin/camcontrol/camcontrol.c#17 edit Differences ... ==== //depot/projects/scottl-camlock/src/sbin/camcontrol/camcontrol.c#17 (text+ko) ==== @@ -1054,6 +1054,26 @@ else printf("\n"); + printf("PIO supported PIO"); + if (parm->atavalid & ATA_FLAG_64_70) { + if (parm->apiomodes & 0x02) + printf("4"); + else if (parm->apiomodes & 0x01) + printf("3"); + } else if (parm->mwdmamodes & 0x04) + printf("4"); + else if (parm->mwdmamodes & 0x02) + printf("3"); + else if (parm->mwdmamodes & 0x01) + printf("2"); + else if ((parm->retired_piomode & ATA_RETIRED_PIO_MASK) == 0x200) + printf("2"); + else if ((parm->retired_piomode & ATA_RETIRED_PIO_MASK) == 0x100) + printf("1"); + else + printf("0"); + printf("\n"); + printf("DMA%ssupported ", parm->capabilities1 & ATA_SUPPORT_DMA ? " " : " not "); if (parm->capabilities1 & ATA_SUPPORT_DMA) { From owner-p4-projects@FreeBSD.ORG Mon Aug 24 14:05:32 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 74B941065690; Mon, 24 Aug 2009 14:05:32 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1F636106568E for ; Mon, 24 Aug 2009 14:05:32 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0E08F8FC17 for ; Mon, 24 Aug 2009 14:05:32 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7OE5VQB072488 for ; Mon, 24 Aug 2009 14:05:31 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7OE5VTS072486 for perforce@freebsd.org; Mon, 24 Aug 2009 14:05:31 GMT (envelope-from stas@freebsd.org) Date: Mon, 24 Aug 2009 14:05:31 GMT Message-Id: <200908241405.n7OE5VTS072486@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167733 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 14:05:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=167733 Change 167733 by stas@stas_yandex on 2009/08/24 14:04:49 - Rename sigaction6 to sigaction, and sigaction to sigaction4 respectively to reflect reality. Affected files ... .. //depot/projects/valgrind/coregrind/m_libcsignal.c#12 edit .. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-freebsd.h#19 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#38 edit .. //depot/projects/valgrind/include/vki/vki-scnums-freebsd.h#7 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_libcsignal.c#12 (text+ko) ==== @@ -276,14 +276,8 @@ return sr_isError(res) ? -1 : 0; # elif defined(VGO_freebsd) -# if __FreeBSD__ >= 5 - SysRes res = VG_(do_syscall3)(__NR_sigaction6, - signum, (UWord)act, (UWord)oldact); -# else SysRes res = VG_(do_syscall3)(__NR_sigaction, signum, (UWord)act, (UWord)oldact); -# endif - return sr_isError(res) ? -1 : 0; # else ==== //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-freebsd.h#19 (text+ko) ==== @@ -222,7 +222,7 @@ DECL_TEMPLATE(freebsd, sys_lkmnosys6); DECL_TEMPLATE(freebsd, sys_lkmnosys7); DECL_TEMPLATE(freebsd, sys_lkmnosys8); -DECL_TEMPLATE(freebsd, sys_sigaction6); +DECL_TEMPLATE(freebsd, sys_sigaction4); DECL_TEMPLATE(freebsd, sys_mmap7); DECL_TEMPLATE(freebsd, sys_lseek7); DECL_TEMPLATE(freebsd, sys_truncate7); ==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#38 (text+ko) ==== @@ -2208,7 +2208,7 @@ static int sigformat[_VKI_NSIG]; -PRE(sys_sigaction) +PRE(sys_sigaction4) { PRINT("sys_sigaction ( %ld, %#lx, %#lx )", ARG1,ARG2,ARG3); PRE_REG_READ3(long, "sigaction", @@ -2232,7 +2232,7 @@ (vki_sigaction_fromK_t *)ARG3) ); } -POST(sys_sigaction) +POST(sys_sigaction4) { vg_assert(SUCCESS); if (RES == 0 && ARG3 != 0) @@ -2240,7 +2240,7 @@ } /* Identical, but warns the signal handler to expect the different sigframe */ -PRE(sys_sigaction6) +PRE(sys_sigaction) { PRINT("sys_sigaction6 ( %ld, %#lx, %#lx )", ARG1,ARG2,ARG3); PRE_REG_READ3(long, "sigaction6", @@ -2263,7 +2263,7 @@ (vki_sigaction_fromK_t *)ARG3) ); } -POST(sys_sigaction6) +POST(sys_sigaction) { vg_assert(SUCCESS); if (RES == 0 && ARG3 != 0) @@ -3585,7 +3585,7 @@ BSDXY(__NR_sigprocmask, sys_sigprocmask), // 340 BSDX_(__NR_sigsuspend, sys_sigsuspend), // 341 - BSDXY(__NR_sigaction, sys_sigaction), // 342 + BSDXY(__NR_sigaction4, sys_sigaction4), // 342 BSDXY(__NR_sigpending, sys_sigpending), // 343 BSDX_(__NR_sigreturn, sys_sigreturn), // 344 @@ -3678,7 +3678,7 @@ // extattr_delete_link 414 // __mac_execve 415 - BSDXY(__NR_sigaction6, sys_sigaction6), // 416 + BSDXY(__NR_sigaction, sys_sigaction), // 416 //!sigreturn 417 // __xstat 418 // __xfstat 419 ==== //depot/projects/valgrind/include/vki/vki-scnums-freebsd.h#7 (text+ko) ==== @@ -254,7 +254,7 @@ #define __NR_jail 338 #define __NR_sigprocmask 340 #define __NR_sigsuspend 341 -#define __NR_sigaction 342 +#define __NR_sigaction4 342 #define __NR_sigpending 343 #define __NR_sigreturn 344 #define __NR_sigtimedwait 345 @@ -319,7 +319,7 @@ #define __NR_extattr_get_link 413 #define __NR_extattr_delete_link 414 #define __NR___mac_execve 415 -#define __NR_sigaction6 416 +#define __NR_sigaction 416 #define __NR_sigreturn6 417 #define __NR_getcontext 421 #define __NR_setcontext 422 From owner-p4-projects@FreeBSD.ORG Mon Aug 24 14:32:01 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A62B5106568D; Mon, 24 Aug 2009 14:32:01 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 522761065690 for ; Mon, 24 Aug 2009 14:32:01 +0000 (UTC) (envelope-from pvaibhav@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3F6638FC0A for ; Mon, 24 Aug 2009 14:32:01 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7OEW0lH074359 for ; Mon, 24 Aug 2009 14:32:00 GMT (envelope-from pvaibhav@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7OEW00x074357 for perforce@freebsd.org; Mon, 24 Aug 2009 14:32:00 GMT (envelope-from pvaibhav@FreeBSD.org) Date: Mon, 24 Aug 2009 14:32:00 GMT Message-Id: <200908241432.n7OEW00x074357@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pvaibhav@FreeBSD.org using -f From: Prashant Vaibhav To: Perforce Change Reviews Cc: Subject: PERFORCE change 167734 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 14:32:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=167734 Change 167734 by pvaibhav@pvaibhav_matrix on 2009/08/24 14:31:35 The new callout API has been implemented as a wrapper around the existing API. The iwi driver was modified to use the new API, as a quick test case. Unfinished implementation of Kobj interface and class for a generic timer is also added. Note that the iwi driver doesn't use or test *all* the features of the new API yet. Affected files ... .. //depot/projects/soc2009/calloutapi/src/sys/dev/iwi/if_iwi.c#2 edit .. //depot/projects/soc2009/calloutapi/src/sys/kern/kern_timeout.c#6 edit .. //depot/projects/soc2009/calloutapi/src/sys/kern/timer_hz.c#1 add .. //depot/projects/soc2009/calloutapi/src/sys/kern/timer_hz.h#1 add .. //depot/projects/soc2009/calloutapi/src/sys/kern/timer_if.c#1 add .. //depot/projects/soc2009/calloutapi/src/sys/kern/timer_if.h#1 add .. //depot/projects/soc2009/calloutapi/src/sys/kern/timer_if.m#1 add .. //depot/projects/soc2009/calloutapi/src/sys/sys/callout.h#3 edit Differences ... ==== //depot/projects/soc2009/calloutapi/src/sys/dev/iwi/if_iwi.c#2 (text+ko) ==== @@ -128,6 +128,9 @@ { 0, 0, NULL } }; +static hwclocktick_t onesec; +static hwclocktick_t twosec; + static struct ieee80211vap *iwi_vap_create(struct ieee80211com *, const char name[IFNAMSIZ], int unit, int opmode, int flags, const uint8_t bssid[IEEE80211_ADDR_LEN], @@ -293,9 +296,14 @@ TASK_INIT(&sc->sc_disassoctask, 0, iwi_disassoc, sc); TASK_INIT(&sc->sc_wmetask, 0, iwi_update_wme, sc); + /* callout_init_mtx(&sc->sc_wdtimer, &sc->sc_mtx, 0); callout_init_mtx(&sc->sc_rftimer, &sc->sc_mtx, 0); + */ + time_interval_to_hw_time(1, &onesec, TIMESCALE_SECOND); + time_interval_to_hw_time(2, &twosec, TIMESCALE_SECOND); + if (pci_get_powerstate(dev) != PCI_POWERSTATE_D0) { device_printf(dev, "chip is in D%d power mode " "-- setting to D0\n", pci_get_powerstate(dev)); @@ -2016,7 +2024,7 @@ ieee80211_runtask(ic, &sc->sc_restarttask); } } - callout_reset(&sc->sc_wdtimer, hz, iwi_watchdog, sc); + callout_arm(&sc->sc_wdtimer, onesec, iwi_watchdog, sc, 0, &sc->sc_mtx); } static int @@ -3121,7 +3129,7 @@ goto fail2; } - callout_reset(&sc->sc_wdtimer, hz, iwi_watchdog, sc); + callout_arm(&sc->sc_wdtimer, onesec, iwi_watchdog, sc, 0, &sc->sc_mtx); ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; ifp->if_drv_flags |= IFF_DRV_RUNNING; return; @@ -3158,11 +3166,11 @@ ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); if (sc->sc_softled) { - callout_stop(&sc->sc_ledtimer); + callout_cancel(&sc->sc_ledtimer); sc->sc_blinking = 0; } - callout_stop(&sc->sc_wdtimer); - callout_stop(&sc->sc_rftimer); + callout_cancel(&sc->sc_wdtimer); + callout_cancel(&sc->sc_rftimer); iwi_stop_master(sc); @@ -3243,7 +3251,7 @@ ieee80211_runtask(ic, &sc->sc_radiontask); return; } - callout_reset(&sc->sc_rftimer, 2*hz, iwi_rfkill_poll, sc); + callout_arm(&sc->sc_rftimer, twosec, iwi_rfkill_poll, sc, 0, &sc->sc_mtx); } static void @@ -3365,7 +3373,9 @@ v = iwi_read_event(sc); v &= ~sc->sc_ledpin; iwi_write_event(sc, iwi_toggle_event(v)); - callout_reset(&sc->sc_ledtimer, sc->sc_ledoff, iwi_led_done, sc); + hwclocktick_t ledoff; + time_interval_to_hw_time(sc->sc_ledoff, &ledoff, TIMESCALE_MS); + callout_arm(&sc->sc_ledtimer, ledoff, iwi_led_done, sc, 0, &sc->sc_mtx); } /* @@ -3381,7 +3391,9 @@ iwi_write_event(sc, iwi_toggle_event(v)); sc->sc_blinking = 1; sc->sc_ledoff = off; - callout_reset(&sc->sc_ledtimer, on, iwi_led_off, sc); + hwclocktick_t ledon; + time_interval_to_hw_time(on, &ledon, TIMESCALE_MS); + callout_arm(&sc->sc_ledtimer, ledon, iwi_led_off, sc, 0, &sc->sc_mtx); } static void @@ -3441,8 +3453,7 @@ break; } /* XXX beware of overflow */ - iwi_led_blink(sc, (blinkrates[j].timeOn * hz) / 1000, - (blinkrates[j].timeOff * hz) / 1000); + iwi_led_blink(sc, blinkrates[j].timeOn, blinkrates[j].timeOff); #undef N } @@ -3477,8 +3488,9 @@ sc->sc_blinking = 0; sc->sc_ledstate = 1; sc->sc_ledidle = (2700*hz)/1000; /* 2.7sec */ + /* callout_init_mtx(&sc->sc_ledtimer, &sc->sc_mtx, 0); - + */ SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "softled", CTLTYPE_INT | CTLFLAG_RW, sc, 0, iwi_sysctl_softled, "I", "enable/disable software LED support"); ==== //depot/projects/soc2009/calloutapi/src/sys/kern/kern_timeout.c#6 (text+ko) ==== @@ -55,6 +55,7 @@ #include #include #include +#include SDT_PROVIDER_DEFINE(callout_execute); SDT_PROBE_DEFINE(callout_execute, kernel, , callout_start); @@ -843,3 +844,74 @@ return; } #endif /* APM_FIXUP_CALLTODO */ + +/* + * Wrapper implementations for the new callout API. To be replaced + * with Kobj calls to the currently selected timer. + * Ref: kern/timer.m kern/timer_hz.c + */ + +void absolute_time_to_hw_time(const struct timespec* a, hwclocktick_t* t) +{ + *t = a->tv_sec * hz; + *t += ((uint64_t) a->tv_nsec) * hz / 1000000000ull; +} + +void hw_time_to_absolute_time(const hwclocktick_t* t, struct timespec* a) +{ + a->tv_sec = *t / hz; + a->tv_nsec = (*t % hz) * 1000000000ull; +} + +void time_interval_to_hw_time(int ti, hwclocktick_t* t, enum time_scale ts) +{ + struct timespec tsec; + tsec.tv_sec = tsec.tv_nsec = 0; + switch (ts) + { + case TIMESCALE_MS: + tsec.tv_sec = ti / 1000; + tsec.tv_nsec = (ti % 1000) * 1000000; + break; + case TIMESCALE_US: + tsec.tv_sec = ti / 1000000; + tsec.tv_nsec = (ti % 1000000) * 1000; + break; + case TIMESCALE_NS: + tsec.tv_sec = ti / 1000000000; + tsec.tv_nsec = (ti % 1000000000); + break; + case TIMESCALE_MINUTE: + tsec.tv_sec = ti * 60; + break; + default: + /* what do we do? default to seconds? */ + case TIMESCALE_SECOND: + tsec.tv_sec = ti; + break; + }; + absolute_time_to_hw_time(&tsec, t); + CTR3(KTR_CALLOUT, "converted %d scale %u into %llu hwtick", ti, ts, *t); +} + +int _callout_arm(callout_handle_t* c, + hwclocktick_t when, + void (*func)(void*), + void* arg, int flags, + struct lock_object* mtx) +{ + /* There is no callout_init in the new API, so make sure + * the passed in callout struct is initialized first. + */ + _callout_init_lock((struct callout*) c, mtx, flags); + /* Schedule it */ + return callout_reset((struct callout*) c, when, func, arg); +} + +int callout_rearm(callout_handle_t* c, hwclocktick_t when) +{ + /* TODO: maybe skip this 2nd indirection and call callout_reset_on + * directly here + */ + return callout_schedule((struct callout*) c, when); +} ==== //depot/projects/soc2009/calloutapi/src/sys/sys/callout.h#3 (text+ko) ==== @@ -74,7 +74,6 @@ #define callout_active(c) ((c)->c_flags & CALLOUT_ACTIVE) #define callout_deactivate(c) ((c)->c_flags &= ~CALLOUT_ACTIVE) -#define callout_drain(c) _callout_stop_safe(c, 1) void callout_init(struct callout *, int); void _callout_init_lock(struct callout *, struct lock_object *, int); #define callout_init_mtx(c, mtx, flags) \ @@ -98,6 +97,38 @@ void callout_tick(void); +/* Data types and functions for new callout subsystem */ +typedef uint64_t hwclocktick_t; +typedef struct callout callout_handle_t; + +enum time_scale { + TIMESCALE_SECOND = 0, + TIMESCALE_MS, + TIMESCALE_US, + TIMESCALE_NS, + TIMESCALE_MINUTE +}; + +void absolute_time_to_hw_time(const struct timespec* a, hwclocktick_t* t); +void hw_time_to_absolute_time(const hwclocktick_t* t, struct timespec* a); +void time_interval_to_hw_time(int ti, hwclocktick_t* t, enum time_scale ts); + +int _callout_arm(callout_handle_t* c, + hwclocktick_t when, + void (*func) (void*), + void* arg, int flags, struct lock_object* mtx); +#define callout_arm(c, when, f, arg, fl, mtx) \ + _callout_arm((c), (when), (f), (arg), (fl), \ + ((mtx) != NULL) ? &(mtx)->lock_object : NULL) +#define callout_arm_within(c, from, to, f, arg, flags, mtx) \ + _callout_arm((c), (to), (f), (arg), (fl), \ + ((mtx) != NULL) ? &(mtx)->lock_object : NULL) +int callout_rearm(callout_handle_t* c, hwclocktick_t when); +#define callout_rearm_within(c, from, to) callout_rearm(c, to) +#define callout_cancel(c) _callout_stop_safe((struct callout*) (c), 0) +#define callout_drain(c) _callout_stop_safe((struct callout*) (c), 1) + + #endif #endif /* _SYS_CALLOUT_H_ */ From owner-p4-projects@FreeBSD.ORG Mon Aug 24 17:26:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2557A106568E; Mon, 24 Aug 2009 17:26:12 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DE329106568C for ; Mon, 24 Aug 2009 17:26:11 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C332E8FC1F for ; Mon, 24 Aug 2009 17:26:11 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7OHQBYA000489 for ; Mon, 24 Aug 2009 17:26:11 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7OHQBrM000487 for perforce@freebsd.org; Mon, 24 Aug 2009 17:26:11 GMT (envelope-from mav@freebsd.org) Date: Mon, 24 Aug 2009 17:26:11 GMT Message-Id: <200908241726.n7OHQBrM000487@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167740 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 17:26:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=167740 Change 167740 by mav@mav_mavbook on 2009/08/24 17:26:00 Fix device->XXX_version setting for ATA. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#34 edit .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt_internal.h#5 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#34 (text+ko) ==== @@ -666,11 +666,8 @@ strlen(path->device->serial_num); } - path->device->flags |= CAM_DEV_INQUIRY_DATA_VALID; - - scsi_find_quirk(path->device); + path->device->flags |= CAM_DEV_IDENTIFY_DATA_VALID; ata_device_transport(path); - PROBE_SET_ACTION(softc, PROBE_SETMODE); xpt_release_ccb(done_ccb); xpt_schedule(periph, priority); @@ -764,8 +761,7 @@ } scsi_find_quirk(path->device); - -// scsi_devise_transport(path); + ata_device_transport(path); path->device->flags &= ~CAM_DEV_UNCONFIGURED; done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; xpt_action(done_ccb); @@ -786,7 +782,7 @@ } case PROBE_PM_PID: if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { - if ((path->device->flags & CAM_DEV_INQUIRY_DATA_VALID) == 0) + if ((path->device->flags & CAM_DEV_IDENTIFY_DATA_VALID) == 0) bzero(ident_buf, sizeof(*ident_buf)); softc->pm_pid = (done_ccb->ataio.res.lba_high << 24) + (done_ccb->ataio.res.lba_mid << 16) + @@ -819,7 +815,7 @@ printf("PM Revision: %08x\n", softc->pm_prv); snprintf(ident_buf->revision, sizeof(ident_buf->revision), "%04x", softc->pm_prv); - path->device->flags |= CAM_DEV_INQUIRY_DATA_VALID; + path->device->flags |= CAM_DEV_IDENTIFY_DATA_VALID; if (periph->path->device->flags & CAM_DEV_UNCONFIGURED) { path->device->flags &= ~CAM_DEV_UNCONFIGURED; done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; @@ -1170,68 +1166,29 @@ ata_device_transport(struct cam_path *path) { struct ccb_pathinq cpi; -// struct ccb_trans_settings cts; - struct scsi_inquiry_data *inq_buf; + struct ccb_trans_settings cts; + struct scsi_inquiry_data *inq_buf = NULL; + struct ata_params *ident_buf = NULL; /* Get transport information from the SIM */ xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NORMAL); cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); - inq_buf = NULL; -// if ((path->device->flags & CAM_DEV_INQUIRY_DATA_VALID) != 0) -// inq_buf = &path->device->inq_data; -// path->device->protocol = cpi.protocol; -// path->device->protocol_version = -// inq_buf != NULL ? SID_ANSI_REV(inq_buf) : cpi.protocol_version; path->device->transport = cpi.transport; - path->device->transport_version = cpi.transport_version; -#if 0 - /* - * Any device not using SPI3 features should - * be considered SPI2 or lower. - */ - if (inq_buf != NULL) { - if (path->device->transport == XPORT_SPI - && (inq_buf->spi3data & SID_SPI_MASK) == 0 - && path->device->transport_version > 2) - path->device->transport_version = 2; - } else { - struct cam_ed* otherdev; - - for (otherdev = TAILQ_FIRST(&path->target->ed_entries); - otherdev != NULL; - otherdev = TAILQ_NEXT(otherdev, links)) { - if (otherdev != path->device) - break; - } - - if (otherdev != NULL) { - /* - * Initially assume the same versioning as - * prior luns for this target. - */ - path->device->protocol_version = - otherdev->protocol_version; - path->device->transport_version = - otherdev->transport_version; - } else { - /* Until we know better, opt for safty */ - path->device->protocol_version = 2; - if (path->device->transport == XPORT_SPI) - path->device->transport_version = 2; - else - path->device->transport_version = 0; - } + if ((path->device->flags & CAM_DEV_INQUIRY_DATA_VALID) != 0) + inq_buf = &path->device->inq_data; + if ((path->device->flags & CAM_DEV_IDENTIFY_DATA_VALID) != 0) + ident_buf = &path->device->ident_data; + if (path->device->protocol == PROTO_ATA) { + path->device->protocol_version = ident_buf ? + ata_version(ident_buf->version_major) : cpi.protocol_version; + } else if (path->device->protocol == PROTO_SCSI) { + path->device->protocol_version = inq_buf ? + SID_ANSI_REV(inq_buf) : cpi.protocol_version; } - - /* - * XXX - * For a device compliant with SPC-2 we should be able - * to determine the transport version supported by - * scrutinizing the version descriptors in the - * inquiry buffer. - */ + path->device->transport_version = ident_buf ? + ata_version(ident_buf->version_major) : cpi.transport_version; /* Tell the controller what we think */ xpt_setup_ccb(&cts.ccb_h, path, CAM_PRIORITY_NORMAL); @@ -1244,7 +1201,6 @@ cts.proto_specific.valid = 0; cts.xport_specific.valid = 0; xpt_action((union ccb *)&cts); -#endif } static void ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt_internal.h#5 (text+ko) ==== @@ -117,6 +117,7 @@ #define CAM_DEV_INQUIRY_DATA_VALID 0x40 #define CAM_DEV_IN_DV 0x80 #define CAM_DEV_DV_HIT_BOTTOM 0x100 +#define CAM_DEV_IDENTIFY_DATA_VALID 0x200 u_int32_t tag_delay_count; #define CAM_TAG_DELAY_COUNT 5 u_int32_t tag_saved_openings; From owner-p4-projects@FreeBSD.ORG Mon Aug 24 17:45:33 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 835CD1065690; Mon, 24 Aug 2009 17:45:33 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 478DE106568E for ; Mon, 24 Aug 2009 17:45:33 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2D37F8FC0C for ; Mon, 24 Aug 2009 17:45:33 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7OHjXPF001984 for ; Mon, 24 Aug 2009 17:45:33 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7OHjWK6001982 for perforce@freebsd.org; Mon, 24 Aug 2009 17:45:32 GMT (envelope-from mav@freebsd.org) Date: Mon, 24 Aug 2009 17:45:32 GMT Message-Id: <200908241745.n7OHjWK6001982@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167742 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 17:45:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=167742 Change 167742 by mav@mav_mavbook on 2009/08/24 17:45:25 Do not report meaningless protocol/transport versions. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#50 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#28 edit .. //depot/projects/scottl-camlock/src/sys/dev/siis/siis.c#4 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#50 (text+ko) ==== @@ -1781,9 +1781,9 @@ uint32_t status; cts->protocol = PROTO_ATA; - cts->protocol_version = SCSI_REV_2; + cts->protocol_version = PROTO_VERSION_UNSPECIFIED; cts->transport = XPORT_SATA; - cts->transport_version = 2; + cts->transport_version = XPORT_VERSION_UNSPECIFIED; cts->proto_specific.valid = 0; cts->xport_specific.sata.valid = 0; if (cts->type == CTS_TYPE_CURRENT_SETTINGS) @@ -1876,9 +1876,9 @@ strncpy(cpi->dev_name, cam_sim_name(sim), DEV_IDLEN); cpi->unit_number = cam_sim_unit(sim); cpi->transport = XPORT_SATA; - cpi->transport_version = 2; + cpi->transport_version = XPORT_VERSION_UNSPECIFIED; cpi->protocol = PROTO_ATA; - cpi->protocol_version = SCSI_REV_2; + cpi->protocol_version = PROTO_VERSION_UNSPECIFIED; cpi->maxio = MAXPHYS; cpi->ccb_h.status = CAM_REQ_CMP; xpt_done(ccb); ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#28 (text+ko) ==== @@ -1401,9 +1401,9 @@ struct ccb_trans_settings *cts = &ccb->cts; cts->protocol = PROTO_ATA; - cts->protocol_version = SCSI_REV_2; + cts->protocol_version = PROTO_VERSION_UNSPECIFIED; cts->transport = XPORT_ATA; - cts->transport_version = 2; + cts->transport_version = XPORT_VERSION_UNSPECIFIED; cts->proto_specific.valid = 0; cts->xport_specific.sata.valid = 0; ccb->ccb_h.status = CAM_REQ_CMP; @@ -1469,9 +1469,9 @@ strncpy(cpi->dev_name, cam_sim_name(sim), DEV_IDLEN); cpi->unit_number = cam_sim_unit(sim); cpi->transport = XPORT_ATA; - cpi->transport_version = 2; + cpi->transport_version = XPORT_VERSION_UNSPECIFIED; cpi->protocol = PROTO_ATA; - cpi->protocol_version = SCSI_REV_2; + cpi->protocol_version = PROTO_VERSION_UNSPECIFIED; cpi->maxio = ch->dma.max_iosize ? ch->dma.max_iosize : DFLTPHYS; cpi->ccb_h.status = CAM_REQ_CMP; xpt_done(ccb); ==== //depot/projects/scottl-camlock/src/sys/dev/siis/siis.c#4 (text+ko) ==== @@ -1487,9 +1487,9 @@ uint32_t status; cts->protocol = PROTO_ATA; - cts->protocol_version = SCSI_REV_2; + cts->protocol_version = PROTO_VERSION_UNSPECIFIED; cts->transport = XPORT_SATA; - cts->transport_version = 2; + cts->transport_version = XPORT_VERSION_UNSPECIFIED; cts->proto_specific.valid = 0; cts->xport_specific.sata.valid = 0; if (cts->type == CTS_TYPE_CURRENT_SETTINGS) @@ -1574,9 +1574,9 @@ strncpy(cpi->dev_name, cam_sim_name(sim), DEV_IDLEN); cpi->unit_number = cam_sim_unit(sim); cpi->transport = XPORT_SATA; - cpi->transport_version = 2; + cpi->transport_version = XPORT_VERSION_UNSPECIFIED; cpi->protocol = PROTO_ATA; - cpi->protocol_version = SCSI_REV_2; + cpi->protocol_version = PROTO_VERSION_UNSPECIFIED; cpi->ccb_h.status = CAM_REQ_CMP; cpi->maxio = MAXPHYS; xpt_done(ccb); From owner-p4-projects@FreeBSD.ORG Mon Aug 24 19:19:16 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E351A1065691; Mon, 24 Aug 2009 19:19:15 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A7BD4106568B for ; Mon, 24 Aug 2009 19:19:15 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 972CD8FC08 for ; Mon, 24 Aug 2009 19:19:15 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7OJJF4k010754 for ; Mon, 24 Aug 2009 19:19:15 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7OJJFH6010752 for perforce@freebsd.org; Mon, 24 Aug 2009 19:19:15 GMT (envelope-from mav@freebsd.org) Date: Mon, 24 Aug 2009 19:19:15 GMT Message-Id: <200908241919.n7OJJFH6010752@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167744 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 19:19:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=167744 Change 167744 by mav@mav_mavbook on 2009/08/24 19:18:43 Implement PM levels 4 and 5. Alike to 2 and 3, but implemented on driver level. Performance degradation is smaller and not so controller dependent. Affected files ... .. //depot/projects/scottl-camlock/src/share/man/man4/ahci.4#5 edit .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#51 edit .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#18 edit Differences ... ==== //depot/projects/scottl-camlock/src/share/man/man4/ahci.4#5 (text+ko) ==== @@ -25,7 +25,7 @@ .\" .\" $FreeBSD: src/share/man/man4/ahci.4,v 1.2 2009/07/25 18:19:31 mav Exp $ .\" -.Dd June 26, 2009 +.Dd August 24, 2009 .Dt AHCI 4 .Os .Sh NAME @@ -74,7 +74,15 @@ host initiates PARTIAL PM state transition every time port becomes idle; .It 3 host initiates SLUMBER PM state transition every time port becomes idle. +.It 4 +driver initiates PARTIAL PM state transition 1ms after port becomes idle; +.It 5 +driver initiates SLUMBER PM state transition 125ms after port becomes idle. .El +Some controllers, such as ICH8, do not implement modes 2 and 3 with NCQ used. +Because of artificial entering latency, performance degradation in modes +4 and 5 is much smaller then in modes 2 and 3. +.Pp Note that interface Power Management is not compatible with device presence detection. You will have to reset bus manually on device hot-plug. ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#51 (text+ko) ==== @@ -63,6 +63,7 @@ static int ahci_resume(device_t dev); static int ahci_ch_suspend(device_t dev); static int ahci_ch_resume(device_t dev); +static void ahci_ch_pm(void *arg); static void ahci_ch_intr_locked(void *data); static void ahci_ch_intr(void *data); static int ahci_ctlr_reset(device_t dev); @@ -531,8 +532,11 @@ ch->caps = ATA_INL(ctlr->r_mem, AHCI_CAP); ch->caps2 = ATA_INL(ctlr->r_mem, AHCI_CAP2); ch->numslots = ((ch->caps & AHCI_CAP_NCS) >> AHCI_CAP_NCS_SHIFT) + 1, + mtx_init(&ch->mtx, "AHCI channel lock", NULL, MTX_DEF); resource_int_value(device_get_name(dev), device_get_unit(dev), "pm_level", &ch->pm_level); + if (ch->pm_level > 3) + callout_init_mtx(&ch->pm_timer, &ch->mtx, 0); /* Limit speed for my onboard JMicron external port. * It is not eSATA really. */ if (pci_get_devid(ctlr->dev) == 0x2363197b && @@ -542,7 +546,6 @@ ch->sata_rev = 1; resource_int_value(device_get_name(dev), device_get_unit(dev), "sata_rev", &ch->sata_rev); - mtx_init(&ch->mtx, "AHCI channel lock", NULL, MTX_DEF); rid = ch->unit; if (!(ch->r_mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE))) @@ -590,6 +593,11 @@ error = ENXIO; goto err3; } + if (ch->pm_level > 3) { + callout_reset(&ch->pm_timer, + (ch->pm_level == 4) ? hz / 1000 : hz / 8, + ahci_ch_pm, dev); + } mtx_unlock(&ch->mtx); return (0); @@ -616,6 +624,8 @@ cam_sim_free(ch->sim, /*free_devq*/TRUE); mtx_unlock(&ch->mtx); + if (ch->pm_level > 3) + callout_drain(&ch->pm_timer); bus_teardown_intr(dev, ch->r_irq, ch->ih); bus_release_resource(dev, SYS_RES_IRQ, ATA_IRQ_RID, ch->r_irq); @@ -667,7 +677,7 @@ /* Activate the channel and power/spin up device */ ATA_OUTL(ch->r_mem, AHCI_P_CMD, (AHCI_P_CMD_ACTIVE | AHCI_P_CMD_POD | AHCI_P_CMD_SUD | - ((ch->pm_level > 1) ? AHCI_P_CMD_ALPE : 0) | + ((ch->pm_level == 2 || ch->pm_level == 3) ? AHCI_P_CMD_ALPE : 0) | ((ch->pm_level > 2) ? AHCI_P_CMD_ASP : 0 ))); ahci_start_fr(dev); ahci_start(dev); @@ -890,6 +900,23 @@ } static void +ahci_ch_pm(void *arg) +{ + device_t dev = (device_t)arg; + struct ahci_channel *ch = device_get_softc(dev); + uint32_t work; + + if (ch->numrslots != 0) + return; + work = ATA_INL(ch->r_mem, AHCI_P_CMD); + if (ch->pm_level == 4) + work |= AHCI_P_CMD_PARTIAL; + else + work |= AHCI_P_CMD_SLUMBER; + ATA_OUTL(ch->r_mem, AHCI_P_CMD, work); +} + +static void ahci_ch_intr(void *data) { device_t dev = (device_t)data; @@ -1027,6 +1054,9 @@ /* Occupy chosen slot. */ slot = &ch->slot[tag]; slot->ccb = ccb; + /* Stop PM timer. */ + if (ch->numrslots == 0 && ch->pm_level > 3) + callout_stop(&ch->pm_timer); /* Update channel stats. */ ch->numrslots++; if ((ccb->ccb_h.func_code == XPT_ATA_IO) && @@ -1336,6 +1366,11 @@ ahci_begin_transaction(dev, fccb); xpt_release_simq(ch->sim, TRUE); } + /* Start PM timer. */ + if (ch->numrslots == 0 && ch->pm_level > 3) { + callout_schedule(&ch->pm_timer, + (ch->pm_level == 4) ? hz / 1000 : hz / 8); + } } static void ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#18 (text+ko) ==== @@ -359,6 +359,7 @@ int lastslot; /* Last used slot */ int taggedtarget; /* Last tagged target */ union ccb *frozen; /* Frozen command */ + struct callout pm_timer; /* Power management events */ }; /* structure describing a AHCI controller */ From owner-p4-projects@FreeBSD.ORG Mon Aug 24 19:46:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7749D1065690; Mon, 24 Aug 2009 19:46:46 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3AE20106568C for ; Mon, 24 Aug 2009 19:46:46 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2957D8FC0A for ; Mon, 24 Aug 2009 19:46:46 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7OJkkAT012803 for ; Mon, 24 Aug 2009 19:46:46 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7OJkkYS012801 for perforce@freebsd.org; Mon, 24 Aug 2009 19:46:46 GMT (envelope-from rene@FreeBSD.org) Date: Mon, 24 Aug 2009 19:46:46 GMT Message-Id: <200908241946.n7OJkkYS012801@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 167749 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 19:46:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=167749 Change 167749 by rene@rene_self on 2009/08/24 19:46:38 MFen most handbook chapters. Remove some defunct $FreeBSDnl$ lines and some fixes while there. Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#37 edit .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/basics/chapter.sgml#12 edit .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#26 edit .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml#20 edit .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/dtrace/chapter.sgml#13 edit .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/filesystems/chapter.sgml#10 edit .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml#11 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#37 (text+ko) ==== @@ -4,7 +4,7 @@ $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/advanced-networking/chapter.sgml,v 1.15 2009/07/13 21:33:27 rene Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml - %SRCID% 1.424 + %SRCID% 1.425 --> @@ -490,7 +490,7 @@ mogelijkheid kan worden aangezet door de volgende variabele in &man.rc.conf.5; op YES in te stellen: - gateway_enable=YES # Op YES instellen indien deze host een gateway is + gateway_enable="YES" # Op YES instellen indien deze host een gateway is Deze optie stelt de &man.sysctl.8; variabele net.inet.ip.forwarding in op ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/basics/chapter.sgml#12 (text+ko) ==== @@ -4,7 +4,7 @@ $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/basics/chapter.sgml,v 1.20 2008/12/23 23:17:30 rene Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/basics/chapter.sgml - %SRCID% 1.156 + %SRCID% 1.157 --> @@ -1140,7 +1140,7 @@ - /usr/ports + /usr/ports/ De &os; Portscollectie (optioneel). @@ -1206,7 +1206,7 @@ - /var/yp + /var/yp/ NIS maps. ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#26 (text+ko) ==== @@ -2,10 +2,9 @@ The FreeBSD Dutch Documentation Project $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml,v 1.17 2009/05/17 17:12:22 rene Exp $ - $FreeBSDnl: doc/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml,v 1.47 2006/01/07 11:27:42 siebrand Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml - %SRCID% 1.243 + %SRCID% 1.244 --> @@ -318,8 +317,8 @@ Deze regel verklaart dat eenmaal per dag het commando freebsd-update gedraaid zal worden. Op deze manier, door het argument te gebruiken, - zal freebsd-update alleen kijken of er - updates bestaan. Als er patches bestaan, zullen ze automatisch + zal het gereedschap freebsd-update alleen kijken of + er updates bestaan. Als er patches bestaan, zullen ze automatisch worden gedownload naar de plaatselijke schijf maar niet worden toegepast. Er zal een email aan de gebruiker root worden verstuurd zodat ze handmatig ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml#20 (text+ko) ==== @@ -4,7 +4,7 @@ $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml,v 1.20 2009/08/03 13:48:00 rene Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/desktop/chapter.sgml - %SRCID% 1.89 + %SRCID% 1.91 --> @@ -252,11 +252,17 @@ about:plugins in en druk op Enter. Een pagina met geïnstalleerde plugins wordt nu getoond; de &java; plugin zou hier nu tussen - moeten staan. Als dit niet het geval is, draai dan als - root het volgende commando: + moeten staan. Als dit niet het geval is, dient elke gebruiker het + volgende commando te draaien: + + &prompt.user; ln -s /usr/local/diablo-jre1.6.0/plugin/i386/ns7/libjavaplugin_oji.so \ + $HOME/.mozilla/plugins/ + + Of als u het pakket Diablo &jdk; heeft + geïnstalleerd: - &prompt.root; ln -s /usr/local/diablo-jre1.6.0/plugin/i386/ns7/libjavaplugin_oji.so \ - /usr/local/lib/browser_plugins/ + &prompt.user; ln -s /usr/local/diablo-jdk1.6.0/jre/plugin/i386/ns7/libjavaplugin_oji.so \ + $HOME/.mozilla/plugins/ Start daarna de browser opnieuw. ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/dtrace/chapter.sgml#13 (text+ko) ==== @@ -11,7 +11,7 @@ $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/dtrace/chapter.sgml,v 1.3 2009/01/01 22:50:49 rene Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/dtrace/chapter.sgml - %SRCID% 1.7 + %SRCID% 1.8 --> @@ -134,8 +134,8 @@ stabs. Deze CTF-gegevens worden door de bouwmiddelen ctfconvert en ctfmerge aan de binairen toegevoegd. Het - hulpmiddel ctfconvert parst - DWARF-debug ELF-secties die + hulpmiddel ctfconvert parseert + DWARF ELF-debug-secties die door de compiler zijn aangemaakt en ctfmerge voegt CTF ELF-secties van objecten samen in hun executables of gedeelde bibliotheken. Meer ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/filesystems/chapter.sgml#10 (text+ko) ==== @@ -3,7 +3,7 @@ $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/filesystems/chapter.sgml,v 1.3 2009/01/02 12:25:30 rene Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/filesystems/chapter.sgml - %SRCID% 1.5 + %SRCID% 1.8 --> @@ -21,6 +21,10 @@ Reckman Vertaald door + + René + Ladan + @@ -128,7 +132,7 @@ - Het Z File System + Het Z File System (ZFS) Het Z File System, ontwikkeld door &sun;, is een nieuwe technologie ontwikkeld om gebruik te maken van een @@ -137,8 +141,8 @@ het ontworpen voor maximale integriteit van gegevens, ondersteuning van gegevens-snapshots, meerdere kopieën, en gegevenschecksums. Ook is een nieuw gegevensreplicatiemodel, - bekend als RAID-Z, toegevoegd; - RAID-Z lijkt op RAID5, + bekend als RAID-Z, toegevoegd; + RAID-Z lijkt op RAID5, maar is ontworpen om corruptie tijdens het schrijven van gegevens te voorkomen. @@ -146,9 +150,9 @@ ZFS tuning Het ZFS subsysteem maakt gebruik van - veel systeembronnen waardoor het nodig kan zijn een en ander - af te stellen, zodat voor het dagelijks gebruik maximale - efficiëntie wordt behaald. Doordat het een + veel systeembronnen waardoor het nodig kan zijn een en ander + af te stellen, zodat voor het dagelijks gebruik maximale + efficiëntie wordt behaald. Doordat het een experimentele eigenschap van &os; is, kan dit in de nabije toekomst veranderen; op dit moment echter, worden de volgende stappen aangeraden. @@ -179,7 +183,7 @@ alsnog worden geladen door middel van het bestand /boot/loader.conf. - Gebruikers van de i386-architectuur dienen de volgende + Gebruikers van de &i386;-architectuur dienen de volgende optie aan hun kernelconfiguratiebestand toe te voegen, de kernel opnieuw te compileren, en opnieuw op te starten: @@ -231,10 +235,11 @@ &prompt.root; /etc/rc.d/zfs start In het resterende deel van dit document wordt aangenomen - dat er twee SCSI-schijven beschikbaar zijn, + dat er drie SCSI-schijven beschikbaar zijn, en dat hun apparaatnamen respectievelijk - da0 en - da1 zijn. + da0, + da1 en + da2 zijn. Gebruikers van IDE-hardware kunnen de ad apparaten gebruiken in plaats van @@ -243,9 +248,9 @@ Een pool op een enkele schijf - Voer het zpool-commando uit om een - ZFS op een enkele schijf aan te - maken: + Voer het commando zpool uit om een simpele, + niet-redundante ZFS-pool op een enkele schijf aan + te maken: &prompt.root; zpool create example /dev/da0 @@ -384,13 +389,24 @@ <acronym>ZFS</acronym> RAID-Z Zoals eerder opgemerkt wordt in deze sectie aangenomen - dat er twee SCSI-schijven bestaan als de - apparaten da0 en - da1. Voer het volgende commando uit - om een RAID-Z-pool te - creëren: + dat er drie SCSI-schijven bestaan als de + apparaten da0, da1 + en da2 (of ad0 en + hoger als IDE-schijven worden gebruikt). Voer het volgende commando + uit om een RAID-Z-pool te creëren: + + &prompt.root; zpool create storage raidz da0 da1 da2 - &prompt.root; zpool create storage raidz da0 da1 + + &sun; raadt aan om tussen de drie en negen schijven te gebruiken + voor een RAID-Z-configuratie. Overweeg, als u + een enkele pool met 10 of meer schijven nodig heeft, om deze te + splitsen in kleine RAID-Z-groepen. Overweeg, als + u slechts twee schijven heeft en nog steeds redundantie nodig heeft, + om in plaats hiervan een ZFS-spiegel te + gebruiken. Bekijk de handleidingpagina &man.zpool.8; voor meer + details. + De storage zpool zou gecreëerd moeten zijn. Dit kan worden geverifieerd met de @@ -481,8 +497,8 @@ /dev/ad0s1a 2026030 235240 1628708 13% / devfs 1 1 0 100% /dev /dev/ad0s1d 54098308 1032826 48737618 2% /usr -storage 17547008 0 17547008 0% /storage -storage/home 17547008 0 17547008 0% /home +storage 26320512 0 26320512 0% /storage +storage/home 26320512 0 26320512 0% /home Hiermee is de RAID-Z configuratie compleet. Voer het volgende commando uit om status-updates @@ -527,6 +543,7 @@ raidz1 DEGRADED 0 0 0 da0 ONLINE 0 0 0 da1 OFFLINE 0 0 0 + da2 ONLINE 0 0 0 errors: No known data errors @@ -560,6 +577,7 @@ raidz1 ONLINE 0 0 0 da0 ONLINE 0 0 0 da1 ONLINE 0 0 0 + da2 ONLINE 0 0 0 errors: No known data errors @@ -611,6 +629,7 @@ raidz1 ONLINE 0 0 0 da0 ONLINE 0 0 0 da1 ONLINE 0 0 0 + da2 ONLINE 0 0 0 errors: No known data errors ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml#11 (text+ko) ==== @@ -2,9 +2,8 @@ The FreeBSD Dutch Documentation Project $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml,v 1.18 2009/04/29 11:22:54 rene Exp $ - $FreeBSDnl: doc/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml,v 1.43 2006/08/25 12:00:28 remko Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/x11/chapter.sgml - %SRCID% 1.191 + %SRCID% 1.192 --> @@ -468,7 +467,7 @@ Bureaubladomgevingen als GNOME, KDE, of - XFce hebben gereedschappen waarmee + Xfce hebben gereedschappen waarmee de gebruiker eenvoudig de schermparameters zoals de resolutie kan instellen. Dus als de standaardconfiguratie niet acceptabel is en u van plan bent om een bureaubladomgeving te @@ -1739,12 +1738,12 @@ - XFce + Xfce - Over XFce + Over Xfce - XFce is een bureaubladomgeving + Xfce is een bureaubladomgeving die gebaseerd is op de GTK+ toolkit die gebruikt wordt bij GNOME, maar is eenvoudiger en bedoeld voor gebruikers die een simpel en efficiënt @@ -1752,7 +1751,7 @@ stellen is. Het ziet er bijna hetzelfde uit als CDE dat bij commerciële &unix; systemen zit. Een aantal - XFce functies zijn: + Xfce functies zijn: @@ -1788,15 +1787,15 @@ - Meer informatie over XFce - staat op de XFce + Meer informatie over Xfce + staat op de Xfce website. - Installeren van XFce + Installeren van Xfce - XFce is met een package + Xfce is met een package te installeren: &prompt.root; pkg_add -r xfce4 @@ -1807,13 +1806,13 @@ &prompt.root; make install clean Nu moet de X server weten dat - XFce gestart moet worden als X de + Xfce gestart moet worden als X de volgende keer start: &prompt.user; echo "/usr/local/bin/startxfce4" > ~/.xinitrc De volgende keer dat X start is - XFce het bureaublad. Wederom: + Xfce het bureaublad. Wederom: als een beeldschermmanager als XDM gebruikt wordt, moet .xsession gemaakt worden zoals beschreven in de paragraaf over Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C1E851065691; Mon, 24 Aug 2009 21:11:19 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 869CD106568E for ; Mon, 24 Aug 2009 21:11:19 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 765DC8FC19 for ; Mon, 24 Aug 2009 21:11:19 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7OLBJZw031214 for ; Mon, 24 Aug 2009 21:11:19 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7OLBJfK031212 for perforce@freebsd.org; Mon, 24 Aug 2009 21:11:19 GMT (envelope-from zec@fer.hr) Date: Mon, 24 Aug 2009 21:11:19 GMT Message-Id: <200908242111.n7OLBJfK031212@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167755 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 21:11:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=167755 Change 167755 by zec@zec_tpx32 on 2009/08/24 21:10:24 Unbreak build by hidding a few issues under the rug. Affected files ... .. //depot/projects/vimage/src/sys/netgraph/ng_eiface.c#34 edit .. //depot/projects/vimage/src/sys/netgraph/ng_iface.c#32 edit Differences ... ==== //depot/projects/vimage/src/sys/netgraph/ng_eiface.c#34 (text+ko) ==== @@ -610,7 +610,7 @@ static void vnet_ng_eiface_uninit(const void *unused) { -#ifdef VIMAGE +#ifdef VIMAGE_NOTYET node_p node; do { ==== //depot/projects/vimage/src/sys/netgraph/ng_iface.c#32 (text+ko) ==== @@ -858,7 +858,7 @@ static void vnet_ng_iface_uninit(const void *unused) { -#ifdef VIMAGE +#ifdef VIMAGE_NOTYET node_p node; do { From owner-p4-projects@FreeBSD.ORG Mon Aug 24 23:04:24 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DADEB1065695; Mon, 24 Aug 2009 23:04:23 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9F10E106568B for ; Mon, 24 Aug 2009 23:04:23 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8DC788FC18 for ; Mon, 24 Aug 2009 23:04:23 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7ON4Nqj041340 for ; Mon, 24 Aug 2009 23:04:23 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7ON4NXT041338 for perforce@freebsd.org; Mon, 24 Aug 2009 23:04:23 GMT (envelope-from mav@freebsd.org) Date: Mon, 24 Aug 2009 23:04:23 GMT Message-Id: <200908242304.n7ON4NXT041338@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167760 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 23:04:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=167760 Change 167760 by mav@mav_mavbook on 2009/08/24 23:03:57 Implement AHCI Command Completion Coalescing (CCC) feature support. CCC reduces number of context switches on systems with many parallel requests, but it can decrease disk performance on some workloads due to additional command latency. Affected files ... .. //depot/projects/scottl-camlock/src/share/man/man4/ahci.4#6 edit .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#52 edit .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#19 edit Differences ... ==== //depot/projects/scottl-camlock/src/share/man/man4/ahci.4#6 (text+ko) ==== @@ -60,6 +60,13 @@ .It 2 multiple MSI vectors used, if supported; .El +.It Va hint.ahci.X.ccc +controls Command Completion Coalescing (CCC) usage by the specified controller. +Non-zero value enables CCC and defines maximum time (in ms), request can wait +for interrupt, if there are some more requests present on controller queue. +CCC reduces number of context switches on systems with many parallel requests, +but it can decrease disk performance on some workloads due to additional +command latency. .It Va hint.ahcich.X.pm_level controls SATA interface Power Management for specified channel, allowing some power to be saved at the cost of additional command ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#52 (text+ko) ==== @@ -125,6 +125,8 @@ u_int32_t version, caps, caps2; ctlr->dev = dev; + resource_int_value(device_get_name(dev), + device_get_unit(dev), "ccc", &ctlr->ccc); /* if we have a memory BAR(5) we are likely on an AHCI part */ ctlr->r_rid = PCIR_BAR(5); if (!(ctlr->r_mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY, @@ -272,6 +274,21 @@ ATA_OUTL(ctlr->r_mem, AHCI_GHC, AHCI_GHC_AE); /* Clear interrupts */ ATA_OUTL(ctlr->r_mem, AHCI_IS, ATA_INL(ctlr->r_mem, AHCI_IS)); + /* Configure CCC */ + if (ctlr->ccc) { + ATA_OUTL(ctlr->r_mem, AHCI_CCCP, ATA_INL(ctlr->r_mem, AHCI_PI)); + ATA_OUTL(ctlr->r_mem, AHCI_CCCC, + (ctlr->ccc << AHCI_CCCC_TV_SHIFT) | + (4 << AHCI_CCCC_CC_SHIFT) | + AHCI_CCCC_EN); + ctlr->cccv = (ATA_INL(ctlr->r_mem, AHCI_CCCC) & + AHCI_CCCC_INT_MASK) >> AHCI_CCCC_INT_SHIFT; + if (bootverbose) { + device_printf(dev, + "CCC with %dms/4cmd enabled on vector %d\n", + ctlr->ccc, ctlr->cccv); + } + } /* Enable AHCI interrupts */ ATA_OUTL(ctlr->r_mem, AHCI_GHC, ATA_INL(ctlr->r_mem, AHCI_GHC) | AHCI_GHC_IE); @@ -332,7 +349,8 @@ for (i = 0; i < ctlr->numirqs; i++) { ctlr->irqs[i].ctlr = ctlr; ctlr->irqs[i].r_irq_rid = i + (msi ? 1 : 0); - if (ctlr->numirqs == 1 || i >= ctlr->channels) + if (ctlr->numirqs == 1 || i >= ctlr->channels || + (ctlr->ccc && i == ctlr->cccv)) ctlr->irqs[i].mode = AHCI_IRQ_MODE_ALL; else if (i == ctlr->numirqs - 1) ctlr->irqs[i].mode = AHCI_IRQ_MODE_AFTER; @@ -367,9 +385,11 @@ int unit; is = ATA_INL(ctlr->r_mem, AHCI_IS); - if (irq->mode == AHCI_IRQ_MODE_ALL) + if (irq->mode == AHCI_IRQ_MODE_ALL) { + if (ctlr->ccc) + is = ctlr->ichannels; unit = 0; - else /* AHCI_IRQ_MODE_AFTER */ + } else /* AHCI_IRQ_MODE_AFTER */ unit = irq->r_irq_rid - 1; for (; unit < ctlr->channels; unit++) { if ((is & (1 << unit)) != 0 && @@ -1585,6 +1605,7 @@ ahci_reset(device_t dev) { struct ahci_channel *ch = device_get_softc(dev); + struct ahci_controller *ctlr = device_get_softc(device_get_parent(dev)); int i; if (bootverbose) @@ -1631,8 +1652,8 @@ (AHCI_P_IX_CPD | AHCI_P_IX_TFE | AHCI_P_IX_HBF | AHCI_P_IX_HBD | AHCI_P_IX_IF | AHCI_P_IX_OF | ((ch->pm_level == 0) ? AHCI_P_IX_PRC | AHCI_P_IX_PC : 0) | - AHCI_P_IX_DP | AHCI_P_IX_UF | AHCI_P_IX_SDB | - AHCI_P_IX_DS | AHCI_P_IX_PS | AHCI_P_IX_DHR)); + AHCI_P_IX_DP | AHCI_P_IX_UF | (ctlr->ccc ? 0 : AHCI_P_IX_SDB) | + AHCI_P_IX_DS | AHCI_P_IX_PS | (ctlr->ccc ? 0 : AHCI_P_IX_DHR))); if (bootverbose) device_printf(dev, "AHCI reset done: device found\n"); /* Tell the XPT about the event */ ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#19 (text+ko) ==== @@ -176,6 +176,16 @@ #define AHCI_PI 0x0c #define AHCI_VS 0x10 +#define AHCI_CCCC 0x14 +#define AHCI_CCCC_TV_MASK 0xffff0000 +#define AHCI_CCCC_TV_SHIFT 16 +#define AHCI_CCCC_CC_MASK 0x0000ff00 +#define AHCI_CCCC_CC_SHIFT 8 +#define AHCI_CCCC_INT_MASK 0x000000f8 +#define AHCI_CCCC_INT_SHIFT 3 +#define AHCI_CCCC_EN 0x00000001 +#define AHCI_CCCP 0x18 + #define AHCI_CAP2 0x24 #define AHCI_CAP2_BOH 0x00000001 #define AHCI_CAP2_NVMP 0x00000002 @@ -381,6 +391,8 @@ int numirqs; int channels; int ichannels; + int ccc; /* CCC timeout */ + int cccv; /* CCC vector */ struct { void (*function)(void *); void *argument; From owner-p4-projects@FreeBSD.ORG Tue Aug 25 01:12:44 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AABBE1065690; Tue, 25 Aug 2009 01:12:44 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6F21C106568C for ; Tue, 25 Aug 2009 01:12:44 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5E4458FC13 for ; Tue, 25 Aug 2009 01:12:44 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7P1CiSS063027 for ; Tue, 25 Aug 2009 01:12:44 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7P1ChUk063025 for perforce@freebsd.org; Tue, 25 Aug 2009 01:12:43 GMT (envelope-from zec@fer.hr) Date: Tue, 25 Aug 2009 01:12:43 GMT Message-Id: <200908250112.n7P1ChUk063025@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167763 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2009 01:12:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=167763 Change 167763 by zec@zec_tpx32 on 2009/08/25 01:12:13 Introduce a separate sx lock for protecting lists of vnet sysinit and sysuninit handlers. Previously, sx_vnet, which is a lock designated for protecting the vnet list, was (ab)used for protecting vnet sysinit / sysuninit handler lists as well. Holding exclusively the sx_vnet lock while invoking sysinit and / or sysuninit handlers turns out to be problematic, since some of the handlers (for whatever reason, justified or not) may want to wake up and wait for another thread to walk over the vnet list, hence acquire a shared lock on sx_vnet. This in turn leads to a deadlock, given that the thread holding the exclusive lock on sx_vnet waits for another thread which is blocked on attempt to acquire shared lock on sx_vnet. Protecting vnet sysinit / sysuninit lists with a separate lock mitigates this issue, which was first observed in flowtable_flush() / flowtable_cleaner(). Affected files ... .. //depot/projects/vimage-commit2/src/sys/net/vnet.c#4 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/net/vnet.c#4 (text+ko) ==== @@ -182,9 +182,10 @@ /* * Global lists of subsystem constructor and destructors for vnets. They are - * registered via VNET_SYSINIT() and VNET_SYSUNINIT(). The lists are - * protected by the vnet_sxlock global lock. + * registered via VNET_SYSINIT() and VNET_SYSUNINIT(). Both lists are + * protected by the vnet_sysinit_sxlock global lock. */ +struct sx vnet_sysinit_sxlock; static TAILQ_HEAD(vnet_sysinit_head, vnet_sysinit) vnet_constructors = TAILQ_HEAD_INITIALIZER(vnet_constructors); static TAILQ_HEAD(vnet_sysuninit_head, vnet_sysinit) vnet_destructors = @@ -228,12 +229,12 @@ /* Initialize / attach vnet module instances. */ CURVNET_SET_QUIET(vnet); - - sx_xlock(&vnet_sxlock); + sx_slock(&vnet_sysinit_sxlock); vnet_sysinit(); + sx_sunlock(&vnet_sysinit_sxlock); CURVNET_RESTORE(); - rw_wlock(&vnet_rwlock); + VNET_LIST_WLOCK(); LIST_INSERT_HEAD(&vnet_head, vnet, vnet_le); VNET_LIST_WUNLOCK(); @@ -253,7 +254,7 @@ VNET_LIST_WLOCK(); LIST_REMOVE(vnet, vnet_le); - rw_wunlock(&vnet_rwlock); + VNET_LIST_WUNLOCK(); CURVNET_SET_QUIET(vnet); @@ -263,9 +264,9 @@ if_vmove(ifp, ifp->if_home_vnet); } + sx_slock(&vnet_sysinit_sxlock); vnet_sysuninit(); - sx_xunlock(&vnet_sxlock); - + sx_sunlock(&vnet_sysinit_sxlock); CURVNET_RESTORE(); /* @@ -287,6 +288,7 @@ rw_init(&vnet_rwlock, "vnet_rwlock"); sx_init(&vnet_sxlock, "vnet_sxlock"); + sx_init(&vnet_sysinit_sxlock, "vnet_sysinit_sxlock"); LIST_INIT(&vnet_head); } SYSINIT(vnet_init_prelink, SI_SUB_VNET_PRELINK, SI_ORDER_FIRST, @@ -494,7 +496,7 @@ KASSERT(vs->subsystem > SI_SUB_VNET, ("vnet sysinit too early")); /* Add the constructor to the global list of vnet constructors. */ - sx_xlock(&vnet_sxlock); + sx_xlock(&vnet_sysinit_sxlock); TAILQ_FOREACH(vs2, &vnet_constructors, link) { if (vs2->subsystem > vs->subsystem) break; @@ -515,7 +517,7 @@ vs->func(vs->arg); CURVNET_RESTORE(); } - sx_xunlock(&vnet_sxlock); + sx_xunlock(&vnet_sysinit_sxlock); } void @@ -526,9 +528,9 @@ vs = arg; /* Remove the constructor from the global list of vnet constructors. */ - sx_xlock(&vnet_sxlock); + sx_xlock(&vnet_sysinit_sxlock); TAILQ_REMOVE(&vnet_constructors, vs, link); - sx_xunlock(&vnet_sxlock); + sx_xunlock(&vnet_sysinit_sxlock); } void @@ -539,7 +541,7 @@ vs = arg; /* Add the destructor to the global list of vnet destructors. */ - sx_xlock(&vnet_sxlock); + sx_xlock(&vnet_sysinit_sxlock); TAILQ_FOREACH(vs2, &vnet_destructors, link) { if (vs2->subsystem > vs->subsystem) break; @@ -550,7 +552,7 @@ TAILQ_INSERT_BEFORE(vs2, vs, link); else TAILQ_INSERT_TAIL(&vnet_destructors, vs, link); - sx_xunlock(&vnet_sxlock); + sx_xunlock(&vnet_sysinit_sxlock); } void @@ -565,7 +567,7 @@ * Invoke the destructor on all the existing vnets when it is * deregistered. */ - sx_xlock(&vnet_sxlock); + sx_xlock(&vnet_sysinit_sxlock); VNET_FOREACH(vnet) { CURVNET_SET_QUIET(vnet); vs->func(vs->arg); @@ -574,20 +576,20 @@ /* Remove the destructor from the global list of vnet destructors. */ TAILQ_REMOVE(&vnet_destructors, vs, link); - sx_xunlock(&vnet_sxlock); + sx_xunlock(&vnet_sysinit_sxlock); } /* * Invoke all registered vnet constructors on the current vnet. Used during * vnet construction. The caller is responsible for ensuring the new vnet is - * the current vnet and that the vnet_sxlock lock is locked. + * the current vnet and that the vnet_sysinit_sxlock lock is locked. */ void vnet_sysinit(void) { struct vnet_sysinit *vs; - sx_assert(&vnet_sxlock, SA_LOCKED); + sx_assert(&vnet_sysinit_sxlock, SA_LOCKED); TAILQ_FOREACH(vs, &vnet_constructors, link) { vs->func(vs->arg); } @@ -596,14 +598,14 @@ /* * Invoke all registered vnet destructors on the current vnet. Used during * vnet destruction. The caller is responsible for ensuring the dying vnet - * is the current vnet and that the vnet_sxlock lock is locked. + * the current vnet and that the vnet_sysinit_sxlock lock is locked. */ void vnet_sysuninit(void) { struct vnet_sysinit *vs; - sx_assert(&vnet_sxlock, SA_LOCKED); + sx_assert(&vnet_sysinit_sxlock, SA_LOCKED); TAILQ_FOREACH_REVERSE(vs, &vnet_destructors, vnet_sysuninit_head, link) { vs->func(vs->arg); From owner-p4-projects@FreeBSD.ORG Tue Aug 25 09:18:36 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BABD51065690; Tue, 25 Aug 2009 09:18:35 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7EE37106568E for ; Tue, 25 Aug 2009 09:18:35 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6EE718FC0C for ; Tue, 25 Aug 2009 09:18:35 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7P9IZaF027201 for ; Tue, 25 Aug 2009 09:18:35 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7P9IZLj027199 for perforce@freebsd.org; Tue, 25 Aug 2009 09:18:35 GMT (envelope-from mav@freebsd.org) Date: Tue, 25 Aug 2009 09:18:35 GMT Message-Id: <200908250918.n7P9IZLj027199@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167772 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2009 09:18:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=167772 Change 167772 by mav@mav_mavbook on 2009/08/25 09:18:25 Avoid extra swi_sched() calls, when several transactions finish at the same time. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#99 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#99 (text+ko) ==== @@ -4199,12 +4199,12 @@ mtx_lock(&cam_simq_lock); TAILQ_INSERT_TAIL(&cam_simq, sim, links); + mtx_unlock(&cam_simq_lock); sim->flags |= CAM_SIM_ON_DONEQ; - mtx_unlock(&cam_simq_lock); + if ((done_ccb->ccb_h.path->periph->flags & + CAM_PERIPH_POLLED) == 0) + swi_sched(cambio_ih, 0); } - if ((done_ccb->ccb_h.path->periph->flags & - CAM_PERIPH_POLLED) == 0) - swi_sched(cambio_ih, 0); break; default: panic("unknown periph type %d", @@ -4890,16 +4890,20 @@ mtx_lock(&cam_simq_lock); TAILQ_INIT(&queue); - TAILQ_CONCAT(&queue, &cam_simq, links); - mtx_unlock(&cam_simq_lock); + while (!TAILQ_EMPTY(&cam_simq)) { + TAILQ_CONCAT(&queue, &cam_simq, links); + mtx_unlock(&cam_simq_lock); - while ((sim = TAILQ_FIRST(&queue)) != NULL) { - TAILQ_REMOVE(&queue, sim, links); - CAM_SIM_LOCK(sim); - sim->flags &= ~CAM_SIM_ON_DONEQ; - camisr_runqueue(&sim->sim_doneq); - CAM_SIM_UNLOCK(sim); + while ((sim = TAILQ_FIRST(&queue)) != NULL) { + TAILQ_REMOVE(&queue, sim, links); + CAM_SIM_LOCK(sim); + sim->flags &= ~CAM_SIM_ON_DONEQ; + camisr_runqueue(&sim->sim_doneq); + CAM_SIM_UNLOCK(sim); + } + mtx_lock(&cam_simq_lock); } + mtx_unlock(&cam_simq_lock); } static void From owner-p4-projects@FreeBSD.ORG Tue Aug 25 09:58:19 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CFB381065694; Tue, 25 Aug 2009 09:58:19 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 94503106568E for ; Tue, 25 Aug 2009 09:58:19 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6A4AA8FC18 for ; Tue, 25 Aug 2009 09:58:19 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7P9wJ92030310 for ; Tue, 25 Aug 2009 09:58:19 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7P9wJNu030308 for perforce@freebsd.org; Tue, 25 Aug 2009 09:58:19 GMT (envelope-from mav@freebsd.org) Date: Tue, 25 Aug 2009 09:58:19 GMT Message-Id: <200908250958.n7P9wJNu030308@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167778 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2009 09:58:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=167778 Change 167778 by mav@mav_mavbook on 2009/08/25 09:57:53 With high request rates and long ATA timeouts it looks cheaper to ignore some rare obsoleted timeouts then bother with stopping them to rearm again in just a few milliseconds. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#53 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#53 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Tue Aug 25 10:00:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 12DB91065691; Tue, 25 Aug 2009 10:00:22 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CB84F106568D for ; Tue, 25 Aug 2009 10:00:21 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BAD218FC14 for ; Tue, 25 Aug 2009 10:00:21 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7PA0LUJ030502 for ; Tue, 25 Aug 2009 10:00:21 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7PA0LQK030500 for perforce@freebsd.org; Tue, 25 Aug 2009 10:00:21 GMT (envelope-from mav@freebsd.org) Date: Tue, 25 Aug 2009 10:00:21 GMT Message-Id: <200908251000.n7PA0LQK030500@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167779 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2009 10:00:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=167779 Change 167779 by mav@mav_mavbook on 2009/08/25 10:00:01 With high request rates and long ATA timeouts it looks cheaper to ignore some rare obsoleted timeouts then bother with stopping them to rearm again in just a few milliseconds. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#54 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#54 (text+ko) ==== @@ -851,6 +851,7 @@ for (i = 0; i < ch->numslots; i++) { struct ahci_slot *slot = &ch->slot[i]; + callout_drain(&slot->timeout); if (slot->dma.data_map) { bus_dmamap_destroy(ch->dma.data_tag, slot->dma.data_map); slot->dma.data_map = NULL; @@ -1246,6 +1247,10 @@ struct ahci_channel *ch = device_get_softc(dev); int i; + /* Check for stale timeout. */ + if (slot->state != AHCI_SLOT_RUNNING) + return; + device_printf(dev, "Timeout on slot %d\n", slot->slot); /* Kick controller into sane state. */ ahci_stop(ch->dev); @@ -1278,8 +1283,6 @@ struct ahci_channel *ch = device_get_softc(dev); union ccb *ccb = slot->ccb; - /* Cancel command execution timeout */ - callout_stop(&slot->timeout); bus_dmamap_sync(ch->dma.work_tag, ch->dma.work_map, BUS_DMASYNC_POSTWRITE); /* Read result registers to the result struct From owner-p4-projects@FreeBSD.ORG Tue Aug 25 10:54:21 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 869851065694; Tue, 25 Aug 2009 10:54:21 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4B3541065692 for ; Tue, 25 Aug 2009 10:54:21 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 205228FC14 for ; Tue, 25 Aug 2009 10:54:21 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7PAsLLf035383 for ; Tue, 25 Aug 2009 10:54:21 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7PAsLB4035381 for perforce@freebsd.org; Tue, 25 Aug 2009 10:54:21 GMT (envelope-from mav@freebsd.org) Date: Tue, 25 Aug 2009 10:54:21 GMT Message-Id: <200908251054.n7PAsLB4035381@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167782 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2009 10:54:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=167782 Change 167782 by mav@mav_mavbook on 2009/08/25 10:53:46 Change slot selection algorithm to reuse previous slot if possible. Optimize CCC interrupts handling. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#55 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#55 (text+ko) ==== @@ -384,13 +384,16 @@ void *arg; int unit; - is = ATA_INL(ctlr->r_mem, AHCI_IS); if (irq->mode == AHCI_IRQ_MODE_ALL) { + unit = 0; if (ctlr->ccc) is = ctlr->ichannels; - unit = 0; - } else /* AHCI_IRQ_MODE_AFTER */ + else + is = ATA_INL(ctlr->r_mem, AHCI_IS); + } else { /* AHCI_IRQ_MODE_AFTER */ unit = irq->r_irq_rid - 1; + is = ATA_INL(ctlr->r_mem, AHCI_IS); + } for (; unit < ctlr->channels; unit++) { if ((is & (1 << unit)) != 0 && (arg = ctlr->interrupt[unit].argument)) { @@ -948,6 +951,8 @@ /* Read and clear interrupt statuses. */ istatus = ATA_INL(ch->r_mem, AHCI_P_IS); + if (istatus == 0) + return; ATA_OUTL(ch->r_mem, AHCI_P_IS, istatus); /* Read command statuses. */ cstatus = ATA_INL(ch->r_mem, AHCI_P_CI); @@ -963,17 +968,16 @@ // ATA_INL(ch->r_mem, AHCI_P_SERR)); ccs = (ATA_INL(ch->r_mem, AHCI_P_CMD) & AHCI_P_CMD_CCS_MASK) >> AHCI_P_CMD_CCS_SHIFT; + err = ch->rslots & (cstatus | sstatus); /* Kick controller into sane state */ ahci_stop(dev); ahci_start(dev); - ok = ch->rslots & ~(cstatus | sstatus); - err = ch->rslots & (cstatus | sstatus); } else { ccs = 0; - ok = ch->rslots & ~(cstatus | sstatus); err = 0; } /* Complete all successfull commands. */ + ok = ch->rslots & ~(cstatus | sstatus); for (i = 0; i < ch->numslots; i++) { if ((ok >> i) & 1) ahci_end_transaction(&ch->slot[i], AHCI_ERR_NONE); @@ -1062,15 +1066,11 @@ /* Choose empty slot. */ tag = ch->lastslot; - do { - tag++; - if (tag >= ch->numslots) + while (ch->slot[tag].state != AHCI_SLOT_EMPTY) { + if (++tag >= ch->numslots) tag = 0; - if (ch->slot[tag].state == AHCI_SLOT_EMPTY) - break; - } while (tag != ch->lastslot); - if (ch->slot[tag].state != AHCI_SLOT_EMPTY) - device_printf(ch->dev, "ALL SLOTS BUSY!\n"); + KASSERT(tag != ch->lastslot, "ahci: ALL SLOTS BUSY!"); + } ch->lastslot = tag; /* Occupy chosen slot. */ slot = &ch->slot[tag]; From owner-p4-projects@FreeBSD.ORG Tue Aug 25 11:43:15 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DFD03106568B; Tue, 25 Aug 2009 11:43:14 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A467A106564A for ; Tue, 25 Aug 2009 11:43:14 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 92EF88FC08 for ; Tue, 25 Aug 2009 11:43:14 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7PBhEUf039936 for ; Tue, 25 Aug 2009 11:43:14 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7PBhEYQ039934 for perforce@freebsd.org; Tue, 25 Aug 2009 11:43:14 GMT (envelope-from stas@freebsd.org) Date: Tue, 25 Aug 2009 11:43:14 GMT Message-Id: <200908251143.n7PBhEYQ039934@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167783 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2009 11:43:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=167783 Change 167783 by stas@stas_yandex on 2009/08/25 11:42:44 - Sigset wordsize is always 32 bit on both amd64 and i386. Spotted by: jkim Affected files ... .. //depot/projects/valgrind/include/vki/vki-amd64-freebsd.h#10 edit .. //depot/projects/valgrind/include/vki/vki-x86-freebsd.h#9 edit Differences ... ==== //depot/projects/valgrind/include/vki/vki-amd64-freebsd.h#10 (text+ko) ==== @@ -34,12 +34,15 @@ #define VKI_MINSIGSTKSZ 2048 -#define _VKI_NSIG 128 -#define _VKI_NSIG_BPW 64 -#define _VKI_NSIG_WORDS (_VKI_NSIG / _VKI_NSIG_BPW) +//---------------------------------------------------------------------- +// sys/_sigset.h +//---------------------------------------------------------------------- +#define _VKI_NSIG 128 +#define _VKI_NSIG_WORDS 4 +#define _VKI_NSIG_BPW ((_VKI_NSIG) / (_VKI_NSIG_WORDS)) typedef struct { - vki_uint64_t sig[_VKI_NSIG_WORDS]; + vki_uint32_t sig[_VKI_NSIG_WORDS]; } vki_sigset_t; struct _vki_fpstate { ==== //depot/projects/valgrind/include/vki/vki-x86-freebsd.h#9 (text+ko) ==== @@ -49,8 +49,8 @@ #define VKI_MINSIGSTKSZ (512 * 4) #define _VKI_NSIG 128 +#define _VKI_NSIG_WORDS 4 #define _VKI_NSIG_BPW ((_VKI_NSIG) / (_VKI_NSIG_WORDS)) -#define _VKI_NSIG_WORDS 4 typedef struct { vki_uint32_t sig[_VKI_NSIG_WORDS]; From owner-p4-projects@FreeBSD.ORG Tue Aug 25 11:44:16 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 21BCC106568E; Tue, 25 Aug 2009 11:44:16 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D936E106568C for ; Tue, 25 Aug 2009 11:44:15 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C78AF8FC08 for ; Tue, 25 Aug 2009 11:44:15 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7PBiF1n040010 for ; Tue, 25 Aug 2009 11:44:15 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7PBiFua040008 for perforce@freebsd.org; Tue, 25 Aug 2009 11:44:15 GMT (envelope-from stas@freebsd.org) Date: Tue, 25 Aug 2009 11:44:15 GMT Message-Id: <200908251144.n7PBiFua040008@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167784 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2009 11:44:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=167784 Change 167784 by stas@stas_yandex on 2009/08/25 11:43:32 - Add resolve_pathname implementation to libcfile. Affected files ... .. //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr-common.c#7 edit .. //depot/projects/valgrind/coregrind/m_libcfile.c#10 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr-common.c#7 (text+ko) ==== @@ -353,7 +353,6 @@ Int mib[4]; SysRes sres; vki_size_t len; - Int cnt; Char *bp, *eb; struct vki_kinfo_file *kf; ==== //depot/projects/valgrind/coregrind/m_libcfile.c#10 (text+ko) ==== @@ -74,10 +74,14 @@ return newfd; } +#if defined(VGO_freebsd) +#define M_FILEDESC_BUF 1000000 +static Char filedesc_buf[M_FILEDESC_BUF]; +#endif + /* Given a file descriptor, attempt to deduce its filename. To do this, we use /proc/self/fd/. If this doesn't point to a file, or if it doesn't exist, we return False. */ -#if !defined(VGO_freebsd) Bool VG_(resolve_filename) ( Int fd, HChar* buf, Int n_buf ) { # if defined(VGO_linux) @@ -89,6 +93,38 @@ else return False; +#elif defined(VGO_freebsd) + Int mib[4]; + SysRes sres; + vki_size_t len; + Char *bp, *eb; + struct vki_kinfo_file *kf; + + mib[0] = VKI_CTL_KERN; + mib[1] = VKI_KERN_PROC; + mib[2] = VKI_KERN_PROC_FILEDESC; + mib[3] = sr_Res(VG_(do_syscall0)(__NR_getpid)); + len = sizeof(filedesc_buf); + sres = VG_(do_syscall6)(__NR___sysctl, (UWord)mib, 4, (UWord)filedesc_buf, + (UWord)&len, 0, 0); + if (sr_isError(sres)) { + VG_(debugLog)(0, "sysctl(kern.proc.filedesc)", "%s\n", VG_(strerror)(sr_Err(sres))); + return False; + } + /* Walk though the list. */ + bp = filedesc_buf; + eb = filedesc_buf + len; + while (bp < eb) { + kf = (struct vki_kinfo_file *)bp; + if (kf->kf_fd == fd) + break; + bp += kf->kf_structsize; + } + if (bp >= eb || *kf->kf_path == '\0') + return False; + VG_(strncpy)( buf, kf->kf_path, n_buf ); + return True; + # elif defined(VGO_aix5) I_die_here; /* maybe just return False? */ return False; @@ -108,37 +144,6 @@ # error Unknown OS # endif } -#else -Bool VG_(resolve_filename) ( Int fd, HChar* buf, Int n_buf ) -{ - static int nr_fromfd = -1; - SysRes res; - - VG_(memset)(buf, 0, n_buf); - if (nr_fromfd == -1) { - Int error, sc; - vki_size_t scl; - - scl = sizeof(sc); - sc = -1; -#warning XXX: wtf? - error = VG_(sysctlbyname)("machdep.getpath_fromfd_num", &sc, &scl, 0, 0); - if (error != -1 && sc > 0) - nr_fromfd = sc; - if (nr_fromfd == -1) - nr_fromfd = -2; - } - if (nr_fromfd < 0) - return False; - - res = VG_(do_syscall3)(nr_fromfd, fd, (UWord)buf, n_buf); - if (!sr_isError(res) && buf[0] == '/') { - return True; - } else { - return False; - } -} -#endif SysRes VG_(open) ( const Char* pathname, Int flags, Int mode ) { From owner-p4-projects@FreeBSD.ORG Tue Aug 25 11:49:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E1CBA1065694; Tue, 25 Aug 2009 11:49:21 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A5CDD106568B for ; Tue, 25 Aug 2009 11:49:21 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7ADDD8FC17 for ; Tue, 25 Aug 2009 11:49:21 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7PBnLSM040373 for ; Tue, 25 Aug 2009 11:49:21 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7PBnLnH040371 for perforce@freebsd.org; Tue, 25 Aug 2009 11:49:21 GMT (envelope-from stas@freebsd.org) Date: Tue, 25 Aug 2009 11:49:21 GMT Message-Id: <200908251149.n7PBnLnH040371@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167785 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2009 11:49:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=167785 Change 167785 by stas@stas_yandex on 2009/08/25 11:49:04 - Ifdef unused on FreeBSD variable. Affected files ... .. //depot/projects/valgrind/coregrind/m_main.c#14 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_main.c#14 (text+ko) ==== @@ -1118,7 +1118,9 @@ VG_(printf_xml)("\n"); if (VG_(clo_verbosity) > 1) { +#if !defined(VGO_freebsd) SysRes fd; +#endif VexArch vex_arch; VexArchInfo vex_archinfo; if (!logging_to_fd) From owner-p4-projects@FreeBSD.ORG Tue Aug 25 17:54:00 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6BDB5106568F; Tue, 25 Aug 2009 17:54:00 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3010B106568D for ; Tue, 25 Aug 2009 17:54:00 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1E01D8FC29 for ; Tue, 25 Aug 2009 17:54:00 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7PHs0g9092995 for ; Tue, 25 Aug 2009 17:54:00 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7PHs0kE092993 for perforce@freebsd.org; Tue, 25 Aug 2009 17:54:00 GMT (envelope-from stas@freebsd.org) Date: Tue, 25 Aug 2009 17:54:00 GMT Message-Id: <200908251754.n7PHs0kE092993@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167794 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2009 17:54:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=167794 Change 167794 by stas@stas_yandex on 2009/08/25 17:53:23 - Signal related improvements. Affected files ... .. //depot/projects/valgrind/coregrind/m_sigframe/sigframe-amd64-freebsd.c#6 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-amd64-freebsd.c#12 edit .. //depot/projects/valgrind/coregrind/pub_core_sigframe.h#5 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_sigframe/sigframe-amd64-freebsd.c#6 (text+ko) ==== @@ -31,8 +31,6 @@ #if defined(VGP_amd64_freebsd) -#warning Needs love! - #include "pub_core_basics.h" #include "pub_core_vki.h" #include "pub_core_threadstate.h" @@ -49,15 +47,6 @@ /* This module creates and removes signal frames for signal deliveries on amd64-freebsd. - - FIXME: sigcontexting is basically broken for the moment. When - delivering a signal, the integer registers and %rflags are - correctly written into the sigcontext, however the FP and SSE state - is not. When returning from a signal, only the integer registers - are restored from the sigcontext; the rest of the CPU state is - restored to what it was before the signal. - - This should be fixed. */ @@ -103,13 +92,33 @@ UInt magicE; }; +struct sigframe +{ + /* Sig handler's return address */ + Addr retaddr; + + Int sigNo; + Addr psigInfo; /* code or pointer to sigContext */ + Addr puContext; /* points to uContext */ + Addr addr; /* "secret" 4th argument */ + Addr phandler; /* "action" or "handler" */ + + /* pointed to by puContext */ + struct vki_ucontext uContext; + + vki_siginfo_t sigInfo; + + struct _vki_fpstate fpstate; + + struct vg_sigframe vg; +}; + /*------------------------------------------------------------*/ /*--- Creating signal frames ---*/ /*------------------------------------------------------------*/ /* Create a plausible-looking sigcontext from the thread's - Vex guest state. NOTE: does not fill in the FP or SSE - bits of sigcontext at the moment. + Vex guest state. */ static void synth_ucontext(ThreadId tid, const vki_siginfo_t *si, @@ -127,8 +136,6 @@ uc->uc_stack = tst->altstack; VG_(memcpy)(&sc->fpstate, fpstate, sizeof(*fpstate)); - // FIXME: save_i387(&tst->arch, fpstate); - # define SC2(reg,REG) sc->reg = tst->arch.vex.guest_##REG SC2(r8,R8); SC2(r9,R9); @@ -146,17 +153,20 @@ SC2(rax,RAX); SC2(rcx,RCX); SC2(rsp,RSP); - +/* + SC2(cs,CS); + SC2(gs,SS); + XXX +*/ SC2(rip,RIP); + sc->addr = (UWord)si->si_addr; + sc->err = err; + sc->fpformat = VKI_FPFMT_NODEV; + sc->len = sizeof(*sc); + sc->ownedfp = VKI_FPOWNED_NONE; sc->rflags = LibVEX_GuestAMD64_get_rflags(&tst->arch.vex); - // FIXME: SC2(cs,CS); - // FIXME: SC2(gs,GS); - // FIXME: SC2(fs,FS); sc->trapno = trapno; - sc->err = err; # undef SC2 - -// sc->cr2 = (UWord)si->_sifields._sigfault._addr; } @@ -224,7 +234,57 @@ frame->magicE = 0x27182818; } +static Addr build_sigframe(ThreadState *tst, + Addr rsp_top_of_frame, + const vki_siginfo_t *siginfo, + const struct vki_ucontext *siguc, + void *handler, UInt flags, + const vki_sigset_t *mask, + void *restorer) +{ + struct sigframe *frame; + Addr rsp = rsp_top_of_frame; + Int sigNo = siginfo->si_signo; + UWord trapno; + UWord err; + + rsp -= sizeof(*frame); + rsp = VG_ROUNDDN(rsp, 16); + frame = (struct sigframe *)rsp; + + if (!extend(tst, rsp, sizeof(*frame))) + return rsp_top_of_frame; + + /* retaddr, siginfo, uContext fields are to be written */ + VG_TRACK( pre_mem_write, Vg_CoreSignal, tst->tid, "signal handler frame", + rsp, offsetof(struct sigframe, vg) ); + + frame->sigNo = sigNo; + frame->retaddr = (Addr)&VG_(amd64_freebsd_SUBST_FOR_sigreturn); + if ((flags & VKI_SA_SIGINFO) == 0) + frame->psigInfo = (Addr)siginfo->si_code; + else + frame->psigInfo = (Addr)&frame->sigInfo; + VG_(memcpy)(&frame->sigInfo, siginfo, sizeof(vki_siginfo_t)); + + trapno = siguc->uc_mcontext.trapno; + err = siguc->uc_mcontext.err; + synth_ucontext(tst->tid, siginfo, trapno, err, mask, + &frame->uContext, &frame->fpstate); + + if (sigNo == VKI_SIGILL && siginfo->si_code > 0) + frame->sigInfo.si_addr = (void*)tst->arch.vex.guest_RIP; + + VG_TRACK( post_mem_write, Vg_CoreSignal, tst->tid, + rsp, offsetof(struct sigframe, vg) ); + + build_vg_sigframe(&frame->vg, tst, mask, flags, sigNo); + + return rsp; +} + + void VG_(sigframe_create)( ThreadId tid, Addr rsp_top_of_frame, const vki_siginfo_t *siginfo, @@ -234,32 +294,26 @@ const vki_sigset_t *mask, void *restorer ) { -// Addr rsp; -// struct sigframe *frame; -// ThreadState* tst = VG_(get_ThreadState)(tid); -// -// rsp = build_vg_sigframe(frame, tst, mask, flags, -// handler, flags, mask, restorer); -// frame = (struct sigframe *)rsp; -// -// /* Set the thread so it will next run the handler. */ -// /* tst->m_rsp = rsp; also notify the tool we've updated RSP */ -// VG_(set_SP)(tid, rsp); -// VG_TRACK( post_reg_write, Vg_CoreSignal, tid, VG_O_STACK_PTR, sizeof(Addr)); -// -// //VG_(printf)("handler = %p\n", handler); - // tst->arch.vex.guest_RIP = (Addr) handler; -// tst->arch.vex.guest_RDI = (ULong) siginfo->si_signo; -// tst->arch.vex.guest_RSI = (Addr) &frame->sigInfo; -// tst->arch.vex.guest_RDX = (Addr) &frame->uContext; -// /* This thread needs to be marked runnable, but we leave that the -// caller to do. */ -// -// if (0) -// VG_(printf)("pushed signal frame; %%RSP now = %#lx, " -// "next %%RIP = %#llx, status=%d\n", -// rsp, tst->arch.vex.guest_RIP, tst->status); -I_die_here; + Addr rsp; + struct sigframe *frame; + ThreadState* tst = VG_(get_ThreadState)(tid); + + rsp = build_sigframe(tst, rsp_top_of_frame, siginfo, siguc, handler, + flags, mask, restorer); + frame = (struct sigframe *)rsp; + + /* Set the thread so it will next run the handler. */ + /* tst->m_rsp = rsp; also notify the tool we've updated RSP */ + VG_(set_SP)(tid, rsp); + VG_TRACK( post_reg_write, Vg_CoreSignal, tid, VG_O_STACK_PTR, sizeof(Addr)); + + //VG_(printf)("handler = %p\n", handler); + tst->arch.vex.guest_RIP = (Addr) handler; + tst->arch.vex.guest_RDI = (ULong) siginfo->si_signo; + tst->arch.vex.guest_RSI = (Addr) &frame->sigInfo; + tst->arch.vex.guest_RDX = (Addr) &frame->uContext; + /* This thread needs to be marked runnable, but we leave that the + caller to do. */ } @@ -296,7 +350,7 @@ static void restore_sigcontext( ThreadState *tst, - struct vki_sigcontext *sc, + struct vki_mcontext *sc, struct _vki_fpstate *fpstate ) { tst->arch.vex.guest_RAX = sc->rax; @@ -315,14 +369,27 @@ tst->arch.vex.guest_R13 = sc->r13; tst->arch.vex.guest_R14 = sc->r14; tst->arch.vex.guest_R15 = sc->r15; -//:: tst->arch.vex.guest_rflags = sc->rflags; +/* + XXX: + tst->arch.vex.guest_rflags = sc->rflags; +*/ tst->arch.vex.guest_RIP = sc->rip; +/* + XXX + tst->arch.vex.guest_CS = sc->cs; + tst->arch.vex.guest_SS = sc->ss; +*/ + VG_(memcpy)(fpstate, &sc->fpstate, sizeof(*fpstate)); +} -//:: tst->arch.vex.guest_CS = sc->cs; -//:: tst->arch.vex.guest_FS = sc->fs; -//:: tst->arch.vex.guest_GS = sc->gs; +static +SizeT restore_sigframe ( ThreadState *tst, + struct sigframe *frame, Int *sigNo ) +{ + if (restore_vg_sigframe(tst, &frame->vg, sigNo)) + restore_sigcontext(tst, &frame->uContext.uc_mcontext, &frame->fpstate); -//:: restore_i387(&tst->arch, fpstate); + return sizeof(*frame); } void VG_(sigframe_destroy)( ThreadId tid ) @@ -337,7 +404,7 @@ /* Correctly reestablish the frame base address. */ rsp = tst->arch.vex.guest_RSP; - size = restore_vg_sigframe(tst, (struct sigframe *)rsp, &sigNo); + size = restore_sigframe(tst, (struct sigframe *)rsp, &sigNo); VG_TRACK( die_mem_stack_signal, rsp - VG_STACK_REDZONE_SZB, size + VG_STACK_REDZONE_SZB ); ==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-amd64-freebsd.c#12 (text+ko) ==== @@ -1,6 +1,6 @@ /*--------------------------------------------------------------------*/ -/*--- Platform-specific syscalls stuff. syswrap-x86-linux.c ---*/ +/*--- Platform-specific syscalls stuff. syswrap-amd64-freebsd.c ---*/ /*--------------------------------------------------------------------*/ /* @@ -30,16 +30,10 @@ #if defined(VGP_amd64_freebsd) -/* TODO/FIXME jrs 20050207: assignments to the syscall return result - in interrupted_syscall() need to be reviewed. They don't seem - to assign the shadow state. -*/ - #include "pub_core_basics.h" #include "pub_core_vki.h" #include "pub_core_vkiscnums.h" #include "pub_core_threadstate.h" -#include "pub_core_debuginfo.h" // VG_(di_notify_mmap) #include "pub_core_aspacemgr.h" #include "pub_core_debuglog.h" #include "pub_core_libcbase.h" @@ -48,10 +42,9 @@ #include "pub_core_libcproc.h" #include "pub_core_libcsignal.h" #include "pub_core_machine.h" -#include "pub_core_mallocfree.h" #include "pub_core_options.h" #include "pub_core_scheduler.h" -#include "pub_core_sigframe.h" // For VG_(sigframe_destroy)() +#include "pub_core_sigframe.h" #include "pub_core_signals.h" #include "pub_core_syscall.h" #include "pub_core_syswrap.h" @@ -69,7 +62,7 @@ /* Call f(arg1), but first switch stacks, using 'stack' as the new stack, and use 'retaddr' as f's return-to address. Also, clear all - the integer registers before entering f.*/ + the integer registers before entering f. */ __attribute__((noreturn)) void ML_(call_on_new_stack_0_1) ( Addr stack, Addr retaddr, @@ -118,29 +111,12 @@ } /* --------------------------------------------------------------------- - PRE/POST wrappers for x86/Linux-specific syscalls + PRE/POST wrappers for amd64/FreeBSD-specific syscalls ------------------------------------------------------------------ */ #define PRE(name) DEFN_PRE_TEMPLATE(freebsd, name) #define POST(name) DEFN_POST_TEMPLATE(freebsd, name) -#if 0 -struct thr_param { - void (*start_func)(void *); /* thread entry function. */ - void *arg; /* argument for entry function. */ - char *stack_base; /* stack base address. */ - size_t stack_size; /* stack size. */ - char *tls_base; /* tls base address. */ - size_t tls_size; /* tls size. */ - long *child_tid; /* address to store new TID. */ - long *parent_tid; /* parent accesses the new TID here. */ - int flags; /* thread flags. */ - struct rtprio *rtp; /* Real-time scheduling priority */ - void *spare[3]; /* TODO: cpu affinity mask etc. */ -}; -int thr_new(struct thr_param *param, int param_size); -#endif - PRE(sys_thr_new) { static const Bool debug = False; @@ -165,8 +141,8 @@ } VG_(memset)(&tp, 0, sizeof(tp)); VG_(memcpy)(&tp, (void *)ARG1, offsetof(struct vki_thr_param, spare)); - PRE_MEM_WRITE("clone(parent_tidptr)", (Addr)tp.parent_tid, sizeof(long)); - PRE_MEM_WRITE("clone(child_tidptr)", (Addr)tp.child_tid, sizeof(long)); + PRE_MEM_WRITE("thr_new(parent_tidptr)", (Addr)tp.parent_tid, sizeof(long)); + PRE_MEM_WRITE("thr_new(child_tidptr)", (Addr)tp.child_tid, sizeof(long)); VG_(sigfillset)(&blockall); @@ -192,7 +168,7 @@ ctst->arch.vex_shadow1 = ptst->arch.vex_shadow1; ctst->arch.vex_shadow2 = ptst->arch.vex_shadow2; - /* Make sys_clone appear to have returned Success(0) in the + /* Make thr_new appear to have returned Success(0) in the child. */ ctst->arch.vex.guest_RAX = 0; ctst->arch.vex.guest_RDX = 0; @@ -207,8 +183,8 @@ /* Linux has to guess, we don't */ VG_(register_stack)((Addr)tp.stack_base, (Addr)tp.stack_base + tp.stack_size); - /* Assume the clone will succeed, and tell any tool that wants to - know that this thread has come into existence. If the clone + /* Assume the thr_new will succeed, and tell any tool that wants to + know that this thread has come into existence. If the thr_new fails, we'll send out a ll_exit notification for it at the out: label below, to clean up. */ VG_TRACK ( pre_thread_ll_create, tid, ctid ); @@ -223,6 +199,7 @@ /* Set the client state for scheduler to run libthr's trampoline */ ctst->arch.vex.guest_RDI = (Addr)tp.arg; + /* XXX: align on 16-byte boundary? */ ctst->arch.vex.guest_RSP = (Addr)tp.stack_base + tp.stack_size - 8; ctst->arch.vex.guest_RIP = (Addr)tp.start_func; @@ -232,6 +209,10 @@ /* And valgrind's trampoline on its own stack */ stk = ML_(allocstack)(ctid); + if (stk == (Addr)NULL) { + res = VG_(mk_SysRes_Error)( VKI_ENOMEM ); + goto fail; + } tp.stack_base = (void *)ctst->os_state.valgrind_stack_base; tp.stack_size = (Addr)stk - (Addr)tp.stack_base; @@ -240,8 +221,9 @@ VG_(sigprocmask)(VKI_SIG_SETMASK, &savedmask, NULL); +fail: if (sr_isError(res)) { - /* clone failed */ + /* thr_new failed */ VG_(cleanup_thread)(&ctst->arch); ctst->status = VgTs_Empty; /* oops. Better tell the tool the thread exited in a hurry :-) */ @@ -284,13 +266,12 @@ /* Adjust esp to point to start of frame; skip back up over handler ret addr */ tst = VG_(get_ThreadState)(tid); - tst->arch.vex.guest_RSP -= sizeof(Addr); /* QQQ should be redundant */ + tst->arch.vex.guest_RSP -= sizeof(Addr); /* This is only so that the EIP is (might be) useful to report if something goes wrong in the sigreturn */ ML_(fixup_guest_state_to_restart_syscall)(&tst->arch); -// VG_(sigframe_destroy)((struct vki_ucontext *)ARG1, tid, False); VG_(sigframe_destroy)(tid); /* For unclear reasons, it appears we need the syscall to return @@ -299,44 +280,17 @@ driver logic copies it back unchanged. Also, note %EAX is of the guest registers written by VG_(sigframe_destroy). */ rflags = LibVEX_GuestAMD64_get_rflags(&tst->arch.vex); - SET_STATUS_from_SysRes( VG_(mk_SysRes_amd64_freebsd)( tst->arch.vex.guest_RAX, tst->arch.vex.guest_RDX, (rflags & 1) != 0 ? True : False) ); + SET_STATUS_from_SysRes( VG_(mk_SysRes_amd64_freebsd)( tst->arch.vex.guest_RAX, + tst->arch.vex.guest_RDX, (rflags & 1) != 0 ? True : False) ); - /* Check to see if some any signals arose as a result of this. */ - *flags |= SfPollAfter; -} - -#if 0 /* QQQ keep for 6.x signals */ -PRE(sys_rt_sigreturn) -{ - ThreadState* tst; - PRINT("rt_sigreturn ( )"); + /* Tell the driver not to update the guest state with the "result", + and set a bogus result to keep it happy. */ + *flags |= SfNoWriteResult; + SET_STATUS_Success(0); - vg_assert(VG_(is_valid_tid)(tid)); - vg_assert(tid >= 1 && tid < VG_N_THREADS); - vg_assert(VG_(is_running_thread)(tid)); - - /* Adjust esp to point to start of frame; skip back up over handler - ret addr */ - tst = VG_(get_ThreadState)(tid); - tst->arch.vex.guest_ESP -= sizeof(Addr); - - /* This is only so that the EIP is (might be) useful to report if - something goes wrong in the sigreturn */ - ML_(fixup_guest_state_to_restart_syscall)(&tst->arch); - - VG_(sigframe_destroy)(tid, True); - - /* For unclear reasons, it appears we need the syscall to return - without changing %EAX. Since %EAX is the return value, and can - denote either success or failure, we must set up so that the - driver logic copies it back unchanged. Also, note %EAX is of - the guest registers written by VG_(sigframe_destroy). */ - SET_STATUS_from_SysRes( VG_(mk_SysRes_x86_linux)( tst->arch.vex.guest_EAX ) ); - /* Check to see if some any signals arose as a result of this. */ *flags |= SfPollAfter; } -#endif /* This is here because on x86 the off_t is passed in 2 regs. Don't ask about pad. */ ==== //depot/projects/valgrind/coregrind/pub_core_sigframe.h#5 (text+ko) ==== @@ -57,7 +57,6 @@ restore the CPU state from it. */ #ifdef VGO_freebsd extern -#warning DANGER!! void VG_(sigframe_destroy)( ThreadId tid ); #else extern From owner-p4-projects@FreeBSD.ORG Tue Aug 25 19:46:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B0AD5106568D; Tue, 25 Aug 2009 19:46:11 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 753D4106568B for ; Tue, 25 Aug 2009 19:46:11 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4A2C18FC1A for ; Tue, 25 Aug 2009 19:46:11 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7PJkBSO003570 for ; Tue, 25 Aug 2009 19:46:11 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7PJkBsr003568 for perforce@freebsd.org; Tue, 25 Aug 2009 19:46:11 GMT (envelope-from truncs@FreeBSD.org) Date: Tue, 25 Aug 2009 19:46:11 GMT Message-Id: <200908251946.n7PJkBsr003568@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 167803 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2009 19:46:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=167803 Change 167803 by truncs@aditya on 2009/08/25 19:45:12 Revert some of my previous changes. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_inode.c#2 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_inode.c#2 (text+ko) ==== @@ -125,16 +125,16 @@ long count, nblocks, blocksreleased = 0; int aflags, error, i, allerror; off_t osize; - - /* +/* +printf("ext2_truncate called %d to %d\n", VTOI(ovp)->i_number, length); +*/ /* * negative file sizes will totally break the code below and * are not meaningful anyways. - * We should check the max file size here too. */ - oip = VTOI(ovp); if (length < 0) - return EINVAL; + return EFBIG; + oip = VTOI(ovp); if (ovp->v_type == VLNK && oip->i_size < ovp->v_mount->mnt_maxsymlinklen) { #ifdef DIAGNOSTIC @@ -155,7 +155,7 @@ /* * Lengthen the size of the file. We must ensure that the * last byte of the file is allocated. Since the smallest - * value of osize is 0, length will be at least 1. + * value of oszie is 0, length will be at least 1. */ if (osize < length) { if (length > oip->i_e2fs->e2fs_maxfilesize) @@ -165,13 +165,12 @@ aflags = B_CLRBUF; if (flags & IO_SYNC) aflags |= B_SYNC; - error = ext2_balloc(oip, lbn, offset + 1, cred, &bp, - aflags); - if(error) + vnode_pager_setsize(ovp, length); + if ((error = ext2_balloc(oip, lbn, offset + 1, cred, &bp, + aflags)) != 0) return (error); oip->i_size = length; - vnode_pager_setsize(ovp, length); - if (aflags & B_SYNC) + if (aflags & IO_SYNC) bwrite(bp); else bawrite(bp); @@ -201,12 +200,11 @@ size = blksize(fs, oip, lbn); bzero((char *)bp->b_data + offset, (u_int)(size - offset)); allocbuf(bp, size); - if (aflags & B_SYNC) + if (aflags & IO_SYNC) bwrite(bp); else bawrite(bp); } - vnode_pager_setsize(ovp, length); /* * Calculate index into inode's block list of * last direct and indirect blocks (if any) @@ -445,9 +443,8 @@ last = lastbn % factor; nb = bap[i]; if (nb != 0) { - error = ext2_indirtrunc(ip, nlbn, fsbtodb(fs, nb), - last, level - 1, &blkcount); - if (error) + if ((error = ext2_indirtrunc(ip, nlbn, fsbtodb(fs, nb), + last, level - 1, &blkcount)) != 0) allerror = error; blocksreleased += blkcount; } From owner-p4-projects@FreeBSD.ORG Tue Aug 25 20:57:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5642A1065695; Tue, 25 Aug 2009 20:57:38 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 00317106568F for ; Tue, 25 Aug 2009 20:57:37 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D83F58FC15 for ; Tue, 25 Aug 2009 20:57:37 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7PKvb8w020183 for ; Tue, 25 Aug 2009 20:57:37 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7PKvbtd020181 for perforce@freebsd.org; Tue, 25 Aug 2009 20:57:37 GMT (envelope-from rene@FreeBSD.org) Date: Tue, 25 Aug 2009 20:57:37 GMT Message-Id: <200908252057.n7PKvbtd020181@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 167813 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2009 20:57:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=167813 Change 167813 by rene@rene_self on 2009/08/25 20:56:50 MFen handbook/multimedia 1.132 -> 1.134 Add myself to the translators list. Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/multimedia/chapter.sgml#11 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/multimedia/chapter.sgml#11 (text+ko) ==== @@ -4,7 +4,7 @@ $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/multimedia/chapter.sgml,v 1.16 2009/06/17 21:00:17 rene Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/multimedia/chapter.sgml - %SRCID% 1.132 + %SRCID% 1.134 --> @@ -22,6 +22,10 @@ Mazeland Vertaald door + + René + Ladan + @@ -1647,9 +1651,9 @@ SANE heeft een lijst met ondersteunde apparaten waarin gekeken kan worden of een scanner - wordt ondersteund en wat de status voor ondersteuning is. In - &man.uscanner.4; staat een lijst met ondersteunde - USB-scanners. + wordt ondersteund en wat de status voor ondersteuning is. Op systemen + van vóór &os; 8.X staat in de handleidingpagina van + &man.uscanner.4; een lijst met ondersteunde USB-scanners. @@ -1661,7 +1665,7 @@ nodig. - USB interface + USB-interface In de GENERIC kernel zitten standaard de apparaatstuurprogramma's die nodig zijn voor @@ -1673,38 +1677,34 @@ device usb device uhci device ohci -device uscanner +device uscanner +device ehci - Afhankelijk van de USB-chipset op een moederbord, is - alleen device uhci of - device ohci nodig, maar het opnemen van - beiden in het bestand met kernelinstellingen is niet - schadelijk. + Op systemen van vóór &os; 8.X is de volgende + regel ook nodig: - Als het niet wenselijk is een nieuwe kernel te bouwen en - er wordt geen GENERIC kernel gebruikt, - dan kan de apparaatstuurprogrammamodule &man.uscanner.4; - direct geladen worden met &man.kldload.8;: + device uscanner - &prompt.root; kldload uscanner + Op deze versies van &os; biedt het apparaat &man.uscanner.4; + ondersteuning voor de USB-scanners. Sinds &os; 8.0 ondersteunt + de bibliotheek &man.libusb.3; dit direct. - Om de module bij iedere systeemstart te laden kan de - volgende regel aan /boot/loader.conf - worden toegevoegd: - - uscanner_load="YES" - - Na een herstart met een juiste ingestelde kernel of na - het laden van de benodigde module, kan de USB-scanner + Na een herstart met de juiste kernel kan de USB-scanner aangesloten worden. Een regel die de detectie van uw scanner aangeeft zou in de berichtenbuffer van het systeem (&man.dmesg.8;) moeten verschijnen: + ugen0.2: <EPSON> at usbus0 + + Of op een &os; 7.X systeem: + uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2 - Het bovenstaande geeft aan dat de scanner het - apparaatknooppunt /dev/uscanner0 - gebruikt. + Deze berichten geven aan dat de scanner òfwel + /dev/ugen0.2 òf + /dev/uscanner0 als apparaatknooppunt + gebruikt afhankelijk van de versie van &os; die we draaien. Voor dit + voorbeeld was een &epson.perfection; 1650 USB-scanner gebruikt. @@ -1808,69 +1808,85 @@ &prompt.root; scanimage -L device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner - De afwezigheid van uitvoer of een bericht dat aangeeft dat - er geen scanners zijn aangetroffen, betekent dat - &man.scanimage.1; niet in staat is een scanner te - identificeren. Als dit gebeurt, dient het instellingenbestand - voor het backend aangepast te worden en dient daar de juiste - instelling gemaakt te worden. De map /usr/local/etc/sane.d/ bevat - alle bestanden met instellingen voor de backends. Het is - bekend dat dit identificatieprobleem optreedt bij bepaalde - USB-scanners. + Of, met bijvoorbeeld de USB-scanner die in wordt gebruikt: + + &prompt.root; scanimage -L +device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner + + Deze uitvoer komt van een &os; 8.X systeem, het item + `epson2:libusb:/dev/usb:/dev/ugen0.2' geeft de naam + van het backend (epson2) en het apparaatknooppunt + (/dev/ugen0.2) dat door onze scanner wordt + gebruikt. + + + De afwezigheid van uitvoer of een bericht dat aangeeft dat + er geen scanners zijn aangetroffen, betekent dat + &man.scanimage.1; niet in staat is een scanner te + identificeren. Als dit gebeurt, dient het instellingenbestand + voor het backend aangepast te worden en dient daar de juiste + instelling gemaakt te worden. De map /usr/local/etc/sane.d/ bevat + alle bestanden met instellingen voor de backends. Het is + bekend dat dit identificatieprobleem optreedt bij bepaalde + USB-scanners. - De USB-scanner die in - wordt gebruikt, toont bijvoorbeeld de volgende informatie met - sane-find-scanner: + De USB-scanner die in + wordt gebruikt, wordt in &os; 8.X prima gedetecteerd en werkt + daar, maar in eerdere versies van &os; (waar &man.uscanner.4; wordt + gebruikt) toont het de volgende informatie met + sane-find-scanner: - &prompt.root; sane-find-scanner -q + &prompt.root; sane-find-scanner -q found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0 - De bovenstaande uitvoer geeft aan dat de scanner juist is - gedetecteerd, dat hij de USB-interface gebruikt en is - aangesloten op het apparaatknooppunt - /dev/uscanner0. Nu kan gecontroleerd - worden of de scanner juist wordt geïdentificeerd: + De bovenstaande uitvoer geeft aan dat de scanner juist is + gedetecteerd, dat het de USB-interface gebruikt en is + aangesloten op het apparaatknooppunt + /dev/uscanner0. Nu kan gecontroleerd + worden of de scanner juist wordt geïdentificeerd: - &prompt.root; scanimage -L + &prompt.root; scanimage -L No scanners were identified. If you were expecting something different, check that the scanner is plugged in, turned on and detected by the sane-find-scanner tool (if appropriate). Please read the documentation which came with this software (README, FAQ, manpages). - Omdat in het bovenstaande voorbeeld de scanner niet wordt - geïdentificeerd, dient het bestand - /usr/local/etc/sane.d/epson.conf - gewijzigd te worden. De gebruikte scanner is een - &epson.perfection; 1650, dus in dit geval dient voor de scanner - het backend epson gebruikt te worden. Het - is van belang om het commentaar in de instellingenbestanden van - de backends te lezen. Het aanpassen van regels is eenvoudig: - plaats een commentaarkarakter voor alle regels voor andere - interfaces dan die nodig zijn weg (in dit geval worden alle - regels die beginnen met het woord scsi - uitgeschakeld, omdat er een USB interface wordt gebruiken), en - dan kan onderaan het bestand een regel met de gebruikte - interface en apparaatknooppunt geplaatst worden: + Omdat in het bovenstaande voorbeeld de scanner niet wordt + geïdentificeerd, dient het bestand + /usr/local/etc/sane.d/epson2.conf + gewijzigd te worden. De gebruikte scanner is een + &epson.perfection; 1650, dus in dit geval dient voor de scanner + het backend epson2 gebruikt te worden. Het + is van belang om het commentaar in de instellingenbestanden van + de backends te lezen. Het aanpassen van regels is eenvoudig: + plaats een commentaarkarakter voor alle regels voor andere + interfaces dan die nodig zijn weg (in dit geval worden alle + regels die beginnen met het woord scsi + uitgeschakeld, omdat er een USB-interface wordt gebruiken), en + dan kan onderaan het bestand een regel met de gebruikte + interface en apparaatknooppunt geplaatst worden: - usb /dev/uscanner0 + usb /dev/uscanner0 - Het is aan te raden de opmerkingen te lezen in het bestand - met instellingen voor het backend en ook de hulppagina, omdat - daarin meer details en de correcte syntaxis te vinden zijn. Nu - kan gecontroleerd worden of de scanner wèl juist wordt - geïdentificeerd: + Het is aan te raden de opmerkingen te lezen in het bestand + met instellingen voor het backend en ook de hulppagina, omdat + daarin meer details en de correcte syntaxis te vinden zijn. Nu + kan gecontroleerd worden of de scanner wèl juist wordt + geïdentificeerd: - &prompt.root; scanimage -L + &prompt.root; scanimage -L device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner - De USB-scanner is geïdentificeerd. Het is niet - belangrijk dat het merk en model niet overeenkomen met de - scanner. Het belangrijkste is het veld - `epson:/dev/uscanner0', dat de - juiste benamingen voor het backend en het apparaatknooppunt - aangeeft. + De USB-scanner is geïdentificeerd. Het is niet + belangrijk dat het merk en model niet overeenkomen met de + scanner. Het belangrijkste is het veld + `epson:/dev/uscanner0', dat de + juiste benamingen voor het backend en het apparaatknooppunt + aangeeft. + Als scanimage -L in staat is een scanner goed te zien, dan zijn de instellingen compleet. Er kan nu met @@ -1900,25 +1916,48 @@ root rechten, maar het is wellicht ook nodig dat andere gebruikers de scanner kunnen gebruiken. Dan heeft een gebruiker lees- en schrijfrechten nodig op de - apparaatknooppunt voor een scanner. Een USB-scanner gebruikt - bijvoorbeeld apparaatknooppunt - /dev/uscanner0, waarvan de groep - operator eigenaar is. Door gebruiker - joe lid te maken - van de groep operator, kan die gebruiker - de scanner gebruiken: + apparaatknooppunt voor een scanner. Onze USB-scanner gebruikt + bijvoorbeeld apparaatknooppunt /dev/ugen0.2 wat in + feite slechts een symbolische koppeling is naar het echte + apparaatknooppunt genaamd /dev/usb/0.2.0 (een blik + op de inhoud van de map /dev + bevestigt dit). Zowel de symbolische koppeling als het apparaatknooppunt + zijn van respectievelijk de groepen wheel en + operator. Door de gebruiker + joe aan deze groepen toe + te voegen kan hij de scanner zien, maar vanwege duidelijke + veiligheidsredenen dient het toevoegen van een gebruiker aan elke groep + met zorg te gebeuren, vooral aan de groep wheel. + Een betere oplossing is om een specifieke groep aan te maken voor het + gebruik van USB-apparaten en de scanner toegankelijk te maken voor leden + van deze groep. + + We zullen dus bijvoorbeeld een groep genaamd + usb gebruiken. De + eerste stap is het aanmaken van deze groep met behulp van het commando + &man.pw.8;: + + &prompt.root; pw groupadd usb + + Hierna moeten we de symbolische koppeling + /dev/ugen0.2 aanmaken en het apparaatknooppunt + /dev/usb/0.2.0 met de juiste schrijfpermissies + toegankelijk maken voor de groep usb + (0660 of 0664), omdat standaard + alleen de eigenaar van deze bestanden (root) ernaar + kan schrijven. Dit alles wordt gedaan door de volgende regels aan + /etc/devfs.rules toe te voegen: - &prompt.root; pw groupmod operator -m joe + [system=5] +add path ugen0.2 mode 0660 group usb +add path usb/0.2.0 mode 0666 group usb - In &man.pw.8; staan meer details. Op het apparaatknooppunt - /dev/uscanner0 moeten ook de juiste - rechten staan. Standaard kan de groep - operator alleen lezen op het - apparaatknooppunt. Dit is te wijzigen door de volgende regel - aan /etc/devfs.rules toe te voegen: + Voor gebruikers van &os; 7.X zijn de volgende regels met het + juiste apparaatknooppunt, meestal /dev/uscanner0 + nodig: [system=5] -add path uscanner0 mode 660 +add path uscanner0 mode 0660 group usb Daarna kan de volgende regel aan /etc/rc.conf toegevoegd worden en dient @@ -1929,12 +1968,13 @@ Meer informatie over de bovenstaande instellingen staan in de hulppagina voor &man.devfs.8;. - - Natuurlijk dient ook beveiliging een factor te zijn in de - afweging of een gebruiker lid gemaakt moet worden van een - bepaalde groep, zeker als dat om de groep - operator gaat. - + Nu dienen er alleen nog gebruikers aan de groep + usb toegevoegd te + worden om toegang tot de scanner toe te staan: + + &prompt.root; pw groupmod usb -m joe + + Lees voor meer details de handleidingpagina van &man.pw.8;. From owner-p4-projects@FreeBSD.ORG Tue Aug 25 21:12:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AF4971065690; Tue, 25 Aug 2009 21:12:55 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5A838106568D for ; Tue, 25 Aug 2009 21:12:55 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 476D98FC27 for ; Tue, 25 Aug 2009 21:12:55 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7PLCttc022285 for ; Tue, 25 Aug 2009 21:12:55 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7PLCsDw022283 for perforce@freebsd.org; Tue, 25 Aug 2009 21:12:54 GMT (envelope-from jhb@freebsd.org) Date: Tue, 25 Aug 2009 21:12:54 GMT Message-Id: <200908252112.n7PLCsDw022283@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167815 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2009 21:12:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=167815 Change 167815 by jhb@jhb_jhbbsd on 2009/08/25 21:12:15 IFC @167811 Affected files ... .. //depot/projects/smpng/share/man/man9/Makefile#9 integrate .. //depot/projects/smpng/share/man/man9/kproc.9#2 integrate .. //depot/projects/smpng/share/man/man9/kthread.9#2 integrate .. //depot/projects/smpng/share/man/man9/sglist.9#2 integrate .. //depot/projects/smpng/share/man/man9/taskqueue.9#2 integrate .. //depot/projects/smpng/sys/amd64/amd64/elf_machdep.c#17 integrate .. //depot/projects/smpng/sys/amd64/amd64/local_apic.c#45 integrate .. //depot/projects/smpng/sys/amd64/amd64/machdep.c#85 integrate .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#98 integrate .. //depot/projects/smpng/sys/amd64/amd64/trap.c#68 integrate .. //depot/projects/smpng/sys/amd64/include/apicvar.h#24 integrate .. //depot/projects/smpng/sys/amd64/include/pmc_mdep.h#8 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_sysvec.c#42 integrate .. //depot/projects/smpng/sys/arm/arm/undefined.c#17 integrate .. //depot/projects/smpng/sys/arm/at91/uart_dev_at91usart.c#19 integrate .. //depot/projects/smpng/sys/arm/conf/SHEEVAPLUG#1 branch .. //depot/projects/smpng/sys/arm/mv/common.c#6 integrate .. //depot/projects/smpng/sys/arm/mv/discovery/db78xxx.c#5 integrate .. //depot/projects/smpng/sys/arm/mv/kirkwood/db88f6xxx.c#5 integrate .. //depot/projects/smpng/sys/arm/mv/kirkwood/files.db88f6xxx#2 integrate .. //depot/projects/smpng/sys/arm/mv/kirkwood/files.kirkwood#1 branch .. //depot/projects/smpng/sys/arm/mv/kirkwood/files.sheevaplug#1 branch .. //depot/projects/smpng/sys/arm/mv/kirkwood/sheevaplug.c#1 branch .. //depot/projects/smpng/sys/arm/mv/kirkwood/std.db88f6xxx#2 integrate .. //depot/projects/smpng/sys/arm/mv/kirkwood/std.kirkwood#1 branch .. //depot/projects/smpng/sys/arm/mv/kirkwood/std.sheevaplug#1 branch .. //depot/projects/smpng/sys/arm/mv/mv_machdep.c#7 integrate .. //depot/projects/smpng/sys/arm/mv/mvreg.h#7 integrate .. //depot/projects/smpng/sys/arm/mv/mvvar.h#4 integrate .. //depot/projects/smpng/sys/arm/mv/orion/db88f5xxx.c#5 integrate .. //depot/projects/smpng/sys/arm/xscale/ixp425/ixdp425_pci.c#3 integrate .. //depot/projects/smpng/sys/boot/i386/gptboot/gptboot.c#4 integrate .. //depot/projects/smpng/sys/cam/ata/ata_xpt.c#3 integrate .. //depot/projects/smpng/sys/cam/cam_ccb.h#14 integrate .. //depot/projects/smpng/sys/cam/cam_xpt.c#60 integrate .. //depot/projects/smpng/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c#1 branch .. //depot/projects/smpng/sys/cddl/compat/opensolaris/sys/mutex.h#4 integrate .. //depot/projects/smpng/sys/cddl/compat/opensolaris/sys/proc.h#3 integrate .. //depot/projects/smpng/sys/cddl/compat/opensolaris/sys/taskq.h#3 delete .. //depot/projects/smpng/sys/cddl/compat/opensolaris/sys/taskq_impl.h#3 delete .. //depot/projects/smpng/sys/cddl/compat/opensolaris/sys/vnode.h#7 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c#4 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c#3 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#6 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c#3 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h#3 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h#3 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#4 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#6 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#7 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#6 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#14 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c#3 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/os/taskq.c#3 delete .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c#2 delete .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c#2 delete .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c#2 delete .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.h#4 delete .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/sys/callb.h#3 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/sys/taskq.h#1 branch .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h#3 integrate .. //depot/projects/smpng/sys/compat/ia32/ia32_sysvec.c#24 integrate .. //depot/projects/smpng/sys/compat/linux/linux_ioctl.c#64 integrate .. //depot/projects/smpng/sys/conf/files#251 integrate .. //depot/projects/smpng/sys/conf/newvers.sh#27 integrate .. //depot/projects/smpng/sys/conf/options#176 integrate .. //depot/projects/smpng/sys/conf/options.arm#21 integrate .. //depot/projects/smpng/sys/contrib/altq/altq/altq_subr.c#17 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pf.c#38 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pf_if.c#19 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pfvar.h#15 integrate .. //depot/projects/smpng/sys/dev/aac/aac.c#67 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi.c#116 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_battery.c#24 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_cpu.c#48 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_dock.c#8 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_thermal.c#46 integrate .. //depot/projects/smpng/sys/dev/adb/adb_bus.c#5 integrate .. //depot/projects/smpng/sys/dev/alc/if_alc.c#4 integrate .. //depot/projects/smpng/sys/dev/amdtemp/amdtemp.c#3 integrate .. //depot/projects/smpng/sys/dev/amr/amr.c#51 integrate .. //depot/projects/smpng/sys/dev/asmc/asmc.c#8 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.c#100 integrate .. //depot/projects/smpng/sys/dev/atkbdc/psm.c#17 integrate .. //depot/projects/smpng/sys/dev/bge/if_bge.c#109 integrate .. //depot/projects/smpng/sys/dev/bktr/bktr_os.c#32 integrate .. //depot/projects/smpng/sys/dev/drm/drmP.h#26 integrate .. //depot/projects/smpng/sys/dev/drm/drm_bufs.c#10 integrate .. //depot/projects/smpng/sys/dev/drm/drm_drv.c#18 integrate .. //depot/projects/smpng/sys/dev/drm/drm_fops.c#7 integrate .. //depot/projects/smpng/sys/dev/drm/drm_sysctl.c#7 integrate .. //depot/projects/smpng/sys/dev/drm/r600_blit.c#1 branch .. //depot/projects/smpng/sys/dev/drm/r600_cp.c#6 integrate .. //depot/projects/smpng/sys/dev/drm/radeon_cp.c#25 integrate .. //depot/projects/smpng/sys/dev/drm/radeon_cs.c#1 branch .. //depot/projects/smpng/sys/dev/drm/radeon_drm.h#16 integrate .. //depot/projects/smpng/sys/dev/drm/radeon_drv.h#23 integrate .. //depot/projects/smpng/sys/dev/drm/radeon_state.c#19 integrate .. //depot/projects/smpng/sys/dev/e1000/if_em.c#12 integrate .. //depot/projects/smpng/sys/dev/e1000/if_igb.c#13 integrate .. //depot/projects/smpng/sys/dev/hptrr/hptrr_osm_bsd.c#4 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_core.c#4 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_piv.c#14 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_ppro.c#11 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_x86.c#11 integrate .. //depot/projects/smpng/sys/dev/ips/ips_pci.c#14 integrate .. //depot/projects/smpng/sys/dev/iscsi/initiator/isc_cam.c#4 integrate .. //depot/projects/smpng/sys/dev/ixgbe/ixgbe.c#10 integrate .. //depot/projects/smpng/sys/dev/mfi/mfi.c#30 integrate .. //depot/projects/smpng/sys/dev/mge/if_mge.c#7 integrate .. //depot/projects/smpng/sys/dev/mii/e1000phy.c#21 integrate .. //depot/projects/smpng/sys/dev/mlx/mlx.c#25 integrate .. //depot/projects/smpng/sys/dev/mmc/mmc.c#13 integrate .. //depot/projects/smpng/sys/dev/pccbb/pccbb.c#73 integrate .. //depot/projects/smpng/sys/dev/ppbus/vpo.c#16 integrate .. //depot/projects/smpng/sys/dev/pst/pst-iop.c#8 integrate .. //depot/projects/smpng/sys/dev/pty/pty.c#1 branch .. //depot/projects/smpng/sys/dev/re/if_re.c#78 integrate .. //depot/projects/smpng/sys/dev/rp/rp.c#28 integrate .. //depot/projects/smpng/sys/dev/snp/snp.c#37 integrate .. //depot/projects/smpng/sys/dev/sound/pci/hda/hdac.c#38 integrate .. //depot/projects/smpng/sys/dev/sound/usb/uaudio.c#33 integrate .. //depot/projects/smpng/sys/dev/syscons/scvgarndr.c#11 integrate .. //depot/projects/smpng/sys/dev/syscons/scvidctl.c#14 integrate .. //depot/projects/smpng/sys/dev/twe/twe.c#17 integrate .. //depot/projects/smpng/sys/dev/usb/controller/usb_controller.c#13 integrate .. //depot/projects/smpng/sys/dev/usb/input/ukbd.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/misc/ufm.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/net/if_aue.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/net/if_cdce.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/net/usb_ethernet.c#9 integrate .. //depot/projects/smpng/sys/dev/usb/serial/uipaq.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/serial/uvisor.c#9 integrate .. //depot/projects/smpng/sys/dev/usb/storage/umass.c#13 integrate .. //depot/projects/smpng/sys/dev/usb/storage/urio.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/usb.h#22 integrate .. //depot/projects/smpng/sys/dev/usb/usb_busdma.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/usb_compat_linux.c#13 integrate .. //depot/projects/smpng/sys/dev/usb/usb_dev.c#16 integrate .. //depot/projects/smpng/sys/dev/usb/usb_device.c#15 integrate .. //depot/projects/smpng/sys/dev/usb/usb_device.h#14 integrate .. //depot/projects/smpng/sys/dev/usb/usb_handle_request.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/usb_hub.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/usb_process.c#7 integrate .. //depot/projects/smpng/sys/dev/usb/usb_process.h#7 integrate .. //depot/projects/smpng/sys/dev/usb/usb_transfer.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#144 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_upgt.c#9 integrate .. //depot/projects/smpng/sys/dev/xen/blkback/blkback.c#5 integrate .. //depot/projects/smpng/sys/dev/xen/console/console.c#10 integrate .. //depot/projects/smpng/sys/dev/xen/netback/netback.c#4 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clsubs.c#2 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clvnops.c#10 integrate .. //depot/projects/smpng/sys/geom/part/g_part_gpt.c#11 integrate .. //depot/projects/smpng/sys/i386/acpica/acpi_machdep.c#35 integrate .. //depot/projects/smpng/sys/i386/bios/smapi.c#12 integrate .. //depot/projects/smpng/sys/i386/bios/smbios.c#8 integrate .. //depot/projects/smpng/sys/i386/bios/vpd.c#8 integrate .. //depot/projects/smpng/sys/i386/i386/elf_machdep.c#20 integrate .. //depot/projects/smpng/sys/i386/i386/local_apic.c#67 integrate .. //depot/projects/smpng/sys/i386/i386/machdep.c#145 integrate .. //depot/projects/smpng/sys/i386/i386/trap.c#117 integrate .. //depot/projects/smpng/sys/i386/include/apicvar.h#36 integrate .. //depot/projects/smpng/sys/i386/include/pmc_mdep.h#7 integrate .. //depot/projects/smpng/sys/i386/isa/vesa.c#21 integrate .. //depot/projects/smpng/sys/i386/linux/linux_sysvec.c#70 integrate .. //depot/projects/smpng/sys/i386/xen/mp_machdep.c#14 integrate .. //depot/projects/smpng/sys/ia64/ia64/genassym.c#30 integrate .. //depot/projects/smpng/sys/ia64/ia64/machdep.c#119 integrate .. //depot/projects/smpng/sys/ia64/ia64/mp_machdep.c#43 integrate .. //depot/projects/smpng/sys/isa/isahint.c#8 integrate .. //depot/projects/smpng/sys/kern/imgact_elf.c#67 integrate .. //depot/projects/smpng/sys/kern/kern_cons.c#3 integrate .. //depot/projects/smpng/sys/kern/kern_jail.c#77 integrate .. //depot/projects/smpng/sys/kern/kern_lock.c#78 integrate .. //depot/projects/smpng/sys/kern/kern_mutex.c#156 integrate .. //depot/projects/smpng/sys/kern/kern_poll.c#38 integrate .. //depot/projects/smpng/sys/kern/kern_rwlock.c#30 integrate .. //depot/projects/smpng/sys/kern/kern_subr.c#48 integrate .. //depot/projects/smpng/sys/kern/kern_sx.c#59 integrate .. //depot/projects/smpng/sys/kern/kern_uuid.c#23 integrate .. //depot/projects/smpng/sys/kern/subr_bus.c#83 integrate .. //depot/projects/smpng/sys/kern/subr_sglist.c#2 integrate .. //depot/projects/smpng/sys/kern/subr_taskqueue.c#40 integrate .. //depot/projects/smpng/sys/kern/sys_generic.c#61 integrate .. //depot/projects/smpng/sys/kern/tty_pts.c#22 integrate .. //depot/projects/smpng/sys/kern/tty_pty.c#57 delete .. //depot/projects/smpng/sys/kern/tty_ttydisc.c#8 integrate .. //depot/projects/smpng/sys/kern/uipc_domain.c#27 integrate .. //depot/projects/smpng/sys/kern/uipc_socket.c#131 integrate .. //depot/projects/smpng/sys/modules/drm/radeon/Makefile#7 integrate .. //depot/projects/smpng/sys/modules/pty/Makefile#1 branch .. //depot/projects/smpng/sys/modules/zfs/Makefile#11 integrate .. //depot/projects/smpng/sys/net/bridgestp.c#31 integrate .. //depot/projects/smpng/sys/net/flowtable.c#7 integrate .. //depot/projects/smpng/sys/net/flowtable.h#7 integrate .. //depot/projects/smpng/sys/net/if.c#127 integrate .. //depot/projects/smpng/sys/net/if_bridge.c#62 integrate .. //depot/projects/smpng/sys/net/if_ef.c#34 integrate .. //depot/projects/smpng/sys/net/if_llatbl.c#6 integrate .. //depot/projects/smpng/sys/net/if_llatbl.h#4 integrate .. //depot/projects/smpng/sys/net/if_var.h#70 integrate .. //depot/projects/smpng/sys/net/if_vlan.c#70 integrate .. //depot/projects/smpng/sys/net/vnet.h#16 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_input.c#50 integrate .. //depot/projects/smpng/sys/netgraph/ng_gif.c#23 integrate .. //depot/projects/smpng/sys/netinet/in.c#60 integrate .. //depot/projects/smpng/sys/netinet/ip_carp.c#39 integrate .. //depot/projects/smpng/sys/netinet/ip_divert.c#71 integrate .. //depot/projects/smpng/sys/netinet/ip_divert.h#3 integrate .. //depot/projects/smpng/sys/netinet/ip_fw.h#52 integrate .. //depot/projects/smpng/sys/netinet/ip_output.c#114 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_fw2.c#7 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_fw_pfil.c#5 integrate .. //depot/projects/smpng/sys/netinet/sctp_indata.c#27 integrate .. //depot/projects/smpng/sys/netinet/sctp_input.c#27 integrate .. //depot/projects/smpng/sys/netinet/sctp_os_bsd.h#26 integrate .. //depot/projects/smpng/sys/netinet/sctp_output.c#31 integrate .. //depot/projects/smpng/sys/netinet/sctp_pcb.c#30 integrate .. //depot/projects/smpng/sys/netinet/sctp_timer.c#19 integrate .. //depot/projects/smpng/sys/netinet/sctputil.c#32 integrate .. //depot/projects/smpng/sys/netinet/sctputil.h#17 integrate .. //depot/projects/smpng/sys/netinet/tcp_timewait.c#17 integrate .. //depot/projects/smpng/sys/netinet6/icmp6.c#60 integrate .. //depot/projects/smpng/sys/netinet6/in6.c#65 integrate .. //depot/projects/smpng/sys/netinet6/in6_ifattach.c#42 integrate .. //depot/projects/smpng/sys/netinet6/nd6.c#60 integrate .. //depot/projects/smpng/sys/netipsec/xform_ipip.c#26 integrate .. //depot/projects/smpng/sys/nfsclient/bootp_subr.c#47 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#94 integrate .. //depot/projects/smpng/sys/pc98/cbus/fdc.c#11 integrate .. //depot/projects/smpng/sys/pci/if_rlreg.h#53 integrate .. //depot/projects/smpng/sys/rpc/clnt_dg.c#7 integrate .. //depot/projects/smpng/sys/rpc/clnt_rc.c#9 integrate .. //depot/projects/smpng/sys/rpc/clnt_vc.c#8 integrate .. //depot/projects/smpng/sys/rpc/rpc_generic.c#3 integrate .. //depot/projects/smpng/sys/rpc/svc_dg.c#4 integrate .. //depot/projects/smpng/sys/rpc/svc_generic.c#4 integrate .. //depot/projects/smpng/sys/rpc/svc_vc.c#7 integrate .. //depot/projects/smpng/sys/sys/bus.h#36 integrate .. //depot/projects/smpng/sys/sys/cons.h#14 integrate .. //depot/projects/smpng/sys/sys/imgact_elf.h#14 integrate .. //depot/projects/smpng/sys/sys/param.h#155 integrate .. //depot/projects/smpng/sys/sys/sglist.h#2 integrate .. //depot/projects/smpng/sys/sys/systm.h#96 integrate .. //depot/projects/smpng/sys/sys/taskqueue.h#15 integrate .. //depot/projects/smpng/sys/sys/ttydisc.h#4 integrate .. //depot/projects/smpng/sys/xen/xenbus/xenbus_probe.c#6 integrate Differences ... ==== //depot/projects/smpng/share/man/man9/Makefile#9 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/man/man9/Makefile,v 1.358 2009/08/12 21:03:16 sam Exp $ +# $FreeBSD: src/share/man/man9/Makefile,v 1.359 2009/08/23 07:48:11 julian Exp $ MAN= accept_filter.9 \ accf_data.9 \ @@ -713,6 +713,7 @@ kobj.9 kobj_delete.9 \ kobj.9 kobj_init.9 MLINKS+=kproc.9 kproc_create.9 \ + kproc.9 kthread_create.9 \ kproc.9 kproc_exit.9 \ kproc.9 kproc_resume.9 \ kproc.9 kproc_shutdown.9 \ ==== //depot/projects/smpng/share/man/man9/kproc.9#2 (text+ko) ==== @@ -23,7 +23,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/share/man/man9/kproc.9,v 1.3 2008/04/29 22:43:15 julian Exp $ +.\" $FreeBSD: src/share/man/man9/kproc.9,v 1.4 2009/08/23 07:48:11 julian Exp $ .\" .Dd October 19, 2007 .Dt KPROC 9 @@ -64,6 +64,28 @@ .Fa "int flags" "int pages" "char * procname" "const char *fmt" "..." .Fc .Sh DESCRIPTION +In +.Fx 8.0 , +the +.Fn kthread* 9 +family of functions was renamed to be the +.Fn kproc* 9 +family of functions, as they were misnamed +and actually produced kernel processes. +A new family of +.Em different +.Fn kthread_* 9 +functions was added to produce +.Em real +kernel +.Em threads . +See the +.Xr kthread 9 +man page for more information on those calls. +Also note that the +.Fn kproc_kthread_add 9 +function appears in both pages as its functionality is split. +.Pp The function .Fn kproc_start is used to start ==== //depot/projects/smpng/share/man/man9/kthread.9#2 (text+ko) ==== @@ -23,7 +23,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/share/man/man9/kthread.9,v 1.19 2009/01/27 00:22:16 trhodes Exp $ +.\" $FreeBSD: src/share/man/man9/kthread.9,v 1.20 2009/08/23 07:48:11 julian Exp $ .\" .Dd January 26, 2009 .Dt KTHREAD 9 @@ -65,6 +65,27 @@ .Fa "int flags" "int pages" "char * procname" "const char *fmt" "..." .Fc .Sh DESCRIPTION +In +.Fx 8.0 , +the older family of +.Fn kthread_* 9 +functions was renamed to be the +.Fn kproc_* 9 +family of functions, +as they were previously misnamed +and actually produced kernel processes. +This new family of +.Fn kthread_* 9 +functions was added to produce +.Em real +kernel threads. +See the +.Xr kproc 9 +man page for more information on the renamed calls. +Also note that the +.Fn kproc_kthread_add 9 +function appears in both pages as its functionality is split. +.Pp The function .Fn kthread_start is used to start ==== //depot/projects/smpng/share/man/man9/sglist.9#2 (text+ko) ==== @@ -24,7 +24,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/sglist.9,v 1.1 2009/06/01 20:35:53 jhb Exp $ +.\" $FreeBSD: src/share/man/man9/sglist.9,v 1.3 2009/08/21 02:59:07 jhb Exp $ .\" .Dd May 15, 2009 .Dt SGLIST 9 @@ -70,7 +70,7 @@ .Ft struct sglist * .Fn sglist_clone "struct sglist *sg" "int mflags" .Ft int -.Fn sglist_consume_uio "struct sglist *sg" "struct uio *uio" "int resid" +.Fn sglist_consume_uio "struct sglist *sg" "struct uio *uio" "size_t resid" .Ft int .Fn sglist_count "void *buf" "size_t len" .Ft void @@ -191,6 +191,8 @@ family of routines can be used to append the physical address ranges described by an object to the end of a scatter/gather list. All of these routines return 0 on success or an error on failure. +If a request to append an address range to a scatter/gather list fails, +the scatter/gather list will remain unchanged. .Pp The .Nm sglist_append @@ -445,6 +447,7 @@ to append the physical address ranges from .Fa second . .El +.Pp The .Nm sglist_slice function returns the following errors on failure: @@ -470,6 +473,7 @@ .Fa *slice to describe the requested physical address ranges. .El +.Pp The .Nm sglist_split function returns the following errors on failure: ==== //depot/projects/smpng/share/man/man9/taskqueue.9#2 (text+ko) ==== @@ -26,9 +26,9 @@ .\" (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/share/man/man9/taskqueue.9,v 1.24 2008/06/13 19:45:12 gonzo Exp $ +.\" $FreeBSD: src/share/man/man9/taskqueue.9,v 1.27 2009/08/18 13:55:48 pjd Exp $ .\" -.Dd June 13, 2008 +.Dd August 18, 2009 .Dt TASKQUEUE 9 .Os .Sh NAME @@ -59,8 +59,6 @@ .Fn taskqueue_create_fast "const char *name" "int mflags" "taskqueue_enqueue_fn enqueue" "void *context" .Ft void .Fn taskqueue_free "struct taskqueue *queue" -.Ft struct taskqueue * -.Fn taskqueue_find "const char *name" .Ft int .Fn taskqueue_enqueue "struct taskqueue *queue" "struct task *task" .Ft int @@ -71,6 +69,8 @@ .Fn taskqueue_run_fast "struct taskqueue *queue" .Ft void .Fn taskqueue_drain "struct taskqueue *queue" "struct task *task" +.Ft int +.Fn taskqueue_member "struct taskqueue *queue" "struct thread *td" .Fn TASK_INIT "struct task *task" "int priority" "task_fn_t *func" "void *context" .Fn TASKQUEUE_DECLARE "name" .Fn TASKQUEUE_DEFINE "name" "taskqueue_enqueue_fn enqueue" "void *context" "init" @@ -113,16 +113,10 @@ .Pp The function .Fn taskqueue_free -should be used to remove the queue from the global list of queues -and free the memory used by the queue. +should be used to free the memory used by the queue. Any tasks that are on the queue will be executed at this time after which the thread servicing the queue will be signaled that it should exit. .Pp -The system maintains a list of all queues which can be searched using -.Fn taskqueue_find . -The first queue whose name matches is returned, otherwise -.Dv NULL . -.Pp To add a task to the list of tasks queued on a taskqueue, call .Fn taskqueue_enqueue with pointers to the queue and task. @@ -182,6 +176,18 @@ enqueued after call to .Fn taskqueue_drain . .Pp +The +.Fn taskqueue_member +function returns +.No 1 +if the given thread +.Fa td +is part of the given taskqeueue +.Fa queue +and +.No 0 +otherwise. +.Pp A convenience macro, .Fn TASK_INIT "task" "priority" "func" "context" is provided to initialise a ==== //depot/projects/smpng/sys/amd64/amd64/elf_machdep.c#17 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/elf_machdep.c,v 1.30 2009/04/05 09:27:19 dchagin Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/elf_machdep.c,v 1.31 2009/08/24 16:19:47 bz Exp $"); #include #include @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -108,6 +109,22 @@ (sysinit_cfunc_t) elf64_insert_brand_entry, &freebsd_brand_oinfo); +static Elf64_Brandinfo kfreebsd_brand_info = { + .brand = ELFOSABI_FREEBSD, + .machine = EM_X86_64, + .compat_3_brand = "FreeBSD", + .emul_path = NULL, + .interp_path = "/lib/ld-kfreebsd-x86-64.so.1", + .sysvec = &elf64_freebsd_sysvec, + .interp_newpath = NULL, + .brand_note = &elf64_kfreebsd_brandnote, + .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE +}; + +SYSINIT(kelf64, SI_SUB_EXEC, SI_ORDER_ANY, + (sysinit_cfunc_t) elf64_insert_brand_entry, + &kfreebsd_brand_info); + void elf64_dump_thread(struct thread *td __unused, void *dst __unused, ==== //depot/projects/smpng/sys/amd64/amd64/local_apic.c#45 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.59 2009/08/13 17:09:45 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.60 2009/08/14 21:05:08 jhb Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_kdtrace.h" @@ -123,7 +123,7 @@ { 1, 1, 0, 1, APIC_LVT_DM_NMI, 0 }, /* LINT1: NMI */ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_TIMER_INT }, /* Timer */ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_ERROR_INT }, /* Error */ - { 1, 1, 0, 1, APIC_LVT_DM_NMI, 0 }, /* PMC */ + { 1, 1, 1, 1, APIC_LVT_DM_NMI, 0 }, /* PMC */ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_THERMAL_INT }, /* Thermal */ }; @@ -305,11 +305,9 @@ lapic->lvt_lint0 = lvt_mode(la, LVT_LINT0, lapic->lvt_lint0); lapic->lvt_lint1 = lvt_mode(la, LVT_LINT1, lapic->lvt_lint1); -#ifdef HWPMC_HOOKS /* Program the PMC LVT entry if present. */ if (maxlvt >= LVT_PMC) lapic->lvt_pcint = lvt_mode(la, LVT_PMC, lapic->lvt_pcint); -#endif /* Program timer LVT and setup handler. */ lapic->lvt_timer = lvt_mode(la, LVT_TIMER, lapic->lvt_timer); @@ -332,6 +330,88 @@ intr_restore(eflags); } +void +lapic_reenable_pmc(void) +{ +#ifdef HWPMC_HOOKS + uint32_t value; + + value = lapic->lvt_pcint; + value &= ~APIC_LVT_M; + lapic->lvt_pcint = value; +#endif +} + +#ifdef HWPMC_HOOKS +static void +lapic_update_pmc(void *dummy) +{ + struct lapic *la; + + la = &lapics[lapic_id()]; + lapic->lvt_pcint = lvt_mode(la, LVT_PMC, lapic->lvt_pcint); +} +#endif + +int +lapic_enable_pmc(void) +{ +#ifdef HWPMC_HOOKS + u_int32_t maxlvt; + + /* Fail if the local APIC is not present. */ + if (lapic == NULL) + return (0); + + /* Fail if the PMC LVT is not present. */ + maxlvt = (lapic->version & APIC_VER_MAXLVT) >> MAXLVTSHIFT; + if (maxlvt < LVT_PMC) + return (0); + + lvts[LVT_PMC].lvt_masked = 0; + +#ifdef SMP + /* + * If hwpmc was loaded at boot time then the APs may not be + * started yet. In that case, don't forward the request to + * them as they will program the lvt when they start. + */ + if (smp_started) + smp_rendezvous(NULL, lapic_update_pmc, NULL, NULL); + else +#endif + lapic_update_pmc(NULL); + return (1); +#else + return (0); +#endif +} + +void +lapic_disable_pmc(void) +{ +#ifdef HWPMC_HOOKS + u_int32_t maxlvt; + + /* Fail if the local APIC is not present. */ + if (lapic == NULL) + return; + + /* Fail if the PMC LVT is not present. */ + maxlvt = (lapic->version & APIC_VER_MAXLVT) >> MAXLVTSHIFT; + if (maxlvt < LVT_PMC) + return; + + lvts[LVT_PMC].lvt_masked = 1; + +#ifdef SMP + /* The APs should always be started when hwpmc is unloaded. */ + KASSERT(mp_ncpus == 1 || smp_started, ("hwpmc unloaded too early")); +#endif + smp_rendezvous(NULL, lapic_update_pmc, NULL, NULL); +#endif +} + /* * Called by cpu_initclocks() on the BSP to setup the local APIC timer so * that it can drive hardclock, statclock, and profclock. This function ==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#85 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.707 2009/08/02 11:26:23 ed Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.709 2009/08/20 22:58:05 jkim Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -217,6 +217,7 @@ strncmp(sysenv, "MacBook3,1", 10) == 0 || strncmp(sysenv, "MacBookPro1,1", 13) == 0 || strncmp(sysenv, "MacBookPro1,2", 13) == 0 || + strncmp(sysenv, "MacBookPro3,1", 13) == 0 || strncmp(sysenv, "Macmini1,1", 10) == 0) { if (bootverbose) printf("Disabling LEGACY_USB_EN bit on " @@ -235,19 +236,21 @@ #ifdef PERFMON perfmon_init(); #endif + realmem = Maxmem; + + /* + * Display physical memory if SMBIOS reports reasonable amount. + */ + memsize = 0; sysenv = getenv("smbios.memory.enabled"); if (sysenv != NULL) { - memsize = (uintmax_t)strtoul(sysenv, (char **)NULL, 10); + memsize = (uintmax_t)strtoul(sysenv, (char **)NULL, 10) << 10; freeenv(sysenv); - } else - memsize = 0; - if (memsize > 0) - printf("real memory = %ju (%ju MB)\n", memsize << 10, - memsize >> 10); - else - printf("real memory = %ju (%ju MB)\n", ptoa((uintmax_t)Maxmem), - ptoa((uintmax_t)Maxmem) / 1048576); - realmem = Maxmem; + } + if (memsize < ptoa((uintmax_t)cnt.v_free_count)) + memsize = ptoa((uintmax_t)Maxmem); + printf("real memory = %ju (%ju MB)\n", memsize, memsize >> 20); + /* * Display any holes after the first chunk of extended memory. */ ==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#98 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.667 2009/07/24 13:50:29 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.668 2009/08/17 13:27:55 kib Exp $"); /* * Manages physical address maps. @@ -2261,6 +2261,8 @@ " in pmap %p", va, pmap); return (FALSE); } + if (va < VM_MAXUSER_ADDRESS) + pmap->pm_stats.resident_count++; } mptepa = VM_PAGE_TO_PHYS(mpte); firstpte = (pt_entry_t *)PHYS_TO_DMAP(mptepa); ==== //depot/projects/smpng/sys/amd64/amd64/trap.c#68 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.333 2009/08/13 17:09:45 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.334 2009/08/24 16:19:47 bz Exp $"); /* * AMD64 Trap and System call handling @@ -409,7 +409,9 @@ * This check also covers the images * without the ABI-tag ELF note. */ - if (p->p_osrel >= 700004) { + if (SV_CURPROC_ABI() == + SV_ABI_FREEBSD && + p->p_osrel >= 700004) { i = SIGSEGV; ucode = SEGV_ACCERR; } else { ==== //depot/projects/smpng/sys/amd64/include/apicvar.h#24 (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/amd64/include/apicvar.h,v 1.30 2009/08/13 17:09:45 attilio Exp $ + * $FreeBSD: src/sys/amd64/include/apicvar.h,v 1.31 2009/08/14 21:05:08 jhb Exp $ */ #ifndef _MACHINE_APICVAR_H_ @@ -201,7 +201,9 @@ int ioapic_set_smi(void *cookie, u_int pin); void lapic_create(u_int apic_id, int boot_cpu); void lapic_disable(void); +void lapic_disable_pmc(void); void lapic_dump(const char *str); +int lapic_enable_pmc(void); void lapic_eoi(void); u_int lapic_error(void); int lapic_id(void); @@ -212,6 +214,7 @@ int lapic_ipi_wait(int delay); void lapic_handle_intr(int vector, struct trapframe *frame); void lapic_handle_timer(struct trapframe *frame); +void lapic_reenable_pmc(void); void lapic_set_logical_id(u_int apic_id, u_int cluster, u_int cluster_id); int lapic_set_lvt_mask(u_int apic_id, u_int lvt, u_char masked); int lapic_set_lvt_mode(u_int apic_id, u_int lvt, u_int32_t mode); ==== //depot/projects/smpng/sys/amd64/include/pmc_mdep.h#8 (text+ko) ==== @@ -27,7 +27,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/pmc_mdep.h,v 1.8 2008/11/27 09:00:47 jkoshy Exp $ + * $FreeBSD: src/sys/amd64/include/pmc_mdep.h,v 1.9 2009/08/14 21:05:08 jhb Exp $ */ /* Machine dependent interfaces */ @@ -115,7 +115,6 @@ */ void start_exceptions(void), end_exceptions(void); -void pmc_x86_lapic_enable_pmc_interrupt(void); struct pmc_mdep *pmc_amd_initialize(void); void pmc_amd_finalize(struct pmc_mdep *_md); ==== //depot/projects/smpng/sys/amd64/linux32/linux32_sysvec.c#42 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.52 2009/07/09 09:34:11 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.53 2009/08/24 16:19:47 bz Exp $"); #include "opt_compat.h" #ifndef COMPAT_IA32 @@ -127,6 +127,7 @@ static void exec_linux_setregs(struct thread *td, u_long entry, u_long stack, u_long ps_strings); static void linux32_fixlimit(struct rlimit *rl, int which); +static boolean_t linux32_trans_osrel(const Elf_Note *note, int32_t *osrel); static eventhandler_tag linux_exit_tag; static eventhandler_tag linux_schedtail_tag; @@ -1066,14 +1067,38 @@ .sv_flags = SV_ABI_LINUX | SV_ILP32 | SV_IA32 }; -static char GNULINUX_ABI_VENDOR[] = "GNU"; +static char GNU_ABI_VENDOR[] = "GNU"; +static int GNULINUX_ABI_DESC = 0; + +static boolean_t +linux32_trans_osrel(const Elf_Note *note, int32_t *osrel) +{ + const Elf32_Word *desc; + uintptr_t p; + + p = (uintptr_t)(note + 1); + p += roundup2(note->n_namesz, sizeof(Elf32_Addr)); + + desc = (const Elf32_Word *)p; + if (desc[0] != GNULINUX_ABI_DESC) + return (FALSE); + + /* + * For linux we encode osrel as follows (see linux_mib.c): + * VVVMMMIII (version, major, minor), see linux_mib.c. + */ + *osrel = desc[1] * 1000000 + desc[2] * 1000 + desc[3]; + + return (TRUE); +} static Elf_Brandnote linux32_brandnote = { - .hdr.n_namesz = sizeof(GNULINUX_ABI_VENDOR), - .hdr.n_descsz = 16, + .hdr.n_namesz = sizeof(GNU_ABI_VENDOR), + .hdr.n_descsz = 16, /* XXX at least 16 */ .hdr.n_type = 1, - .vendor = GNULINUX_ABI_VENDOR, - .flags = 0 + .vendor = GNU_ABI_VENDOR, + .flags = BN_TRANSLATE_OSREL, + .trans_osrel = linux32_trans_osrel }; static Elf32_Brandinfo linux_brand = { ==== //depot/projects/smpng/sys/arm/arm/undefined.c#17 (text+ko) ==== @@ -48,7 +48,7 @@ #include "opt_ddb.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/undefined.c,v 1.16 2008/10/23 15:53:51 des Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/undefined.c,v 1.17 2009/08/23 23:37:53 cognet Exp $"); #include #include @@ -82,11 +82,10 @@ #ifdef DDB #include -#include #endif -#ifdef acorn26 -#include +#ifdef KDB +#include #endif static int gdb_trapper(u_int, u_int, struct trapframe *, int); ==== //depot/projects/smpng/sys/arm/at91/uart_dev_at91usart.c#19 (text) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/uart_dev_at91usart.c,v 1.19 2009/01/22 21:56:41 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/uart_dev_at91usart.c,v 1.20 2009/08/15 15:15:20 stas Exp $"); #include "opt_comconsole.h" @@ -307,6 +307,10 @@ int at91_usart_bus_probe(struct uart_softc *sc) { + + sc->sc_txfifosz = USART_BUFFER_SIZE; + sc->sc_rxfifosz = USART_BUFFER_SIZE; + sc->sc_hwiflow = 0; return (0); } @@ -344,10 +348,6 @@ atsc->flags |= HAS_TIMEOUT; WR4(&sc->sc_bas, USART_IDR, 0xffffffff); - sc->sc_txfifosz = USART_BUFFER_SIZE; - sc->sc_rxfifosz = USART_BUFFER_SIZE; - sc->sc_hwiflow = 0; - #ifndef SKYEYE_WORKAROUNDS /* * Allocate DMA tags and maps ==== //depot/projects/smpng/sys/arm/mv/common.c#6 (text+ko) ==== @@ -30,10 +30,12 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/mv/common.c,v 1.7 2009/06/12 20:00:38 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/common.c,v 1.8 2009/08/25 09:35:50 raj Exp $"); +#include #include #include +#include #include @@ -62,6 +64,76 @@ static uint32_t used_cpu_wins; +static __inline int +pm_is_disabled(uint32_t mask) +{ + + return (soc_power_ctrl_get(mask) == mask ? 0 : 1); +} + +static __inline uint32_t +obio_get_pm_mask(uint32_t base) +{ + struct obio_device *od; + + for (od = obio_devices; od->od_name != NULL; od++) + if (od->od_base == base) + return (od->od_pwr_mask); + + return (CPU_PM_CTRL_NONE); +} + +/* + * Disable device using power management register. + * 1 - Device Power On + * 0 - Device Power Off + * Mask can be set in loader. + * EXAMPLE: + * loader> set hw.pm-disable-mask=0x2 + * + * Common mask: + * |-------------------------------| + * | Device | Kirkwood | Discovery | + * |-------------------------------| + * | USB0 | 0x00008 | 0x020000 | + * |-------------------------------| + * | USB1 | - | 0x040000 | + * |-------------------------------| + * | USB2 | - | 0x080000 | + * |-------------------------------| + * | GE0 | 0x00001 | 0x000002 | + * |-------------------------------| + * | GE1 | - | 0x000004 | + * |-------------------------------| + * | IDMA | - | 0x100000 | + * |-------------------------------| + * | XOR | 0x10000 | 0x200000 | + * |-------------------------------| + * | CESA | 0x20000 | 0x400000 | + * |-------------------------------| + * | SATA | 0x04000 | 0x004000 | + * --------------------------------| + * This feature can be used only on Kirkwood and Discovery + * machines. + */ +static __inline void +pm_disable_device(int mask) +{ +#ifdef DIAGNOSTIC + uint32_t reg; + + reg = soc_power_ctrl_get(CPU_PM_CTRL_ALL); + printf("Power Management Register: 0%x\n", reg); + + reg &= ~mask; + soc_power_ctrl_set(reg); + printf("Device %x is disabled\n", mask); + + reg = soc_power_ctrl_get(CPU_PM_CTRL_ALL); + printf("Power Management Register: 0%x\n", reg); +#endif +} + uint32_t read_cpu_ctrl(uint32_t reg) { @@ -103,14 +175,36 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Aug 25 21:31:15 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B8FD11065694; Tue, 25 Aug 2009 21:31:15 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7AD1E106568C for ; Tue, 25 Aug 2009 21:31:15 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 68EE58FC18 for ; Tue, 25 Aug 2009 21:31:15 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7PLVFsv023623 for ; Tue, 25 Aug 2009 21:31:15 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7PLVFpO023621 for perforce@freebsd.org; Tue, 25 Aug 2009 21:31:15 GMT (envelope-from jhb@freebsd.org) Date: Tue, 25 Aug 2009 21:31:15 GMT Message-Id: <200908252131.n7PLVFpO023621@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167816 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2009 21:31:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=167816 Change 167816 by jhb@jhb_jhbbsd on 2009/08/25 21:31:01 Merge this file. Affected files ... .. //depot/projects/smpng/sys/cddl/compat/opensolaris/rpc/xdr.h#3 integrate Differences ... ==== //depot/projects/smpng/sys/cddl/compat/opensolaris/rpc/xdr.h#3 (text+ko) ==== @@ -1,112 +1,70 @@ /* - * CDDL HEADER START + * Sun RPC is a product of Sun Microsystems, Inc. and is provided for + * unrestricted use provided that this legend is included on all tape + * media and as a part of the software program in whole or part. Users + * may copy or modify Sun RPC without charge, but are not authorized + * to license or distribute it to anyone else except as part of a product or + * program developed by the user. * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. + * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE + * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR + * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. + * Sun RPC is provided with no support and without any obligation on the + * part of Sun Microsystems, Inc. to assist in its use, correction, + * modification or enhancement. * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] + * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE + * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC + * OR ANY PART THEREOF. * - * CDDL HEADER END + * In no event will Sun Microsystems, Inc. be liable for any lost revenue + * or profits or other special, indirect and consequential damages, even if + * Sun has been advised of the possibility of such damages. * - * $FreeBSD: src/sys/cddl/compat/opensolaris/rpc/xdr.h,v 1.4 2008/04/22 07:42:59 jb Exp $ + * Sun Microsystems, Inc. + * 2550 Garcia Avenue + * Mountain View, California 94043 */ -/* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ -/* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ -/* All Rights Reserved */ - -/* - * Portions of this source code were derived from Berkeley 4.3 BSD - * under license from the Regents of the University of California. - */ - #ifndef _OPENSOLARIS_RPC_XDR_H_ #define _OPENSOLARIS_RPC_XDR_H_ #include_next #ifndef _KERNEL -#include_next -/* - * Strangely, my glibc version (2.3.6) doesn't have xdr_control(), so - * we have to hack it in here (source taken from OpenSolaris). - * By the way, it is assumed the xdrmem implementation is used. - */ - -#undef xdr_control -#define xdr_control(a,b,c) xdrmem_control(a,b,c) +#include /* - * These are the request arguments to XDR_CONTROL. + * Taken from sys/xdr/xdr_mem.c. * - * XDR_PEEK - returns the contents of the next XDR unit on the XDR stream. - * XDR_SKIPBYTES - skips the next N bytes in the XDR stream. - * XDR_RDMAGET - for xdr implementation over RDMA, gets private flags from - * the XDR stream being moved over RDMA - * XDR_RDMANOCHUNK - for xdr implementaion over RDMA, sets private flags in - * the XDR stream moving over RDMA. + * FreeBSD's userland XDR doesn't implement control method (only the kernel), + * but OpenSolaris nvpair still depend on it, so we have to implement it here. */ -#define XDR_PEEK 2 -#define XDR_SKIPBYTES 3 -#define XDR_RDMAGET 4 -#define XDR_RDMASET 5 - -/* FIXME: probably doesn't work */ static __inline bool_t xdrmem_control(XDR *xdrs, int request, void *info) { xdr_bytesrec *xptr; - int32_t *int32p; - int len; switch (request) { - case XDR_GET_BYTES_AVAIL: xptr = (xdr_bytesrec *)info; xptr->xc_is_last_record = TRUE; xptr->xc_num_avail = xdrs->x_handy; return (TRUE); - - case XDR_PEEK: - /* - * Return the next 4 byte unit in the XDR stream. - */ - if (xdrs->x_handy < sizeof (int32_t)) - return (FALSE); - int32p = (int32_t *)info; - *int32p = (int32_t)ntohl((uint32_t) - (*((int32_t *)(xdrs->x_private)))); - return (TRUE); - - case XDR_SKIPBYTES: - /* - * Skip the next N bytes in the XDR stream. - */ - int32p = (int32_t *)info; - len = RNDUP((int)(*int32p)); - if ((xdrs->x_handy -= len) < 0) - return (FALSE); - xdrs->x_private += len; - return (TRUE); - + default: + assert(!"unexpected request"); } return (FALSE); } + +#undef XDR_CONTROL +#define XDR_CONTROL(xdrs, req, op) \ + (((xdrs)->x_ops->x_control == NULL) ? \ + xdrmem_control((xdrs), (req), (op)) : \ + (*(xdrs)->x_ops->x_control)(xdrs, req, op)) + #endif /* !_KERNEL */ #endif /* !_OPENSOLARIS_RPC_XDR_H_ */ From owner-p4-projects@FreeBSD.ORG Tue Aug 25 21:46:33 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1A8101065695; Tue, 25 Aug 2009 21:46:33 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BA8C0106568C for ; Tue, 25 Aug 2009 21:46:32 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A999A8FC2D for ; Tue, 25 Aug 2009 21:46:32 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7PLkWAi024792 for ; Tue, 25 Aug 2009 21:46:32 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7PLkWqF024790 for perforce@freebsd.org; Tue, 25 Aug 2009 21:46:32 GMT (envelope-from zec@fer.hr) Date: Tue, 25 Aug 2009 21:46:32 GMT Message-Id: <200908252146.n7PLkWqF024790@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167819 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2009 21:46:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=167819 Change 167819 by zec@zec_tpx32 on 2009/08/25 21:45:44 Wrap vnet_sysinit lock / unlock calls in macros, so that the actual mechanism can be changed in the future without introducing much churn in the code. Suggested by: rwatson Affected files ... .. //depot/projects/vimage-commit2/src/sys/net/vnet.c#5 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/net/vnet.c#5 (text+ko) ==== @@ -94,7 +94,7 @@ } while (0) struct vnet_list_head vnet_head; -struct vnet *vnet0; +struct vnet *vnet0 = NULL; /* * The virtual network stack allocator provides storage for virtualized @@ -185,12 +185,18 @@ * registered via VNET_SYSINIT() and VNET_SYSUNINIT(). Both lists are * protected by the vnet_sysinit_sxlock global lock. */ -struct sx vnet_sysinit_sxlock; static TAILQ_HEAD(vnet_sysinit_head, vnet_sysinit) vnet_constructors = TAILQ_HEAD_INITIALIZER(vnet_constructors); static TAILQ_HEAD(vnet_sysuninit_head, vnet_sysinit) vnet_destructors = TAILQ_HEAD_INITIALIZER(vnet_destructors); +struct sx vnet_sysinit_sxlock; + +#define VNET_SYSINIT_WLOCK() sx_xlock(&vnet_sysinit_sxlock); +#define VNET_SYSINIT_WUNLOCK() sx_xunlock(&vnet_sysinit_sxlock); +#define VNET_SYSINIT_RLOCK() sx_slock(&vnet_sysinit_sxlock); +#define VNET_SYSINIT_RUNLOCK() sx_sunlock(&vnet_sysinit_sxlock); + struct vnet_data_free { uintptr_t vnd_start; int vnd_len; @@ -229,9 +235,9 @@ /* Initialize / attach vnet module instances. */ CURVNET_SET_QUIET(vnet); - sx_slock(&vnet_sysinit_sxlock); + VNET_SYSINIT_RLOCK(); vnet_sysinit(); - sx_sunlock(&vnet_sysinit_sxlock); + VNET_SYSINIT_RUNLOCK(); CURVNET_RESTORE(); VNET_LIST_WLOCK(); @@ -264,9 +270,9 @@ if_vmove(ifp, ifp->if_home_vnet); } - sx_slock(&vnet_sysinit_sxlock); + VNET_SYSINIT_RLOCK(); vnet_sysuninit(); - sx_sunlock(&vnet_sysinit_sxlock); + VNET_SYSINIT_RUNLOCK(); CURVNET_RESTORE(); /* @@ -496,7 +502,7 @@ KASSERT(vs->subsystem > SI_SUB_VNET, ("vnet sysinit too early")); /* Add the constructor to the global list of vnet constructors. */ - sx_xlock(&vnet_sysinit_sxlock); + VNET_SYSINIT_WLOCK(); TAILQ_FOREACH(vs2, &vnet_constructors, link) { if (vs2->subsystem > vs->subsystem) break; @@ -517,7 +523,7 @@ vs->func(vs->arg); CURVNET_RESTORE(); } - sx_xunlock(&vnet_sysinit_sxlock); + VNET_SYSINIT_WUNLOCK(); } void @@ -528,9 +534,9 @@ vs = arg; /* Remove the constructor from the global list of vnet constructors. */ - sx_xlock(&vnet_sysinit_sxlock); + VNET_SYSINIT_WLOCK(); TAILQ_REMOVE(&vnet_constructors, vs, link); - sx_xunlock(&vnet_sysinit_sxlock); + VNET_SYSINIT_WUNLOCK(); } void @@ -541,7 +547,7 @@ vs = arg; /* Add the destructor to the global list of vnet destructors. */ - sx_xlock(&vnet_sysinit_sxlock); + VNET_SYSINIT_WLOCK(); TAILQ_FOREACH(vs2, &vnet_destructors, link) { if (vs2->subsystem > vs->subsystem) break; @@ -552,7 +558,7 @@ TAILQ_INSERT_BEFORE(vs2, vs, link); else TAILQ_INSERT_TAIL(&vnet_destructors, vs, link); - sx_xunlock(&vnet_sysinit_sxlock); + VNET_SYSINIT_WUNLOCK(); } void @@ -567,7 +573,7 @@ * Invoke the destructor on all the existing vnets when it is * deregistered. */ - sx_xlock(&vnet_sysinit_sxlock); + VNET_SYSINIT_WLOCK(); VNET_FOREACH(vnet) { CURVNET_SET_QUIET(vnet); vs->func(vs->arg); @@ -576,7 +582,7 @@ /* Remove the destructor from the global list of vnet destructors. */ TAILQ_REMOVE(&vnet_destructors, vs, link); - sx_xunlock(&vnet_sysinit_sxlock); + VNET_SYSINIT_WUNLOCK(); } /* From owner-p4-projects@FreeBSD.ORG Tue Aug 25 23:59:04 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D3F11106568E; Tue, 25 Aug 2009 23:59:03 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 985D8106568D for ; Tue, 25 Aug 2009 23:59:03 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6E1CE8FC0C for ; Tue, 25 Aug 2009 23:59:03 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7PNx3lo036503 for ; Tue, 25 Aug 2009 23:59:03 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7PNx3Ge036501 for perforce@freebsd.org; Tue, 25 Aug 2009 23:59:03 GMT (envelope-from stas@freebsd.org) Date: Tue, 25 Aug 2009 23:59:03 GMT Message-Id: <200908252359.n7PNx3Ge036501@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167822 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2009 23:59:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=167822 Change 167822 by stas@stas_orion on 2009/08/25 23:58:27 - Install missing files instead of creating symlinks. Affected files ... .. //depot/projects/valgrind/autogen.sh#9 edit Differences ... ==== //depot/projects/valgrind/autogen.sh#9 (text+kox) ==== @@ -15,7 +15,7 @@ # autoconf-wrapper installed. Otherwise use explicit filenames. run aclocal run autoheader -run automake -a +run automake -c -a run autoconf # hack for not running from svn. From owner-p4-projects@FreeBSD.ORG Wed Aug 26 09:11:06 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A2ACD1065690; Wed, 26 Aug 2009 09:11:06 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 66CF0106568B for ; Wed, 26 Aug 2009 09:11:06 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 542F58FC34 for ; Wed, 26 Aug 2009 09:11:06 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7Q9B6Yf017754 for ; Wed, 26 Aug 2009 09:11:06 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7Q9B6BW017752 for perforce@freebsd.org; Wed, 26 Aug 2009 09:11:06 GMT (envelope-from rene@FreeBSD.org) Date: Wed, 26 Aug 2009 09:11:06 GMT Message-Id: <200908260911.n7Q9B6BW017752@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 167826 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Aug 2009 09:11:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=167826 Change 167826 by rene@rene_self on 2009/08/26 09:10:24 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/x11/chapter.sgml#7 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#41 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#38 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/basics/chapter.sgml#13 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#27 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml#21 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/dtrace/chapter.sgml#14 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/filesystems/chapter.sgml#11 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/multimedia/chapter.sgml#12 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml#12 integrate .. //depot/projects/docproj_nl/www/share/sgml/commercial.consult.xml#12 integrate .. //depot/projects/docproj_nl/www/share/sgml/news.xml#48 integrate .. //depot/projects/docproj_nl/www/share/sgml/press.xml#16 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/x11/chapter.sgml#7 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -487,11 +487,30 @@ This key combination was enabled by default up to &xorg; version 7.3. To enable it in - version 7.4 and later, add the following line to the - ServerLayout or ServerFlags - section of the configuration file: + version 7.4 and later, you can either type the following + command from any X terminal emulator: + + &prompt.user; setxkbmap -option terminate:ctrl_alt_bksp + + or create a keyboard configuration file for + hald called + x11-input.fdi and saved in the + /usr/local/etc/hal/fdi/policy + directory. This file should contain the following + lines: + + <?xml version="1.0" encoding="ISO-8859-1"?> +<deviceinfo version="0.2"> + <device> + <match key="info.capabilities" contains="input.keyboard"> + <merge key="input.xkb.options" type="string">terminate:ctrl_alt_bksp</merge> + </match> + </device> +</deviceinfo> - Option "DontZap" "Off" + You will have to reboot your machine to force + hald to read this file. If the mouse does not work, you will need to first ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#41 (text+ko) ==== @@ -1,7 +1,7 @@ 8.0-CURRENT after introduction of OBJT_SG VM object type. + + 800107 + August 2, 2009 + 8.0-CURRENT after making the newbus subsystem + Giant free by adding the newbus sxlock. + ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#38 (text+ko) ==== @@ -1,7 +1,7 @@ ==== //depot/projects/docproj_nl/www/share/sgml/commercial.consult.xml#12 (text+ko) ==== @@ -1,12 +1,12 @@ - + - $FreeBSD: www/share/sgml/commercial.consult.xml,v 1.62 2009/08/13 09:00:10 remko Exp $ + $FreeBSD: www/share/sgml/commercial.consult.xml,v 1.63 2009/08/24 18:50:35 remko Exp $ @@ -3005,4 +3005,15 @@ via email geral@pontosi.pt + + + Officialunix + http://www.officialunix.com + + Officialunix, is a small company based in Mexico. It offers + consulting, Administration, and System Admin services. It also + sells CD's which a small percentage is given back to each Open + Source project it sells products for. + + ==== //depot/projects/docproj_nl/www/share/sgml/news.xml#48 (text+ko) ==== @@ -25,7 +25,7 @@ - $FreeBSD: www/share/sgml/news.xml,v 1.266 2009/08/13 14:06:18 fluffy Exp $ + $FreeBSD: www/share/sgml/news.xml,v 1.267 2009/08/25 07:16:03 blackend Exp $ @@ -36,6 +36,22 @@ 8 + 24 + + + &os; 8.0-BETA3 Available + +

The third of the BETA builds for the &os;-8.0 release + cycle is now available. ISO images for Tier-1 architectures + and a memory stick image for amd64/i386 are now available + on most of the &os; + mirror sites.

+
+
+ + 10

New committer: Dima ==== //depot/projects/docproj_nl/www/share/sgml/press.xml#16 (text+ko) ==== @@ -9,7 +9,7 @@ - $FreeBSD: www/share/sgml/press.xml,v 1.86 2009/08/21 22:22:17 danger Exp $ + $FreeBSD: www/share/sgml/press.xml,v 1.87 2009/08/25 00:08:42 delphij Exp $ @@ -28,7 +28,7 @@ Sean Michael Kerner

This article introduces recent work on &os; network routing architecture done by senior network architect from Blue Coat - ‐ Quing Li. Its main goal is to optimize &os; routing + ‐ Qing Li. Its main goal is to optimize &os; routing code to better utilize parallel processing CPUs.

From owner-p4-projects@FreeBSD.ORG Wed Aug 26 10:42:47 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4DEF9106568E; Wed, 26 Aug 2009 10:42:47 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EC155106568B for ; Wed, 26 Aug 2009 10:42:46 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D81878FC22 for ; Wed, 26 Aug 2009 10:42:46 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7QAgkZ3025344 for ; Wed, 26 Aug 2009 10:42:46 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7QAgkg3025342 for perforce@freebsd.org; Wed, 26 Aug 2009 10:42:46 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 26 Aug 2009 10:42:46 GMT Message-Id: <200908261042.n7QAgkg3025342@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 167827 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Aug 2009 10:42:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=167827 Change 167827 by hselasky@hselasky_laptop001 on 2009/08/26 10:42:42 IFC @ 167825 Affected files ... .. //depot/projects/usb/src/sys/amd64/amd64/elf_machdep.c#7 integrate .. //depot/projects/usb/src/sys/amd64/amd64/trap.c#16 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_sysvec.c#22 integrate .. //depot/projects/usb/src/sys/arm/arm/undefined.c#5 integrate .. //depot/projects/usb/src/sys/arm/conf/SHEEVAPLUG#1 branch .. //depot/projects/usb/src/sys/arm/mv/common.c#6 integrate .. //depot/projects/usb/src/sys/arm/mv/discovery/db78xxx.c#5 integrate .. //depot/projects/usb/src/sys/arm/mv/kirkwood/db88f6xxx.c#5 integrate .. //depot/projects/usb/src/sys/arm/mv/kirkwood/files.db88f6xxx#2 integrate .. //depot/projects/usb/src/sys/arm/mv/kirkwood/files.kirkwood#1 branch .. //depot/projects/usb/src/sys/arm/mv/kirkwood/files.sheevaplug#1 branch .. //depot/projects/usb/src/sys/arm/mv/kirkwood/sheevaplug.c#1 branch .. //depot/projects/usb/src/sys/arm/mv/kirkwood/std.db88f6xxx#2 integrate .. //depot/projects/usb/src/sys/arm/mv/kirkwood/std.kirkwood#1 branch .. //depot/projects/usb/src/sys/arm/mv/kirkwood/std.sheevaplug#1 branch .. //depot/projects/usb/src/sys/arm/mv/mv_machdep.c#7 integrate .. //depot/projects/usb/src/sys/arm/mv/mvreg.h#7 integrate .. //depot/projects/usb/src/sys/arm/mv/mvvar.h#4 integrate .. //depot/projects/usb/src/sys/arm/mv/orion/db88f5xxx.c#5 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixdp425_pci.c#3 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/mutex.h#4 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/proc.h#3 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#4 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#8 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c#3 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/sys/callb.h#3 integrate .. //depot/projects/usb/src/sys/compat/ia32/ia32_sysvec.c#11 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_ioctl.c#17 integrate .. //depot/projects/usb/src/sys/conf/files#77 integrate .. //depot/projects/usb/src/sys/conf/newvers.sh#11 integrate .. //depot/projects/usb/src/sys/conf/options#39 integrate .. //depot/projects/usb/src/sys/conf/options.arm#11 integrate .. //depot/projects/usb/src/sys/contrib/altq/altq/altq_subr.c#14 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/pf_if.c#13 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi.c#21 integrate .. //depot/projects/usb/src/sys/dev/alc/if_alc.c#4 integrate .. //depot/projects/usb/src/sys/dev/asmc/asmc.c#7 integrate .. //depot/projects/usb/src/sys/dev/drm/drmP.h#14 integrate .. //depot/projects/usb/src/sys/dev/drm/drm_bufs.c#8 integrate .. //depot/projects/usb/src/sys/dev/drm/drm_drv.c#15 integrate .. //depot/projects/usb/src/sys/dev/drm/drm_fops.c#4 integrate .. //depot/projects/usb/src/sys/dev/drm/drm_sysctl.c#6 integrate .. //depot/projects/usb/src/sys/dev/drm/r600_blit.c#1 branch .. //depot/projects/usb/src/sys/dev/drm/r600_cp.c#6 integrate .. //depot/projects/usb/src/sys/dev/drm/radeon_cp.c#11 integrate .. //depot/projects/usb/src/sys/dev/drm/radeon_cs.c#1 branch .. //depot/projects/usb/src/sys/dev/drm/radeon_drm.h#5 integrate .. //depot/projects/usb/src/sys/dev/drm/radeon_drv.h#9 integrate .. //depot/projects/usb/src/sys/dev/drm/radeon_state.c#5 integrate .. //depot/projects/usb/src/sys/dev/ixgbe/ixgbe.c#11 integrate .. //depot/projects/usb/src/sys/dev/mge/if_mge.c#7 integrate .. //depot/projects/usb/src/sys/dev/pty/pty.c#1 branch .. //depot/projects/usb/src/sys/dev/re/if_re.c#22 integrate .. //depot/projects/usb/src/sys/dev/snp/snp.c#13 integrate .. //depot/projects/usb/src/sys/dev/sound/usb/uaudio.c#57 integrate .. //depot/projects/usb/src/sys/dev/syscons/scvgarndr.c#3 integrate .. //depot/projects/usb/src/sys/dev/syscons/scvidctl.c#5 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#31 integrate .. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#32 integrate .. //depot/projects/usb/src/sys/dev/usb/misc/ufm.c#11 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_aue.c#17 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_cdce.c#20 integrate .. //depot/projects/usb/src/sys/dev/usb/net/usb_ethernet.c#12 edit .. //depot/projects/usb/src/sys/dev/usb/serial/uipaq.c#14 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/uvisor.c#15 integrate .. //depot/projects/usb/src/sys/dev/usb/storage/umass.c#29 integrate .. //depot/projects/usb/src/sys/dev/usb/storage/urio.c#16 integrate .. //depot/projects/usb/src/sys/dev/usb/usb.h#45 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_busdma.c#17 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_dev.c#37 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_device.c#51 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_device.h#30 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_handle_request.c#22 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_hub.c#32 edit .. //depot/projects/usb/src/sys/dev/usb/usb_process.c#13 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_process.h#10 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#164 integrate .. //depot/projects/usb/src/sys/dev/usb/usbdevs#75 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_upgt.c#16 integrate .. //depot/projects/usb/src/sys/dev/xen/console/console.c#9 integrate .. //depot/projects/usb/src/sys/fs/fifofs/fifo_vnops.c#13 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clvnops.c#11 integrate .. //depot/projects/usb/src/sys/i386/i386/elf_machdep.c#8 integrate .. //depot/projects/usb/src/sys/i386/i386/trap.c#14 integrate .. //depot/projects/usb/src/sys/i386/isa/vesa.c#4 integrate .. //depot/projects/usb/src/sys/i386/linux/linux_sysvec.c#16 integrate .. //depot/projects/usb/src/sys/isa/isahint.c#4 integrate .. //depot/projects/usb/src/sys/kern/imgact_elf.c#13 integrate .. //depot/projects/usb/src/sys/kern/kern_cons.c#3 integrate .. //depot/projects/usb/src/sys/kern/kern_jail.c#30 integrate .. //depot/projects/usb/src/sys/kern/kern_subr.c#7 integrate .. //depot/projects/usb/src/sys/kern/kern_uuid.c#13 integrate .. //depot/projects/usb/src/sys/kern/subr_bus.c#28 integrate .. //depot/projects/usb/src/sys/kern/sys_generic.c#17 integrate .. //depot/projects/usb/src/sys/kern/tty_pts.c#17 integrate .. //depot/projects/usb/src/sys/kern/tty_pty.c#11 delete .. //depot/projects/usb/src/sys/kern/tty_ttydisc.c#7 integrate .. //depot/projects/usb/src/sys/kern/uipc_domain.c#14 integrate .. //depot/projects/usb/src/sys/kern/uipc_socket.c#27 integrate .. //depot/projects/usb/src/sys/modules/drm/radeon/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/pty/Makefile#1 branch .. //depot/projects/usb/src/sys/net/bridgestp.c#18 integrate .. //depot/projects/usb/src/sys/net/if.c#39 integrate .. //depot/projects/usb/src/sys/net/if_bridge.c#19 integrate .. //depot/projects/usb/src/sys/net/if_ef.c#12 integrate .. //depot/projects/usb/src/sys/net/if_llatbl.c#6 integrate .. //depot/projects/usb/src/sys/net/if_llatbl.h#4 integrate .. //depot/projects/usb/src/sys/net/if_var.h#28 integrate .. //depot/projects/usb/src/sys/net/if_vlan.c#18 integrate .. //depot/projects/usb/src/sys/netgraph/ng_gif.c#10 integrate .. //depot/projects/usb/src/sys/netinet/in.c#34 integrate .. //depot/projects/usb/src/sys/netinet/ip_divert.c#24 integrate .. //depot/projects/usb/src/sys/netinet/ip_divert.h#2 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw2.c#11 integrate .. //depot/projects/usb/src/sys/netinet/sctp_indata.c#22 integrate .. //depot/projects/usb/src/sys/netinet6/icmp6.c#26 integrate .. //depot/projects/usb/src/sys/netinet6/in6.c#32 integrate .. //depot/projects/usb/src/sys/netinet6/in6_ifattach.c#29 integrate .. //depot/projects/usb/src/sys/netinet6/nd6.c#25 integrate .. //depot/projects/usb/src/sys/netipsec/xform_ipip.c#17 integrate .. //depot/projects/usb/src/sys/nfsclient/bootp_subr.c#19 integrate .. //depot/projects/usb/src/sys/nfsclient/nfs_vnops.c#30 integrate .. //depot/projects/usb/src/sys/pci/if_rlreg.h#17 integrate .. //depot/projects/usb/src/sys/rpc/clnt_dg.c#7 integrate .. //depot/projects/usb/src/sys/rpc/clnt_rc.c#9 integrate .. //depot/projects/usb/src/sys/rpc/clnt_vc.c#8 integrate .. //depot/projects/usb/src/sys/rpc/rpc_generic.c#3 integrate .. //depot/projects/usb/src/sys/rpc/svc_dg.c#4 integrate .. //depot/projects/usb/src/sys/rpc/svc_generic.c#4 integrate .. //depot/projects/usb/src/sys/rpc/svc_vc.c#7 integrate .. //depot/projects/usb/src/sys/sys/cons.h#5 integrate .. //depot/projects/usb/src/sys/sys/imgact_elf.h#6 integrate .. //depot/projects/usb/src/sys/sys/param.h#44 integrate .. //depot/projects/usb/src/sys/sys/ttydisc.h#3 integrate Differences ... ==== //depot/projects/usb/src/sys/amd64/amd64/elf_machdep.c#7 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/elf_machdep.c,v 1.30 2009/04/05 09:27:19 dchagin Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/elf_machdep.c,v 1.31 2009/08/24 16:19:47 bz Exp $"); #include #include @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -108,6 +109,22 @@ (sysinit_cfunc_t) elf64_insert_brand_entry, &freebsd_brand_oinfo); +static Elf64_Brandinfo kfreebsd_brand_info = { + .brand = ELFOSABI_FREEBSD, + .machine = EM_X86_64, + .compat_3_brand = "FreeBSD", + .emul_path = NULL, + .interp_path = "/lib/ld-kfreebsd-x86-64.so.1", + .sysvec = &elf64_freebsd_sysvec, + .interp_newpath = NULL, + .brand_note = &elf64_kfreebsd_brandnote, + .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE +}; + +SYSINIT(kelf64, SI_SUB_EXEC, SI_ORDER_ANY, + (sysinit_cfunc_t) elf64_insert_brand_entry, + &kfreebsd_brand_info); + void elf64_dump_thread(struct thread *td __unused, void *dst __unused, ==== //depot/projects/usb/src/sys/amd64/amd64/trap.c#16 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.333 2009/08/13 17:09:45 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.334 2009/08/24 16:19:47 bz Exp $"); /* * AMD64 Trap and System call handling @@ -409,7 +409,9 @@ * This check also covers the images * without the ABI-tag ELF note. */ - if (p->p_osrel >= 700004) { + if (SV_CURPROC_ABI() == + SV_ABI_FREEBSD && + p->p_osrel >= 700004) { i = SIGSEGV; ucode = SEGV_ACCERR; } else { ==== //depot/projects/usb/src/sys/amd64/linux32/linux32_sysvec.c#22 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.52 2009/07/09 09:34:11 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.53 2009/08/24 16:19:47 bz Exp $"); #include "opt_compat.h" #ifndef COMPAT_IA32 @@ -127,6 +127,7 @@ static void exec_linux_setregs(struct thread *td, u_long entry, u_long stack, u_long ps_strings); static void linux32_fixlimit(struct rlimit *rl, int which); +static boolean_t linux32_trans_osrel(const Elf_Note *note, int32_t *osrel); static eventhandler_tag linux_exit_tag; static eventhandler_tag linux_schedtail_tag; @@ -1066,14 +1067,38 @@ .sv_flags = SV_ABI_LINUX | SV_ILP32 | SV_IA32 }; -static char GNULINUX_ABI_VENDOR[] = "GNU"; +static char GNU_ABI_VENDOR[] = "GNU"; +static int GNULINUX_ABI_DESC = 0; + +static boolean_t +linux32_trans_osrel(const Elf_Note *note, int32_t *osrel) +{ + const Elf32_Word *desc; + uintptr_t p; + + p = (uintptr_t)(note + 1); + p += roundup2(note->n_namesz, sizeof(Elf32_Addr)); + + desc = (const Elf32_Word *)p; + if (desc[0] != GNULINUX_ABI_DESC) + return (FALSE); + + /* + * For linux we encode osrel as follows (see linux_mib.c): + * VVVMMMIII (version, major, minor), see linux_mib.c. + */ + *osrel = desc[1] * 1000000 + desc[2] * 1000 + desc[3]; + + return (TRUE); +} static Elf_Brandnote linux32_brandnote = { - .hdr.n_namesz = sizeof(GNULINUX_ABI_VENDOR), - .hdr.n_descsz = 16, + .hdr.n_namesz = sizeof(GNU_ABI_VENDOR), + .hdr.n_descsz = 16, /* XXX at least 16 */ .hdr.n_type = 1, - .vendor = GNULINUX_ABI_VENDOR, - .flags = 0 + .vendor = GNU_ABI_VENDOR, + .flags = BN_TRANSLATE_OSREL, + .trans_osrel = linux32_trans_osrel }; static Elf32_Brandinfo linux_brand = { ==== //depot/projects/usb/src/sys/arm/arm/undefined.c#5 (text+ko) ==== @@ -48,7 +48,7 @@ #include "opt_ddb.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/undefined.c,v 1.16 2008/10/23 15:53:51 des Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/undefined.c,v 1.17 2009/08/23 23:37:53 cognet Exp $"); #include #include @@ -82,11 +82,10 @@ #ifdef DDB #include -#include #endif -#ifdef acorn26 -#include +#ifdef KDB +#include #endif static int gdb_trapper(u_int, u_int, struct trapframe *, int); ==== //depot/projects/usb/src/sys/arm/mv/common.c#6 (text+ko) ==== @@ -30,10 +30,12 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/mv/common.c,v 1.7 2009/06/12 20:00:38 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/common.c,v 1.8 2009/08/25 09:35:50 raj Exp $"); +#include #include #include +#include #include @@ -62,6 +64,76 @@ static uint32_t used_cpu_wins; +static __inline int +pm_is_disabled(uint32_t mask) +{ + + return (soc_power_ctrl_get(mask) == mask ? 0 : 1); +} + +static __inline uint32_t +obio_get_pm_mask(uint32_t base) +{ + struct obio_device *od; + + for (od = obio_devices; od->od_name != NULL; od++) + if (od->od_base == base) + return (od->od_pwr_mask); + + return (CPU_PM_CTRL_NONE); +} + +/* + * Disable device using power management register. + * 1 - Device Power On + * 0 - Device Power Off + * Mask can be set in loader. + * EXAMPLE: + * loader> set hw.pm-disable-mask=0x2 + * + * Common mask: + * |-------------------------------| + * | Device | Kirkwood | Discovery | + * |-------------------------------| + * | USB0 | 0x00008 | 0x020000 | + * |-------------------------------| + * | USB1 | - | 0x040000 | + * |-------------------------------| + * | USB2 | - | 0x080000 | + * |-------------------------------| + * | GE0 | 0x00001 | 0x000002 | + * |-------------------------------| + * | GE1 | - | 0x000004 | + * |-------------------------------| + * | IDMA | - | 0x100000 | + * |-------------------------------| + * | XOR | 0x10000 | 0x200000 | + * |-------------------------------| + * | CESA | 0x20000 | 0x400000 | + * |-------------------------------| + * | SATA | 0x04000 | 0x004000 | + * --------------------------------| + * This feature can be used only on Kirkwood and Discovery + * machines. + */ +static __inline void +pm_disable_device(int mask) +{ +#ifdef DIAGNOSTIC + uint32_t reg; + + reg = soc_power_ctrl_get(CPU_PM_CTRL_ALL); + printf("Power Management Register: 0%x\n", reg); + + reg &= ~mask; + soc_power_ctrl_set(reg); + printf("Device %x is disabled\n", mask); + + reg = soc_power_ctrl_get(CPU_PM_CTRL_ALL); + printf("Power Management Register: 0%x\n", reg); +#endif +} + uint32_t read_cpu_ctrl(uint32_t reg) { @@ -103,14 +175,36 @@ return (ef); } +/* + * Get the power status of device. This feature is only supported on + * Kirkwood and Discovery SoCs. + */ uint32_t soc_power_ctrl_get(uint32_t mask) { +#ifndef SOC_MV_ORION if (mask != CPU_PM_CTRL_NONE) mask &= read_cpu_ctrl(CPU_PM_CTRL); return (mask); +#else + return (mask); +#endif +} + +/* + * Set the power status of device. This feature is only supported on + * Kirkwood and Discovery SoCs. + */ +void +soc_power_ctrl_set(uint32_t mask) +{ + +#ifndef SOC_MV_ORION + if (mask != CPU_PM_CTRL_NONE) + write_cpu_ctrl(CPU_PM_CTRL, mask); +#endif } void @@ -191,7 +285,14 @@ soc_decode_win(void) { uint32_t dev, rev; + int mask; + mask = 0; + TUNABLE_INT_FETCH("hw.pm-disable-mask", &mask); + + if (mask != 0) + pm_disable_device(mask); + /* Retrieve our ID: some windows facilities vary between SoC models */ soc_id(&dev, &rev); @@ -623,8 +724,12 @@ /* Disable and clear all USB windows for all ports */ m = usb_max_ports(); + for (p = 0; p < m; p++) { + if (pm_is_disabled(CPU_PM_CTRL_USB(p))) + continue; + for (i = 0; i < MV_WIN_USB_MAX; i++) { win_usb_cr_write(i, p, 0); win_usb_br_write(i, p, 0); @@ -710,6 +815,9 @@ uint32_t br, sz; int i, j; + if (pm_is_disabled(obio_get_pm_mask(base))) + return; + /* Disable, clear and revoke protection for all ETH windows */ for (i = 0; i < MV_WIN_ETH_MAX; i++) { @@ -880,6 +988,8 @@ uint32_t br, sz; int i, j; + if (pm_is_disabled(CPU_PM_CTRL_IDMA)) + return; /* * Disable and clear all IDMA windows, revoke protection for all channels */ @@ -1172,6 +1282,9 @@ uint32_t br, sz; int i, j, z, e = 1, m, window; + if (pm_is_disabled(CPU_PM_CTRL_XOR)) + return; + /* * Disable and clear all XOR windows, revoke protection for all * channels @@ -1364,6 +1477,9 @@ uint32_t br, cr; int i, j; + if (pm_is_disabled(CPU_PM_CTRL_CRYPTO)) + return; + /* Disable and clear all CESA windows */ for (i = 0; i < MV_WIN_CESA_MAX; i++) { win_cesa_cr_write(i, 0); @@ -1432,6 +1548,9 @@ uint32_t cr, br; int i, j; + if (pm_is_disabled(CPU_PM_CTRL_SATA)) + return; + for (i = 0; i < MV_WIN_SATA_MAX; i++) { win_sata_cr_write(i, 0); win_sata_br_write(i, 0); ==== //depot/projects/usb/src/sys/arm/mv/discovery/db78xxx.c#5 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/mv/discovery/db78xxx.c,v 1.4 2009/06/12 20:00:38 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/discovery/db78xxx.c,v 1.5 2009/08/25 09:30:03 raj Exp $"); #include #include @@ -68,11 +68,8 @@ * 0xffff_2000 - 0xffff_ffff : unused (~55KB) */ -const struct pmap_devmap *pmap_devmap_bootstrap_table; -vm_offset_t pmap_bootstrap_lastaddr; - /* Static device mappings. */ -static const struct pmap_devmap pmap_devmap[] = { +const struct pmap_devmap pmap_devmap[] = { /* * Map the on-board devices VA == PA so that we can access them * with the MMU on or off. @@ -105,16 +102,6 @@ { -1, -1, -1 } }; -int -platform_pmap_init(void) -{ - - pmap_bootstrap_lastaddr = MV_BASE - ARM_NOCACHE_KVA_SIZE; - pmap_devmap_bootstrap_table = &pmap_devmap[0]; - - return (0); -} - void platform_mpp_init(void) { ==== //depot/projects/usb/src/sys/arm/mv/kirkwood/db88f6xxx.c#5 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/mv/kirkwood/db88f6xxx.c,v 1.4 2009/06/12 20:00:38 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/kirkwood/db88f6xxx.c,v 1.5 2009/08/25 09:30:03 raj Exp $"); #include #include @@ -68,11 +68,8 @@ * 0xffff_2000 - 0xffff_ffff : unused (~55KB) */ -const struct pmap_devmap *pmap_devmap_bootstrap_table; -vm_offset_t pmap_bootstrap_lastaddr; - /* Static device mappings. */ -static const struct pmap_devmap pmap_devmap[] = { +const struct pmap_devmap pmap_devmap[] = { /* * Map the on-board devices VA == PA so that we can access them * with the MMU on or off. @@ -105,16 +102,6 @@ { -1, -1, -1 } }; -int -platform_pmap_init(void) -{ - - pmap_bootstrap_lastaddr = MV_BASE - ARM_NOCACHE_KVA_SIZE; - pmap_devmap_bootstrap_table = &pmap_devmap[0]; - - return (0); -} - void platform_mpp_init(void) { ==== //depot/projects/usb/src/sys/arm/mv/kirkwood/files.db88f6xxx#2 (text+ko) ==== @@ -1,5 +1,4 @@ -# $FreeBSD: src/sys/arm/mv/kirkwood/files.db88f6xxx,v 1.1 2008/10/13 20:07:13 raj Exp $ +# $FreeBSD: src/sys/arm/mv/kirkwood/files.db88f6xxx,v 1.2 2009/08/25 09:39:11 raj Exp $ -arm/mv/rtc.c standard -arm/mv/kirkwood/kirkwood.c standard +include "arm/mv/kirkwood/files.kirkwood" arm/mv/kirkwood/db88f6xxx.c standard ==== //depot/projects/usb/src/sys/arm/mv/kirkwood/std.db88f6xxx#2 (text+ko) ==== @@ -1,13 +1,8 @@ -# $FreeBSD: src/sys/arm/mv/kirkwood/std.db88f6xxx,v 1.1 2008/10/13 20:07:13 raj Exp $ +# $FreeBSD: src/sys/arm/mv/kirkwood/std.db88f6xxx,v 1.2 2009/08/25 09:39:11 raj Exp $ include "../mv/std.mv" +include "../mv/kirkwood/std.kirkwood" files "../mv/kirkwood/files.db88f6xxx" -makeoptions KERNPHYSADDR=0x00900000 -makeoptions KERNVIRTADDR=0xc0900000 -options KERNPHYSADDR=0x00900000 -options KERNVIRTADDR=0xc0900000 -options PHYSADDR=0x00000000 options PHYSMEM_SIZE=0x20000000 -options STARTUP_PAGETABLE_ADDR=0x00100000 ==== //depot/projects/usb/src/sys/arm/mv/mv_machdep.c#7 (text+ko) ==== @@ -39,7 +39,7 @@ #include "opt_ddb.h" #include -__FBSDID("$FreeBSD: src/sys/arm/mv/mv_machdep.c,v 1.6 2009/07/01 20:07:44 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/mv_machdep.c,v 1.7 2009/08/25 09:30:03 raj Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include @@ -86,6 +86,7 @@ #include #include /* XXX eventually this should be eliminated */ +#include #ifdef DEBUG #define debugf(fmt, args...) printf(fmt, ##args) @@ -133,7 +134,9 @@ vm_paddr_t phys_avail[10]; vm_paddr_t dump_avail[4]; vm_offset_t physical_pages; +vm_offset_t pmap_bootstrap_lastaddr; +const struct pmap_devmap *pmap_devmap_bootstrap_table; struct pv_addr systempage; struct pv_addr msgbufpv; struct pv_addr irqstack; @@ -423,8 +426,8 @@ while (1); /* Platform-specific initialisation */ - if (platform_pmap_init() != 0) - return (NULL); + pmap_bootstrap_lastaddr = MV_BASE - ARM_NOCACHE_KVA_SIZE; + pmap_devmap_bootstrap_table = &pmap_devmap[0]; pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); ==== //depot/projects/usb/src/sys/arm/mv/mvreg.h#7 (text+ko) ==== @@ -28,7 +28,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/arm/mv/mvreg.h,v 1.7 2009/06/24 15:41:18 raj Exp $ + * $FreeBSD: src/sys/arm/mv/mvreg.h,v 1.8 2009/08/25 09:35:50 raj Exp $ */ #ifndef _MVREG_H_ @@ -218,6 +218,7 @@ */ #define CPU_PM_CTRL 0x1C #define CPU_PM_CTRL_NONE 0 +#define CPU_PM_CTRL_ALL ~0x0 #if defined(SOC_MV_KIRKWOOD) #define CPU_PM_CTRL_GE0 (1 << 0) @@ -234,8 +235,11 @@ #define CPU_PM_CTRL_SATA1 (1 << 15) #define CPU_PM_CTRL_XOR1 (1 << 16) #define CPU_PM_CTRL_CRYPTO (1 << 17) -#define CPU_PM_CTRL_GE1 (1 << 18) -#define CPU_PM_CTRL_TDM (1 << 19) +#define CPU_PM_CTRL_GE1 (1 << 19) +#define CPU_PM_CTRL_TDM (1 << 20) +#define CPU_PM_CTRL_XOR (CPU_PM_CTRL_XOR0 | CPU_PM_CTRL_XOR1) +#define CPU_PM_CTRL_USB(u) (CPU_PM_CTRL_USB0) +#define CPU_PM_CTRL_SATA (CPU_PM_CTRL_SATA0 | CPU_PM_CTRL_SATA1) #elif defined(SOC_MV_DISCOVERY) #define CPU_PM_CTRL_GE0 (1 << 1) #define CPU_PM_CTRL_GE1 (1 << 2) @@ -258,6 +262,14 @@ #define CPU_PM_CTRL_XOR (1 << 21) #define CPU_PM_CTRL_CRYPTO (1 << 22) #define CPU_PM_CTRL_DEVICE (1 << 23) +#define CPU_PM_CTRL_USB(u) (1 << (17 + (u))) +#define CPU_PM_CTRL_SATA (CPU_PM_CTRL_SATA0 | CPU_PM_CTRL_SATA1) +#else +#define CPU_PM_CTRL_CRYPTO (CPU_PM_CTRL_NONE) +#define CPU_PM_CTRL_IDMA (CPU_PM_CTRL_NONE) +#define CPU_PM_CTRL_XOR (CPU_PM_CTRL_NONE) +#define CPU_PM_CTRL_SATA (CPU_PM_CTRL_NONE) +#define CPU_PM_CTRL_USB(u) (CPU_PM_CTRL_NONE) #endif /* ==== //depot/projects/usb/src/sys/arm/mv/mvvar.h#4 (text+ko) ==== @@ -34,13 +34,17 @@ * * from: FreeBSD: //depot/projects/arm/src/sys/arm/xscale/pxa2x0/pxa2x0var.h, rev 1 * - * $FreeBSD: src/sys/arm/mv/mvvar.h,v 1.5 2009/01/09 10:20:51 raj Exp $ + * $FreeBSD: src/sys/arm/mv/mvvar.h,v 1.7 2009/08/25 09:35:50 raj Exp $ */ #ifndef _MVVAR_H_ #define _MVVAR_H_ #include +#include +#include +#include +#include #define MV_TYPE_PCI 0 #define MV_TYPE_PCIE 1 @@ -104,6 +108,7 @@ int remap; }; +extern const struct pmap_devmap pmap_devmap[]; extern const struct obio_pci mv_pci_info[]; extern const struct gpio_config mv_gpio_config[]; extern bus_space_tag_t obio_tag; @@ -124,13 +129,13 @@ void mv_gpio_out(uint32_t pin, uint8_t val, uint8_t enable); uint8_t mv_gpio_in(uint32_t pin); -int platform_pmap_init(void); void platform_mpp_init(void); int soc_decode_win(void); void soc_id(uint32_t *dev, uint32_t *rev); void soc_identify(void); void soc_dump_decode_win(void); uint32_t soc_power_ctrl_get(uint32_t mask); +void soc_power_ctrl_set(uint32_t mask); int decode_win_cpu_set(int target, int attr, vm_paddr_t base, uint32_t size, int remap); ==== //depot/projects/usb/src/sys/arm/mv/orion/db88f5xxx.c#5 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/mv/orion/db88f5xxx.c,v 1.5 2009/06/12 20:00:38 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/orion/db88f5xxx.c,v 1.6 2009/08/25 09:30:03 raj Exp $"); #include #include @@ -70,12 +70,10 @@ * 0xffff_2000 - 0xffff_ffff : unused (~55KB) */ -const struct pmap_devmap *pmap_devmap_bootstrap_table; -vm_offset_t pmap_bootstrap_lastaddr; int platform_pci_get_irq(u_int bus, u_int slot, u_int func, u_int pin); /* Static device mappings. */ -static const struct pmap_devmap pmap_devmap[] = { +const struct pmap_devmap pmap_devmap[] = { /* * Map the on-board devices VA == PA so that we can access them * with the MMU on or off. @@ -184,16 +182,6 @@ }; #endif -int -platform_pmap_init(void) -{ - - pmap_bootstrap_lastaddr = MV_BASE - ARM_NOCACHE_KVA_SIZE; - pmap_devmap_bootstrap_table = &pmap_devmap[0]; - - return (0); -} - void platform_mpp_init(void) { ==== //depot/projects/usb/src/sys/arm/xscale/ixp425/ixdp425_pci.c#3 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixdp425_pci.c,v 1.2 2008/03/20 15:54:19 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixdp425_pci.c,v 1.3 2009/08/23 19:54:36 cognet Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include @@ -62,12 +62,12 @@ /* PCI Reset Assert */ reg = GPIO_CONF_READ_4(sc, IXP425_GPIO_GPOUTR); reg &= ~(1U << GPIO_PCI_RESET); - GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPOUTR, reg & ~(1U << GPIO_PCI_RESET)); + GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPOUTR, reg); /* PCI Clock Disable */ reg = GPIO_CONF_READ_4(sc, IXP425_GPIO_GPCLKR); reg &= ~GPCLKR_MUX14; - GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPCLKR, reg & ~GPCLKR_MUX14); + GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPCLKR, reg); /* * set GPIO Direction ==== //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/mutex.h#4 (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/cddl/compat/opensolaris/sys/mutex.h,v 1.7 2009/05/29 01:49:27 attilio Exp $ + * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/mutex.h,v 1.8 2009/08/23 11:22:46 pjd Exp $ */ #ifndef _OPENSOLARIS_SYS_MUTEX_H_ @@ -32,9 +32,9 @@ #ifdef _KERNEL #include -#include #include #include_next +#include #include typedef enum { ==== //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/proc.h#3 (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/cddl/compat/opensolaris/sys/proc.h,v 1.6 2008/11/17 20:49:29 pjd Exp $ + * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/proc.h,v 1.8 2009/08/23 11:33:46 pjd Exp $ */ #ifndef _OPENSOLARIS_SYS_PROC_H_ @@ -34,13 +34,16 @@ #include_next #include #include +#include +#include +#include #include #ifdef _KERNEL #define CPU curcpu -#define minclsyspri 0 -#define maxclsyspri 0 +#define minclsyspri PRIBIO +#define maxclsyspri PVM #define max_ncpus mp_ncpus #define boot_max_ncpus mp_ncpus @@ -54,11 +57,13 @@ typedef struct thread *kthread_id_t; typedef struct proc proc_t; +extern struct proc *zfsproc; + static __inline kthread_t * thread_create(caddr_t stk, size_t stksize, void (*proc)(void *), void *arg, size_t len, proc_t *pp, int state, pri_t pri) { - proc_t *p; + kthread_t *td = NULL; int error; /* @@ -67,13 +72,19 @@ ASSERT(stk == NULL); ASSERT(len == 0); ASSERT(state == TS_RUN); + ASSERT(pp == &p0); - error = kproc_create(proc, arg, &p, 0, stksize / PAGE_SIZE, - "solthread %p", proc); - return (error == 0 ? FIRST_THREAD_IN_PROC(p) : NULL); + error = kproc_kthread_add(proc, arg, &zfsproc, &td, 0, + stksize / PAGE_SIZE, "zfskern", "solthread %p", proc); + if (error == 0) { + thread_lock(td); + sched_prio(td, pri); + thread_unlock(td); + } + return (td); } -#define thread_exit() kproc_exit(0) +#define thread_exit() kthread_exit() #endif /* _KERNEL */ ==== //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#4 (text+ko) ==== @@ -194,6 +194,10 @@ zio_t *zio; struct bio *bp; + thread_lock(curthread); + sched_prio(curthread, PRIBIO); + thread_unlock(curthread); + ctx = arg; for (;;) { mtx_lock(&ctx->gc_queue_mtx); @@ -203,7 +207,7 @@ ctx->gc_state = 2; wakeup_one(&ctx->gc_state); mtx_unlock(&ctx->gc_queue_mtx); - kproc_exit(0); + kthread_exit(); } msleep(&ctx->gc_queue, &ctx->gc_queue_mtx, PRIBIO | PDROP, "vgeom:io", 0); @@ -530,8 +534,8 @@ vd->vdev_tsd = ctx; pp = cp->provider; - kproc_create(vdev_geom_worker, ctx, NULL, 0, 0, "vdev:worker %s", - pp->name); + kproc_kthread_add(vdev_geom_worker, ctx, &zfsproc, NULL, 0, 0, + "zfskern", "vdev %s", pp->name); /* * Determine the actual size of the device. ==== //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#8 (text+ko) ==== @@ -3057,6 +3057,7 @@ } static struct root_hold_token *zfs_root_token; +struct proc *zfsproc; uint_t zfs_fsyncer_key; extern uint_t rrw_tsd_key; ==== //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c#3 (text+ko) ==== @@ -402,6 +402,10 @@ zvol_state_t *zv; struct bio *bp; + thread_lock(curthread); + sched_prio(curthread, PRIBIO); + thread_unlock(curthread); + zv = arg; for (;;) { mtx_lock(&zv->zv_queue_mtx); @@ -411,7 +415,7 @@ zv->zv_state = 2; wakeup(&zv->zv_state); mtx_unlock(&zv->zv_queue_mtx); - kproc_exit(0); + kthread_exit(); } msleep(&zv->zv_queue, &zv->zv_queue_mtx, PRIBIO | PDROP, "zvol:io", 0); @@ -824,7 +828,8 @@ bioq_init(&zv->zv_queue); mtx_init(&zv->zv_queue_mtx, "zvol", NULL, MTX_DEF); zv->zv_state = 0; - kproc_create(zvol_worker, zv, NULL, 0, 0, "zvol:worker %s", pp->name); + kproc_kthread_add(zvol_worker, zv, &zfsproc, NULL, 0, 0, "zfskern", + "zvol %s", pp->name + strlen(ZVOL_DEV_DIR) + 1); zvol_minors++; end: ==== //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/sys/callb.h#3 (text+ko) ==== >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Aug 26 12:01:13 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 474BF10656AE; Wed, 26 Aug 2009 12:01:13 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0BC5210656A8 for ; Wed, 26 Aug 2009 12:01:13 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EE7248FC3A for ; Wed, 26 Aug 2009 12:01:12 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7QC1Cvx032048 for ; Wed, 26 Aug 2009 12:01:12 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7QC1Cbm032046 for perforce@freebsd.org; Wed, 26 Aug 2009 12:01:12 GMT (envelope-from zec@fer.hr) Date: Wed, 26 Aug 2009 12:01:12 GMT Message-Id: <200908261201.n7QC1Cbm032046@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167829 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Aug 2009 12:01:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=167829 Change 167829 by zec@zec_tpx32 on 2009/08/26 12:00:31 Attempt to preempt panics in vnet_alloc() call graph by doing a brute-force check whether a reasonable amount of kmem is available. This is not guaranteed to work all the time (no protection against races on memory allocations), but given that now jail -c may fail as vnet_alloc() fails, this could serve as an indicator to sysadmins that an imminent panic due to kmem starvation may be around the corner. This is a better-than-nothing alternative to current behavior, which guarantees a panic on jail -c vnet when kmem is in short supply. Affected files ... .. //depot/projects/vimage-commit2/src/sys/kern/kern_jail.c#34 edit .. //depot/projects/vimage-commit2/src/sys/net/vnet.c#6 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/kern/kern_jail.c#34 (text+ko) ==== @@ -1199,6 +1199,11 @@ /* Allocate a new vnet if specified. */ pr->pr_vnet = (pr_flags & PR_VNET) ? vnet_alloc() : ppr->pr_vnet; + if (pr->pr_vnet == NULL) { + prison_deref(pr, PD_LIST_XLOCKED); + error = ENOMEM; + goto done_releroot; + } #endif /* * Allocate a dedicated cpuset for each jail. @@ -2456,7 +2461,7 @@ sx_downgrade(&allprison_lock); #ifdef VIMAGE - if (pr->pr_vnet != ppr->pr_vnet) + if (pr->pr_vnet != NULL && pr->pr_vnet != ppr->pr_vnet) vnet_destroy(pr->pr_vnet); #endif if (pr->pr_root != NULL) { ==== //depot/projects/vimage-commit2/src/sys/net/vnet.c#6 (text+ko) ==== @@ -216,6 +216,18 @@ { struct vnet *vnet; + /* + * Do not proceed with a lengthy chain of direct and indirect + * mallocs if kmem shortage can be anticipated. This ad-hoc + * check applies only to non-default vnets. + */ + if (vnet0 != NULL) { + vnet = malloc(1024*1024, M_VNET, M_NOWAIT | M_ZERO); + if (vnet == NULL) + return (NULL); + free(vnet, M_VNET); + } + vnet = malloc(sizeof(struct vnet), M_VNET, M_WAITOK | M_ZERO); vnet->vnet_magic_n = VNET_MAGIC_N; From owner-p4-projects@FreeBSD.ORG Wed Aug 26 12:07:20 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1313F106568F; Wed, 26 Aug 2009 12:07:20 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CBF3B106568B for ; Wed, 26 Aug 2009 12:07:19 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BAEF48FC27 for ; Wed, 26 Aug 2009 12:07:19 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7QC7JC2033476 for ; Wed, 26 Aug 2009 12:07:19 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7QC7JOc033474 for perforce@freebsd.org; Wed, 26 Aug 2009 12:07:19 GMT (envelope-from zec@fer.hr) Date: Wed, 26 Aug 2009 12:07:19 GMT Message-Id: <200908261207.n7QC7JOc033474@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167830 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Aug 2009 12:07:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=167830 Change 167830 by zec@zec_tpx32 on 2009/08/26 12:06:34 Attempt to properly set curvnet in linuxulator. Not tested yet. Affected files ... .. //depot/projects/vimage-commit2/src/sys/compat/linux/linux_ioctl.c#24 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/compat/linux/linux_ioctl.c#24 (text+ko) ==== @@ -2104,6 +2104,7 @@ return (NULL); index = 0; is_eth = (len == 3 && !strncmp(lxname, "eth", len)) ? 1 : 0; + CURVNET_SET(TD_TO_VNET(td)); IFNET_RLOCK(); TAILQ_FOREACH(ifp, &V_ifnet, if_link) { /* @@ -2117,6 +2118,7 @@ break; } IFNET_RUNLOCK(); + CURVNET_RESTORE(); if (ifp != NULL) strlcpy(bsdname, ifp->if_xname, IFNAMSIZ); return (ifp); @@ -2146,6 +2148,7 @@ max_len = MAXPHYS - 1; + CURVNET_SET(TD_TO_VNET(td)); /* handle the 'request buffer size' case */ if (ifc.ifc_buf == PTROUT(NULL)) { ifc.ifc_len = 0; @@ -2157,11 +2160,14 @@ } } error = copyout(&ifc, uifc, sizeof(ifc)); + CURVNET_RESTORE(); return (error); } - if (ifc.ifc_len <= 0) + if (ifc.ifc_len <= 0) { + CURVNET_RESTORE(); return (EINVAL); + } again: /* Keep track of eth interfaces */ @@ -2223,6 +2229,7 @@ memcpy(PTRIN(ifc.ifc_buf), sbuf_data(sb), ifc.ifc_len); error = copyout(&ifc, uifc, sizeof(ifc)); sbuf_delete(sb); + CURVNET_RESTORE(); return (error); } From owner-p4-projects@FreeBSD.ORG Wed Aug 26 13:24:44 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BED7B10656CE; Wed, 26 Aug 2009 13:24:44 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8287110656C8 for ; Wed, 26 Aug 2009 13:24:44 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7100F8FC2D for ; Wed, 26 Aug 2009 13:24:44 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7QDOifG049997 for ; Wed, 26 Aug 2009 13:24:44 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7QDOiwV049995 for perforce@freebsd.org; Wed, 26 Aug 2009 13:24:44 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 26 Aug 2009 13:24:44 GMT Message-Id: <200908261324.n7QDOiwV049995@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 167831 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Aug 2009 13:24:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=167831 Change 167831 by pgj@beehive on 2009/08/26 13:24:00 IFC Affected files ... .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/desktop/chapter.sgml#21 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/dtrace/chapter.sgml#15 integrate .. //depot/projects/docproj_hu/www/hu/share/sgml/press.xml#20 integrate .. //depot/projects/docproj_hu/www/share/sgml/commercial.consult.xml#15 integrate .. //depot/projects/docproj_hu/www/share/sgml/news.xml#66 integrate .. //depot/projects/docproj_hu/www/share/sgml/press.xml#21 integrate Differences ... ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/desktop/chapter.sgml#21 (text+ko) ==== @@ -1,6 +1,6 @@ + - $FreeBSD: www/share/sgml/commercial.consult.xml,v 1.62 2009/08/13 09:00:10 remko Exp $ + $FreeBSD: www/share/sgml/commercial.consult.xml,v 1.63 2009/08/24 18:50:35 remko Exp $ @@ -3005,4 +3005,15 @@ via email geral@pontosi.pt + + + Officialunix + http://www.officialunix.com + + Officialunix, is a small company based in Mexico. It offers + consulting, Administration, and System Admin services. It also + sells CD's which a small percentage is given back to each Open + Source project it sells products for. + + ==== //depot/projects/docproj_hu/www/share/sgml/news.xml#66 (text+ko) ==== @@ -25,7 +25,7 @@ - $FreeBSD: www/share/sgml/news.xml,v 1.266 2009/08/13 14:06:18 fluffy Exp $ + $FreeBSD: www/share/sgml/news.xml,v 1.267 2009/08/25 07:16:03 blackend Exp $ @@ -36,6 +36,22 @@ 8 + 24 + + + &os; 8.0-BETA3 Available + +

The third of the BETA builds for the &os;-8.0 release + cycle is now available. ISO images for Tier-1 architectures + and a memory stick image for amd64/i386 are now available + on most of the &os; + mirror sites.

+ + + + 10

New committer: Dima ==== //depot/projects/docproj_hu/www/share/sgml/press.xml#21 (text+ko) ==== @@ -9,7 +9,7 @@ - $FreeBSD: www/share/sgml/press.xml,v 1.86 2009/08/21 22:22:17 danger Exp $ + $FreeBSD: www/share/sgml/press.xml,v 1.87 2009/08/25 00:08:42 delphij Exp $ @@ -28,7 +28,7 @@ Sean Michael Kerner

This article introduces recent work on &os; network routing architecture done by senior network architect from Blue Coat - ‐ Quing Li. Its main goal is to optimize &os; routing + ‐ Qing Li. Its main goal is to optimize &os; routing code to better utilize parallel processing CPUs.

From owner-p4-projects@FreeBSD.ORG Wed Aug 26 13:44:06 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1BF33106568D; Wed, 26 Aug 2009 13:44:06 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D4894106568C for ; Wed, 26 Aug 2009 13:44:05 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AA6E38FC23 for ; Wed, 26 Aug 2009 13:44:05 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7QDi5Ta051424 for ; Wed, 26 Aug 2009 13:44:05 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7QDi58a051422 for perforce@freebsd.org; Wed, 26 Aug 2009 13:44:05 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 26 Aug 2009 13:44:05 GMT Message-Id: <200908261344.n7QDi58a051422@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 167832 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Aug 2009 13:44:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=167832 Change 167832 by pgj@beehive on 2009/08/26 13:43:37 MFen (www): 1.266 -> 1.267 hu/share/sgml/news.xml 1.86 -> 1.87 hu/share/sgml/press.xml Affected files ... .. //depot/projects/docproj_hu/www/hu/share/sgml/news.xml#46 edit .. //depot/projects/docproj_hu/www/hu/share/sgml/press.xml#21 edit Differences ... ==== //depot/projects/docproj_hu/www/hu/share/sgml/news.xml#46 (text+ko) ==== @@ -5,7 +5,7 @@ @@ -22,6 +22,27 @@ 8 + 24 + + + Megjelent a &os; 8.0-BETA3! + +

A &os; 8.0 kiadásának harmadik BETA + változata megérkezett. + A &os; + tükrözések + többségérõl mostanra már + elérhetõ ISO lemezkép + formájában az összes Tier-1 + architektúrára, valamint pendrive + formátumban amd64 és i386 + architektúrákra.

+ + + + 10 ==== //depot/projects/docproj_hu/www/hu/share/sgml/press.xml#21 (text+ko) ==== @@ -5,7 +5,7 @@ @@ -29,7 +29,7 @@ http://www.internetnews.com/ 2009. augusztus 21. Sean Michael Kerner -

A cikk bemutatja Quing Li, a Blue Coat hálózati +

A cikk bemutatja Qing Li, a Blue Coat hálózati tervezõmérnökének a &os; legújabb változatának útválasztási From owner-p4-projects@FreeBSD.ORG Wed Aug 26 15:01:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 10929106568C; Wed, 26 Aug 2009 15:01:31 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C91D41065692 for ; Wed, 26 Aug 2009 15:01:30 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9F3DB8FC23 for ; Wed, 26 Aug 2009 15:01:30 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7QF1Unk058117 for ; Wed, 26 Aug 2009 15:01:30 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7QF1UGo058115 for perforce@freebsd.org; Wed, 26 Aug 2009 15:01:30 GMT (envelope-from rene@FreeBSD.org) Date: Wed, 26 Aug 2009 15:01:30 GMT Message-Id: <200908261501.n7QF1UGo058115@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 167836 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Aug 2009 15:01:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=167836 Change 167836 by rene@rene_self on 2009/08/26 15:00:34 MFen handbook/x11 1.192 -> 1.193 Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml#13 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml#13 (text+ko) ==== @@ -3,7 +3,7 @@ $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml,v 1.19 2009/08/26 06:04:10 rene Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/x11/chapter.sgml - %SRCID% 1.192 + %SRCID% 1.193 --> @@ -518,13 +518,30 @@ Deze toetsencombinatie stond standaard aan tot en met - versie 7.3 van &xorg;. Voeg de - volgende regel toe aan de sectie - ServerLayout of - ServerFlags van het instellingenbestand om - het in versie 7.4 en hoger aan te zetten: + versie 7.3 van &xorg;. Om het in versie + 7.4 en hoger aan te zetten, kunt u òfwel het volgende commando + uitvoeren vanaf elke X-terminal-emulator: + + &prompt.user; setxkbmap -option terminate:ctrl_alt_bksp + + òf een instellingenbestand voor het toetsenbord genaamd + x11-input.fdi voor + hald aanmaken en het in de map /usr/local/etc/hal/fdi/policy opslaan. + Dit bestand dient het volgende te bevatten: + + <?xml version="1.0" encoding="ISO-8859-1"?> +<deviceinfo version="0.2"> + <device> + <match key="info.capabilities" contains="input.keyboard"> + <merge key="input.xkb.options" type="string">terminate:ctrl_alt_bksp</merge> + </match> + </device> +</deviceinfo> - Option "DontZap" "Off" + U moet uw machine opnieuw opstarten om + hald te forceren om dit bestand te + lezen. Als de muis niet werkt, dan moet deze eerst ingesteld From owner-p4-projects@FreeBSD.ORG Wed Aug 26 18:45:37 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6E6EA106568D; Wed, 26 Aug 2009 18:45:37 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1AE23106568B for ; Wed, 26 Aug 2009 18:45:37 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0A1D78FC22 for ; Wed, 26 Aug 2009 18:45:37 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7QIjan7089435 for ; Wed, 26 Aug 2009 18:45:36 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7QIja3X089433 for perforce@freebsd.org; Wed, 26 Aug 2009 18:45:36 GMT (envelope-from mav@freebsd.org) Date: Wed, 26 Aug 2009 18:45:36 GMT Message-Id: <200908261845.n7QIja3X089433@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167851 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Aug 2009 18:45:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=167851 Change 167851 by mav@mav_mavbook on 2009/08/26 18:44:46 Read CAP2 register only for AHCI 1.2. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#56 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#56 (text+ko) ==== @@ -122,7 +122,7 @@ struct ahci_controller *ctlr = device_get_softc(dev); device_t child; int error, unit, speed; - u_int32_t version, caps, caps2; + u_int32_t version; ctlr->dev = dev; resource_int_value(device_get_name(dev), @@ -163,46 +163,49 @@ } /* Announce HW capabilities. */ version = ATA_INL(ctlr->r_mem, AHCI_VS); - caps = ATA_INL(ctlr->r_mem, AHCI_CAP); - caps2 = ATA_INL(ctlr->r_mem, AHCI_CAP2); - speed = (caps & AHCI_CAP_ISS) >> AHCI_CAP_ISS_SHIFT; + ctlr->caps = ATA_INL(ctlr->r_mem, AHCI_CAP); + if (version >= 0x00010020) + ctlr->caps2 = ATA_INL(ctlr->r_mem, AHCI_CAP2); + speed = (ctlr->caps & AHCI_CAP_ISS) >> AHCI_CAP_ISS_SHIFT; device_printf(dev, "AHCI v%x.%02x with %d %sGbps ports, Port Multiplier %s\n", ((version >> 20) & 0xf0) + ((version >> 16) & 0x0f), ((version >> 4) & 0xf0) + (version & 0x0f), - (caps & AHCI_CAP_NPMASK) + 1, + (ctlr->caps & AHCI_CAP_NPMASK) + 1, ((speed == 1) ? "1.5":((speed == 2) ? "3": ((speed == 3) ? "6":"?"))), - (caps & AHCI_CAP_SPM) ? + (ctlr->caps & AHCI_CAP_SPM) ? "supported" : "not supported"); if (bootverbose) { device_printf(dev, "Caps:%s%s%s%s%s%s%s%s %sGbps", - (caps & AHCI_CAP_64BIT) ? " 64bit":"", - (caps & AHCI_CAP_SNCQ) ? " NCQ":"", - (caps & AHCI_CAP_SSNTF) ? " SNTF":"", - (caps & AHCI_CAP_SMPS) ? " MPS":"", - (caps & AHCI_CAP_SSS) ? " SS":"", - (caps & AHCI_CAP_SALP) ? " ALP":"", - (caps & AHCI_CAP_SAL) ? " AL":"", - (caps & AHCI_CAP_SCLO) ? " CLO":"", + (ctlr->caps & AHCI_CAP_64BIT) ? " 64bit":"", + (ctlr->caps & AHCI_CAP_SNCQ) ? " NCQ":"", + (ctlr->caps & AHCI_CAP_SSNTF) ? " SNTF":"", + (ctlr->caps & AHCI_CAP_SMPS) ? " MPS":"", + (ctlr->caps & AHCI_CAP_SSS) ? " SS":"", + (ctlr->caps & AHCI_CAP_SALP) ? " ALP":"", + (ctlr->caps & AHCI_CAP_SAL) ? " AL":"", + (ctlr->caps & AHCI_CAP_SCLO) ? " CLO":"", ((speed == 1) ? "1.5":((speed == 2) ? "3": ((speed == 3) ? "6":"?")))); printf("%s%s%s%s%s%s %dcmd%s%s%s %dports\n", - (caps & AHCI_CAP_SAM) ? " AM":"", - (caps & AHCI_CAP_SPM) ? " PM":"", - (caps & AHCI_CAP_FBSS) ? " FBS":"", - (caps & AHCI_CAP_PMD) ? " PMD":"", - (caps & AHCI_CAP_SSC) ? " SSC":"", - (caps & AHCI_CAP_PSC) ? " PSC":"", - ((caps & AHCI_CAP_NCS) >> AHCI_CAP_NCS_SHIFT) + 1, - (caps & AHCI_CAP_CCCS) ? " CCC":"", - (caps & AHCI_CAP_EMS) ? " EM":"", - (caps & AHCI_CAP_SXS) ? " eSATA":"", - (caps & AHCI_CAP_NPMASK) + 1); + (ctlr->caps & AHCI_CAP_SAM) ? " AM":"", + (ctlr->caps & AHCI_CAP_SPM) ? " PM":"", + (ctlr->caps & AHCI_CAP_FBSS) ? " FBS":"", + (ctlr->caps & AHCI_CAP_PMD) ? " PMD":"", + (ctlr->caps & AHCI_CAP_SSC) ? " SSC":"", + (ctlr->caps & AHCI_CAP_PSC) ? " PSC":"", + ((ctlr->caps & AHCI_CAP_NCS) >> AHCI_CAP_NCS_SHIFT) + 1, + (ctlr->caps & AHCI_CAP_CCCS) ? " CCC":"", + (ctlr->caps & AHCI_CAP_EMS) ? " EM":"", + (ctlr->caps & AHCI_CAP_SXS) ? " eSATA":"", + (ctlr->caps & AHCI_CAP_NPMASK) + 1); + } + if (bootverbose && version >= 0x00010020) { device_printf(dev, "Caps2:%s%s%s\n", - (caps2 & AHCI_CAP2_APST) ? " APST":"", - (caps2 & AHCI_CAP2_NVMP) ? " NVMP":"", - (caps2 & AHCI_CAP2_BOH) ? " BOH":""); + (ctlr->caps2 & AHCI_CAP2_APST) ? " APST":"", + (ctlr->caps2 & AHCI_CAP2_NVMP) ? " NVMP":"", + (ctlr->caps2 & AHCI_CAP2_BOH) ? " BOH":""); } /* Attach all channels on this controller */ for (unit = 0; unit < ctlr->channels; unit++) { @@ -552,8 +555,8 @@ ch->dev = dev; ch->unit = (intptr_t)device_get_ivars(dev); - ch->caps = ATA_INL(ctlr->r_mem, AHCI_CAP); - ch->caps2 = ATA_INL(ctlr->r_mem, AHCI_CAP2); + ch->caps = ctlr->caps; + ch->caps2 = ctlr->caps2; ch->numslots = ((ch->caps & AHCI_CAP_NCS) >> AHCI_CAP_NCS_SHIFT) + 1, mtx_init(&ch->mtx, "AHCI channel lock", NULL, MTX_DEF); resource_int_value(device_get_name(dev), From owner-p4-projects@FreeBSD.ORG Wed Aug 26 19:15:10 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 162051065695; Wed, 26 Aug 2009 19:15:10 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CE6BA106568E for ; Wed, 26 Aug 2009 19:15:09 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BCE4D8FC30 for ; Wed, 26 Aug 2009 19:15:09 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7QJF9s2092479 for ; Wed, 26 Aug 2009 19:15:09 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7QJF9nh092477 for perforce@freebsd.org; Wed, 26 Aug 2009 19:15:09 GMT (envelope-from truncs@FreeBSD.org) Date: Wed, 26 Aug 2009 19:15:09 GMT Message-Id: <200908261915.n7QJF9nh092477@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 167854 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Aug 2009 19:15:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=167854 Change 167854 by truncs@aditya on 2009/08/26 19:14:43 Fixes provided by bde@ Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_readwrite.c#2 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_readwrite.c#2 (text+ko) ==== @@ -35,7 +35,7 @@ * @(#)ufs_readwrite.c 8.7 (Berkeley) 1/21/94 * $FreeBSD: src/sys/gnu/fs/ext2fs/ext2_readwrite.c,v 1.31 2005/01/06 18:27:30 imp Exp $ */ - +/* XXX TODO: remove these obfuscations (as in ffs_vnops.c). */ #define BLKSIZE(a, b, c) blksize(a, b, c) #define FS struct m_ext2fs #define I_FS i_e2fs @@ -47,7 +47,6 @@ /* * Vnode op for reading. */ -/* ARGSUSED */ static int READ(ap) struct vop_read_args /* { @@ -65,8 +64,8 @@ daddr_t lbn, nextlbn; off_t bytesinfile; long size, xfersize, blkoffset; - int error, orig_resid; - int seqcount = ap->a_ioflag >> IO_SEQSHIFT; + int error, orig_resid, seqcount; + seqcount = ap->a_ioflag >> IO_SEQSHIFT; u_short mode; vp = ap->a_vp; @@ -84,11 +83,14 @@ } else if (vp->v_type != VREG && vp->v_type != VDIR) panic("%s: type %d", READ_S, vp->v_type); #endif + orig_resid = uio->uio_resid; + KASSERT(orig_resid >= 0, ("ext2_read: uio->uio_resid < 0")); + if (orig_resid == 0) + return (0); + KASSERT(uio->uio_offset >= 0, ("ext2_read: uio->uio_offset < 0")); fs = ip->I_FS; - if ((uoff_t)uio->uio_offset > fs->e2fs_maxfilesize) - return (EFBIG); - - orig_resid = uio->uio_resid; + if (uio->uio_offset < ip->i_size && uio->uio_offset >= fs->e2fs_maxfilesize) + return (EOVERFLOW); for (error = 0, bp = NULL; uio->uio_resid > 0; bp = NULL) { if ((bytesinfile = ip->i_size - uio->uio_offset) <= 0) break; @@ -106,9 +108,8 @@ if (lblktosize(fs, nextlbn) >= ip->i_size) error = bread(vp, lbn, size, NOCRED, &bp); else if ((vp->v_mount->mnt_flag & MNT_NOCLUSTERR) == 0) - error = cluster_read(vp, - ip->i_size, lbn, size, NOCRED, - uio->uio_resid, (ap->a_ioflag >> IO_SEQSHIFT), &bp); + error = cluster_read(vp, ip->i_size, lbn, size, + NOCRED, blkoffset + uio->uio_resid, seqcount, &bp); else if (seqcount > 1) { int nextsize = BLKSIZE(fs, ip, nextlbn); error = breadn(vp, lbn, @@ -134,8 +135,8 @@ break; xfersize = size; } - error = - uiomove((char *)bp->b_data + blkoffset, (int)xfersize, uio); + error = uiomove((char *)bp->b_data + blkoffset, + (int)xfersize, uio); if (error) break; @@ -143,7 +144,7 @@ } if (bp != NULL) bqrelse(bp); - if (orig_resid > 0 && (error == 0 || uio->uio_resid != orig_resid) && + if ((error == 0 || uio->uio_resid != orig_resid) && (vp->v_mount->mnt_flag & MNT_NOATIME) == 0) ip->i_flag |= IN_ACCESS; return (error); @@ -169,11 +170,10 @@ struct thread *td; daddr_t lbn; off_t osize; - int seqcount; - int blkoffset, error, flags, ioflag, resid, size, xfersize; + int blkoffset, error, flags, ioflag, resid, size, seqcount, xfersize; ioflag = ap->a_ioflag; - seqcount = ap->a_ioflag >> IO_SEQSHIFT; + seqcount = ioflag >> IO_SEQSHIFT; uio = ap->a_uio; vp = ap->a_vp; ip = VTOI(vp); @@ -193,16 +193,19 @@ case VLNK: break; case VDIR: + /* XXX differs from ffs -- this is called from ext2_mkdir(). */ if ((ioflag & IO_SYNC) == 0) - panic("%s: nonsync dir write", WRITE_S); + panic("ext2_write: nonsync dir write"); break; default: - panic("%s: type", WRITE_S); + panic("ext2_write: type %p %d (%jd,%d)", (void *)vp, vp->v_type, + (intmax_t)uio->uio_offset, uio->uio_resid); } + KASSERT(uio->uio_resid >= 0, ("ext2_write: uio->uio_resid < 0")); + KASSERT(uio->uio_offset >= 0, ("ext2_write: uio->uio_offset < 0")); fs = ip->I_FS; - if (uio->uio_offset < 0 || - (uoff_t)uio->uio_offset + uio->uio_resid > fs->e2fs_maxfilesize) + if ((uoff_t)uio->uio_offset + uio->uio_resid > fs->e2fs_maxfilesize) return (EFBIG); /* * Maybe this should be above the vnode op call, but so long as @@ -230,33 +233,22 @@ xfersize = fs->e2fs_fsize - blkoffset; if (uio->uio_resid < xfersize) xfersize = uio->uio_resid; - if (uio->uio_offset + xfersize > ip->i_size) vnode_pager_setsize(vp, uio->uio_offset + xfersize); /* * Avoid a data-consistency race between write() and mmap() - * by ensuring that newly allocated blocks are zerod. The + * by ensuring that newly allocated blocks are zeroed. The * race can occur even in the case where the write covers * the entire block. */ flags |= B_CLRBUF; -#if 0 - if (fs->e2fs_fsize > xfersize) - flags |= B_CLRBUF; - else - flags &= ~B_CLRBUF; -#endif - - error = ext2_balloc(ip, - lbn, blkoffset + xfersize, ap->a_cred, &bp, flags); - if (error) + error = ext2_balloc(ip, lbn, blkoffset + xfersize, + ap->a_cred, &bp, flags); + if (error != 0) break; - - if (uio->uio_offset + xfersize > ip->i_size) { + if (uio->uio_offset + xfersize > ip->i_size) ip->i_size = uio->uio_offset + xfersize; - } - size = BLKSIZE(fs, ip, lbn) - bp->b_resid; if (size < xfersize) xfersize = size; @@ -264,7 +256,7 @@ error = uiomove((char *)bp->b_data + blkoffset, (int)xfersize, uio); if ((ioflag & IO_VMIO) && - (LIST_FIRST(&bp->b_dep) == NULL)) /* in ext2fs? */ + LIST_FIRST(&bp->b_dep) == NULL) /* in ext2fs? */ bp->b_flags |= B_RELBUF; if (ioflag & IO_SYNC) { @@ -282,23 +274,34 @@ } if (error || xfersize == 0) break; - ip->i_flag |= IN_CHANGE | IN_UPDATE; } /* * If we successfully wrote any data, and we are not the superuser * we clear the setuid and setgid bits as a precaution against * tampering. + * XXX too late, the tamperer may have opened the file while we + * were writing the data (or before). + * XXX too early, if (error && ioflag & IO_UNIT) then we will + * unwrite the data. */ if (resid > uio->uio_resid && ap->a_cred && ap->a_cred->cr_uid != 0) ip->i_mode &= ~(ISUID | ISGID); if (error) { + /* + * XXX should truncate to the last successfully written + * data if the uiomove() failed. + */ if (ioflag & IO_UNIT) { (void)ext2_truncate(vp, osize, ioflag & IO_SYNC, ap->a_cred, uio->uio_td); uio->uio_offset -= resid - uio->uio_resid; uio->uio_resid = resid; } - } else if (resid > uio->uio_resid && (ioflag & IO_SYNC)) - error = ext2_update(vp, 1); + } + if (uio->uio_resid != resid) { + ip->i_flag |= IN_CHANGE | IN_UPDATE; + if (ioflag & IO_SYNC) + error = ext2_update(vp, 1); + } return (error); } From owner-p4-projects@FreeBSD.ORG Wed Aug 26 20:08:08 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1B0B91065693; Wed, 26 Aug 2009 20:08:08 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D345F106568B for ; Wed, 26 Aug 2009 20:08:07 +0000 (UTC) (envelope-from peter@wemm.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C23218FC19 for ; Wed, 26 Aug 2009 20:08:07 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7QK87FR097358 for ; Wed, 26 Aug 2009 20:08:07 GMT (envelope-from peter@wemm.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7QK87kR097356 for perforce@freebsd.org; Wed, 26 Aug 2009 20:08:07 GMT (envelope-from peter@wemm.org) Date: Wed, 26 Aug 2009 20:08:07 GMT Message-Id: <200908262008.n7QK87kR097356@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@wemm.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 167856 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Aug 2009 20:08:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=167856 Change 167856 by peter@peter_daintree on 2009/08/26 20:07:19 Attempt to provoke ticks wraparound issues earlier. It'll catch some of the serious ones - like the scheduler clock stop after 24 days. Affected files ... .. //depot/projects/hammer/sys/kern/kern_clock.c#49 edit Differences ... ==== //depot/projects/hammer/sys/kern/kern_clock.c#49 (text+ko) ==== @@ -250,6 +250,11 @@ #ifdef SW_WATCHDOG EVENTHANDLER_REGISTER(watchdog_list, watchdog_config, NULL, 0); #endif + /* + * Arrange for ticks to go negative just 5 minutes after boot + * to help catch sign problems sooner. + */ + ticks = INT_MAX - (hz * 5 * 60); } /* From owner-p4-projects@FreeBSD.ORG Wed Aug 26 20:08:09 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 57CFA10656D9; Wed, 26 Aug 2009 20:08:08 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 19C63106568D for ; Wed, 26 Aug 2009 20:08:08 +0000 (UTC) (envelope-from peter@wemm.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E33778FC21 for ; Wed, 26 Aug 2009 20:08:07 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7QK87PW097363 for ; Wed, 26 Aug 2009 20:08:07 GMT (envelope-from peter@wemm.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7QK87Fh097361 for perforce@freebsd.org; Wed, 26 Aug 2009 20:08:07 GMT (envelope-from peter@wemm.org) Date: Wed, 26 Aug 2009 20:08:07 GMT Message-Id: <200908262008.n7QK87Fh097361@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@wemm.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 167857 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Aug 2009 20:08:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=167857 Change 167857 by peter@peter_melody on 2009/08/26 20:08:04 Catch up to the vimage moving target. Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/minidump_machdep.c#12 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/minidump_machdep.c#12 (text) ==== @@ -35,7 +35,6 @@ #include #include #include -#include #include #include #include From owner-p4-projects@FreeBSD.ORG Wed Aug 26 21:17:25 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2D42E1065696; Wed, 26 Aug 2009 21:17:25 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E48FC106568D for ; Wed, 26 Aug 2009 21:17:24 +0000 (UTC) (envelope-from peter@wemm.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D136B8FC26 for ; Wed, 26 Aug 2009 21:17:24 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7QLHOGD014242 for ; Wed, 26 Aug 2009 21:17:24 GMT (envelope-from peter@wemm.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7QLHOER014240 for perforce@freebsd.org; Wed, 26 Aug 2009 21:17:24 GMT (envelope-from peter@wemm.org) Date: Wed, 26 Aug 2009 21:17:24 GMT Message-Id: <200908262117.n7QLHOER014240@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@wemm.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 167863 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Aug 2009 21:17:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=167863 Change 167863 by peter@peter_melody on 2009/08/26 21:16:33 IFC @167861 Affected files ... .. //depot/projects/hammer/ObsoleteFiles.inc#70 integrate .. //depot/projects/hammer/UPDATING#135 integrate .. //depot/projects/hammer/bin/sh/eval.c#21 integrate .. //depot/projects/hammer/bin/sh/exec.c#13 integrate .. //depot/projects/hammer/bin/sh/exec.h#6 integrate .. //depot/projects/hammer/bin/sh/mknodes.c#5 integrate .. //depot/projects/hammer/bin/sh/nodes.c.pat#5 integrate .. //depot/projects/hammer/contrib/traceroute/as.c#2 integrate .. //depot/projects/hammer/contrib/traceroute/as.h#2 integrate .. //depot/projects/hammer/contrib/traceroute/traceroute.c#11 integrate .. //depot/projects/hammer/crypto/openssl/crypto/pqueue/pqueue.c#2 integrate .. //depot/projects/hammer/crypto/openssl/crypto/pqueue/pqueue.h#2 integrate .. //depot/projects/hammer/crypto/openssl/ssl/d1_both.c#4 integrate .. //depot/projects/hammer/crypto/openssl/ssl/d1_pkt.c#4 integrate .. //depot/projects/hammer/etc/defaults/periodic.conf#24 integrate .. //depot/projects/hammer/etc/defaults/rc.conf#98 integrate .. //depot/projects/hammer/etc/freebsd-update.conf#7 integrate .. //depot/projects/hammer/etc/network.subr#30 integrate .. //depot/projects/hammer/etc/rc.d/Makefile#68 integrate .. //depot/projects/hammer/etc/rc.d/ipsec#14 integrate .. //depot/projects/hammer/etc/rc.d/static_arp#1 branch .. //depot/projects/hammer/etc/rc.d/wpa_supplicant#5 integrate .. //depot/projects/hammer/gnu/usr.bin/groff/tmac/mdoc.local#35 integrate .. //depot/projects/hammer/gnu/usr.bin/patch/pch.c#3 integrate .. //depot/projects/hammer/lib/libc/db/hash/hash.c#7 integrate .. //depot/projects/hammer/lib/libc/stdlib/ptsname.3#3 integrate .. //depot/projects/hammer/lib/libpmc/pmc.3#20 integrate .. //depot/projects/hammer/lib/libpmc/pmc.atom.3#3 integrate .. //depot/projects/hammer/lib/libpmc/pmc.core.3#4 integrate .. //depot/projects/hammer/lib/libpmc/pmc.core2.3#4 integrate .. //depot/projects/hammer/lib/libpmc/pmc.iaf.3#3 integrate .. //depot/projects/hammer/lib/libpmc/pmc.k7.3#3 integrate .. //depot/projects/hammer/lib/libpmc/pmc.k8.3#3 integrate .. //depot/projects/hammer/lib/libpmc/pmc.p4.3#3 integrate .. //depot/projects/hammer/lib/libpmc/pmc.p5.3#3 integrate .. //depot/projects/hammer/lib/libpmc/pmc.p6.3#3 integrate .. //depot/projects/hammer/lib/libpmc/pmc_capabilities.3#4 integrate .. //depot/projects/hammer/lib/libpmc/pmc_read.3#2 integrate .. //depot/projects/hammer/release/Makefile#107 integrate .. //depot/projects/hammer/release/scripts/lib32-make.sh#2 integrate .. //depot/projects/hammer/release/scripts/mm-mtree.sh#1 branch .. //depot/projects/hammer/sbin/geom/class/label/glabel.8#14 integrate .. //depot/projects/hammer/sbin/route/route.c#19 integrate .. //depot/projects/hammer/sbin/savecore/savecore.c#18 integrate .. //depot/projects/hammer/share/examples/cvsup/stable-supfile#9 integrate .. //depot/projects/hammer/share/man/man5/freebsd-update.conf.5#4 integrate .. //depot/projects/hammer/share/man/man5/rc.conf.5#98 integrate .. //depot/projects/hammer/share/man/man5/tmpfs.5#3 integrate .. //depot/projects/hammer/share/man/man9/Makefile#96 integrate .. //depot/projects/hammer/share/man/man9/kproc.9#4 integrate .. //depot/projects/hammer/share/man/man9/kthread.9#10 integrate .. //depot/projects/hammer/share/man/man9/sglist.9#2 integrate .. //depot/projects/hammer/sys/amd64/amd64/elf_machdep.c#41 integrate .. //depot/projects/hammer/sys/amd64/amd64/machdep.c#178 integrate .. //depot/projects/hammer/sys/amd64/amd64/trap.c#111 integrate .. //depot/projects/hammer/sys/amd64/linux32/linux32_sysvec.c#31 integrate .. //depot/projects/hammer/sys/arm/arm/undefined.c#13 integrate .. //depot/projects/hammer/sys/arm/conf/SHEEVAPLUG#1 branch .. //depot/projects/hammer/sys/arm/mv/common.c#6 integrate .. //depot/projects/hammer/sys/arm/mv/discovery/db78xxx.c#5 integrate .. //depot/projects/hammer/sys/arm/mv/kirkwood/db88f6xxx.c#5 integrate .. //depot/projects/hammer/sys/arm/mv/kirkwood/files.db88f6xxx#2 integrate .. //depot/projects/hammer/sys/arm/mv/kirkwood/files.kirkwood#1 branch .. //depot/projects/hammer/sys/arm/mv/kirkwood/files.sheevaplug#1 branch .. //depot/projects/hammer/sys/arm/mv/kirkwood/sheevaplug.c#1 branch .. //depot/projects/hammer/sys/arm/mv/kirkwood/std.db88f6xxx#2 integrate .. //depot/projects/hammer/sys/arm/mv/kirkwood/std.kirkwood#1 branch .. //depot/projects/hammer/sys/arm/mv/kirkwood/std.sheevaplug#1 branch .. //depot/projects/hammer/sys/arm/mv/mv_machdep.c#6 integrate .. //depot/projects/hammer/sys/arm/mv/mvreg.h#6 integrate .. //depot/projects/hammer/sys/arm/mv/mvvar.h#4 integrate .. //depot/projects/hammer/sys/arm/mv/orion/db88f5xxx.c#5 integrate .. //depot/projects/hammer/sys/arm/xscale/ixp425/ixdp425_pci.c#3 integrate .. //depot/projects/hammer/sys/cddl/compat/opensolaris/rpc/xdr.h#4 branch .. //depot/projects/hammer/sys/cddl/compat/opensolaris/sys/mutex.h#4 integrate .. //depot/projects/hammer/sys/cddl/compat/opensolaris/sys/proc.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#7 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/sys/callb.h#3 integrate .. //depot/projects/hammer/sys/compat/ia32/ia32_sysvec.c#26 integrate .. //depot/projects/hammer/sys/compat/linux/linux_ioctl.c#42 integrate .. //depot/projects/hammer/sys/conf/files#201 integrate .. //depot/projects/hammer/sys/conf/newvers.sh#27 integrate .. //depot/projects/hammer/sys/conf/options#145 integrate .. //depot/projects/hammer/sys/conf/options.arm#19 integrate .. //depot/projects/hammer/sys/contrib/altq/altq/altq_subr.c#15 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pf_if.c#19 integrate .. //depot/projects/hammer/sys/dev/aac/aac.c#53 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi.c#92 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_battery.c#23 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_cpu.c#47 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_dock.c#8 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_thermal.c#37 integrate .. //depot/projects/hammer/sys/dev/adb/adb_bus.c#6 integrate .. //depot/projects/hammer/sys/dev/alc/if_alc.c#3 integrate .. //depot/projects/hammer/sys/dev/amdtemp/amdtemp.c#3 integrate .. //depot/projects/hammer/sys/dev/amr/amr.c#44 integrate .. //depot/projects/hammer/sys/dev/asmc/asmc.c#7 integrate .. //depot/projects/hammer/sys/dev/ata/ata-all.c#76 integrate .. //depot/projects/hammer/sys/dev/atkbdc/psm.c#19 integrate .. //depot/projects/hammer/sys/dev/bktr/bktr_os.c#23 integrate .. //depot/projects/hammer/sys/dev/drm/drmP.h#24 integrate .. //depot/projects/hammer/sys/dev/drm/drm_bufs.c#10 integrate .. //depot/projects/hammer/sys/dev/drm/drm_drv.c#15 integrate .. //depot/projects/hammer/sys/dev/drm/drm_fops.c#6 integrate .. //depot/projects/hammer/sys/dev/drm/drm_sysctl.c#7 integrate .. //depot/projects/hammer/sys/dev/drm/r600_blit.c#1 branch .. //depot/projects/hammer/sys/dev/drm/r600_cp.c#4 integrate .. //depot/projects/hammer/sys/dev/drm/radeon_cp.c#22 integrate .. //depot/projects/hammer/sys/dev/drm/radeon_cs.c#1 branch .. //depot/projects/hammer/sys/dev/drm/radeon_drm.h#15 integrate .. //depot/projects/hammer/sys/dev/drm/radeon_drv.h#19 integrate .. //depot/projects/hammer/sys/dev/drm/radeon_state.c#17 integrate .. //depot/projects/hammer/sys/dev/hptrr/hptrr_osm_bsd.c#4 integrate .. //depot/projects/hammer/sys/dev/ips/ips_pci.c#15 integrate .. //depot/projects/hammer/sys/dev/ixgbe/ixgbe.c#9 integrate .. //depot/projects/hammer/sys/dev/mfi/mfi.c#23 integrate .. //depot/projects/hammer/sys/dev/mge/if_mge.c#6 integrate .. //depot/projects/hammer/sys/dev/mlx/mlx.c#17 integrate .. //depot/projects/hammer/sys/dev/mmc/mmc.c#10 integrate .. //depot/projects/hammer/sys/dev/pccbb/pccbb.c#55 integrate .. //depot/projects/hammer/sys/dev/pst/pst-iop.c#9 integrate .. //depot/projects/hammer/sys/dev/pty/pty.c#1 branch .. //depot/projects/hammer/sys/dev/re/if_re.c#73 integrate .. //depot/projects/hammer/sys/dev/rp/rp.c#27 integrate .. //depot/projects/hammer/sys/dev/snp/snp.c#33 integrate .. //depot/projects/hammer/sys/dev/sound/pci/hda/hdac.c#33 integrate .. //depot/projects/hammer/sys/dev/sound/usb/uaudio.c#23 integrate .. //depot/projects/hammer/sys/dev/syscons/scvgarndr.c#11 integrate .. //depot/projects/hammer/sys/dev/syscons/scvidctl.c#12 integrate .. //depot/projects/hammer/sys/dev/twe/twe.c#15 integrate .. //depot/projects/hammer/sys/dev/usb/controller/usb_controller.c#7 integrate .. //depot/projects/hammer/sys/dev/usb/input/ukbd.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/misc/ufm.c#4 integrate .. //depot/projects/hammer/sys/dev/usb/net/if_aue.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/net/if_cdce.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/net/usb_ethernet.c#7 integrate .. //depot/projects/hammer/sys/dev/usb/serial/uipaq.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/serial/uvisor.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/storage/umass.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/storage/urio.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/usb.h#16 integrate .. //depot/projects/hammer/sys/dev/usb/usb_busdma.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/usb_compat_linux.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/usb_dev.c#7 integrate .. //depot/projects/hammer/sys/dev/usb/usb_device.c#7 integrate .. //depot/projects/hammer/sys/dev/usb/usb_device.h#6 integrate .. //depot/projects/hammer/sys/dev/usb/usb_handle_request.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/usb_hub.c#7 integrate .. //depot/projects/hammer/sys/dev/usb/usb_process.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/usb_process.h#6 integrate .. //depot/projects/hammer/sys/dev/usb/usb_transfer.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/usbdevs#122 integrate .. //depot/projects/hammer/sys/dev/usb/wlan/if_upgt.c#5 integrate .. //depot/projects/hammer/sys/dev/xen/blkback/blkback.c#4 integrate .. //depot/projects/hammer/sys/dev/xen/console/console.c#8 integrate .. //depot/projects/hammer/sys/dev/xen/netback/netback.c#4 integrate .. //depot/projects/hammer/sys/fs/fifofs/fifo_vnops.c#50 integrate .. //depot/projects/hammer/sys/fs/nfsclient/nfs_clvnops.c#5 integrate .. //depot/projects/hammer/sys/i386/acpica/acpi_machdep.c#36 integrate .. //depot/projects/hammer/sys/i386/bios/smapi.c#13 integrate .. //depot/projects/hammer/sys/i386/bios/smbios.c#8 integrate .. //depot/projects/hammer/sys/i386/bios/vpd.c#8 integrate .. //depot/projects/hammer/sys/i386/i386/elf_machdep.c#21 integrate .. //depot/projects/hammer/sys/i386/i386/machdep.c#95 integrate .. //depot/projects/hammer/sys/i386/i386/trap.c#67 integrate .. //depot/projects/hammer/sys/i386/isa/vesa.c#16 integrate .. //depot/projects/hammer/sys/i386/linux/linux_sysvec.c#41 integrate .. //depot/projects/hammer/sys/isa/isahint.c#8 integrate .. //depot/projects/hammer/sys/kern/imgact_elf.c#54 integrate .. //depot/projects/hammer/sys/kern/kern_cons.c#3 integrate .. //depot/projects/hammer/sys/kern/kern_jail.c#44 integrate .. //depot/projects/hammer/sys/kern/kern_subr.c#27 integrate .. //depot/projects/hammer/sys/kern/kern_uuid.c#20 integrate .. //depot/projects/hammer/sys/kern/subr_bus.c#70 integrate .. //depot/projects/hammer/sys/kern/subr_sglist.c#2 integrate .. //depot/projects/hammer/sys/kern/sys_generic.c#45 integrate .. //depot/projects/hammer/sys/kern/tty_pts.c#20 integrate .. //depot/projects/hammer/sys/kern/tty_pty.c#43 delete .. //depot/projects/hammer/sys/kern/tty_ttydisc.c#8 integrate .. //depot/projects/hammer/sys/kern/uipc_domain.c#26 integrate .. //depot/projects/hammer/sys/kern/uipc_socket.c#96 integrate .. //depot/projects/hammer/sys/kern/vfs_syscalls.c#93 integrate .. //depot/projects/hammer/sys/modules/drm/radeon/Makefile#6 integrate .. //depot/projects/hammer/sys/modules/pty/Makefile#1 branch .. //depot/projects/hammer/sys/net/bridgestp.c#25 integrate .. //depot/projects/hammer/sys/net/flowtable.c#4 integrate .. //depot/projects/hammer/sys/net/if.c#92 integrate .. //depot/projects/hammer/sys/net/if_bridge.c#51 integrate .. //depot/projects/hammer/sys/net/if_ef.c#25 integrate .. //depot/projects/hammer/sys/net/if_llatbl.c#5 integrate .. //depot/projects/hammer/sys/net/if_llatbl.h#3 integrate .. //depot/projects/hammer/sys/net/if_var.h#60 integrate .. //depot/projects/hammer/sys/net/if_vlan.c#52 integrate .. //depot/projects/hammer/sys/netgraph/ng_gif.c#19 integrate .. //depot/projects/hammer/sys/netinet/in.c#42 integrate .. //depot/projects/hammer/sys/netinet/ip_carp.c#36 integrate .. //depot/projects/hammer/sys/netinet/ip_divert.c#53 integrate .. //depot/projects/hammer/sys/netinet/ip_divert.h#3 integrate .. //depot/projects/hammer/sys/netinet/ip_fw.h#44 integrate .. //depot/projects/hammer/sys/netinet/ipfw/ip_fw2.c#3 integrate .. //depot/projects/hammer/sys/netinet/ipfw/ip_fw_pfil.c#3 integrate .. //depot/projects/hammer/sys/netinet/sctp_indata.c#31 integrate .. //depot/projects/hammer/sys/netinet/tcp_timewait.c#15 integrate .. //depot/projects/hammer/sys/netinet6/icmp6.c#47 integrate .. //depot/projects/hammer/sys/netinet6/in6.c#44 integrate .. //depot/projects/hammer/sys/netinet6/in6_ifattach.c#35 integrate .. //depot/projects/hammer/sys/netinet6/nd6.c#47 integrate .. //depot/projects/hammer/sys/netipsec/xform_ipip.c#24 integrate .. //depot/projects/hammer/sys/nfsclient/bootp_subr.c#30 integrate .. //depot/projects/hammer/sys/nfsclient/nfs_vnops.c#74 integrate .. //depot/projects/hammer/sys/pc98/cbus/fdc.c#10 integrate .. //depot/projects/hammer/sys/pci/if_rlreg.h#45 integrate .. //depot/projects/hammer/sys/rpc/clnt_dg.c#7 integrate .. //depot/projects/hammer/sys/rpc/clnt_rc.c#10 integrate .. //depot/projects/hammer/sys/rpc/clnt_vc.c#9 integrate .. //depot/projects/hammer/sys/rpc/rpc_generic.c#4 integrate .. //depot/projects/hammer/sys/rpc/svc_dg.c#5 integrate .. //depot/projects/hammer/sys/rpc/svc_generic.c#5 integrate .. //depot/projects/hammer/sys/rpc/svc_vc.c#7 integrate .. //depot/projects/hammer/sys/sys/bus.h#31 integrate .. //depot/projects/hammer/sys/sys/cons.h#12 integrate .. //depot/projects/hammer/sys/sys/imgact_elf.h#11 integrate .. //depot/projects/hammer/sys/sys/param.h#132 integrate .. //depot/projects/hammer/sys/sys/sglist.h#2 integrate .. //depot/projects/hammer/sys/sys/ttydisc.h#4 integrate .. //depot/projects/hammer/sys/xen/xenbus/xenbus_probe.c#6 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/Dependencies#4 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/Doxyfile-cam#3 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/Doxyfile-crypto#3 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/Doxyfile-dev_pci#3 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/Doxyfile-dev_sound#3 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/Doxyfile-dev_usb#3 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/Doxyfile-geom#3 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/Doxyfile-kern#3 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/Doxyfile-libkern#3 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/Doxyfile-linux#3 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/Doxyfile-net80211#3 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/Doxyfile-netgraph#3 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/Doxyfile-netinet#3 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/Doxyfile-netinet6#3 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/Doxyfile-netipsec#3 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/Doxyfile-opencrypto#3 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/Doxyfile-vm#3 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/Makefile#4 integrate .. //depot/projects/hammer/tools/kerneldoc/subsys/common-Doxyfile#3 integrate .. //depot/projects/hammer/tools/regression/bin/sh/execution/func1.0#1 branch .. //depot/projects/hammer/tools/regression/poll/Makefile#2 integrate .. //depot/projects/hammer/tools/regression/poll/sockpoll.c#1 branch .. //depot/projects/hammer/tools/tools/vimage/Makefile#3 integrate .. //depot/projects/hammer/tools/tools/vimage/vimage.8#2 integrate .. //depot/projects/hammer/tools/tools/vimage/vimage.c#3 integrate .. //depot/projects/hammer/usr.bin/fstat/fstat.c#25 integrate .. //depot/projects/hammer/usr.bin/fstat/zfs.c#5 integrate .. //depot/projects/hammer/usr.bin/look/look.c#5 integrate .. //depot/projects/hammer/usr.sbin/acpi/acpidump/acpi.c#19 integrate .. //depot/projects/hammer/usr.sbin/acpi/acpidump/acpi_user.c#10 integrate .. //depot/projects/hammer/usr.sbin/acpi/acpidump/acpidump.c#7 integrate .. //depot/projects/hammer/usr.sbin/acpi/acpidump/acpidump.h#14 integrate .. //depot/projects/hammer/usr.sbin/freebsd-update/freebsd-update.sh#10 integrate .. //depot/projects/hammer/usr.sbin/kbdcontrol/kbdcontrol.c#6 integrate .. //depot/projects/hammer/usr.sbin/pkg_install/add/main.c#27 integrate .. //depot/projects/hammer/usr.sbin/ppp/ether.c#4 integrate .. //depot/projects/hammer/usr.sbin/ppp/exec.c#3 integrate .. //depot/projects/hammer/usr.sbin/ppp/exec.h#2 integrate .. //depot/projects/hammer/usr.sbin/ppp/main.c#7 integrate .. //depot/projects/hammer/usr.sbin/ppp/netgraph.c#4 integrate .. //depot/projects/hammer/usr.sbin/ppp/physical.c#10 integrate .. //depot/projects/hammer/usr.sbin/ppp/ppp.8.m4#25 integrate .. //depot/projects/hammer/usr.sbin/ppp/tty.c#5 integrate .. //depot/projects/hammer/usr.sbin/traceroute6/Makefile#6 integrate .. //depot/projects/hammer/usr.sbin/traceroute6/traceroute6.8#11 integrate .. //depot/projects/hammer/usr.sbin/traceroute6/traceroute6.c#14 integrate .. //depot/projects/hammer/usr.sbin/wpa/wpa_cli/Makefile#5 integrate Differences ... ==== //depot/projects/hammer/ObsoleteFiles.inc#70 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.205 2009/08/01 19:26:27 rwatson Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.206 2009/08/23 18:28:58 antoine Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -803,8 +803,6 @@ OLD_FILES+=rescue/fdisk OLD_FILES+=rescue/gpt .endif -# 20071026: kthread(9)/kproc(9) API changes -OLD_FILES+=usr/share/man/man9/kthread_create.9.gz # 20071025: rc.d/nfslocking superceeded by rc.d/lockd and rc.d/statd OLD_FILES+=etc/rc.d/nfslocking # 20070930: rename of cached to nscd ==== //depot/projects/hammer/UPDATING#135 (text+ko) ==== @@ -8,8 +8,8 @@ /usr/ports/UPDATING. Please read that file before running portupgrade. -NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.x IS SLOW: - FreeBSD 8.x has many debugging features turned on, in +NOTE TO PEOPLE WHO THINK THAT FreeBSD 9.x IS SLOW: + FreeBSD 9.x has many debugging features turned on, in both the kernel and userland. These features attempt to detect incorrect use of system primitives, and encourage loud failure through extra sanity checking and fail stop semantics. They @@ -1671,4 +1671,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.633 2009/08/13 17:09:45 attilio Exp $ +$FreeBSD: src/UPDATING,v 1.634 2009/08/22 23:44:37 kensmith Exp $ ==== //depot/projects/hammer/bin/sh/eval.c#21 (text+ko) ==== @@ -36,7 +36,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/eval.c,v 1.64 2009/06/23 22:53:34 jilles Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/eval.c,v 1.65 2009/08/23 21:09:46 jilles Exp $"); #include #include @@ -785,6 +785,7 @@ INTOFF; savelocalvars = localvars; localvars = NULL; + reffunc(cmdentry.u.func); INTON; savehandler = handler; if (setjmp(jmploc.loc)) { @@ -794,6 +795,7 @@ freeparam(&shellparam); shellparam = saveparam; } + unreffunc(cmdentry.u.func); poplocalvars(); localvars = savelocalvars; handler = savehandler; @@ -805,11 +807,12 @@ funcnest++; exitstatus = oexitstatus; if (flags & EV_TESTED) - evaltree(cmdentry.u.func, EV_TESTED); + evaltree(&cmdentry.u.func->n, EV_TESTED); else - evaltree(cmdentry.u.func, 0); + evaltree(&cmdentry.u.func->n, 0); funcnest--; INTOFF; + unreffunc(cmdentry.u.func); poplocalvars(); localvars = savelocalvars; freeparam(&shellparam); ==== //depot/projects/hammer/bin/sh/exec.c#13 (text+ko) ==== @@ -36,7 +36,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/exec.c,v 1.34 2009/06/24 22:04:04 jilles Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/exec.c,v 1.35 2009/08/23 21:09:46 jilles Exp $"); #include #include @@ -286,7 +286,7 @@ out1fmt("function %s", cmdp->cmdname); if (verbose) { INTOFF; - name = commandtext(cmdp->param.func); + name = commandtext(&cmdp->param.func->n); out1c(' '); out1str(name); ckfree(name); @@ -583,7 +583,7 @@ while ((cmdp = *pp) != NULL) { if (cmdp->cmdtype == CMDFUNCTION) { *pp = cmdp->next; - freefunc(cmdp->param.func); + unreffunc(cmdp->param.func); ckfree(cmdp); } else { pp = &cmdp->next; @@ -670,7 +670,7 @@ INTOFF; cmdp = cmdlookup(name, 1); if (cmdp->cmdtype == CMDFUNCTION) { - freefunc(cmdp->param.func); + unreffunc(cmdp->param.func); } cmdp->cmdtype = entry->cmdtype; cmdp->param = entry->u; @@ -705,7 +705,7 @@ struct tblentry *cmdp; if ((cmdp = cmdlookup(name, 0)) != NULL && cmdp->cmdtype == CMDFUNCTION) { - freefunc(cmdp->param.func); + unreffunc(cmdp->param.func); delete_cmd_entry(); return (0); } ==== //depot/projects/hammer/bin/sh/exec.h#6 (text+ko) ==== @@ -30,7 +30,7 @@ * SUCH DAMAGE. * * @(#)exec.h 8.3 (Berkeley) 6/8/95 - * $FreeBSD: src/bin/sh/exec.h,v 1.15 2006/04/09 12:21:20 stefanf Exp $ + * $FreeBSD: src/bin/sh/exec.h,v 1.16 2009/08/23 21:09:46 jilles Exp $ */ /* values of cmdtype */ @@ -46,11 +46,12 @@ TYPECMD_TYPE /* type */ }; +union node; struct cmdentry { int cmdtype; union param { int index; - union node *func; + struct funcdef *func; } u; int special; }; ==== //depot/projects/hammer/bin/sh/mknodes.c#5 (text+ko) ==== @@ -42,7 +42,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/bin/sh/mknodes.c,v 1.18 2008/08/04 01:25:48 cperciva Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/mknodes.c,v 1.19 2009/08/23 21:09:46 jilles Exp $"); /* * This program reads the nodetypes file and nodes.c.pat file. It generates @@ -248,8 +248,13 @@ fputs("\tstruct nodelist *next;\n", hfile); fputs("\tunion node *n;\n", hfile); fputs("};\n\n\n", hfile); - fputs("union node *copyfunc(union node *);\n", hfile); - fputs("void freefunc(union node *);\n", hfile); + fputs("struct funcdef {\n", hfile); + fputs("\tunsigned int refcount;\n", hfile); + fputs("\tunion node n;\n", hfile); + fputs("};\n\n\n", hfile); + fputs("struct funcdef *copyfunc(union node *);\n", hfile); + fputs("void reffunc(struct funcdef *);\n", hfile); + fputs("void unreffunc(struct funcdef *);\n", hfile); fputs(writer, cfile); while (fgets(line, sizeof line, patfile) != NULL) { ==== //depot/projects/hammer/bin/sh/nodes.c.pat#5 (text+ko) ==== @@ -30,11 +30,12 @@ * SUCH DAMAGE. * * @(#)nodes.c.pat 8.2 (Berkeley) 5/4/95 - * $FreeBSD: src/bin/sh/nodes.c.pat,v 1.15 2004/04/06 20:06:51 markm Exp $ + * $FreeBSD: src/bin/sh/nodes.c.pat,v 1.16 2009/08/23 21:09:46 jilles Exp $ */ #include #include +#include /* * Routine for dealing with parsed shell commands. */ @@ -65,17 +66,22 @@ * Make a copy of a parse tree. */ -union node * +struct funcdef * copyfunc(union node *n) { + struct funcdef *fn; + if (n == NULL) return NULL; - funcblocksize = 0; + funcblocksize = offsetof(struct funcdef, n); funcstringsize = 0; calcsize(n); - funcblock = ckmalloc(funcblocksize + funcstringsize); - funcstring = (char *)funcblock + funcblocksize; - return copynode(n); + fn = ckmalloc(funcblocksize + funcstringsize); + fn->refcount = 1; + funcblock = (char *)fn + offsetof(struct funcdef, n); + funcstring = (char *)fn + funcblocksize; + copynode(n); + return fn; } @@ -144,14 +150,25 @@ } +void +reffunc(struct funcdef *fn) +{ + fn->refcount++; +} + /* - * Free a parse tree. + * Decrement the reference count of a function definition, freeing it + * if it falls to 0. */ void -freefunc(union node *n) +unreffunc(struct funcdef *fn) { - if (n) - ckfree(n); + if (fn) { + fn->refcount--; + if (fn->refcount > 0) + return; + ckfree(fn); + } } ==== //depot/projects/hammer/contrib/traceroute/as.c#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/contrib/traceroute/as.c,v 1.1 2008/02/20 23:29:52 rpaulo Exp $ */ +/* $FreeBSD: src/contrib/traceroute/as.c,v 1.2 2009/08/23 17:00:16 ume Exp $ */ /* $NetBSD: as.c,v 1.1 2001/11/04 23:14:36 atatat Exp $ */ /* @@ -63,55 +63,42 @@ }; void * -as_setup(server) - char *server; +as_setup(char *server) { struct aslookup *asn; - struct hostent *he = NULL; - struct servent *se; - struct sockaddr_in in; + struct addrinfo hints, *res0, *res; FILE *f; - int s; + int s, error; if (server == NULL) + server = getenv("RA_SERVER"); + if (server == NULL) server = DEFAULT_AS_SERVER; - (void)memset(&in, 0, sizeof(in)); - in.sin_family = AF_INET; - in.sin_len = sizeof(in); - if ((se = getservbyname("whois", "tcp")) == NULL) { + memset(&hints, 0, sizeof(hints)); + hints.ai_family = PF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + error = getaddrinfo(server, "whois", &hints, &res0); + if (error == EAI_SERVICE) { warnx("warning: whois/tcp service not found"); - in.sin_port = ntohs(43); - } else - in.sin_port = se->s_port; - - if (inet_aton(server, &in.sin_addr) == 0 && - ((he = gethostbyname(server)) == NULL || - he->h_addr == NULL)) { - warnx("%s: %s", server, hstrerror(h_errno)); - return (NULL); + error = getaddrinfo(server, "43", &hints, &res0); } - - if ((s = socket(PF_INET, SOCK_STREAM, 0)) == -1) { - warn("socket"); + if (error != 0) { + warnx("%s: %s", server, gai_strerror(error)); return (NULL); } - do { - if (he != NULL) { - memcpy(&in.sin_addr, he->h_addr, he->h_length); - he->h_addr_list++; - } - if (connect(s, (struct sockaddr *)&in, sizeof(in)) == 0) + for (res = res0; res; res = res->ai_next) { + s = socket(res->ai_family, res->ai_socktype, res->ai_protocol); + if (s < 0) + continue; + if (connect(s, res->ai_addr, res->ai_addrlen) >= 0) break; - if (he == NULL || he->h_addr == NULL) { - close(s); - s = -1; - break; - } - } while (1); - - if (s == -1) { + close(s); + s = -1; + } + freeaddrinfo(res0); + if (s < 0) { warn("connect"); return (NULL); } @@ -137,23 +124,23 @@ return (asn); } -int -as_lookup(_asn, addr) - void *_asn; - struct in_addr *addr; +unsigned int +as_lookup(void *_asn, char *addr, sa_family_t family) { struct aslookup *asn = _asn; char buf[1024]; - int as, rc, dlen; + unsigned int as; + int rc, dlen, plen; - as = rc = dlen = 0; - (void)fprintf(asn->as_f, "!r%s/32,l\n", inet_ntoa(*addr)); + as = 0; + rc = dlen = 0; + plen = (family == AF_INET6) ? 128 : 32; + (void)fprintf(asn->as_f, "!r%s/%d,l\n", addr, plen); (void)fflush(asn->as_f); #ifdef AS_DEBUG_FILE if (asn->as_debug) { - (void)fprintf(asn->as_debug, ">> !r%s/32,l\n", - inet_ntoa(*addr)); + (void)fprintf(asn->as_debug, ">> !r%s/%d,l\n", addr, plen); (void)fflush(asn->as_debug); } #endif /* AS_DEBUG_FILE */ @@ -182,7 +169,7 @@ } #endif /* AS_DEBUG_FILE */ break; - case 'C': + case 'C': case 'D': case 'E': case 'F': @@ -209,7 +196,7 @@ /* origin line is the interesting bit */ if (as == 0 && strncasecmp(buf, "origin:", 7) == 0) { - sscanf(buf + 7, " AS%d", &as); + sscanf(buf + 7, " AS%u", &as); #ifdef AS_DEBUG_FILE if (asn->as_debug) { (void)fprintf(asn->as_debug, "as: %d\n", as); @@ -223,8 +210,7 @@ } void -as_shutdown(_asn) - void *_asn; +as_shutdown(void *_asn) { struct aslookup *asn = _asn; ==== //depot/projects/hammer/contrib/traceroute/as.h#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/contrib/traceroute/as.h,v 1.1 2008/02/20 23:29:52 rpaulo Exp $ */ +/* $FreeBSD: src/contrib/traceroute/as.h,v 1.2 2009/08/23 17:00:16 ume Exp $ */ /* $NetBSD: as.h,v 1.1 2001/11/04 23:14:36 atatat Exp $ */ /* @@ -37,6 +37,6 @@ * POSSIBILITY OF SUCH DAMAGE. */ -void *as_setup __P((char *)); -int as_lookup __P((void *, struct in_addr *)); -void as_shutdown __P((void *)); +void *as_setup(char *); +unsigned int as_lookup(void *, char *, sa_family_t); +void as_shutdown(void *); ==== //depot/projects/hammer/contrib/traceroute/traceroute.c#11 (text+ko) ==== @@ -28,7 +28,7 @@ "@(#)$Id: traceroute.c,v 1.68 2000/12/14 08:04:33 leres Exp $ (LBL)"; #endif static const char rcsid[] = - "$FreeBSD: src/contrib/traceroute/traceroute.c,v 1.35 2008/02/20 23:29:52 rpaulo Exp $"; + "$FreeBSD: src/contrib/traceroute/traceroute.c,v 1.36 2009/08/23 17:00:16 ume Exp $"; #endif /* @@ -1477,19 +1477,21 @@ { register struct ip *ip; register int hlen; + char addr[INET_ADDRSTRLEN]; ip = (struct ip *) buf; hlen = ip->ip_hl << 2; cc -= hlen; + strlcpy(addr, inet_ntoa(from->sin_addr), sizeof(addr)); + if (as_path) - Printf(" [AS%d]", as_lookup(asn, &from->sin_addr)); + Printf(" [AS%u]", as_lookup(asn, addr, AF_INET)); if (nflag) - Printf(" %s", inet_ntoa(from->sin_addr)); + Printf(" %s", addr); else - Printf(" %s (%s)", inetname(from->sin_addr), - inet_ntoa(from->sin_addr)); + Printf(" %s (%s)", inetname(from->sin_addr), addr); if (verbose) Printf(" %d bytes to %s", cc, inet_ntoa (ip->ip_dst)); ==== //depot/projects/hammer/crypto/openssl/crypto/pqueue/pqueue.c#2 (text+ko) ==== @@ -234,3 +234,17 @@ return ret; } + +int +pqueue_size(pqueue_s *pq) +{ + pitem *item = pq->items; + int count = 0; + + while(item != NULL) + { + count++; + item = item->next; + } + return count; +} ==== //depot/projects/hammer/crypto/openssl/crypto/pqueue/pqueue.h#2 (text+ko) ==== @@ -91,5 +91,6 @@ pitem *pqueue_next(piterator *iter); void pqueue_print(pqueue pq); +int pqueue_size(pqueue pq); #endif /* ! HEADER_PQUEUE_H */ ==== //depot/projects/hammer/crypto/openssl/ssl/d1_both.c#4 (text+ko) ==== @@ -519,6 +519,7 @@ if ( s->d1->handshake_read_seq == frag->msg_header.seq) { + unsigned long frag_len = frag->msg_header.frag_len; pqueue_pop(s->d1->buffered_messages); al=dtls1_preprocess_fragment(s,&frag->msg_header,max); @@ -536,7 +537,7 @@ if (al==0) { *ok = 1; - return frag->msg_header.frag_len; + return frag_len; } ssl3_send_alert(s,SSL3_AL_FATAL,al); @@ -561,7 +562,16 @@ if ((msg_hdr->frag_off+frag_len) > msg_hdr->msg_len) goto err; - if (msg_hdr->seq <= s->d1->handshake_read_seq) + /* Try to find item in queue, to prevent duplicate entries */ + pq_64bit_init(&seq64); + pq_64bit_assign_word(&seq64, msg_hdr->seq); + item = pqueue_find(s->d1->buffered_messages, seq64); + pq_64bit_free(&seq64); + + /* Discard the message if sequence number was already there, is + * too far in the future or the fragment is already in the queue */ + if (msg_hdr->seq <= s->d1->handshake_read_seq || + msg_hdr->seq > s->d1->handshake_read_seq + 10 || item != NULL) { unsigned char devnull [256]; @@ -575,30 +585,31 @@ } } - frag = dtls1_hm_fragment_new(frag_len); - if ( frag == NULL) - goto err; + if (frag_len) + { + frag = dtls1_hm_fragment_new(frag_len); + if ( frag == NULL) + goto err; - memcpy(&(frag->msg_header), msg_hdr, sizeof(*msg_hdr)); + memcpy(&(frag->msg_header), msg_hdr, sizeof(*msg_hdr)); - if (frag_len) - { - /* read the body of the fragment (header has already been read */ + /* read the body of the fragment (header has already been read) */ i = s->method->ssl_read_bytes(s,SSL3_RT_HANDSHAKE, frag->fragment,frag_len,0); if (i<=0 || (unsigned long)i!=frag_len) goto err; - } + + pq_64bit_init(&seq64); + pq_64bit_assign_word(&seq64, msg_hdr->seq); - pq_64bit_init(&seq64); - pq_64bit_assign_word(&seq64, msg_hdr->seq); + item = pitem_new(seq64, frag); + pq_64bit_free(&seq64); + if ( item == NULL) + goto err; - item = pitem_new(seq64, frag); - pq_64bit_free(&seq64); - if ( item == NULL) - goto err; + pqueue_insert(s->d1->buffered_messages, item); + } - pqueue_insert(s->d1->buffered_messages, item); return DTLS1_HM_FRAGMENT_RETRY; err: ==== //depot/projects/hammer/crypto/openssl/ssl/d1_pkt.c#4 (text+ko) ==== @@ -167,6 +167,10 @@ DTLS1_RECORD_DATA *rdata; pitem *item; + /* Limit the size of the queue to prevent DOS attacks */ + if (pqueue_size(queue->q) >= 100) + return 0; + rdata = OPENSSL_malloc(sizeof(DTLS1_RECORD_DATA)); item = pitem_new(priority, rdata); if (rdata == NULL || item == NULL) ==== //depot/projects/hammer/etc/defaults/periodic.conf#24 (text+ko) ==== @@ -13,7 +13,7 @@ # For a more detailed explanation of all the periodic.conf variables, please # refer to the periodic.conf(5) manual page. # -# $FreeBSD: src/etc/defaults/periodic.conf,v 1.47 2008/01/08 07:22:43 dds Exp $ +# $FreeBSD: src/etc/defaults/periodic.conf,v 1.48 2009/08/23 06:30:14 kensmith Exp $ # # What files override these defaults ? @@ -224,7 +224,7 @@ # 400.status-pkg weekly_status_pkg_enable="NO" # Find out-of-date pkgs pkg_version=pkg_version # Use this program -pkg_version_index=/usr/ports/INDEX-8 # Use this index file +pkg_version_index=/usr/ports/INDEX-9 # Use this index file # 999.local weekly_local="/etc/weekly.local" # Local scripts ==== //depot/projects/hammer/etc/defaults/rc.conf#98 (text+ko) ==== @@ -15,7 +15,7 @@ # For a more detailed explanation of all the rc.conf variables, please # refer to the rc.conf(5) manual page. # -# $FreeBSD: src/etc/defaults/rc.conf,v 1.358 2009/06/10 19:03:23 avg Exp $ +# $FreeBSD: src/etc/defaults/rc.conf,v 1.359 2009/08/25 19:07:26 delphij Exp $ ############################################################## ### Important initial Boot-time options #################### @@ -357,6 +357,7 @@ ### Network routing options: ### defaultrouter="NO" # Set to default gateway (or NO). +static_arp_pairs="" # Set to static ARP list (or leave empty). static_routes="" # Set to static route list (or leave empty). natm_static_routes="" # Set to static route list for NATM (or leave empty). gateway_enable="NO" # Set to YES if this host will be a gateway. ==== //depot/projects/hammer/etc/freebsd-update.conf#7 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/freebsd-update.conf,v 1.6 2008/08/08 10:36:16 cperciva Exp $ +# $FreeBSD: src/etc/freebsd-update.conf,v 1.7 2009/08/19 20:47:31 simon Exp $ # Trusted keyprint. Changing this is a Bad Idea unless you've received # a PGP-signed email from telling you to @@ -63,3 +63,14 @@ # which *might* be installed of which FreeBSD Update should figure out # which actually are installed and upgrade those (StrictComponents no)? # StrictComponents no + +# When installing a new kernel perform a backup of the old one first +# so it is possible to boot the old kernel in case of problems. +# BackupKernel yes + +# If BackupKernel is enabled, the backup kernel is saved to this +# directory. +# BackupKernelDir /boot/kernel.old + +# When backing up a kernel also back up debug symbol files? +# BackupKernelSymbolFiles no ==== //depot/projects/hammer/etc/network.subr#30 (text+ko) ==== @@ -22,7 +22,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/etc/network.subr,v 1.195 2009/06/26 01:27:16 dougb Exp $ +# $FreeBSD: src/etc/network.subr,v 1.198 2009/08/24 22:05:08 dougb Exp $ # # @@ -727,6 +727,13 @@ ;; *) _tmplist="${network_interfaces} ${cloned_interfaces}" + + # lo0 is effectively mandatory, so help prevent foot-shooting + # + case "$_tmplist" in + lo0|'lo0 '*|*' lo0'|*' lo0 '*) ;; # This is fine, do nothing + *) _tmplist="lo0 ${_tmplist}" ;; + esac ;; esac @@ -816,6 +823,17 @@ echo ${str} } +is_wired_interface() +{ + local media + + case `ifconfig $1 2>/dev/null` in + *media:?Ethernet*) media=Ethernet ;; + esac + + test "$media" = "Ethernet" +} + # Setup the interfaces for IPv6 network6_interface_setup() { @@ -858,14 +876,19 @@ ifconfig $i inet6 ${ipv6_ifconfig} alias fi + # Wireless NIC cards are virtualized through the wlan interface + if ! is_wired_interface ${i}; then + case "${i}" in + wlan*) rtsol_available=yes ;; + *) rtsol_available=no ;; + esac + fi + if [ ${rtsol_available} = yes -a ${rtsol_interface} = yes ] >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Aug 27 08:13:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 344511065693; Thu, 27 Aug 2009 08:13:22 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ED242106568B for ; Thu, 27 Aug 2009 08:13:21 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DC70D8FC2D for ; Thu, 27 Aug 2009 08:13:21 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7R8DLDW093563 for ; Thu, 27 Aug 2009 08:13:21 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7R8DLfx093561 for perforce@freebsd.org; Thu, 27 Aug 2009 08:13:21 GMT (envelope-from zec@fer.hr) Date: Thu, 27 Aug 2009 08:13:21 GMT Message-Id: <200908270813.n7R8DLfx093561@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167873 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Aug 2009 08:13:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=167873 Change 167873 by zec@zec_tpx32 on 2009/08/27 08:13:11 Push VNET_SYSINIT locking inside vnet_sysinit() and vnet_sysuninit() functions. Suggested by: jhb Affected files ... .. //depot/projects/vimage-commit2/src/sys/net/vnet.c#7 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/net/vnet.c#7 (text+ko) ==== @@ -247,9 +247,7 @@ /* Initialize / attach vnet module instances. */ CURVNET_SET_QUIET(vnet); - VNET_SYSINIT_RLOCK(); vnet_sysinit(); - VNET_SYSINIT_RUNLOCK(); CURVNET_RESTORE(); VNET_LIST_WLOCK(); @@ -282,9 +280,7 @@ if_vmove(ifp, ifp->if_home_vnet); } - VNET_SYSINIT_RLOCK(); vnet_sysuninit(); - VNET_SYSINIT_RUNLOCK(); CURVNET_RESTORE(); /* @@ -607,10 +603,11 @@ { struct vnet_sysinit *vs; - sx_assert(&vnet_sysinit_sxlock, SA_LOCKED); + VNET_SYSINIT_RLOCK(); TAILQ_FOREACH(vs, &vnet_constructors, link) { vs->func(vs->arg); } + VNET_SYSINIT_RUNLOCK(); } /* @@ -623,11 +620,12 @@ { struct vnet_sysinit *vs; - sx_assert(&vnet_sysinit_sxlock, SA_LOCKED); + VNET_SYSINIT_RLOCK(); TAILQ_FOREACH_REVERSE(vs, &vnet_destructors, vnet_sysuninit_head, link) { vs->func(vs->arg); } + VNET_SYSINIT_RUNLOCK(); } #ifdef DDB From owner-p4-projects@FreeBSD.ORG Thu Aug 27 12:33:06 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3DF0B106568E; Thu, 27 Aug 2009 12:33:06 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 028B8106564A for ; Thu, 27 Aug 2009 12:33:06 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E54CD8FC43 for ; Thu, 27 Aug 2009 12:33:05 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7RCX57c027351 for ; Thu, 27 Aug 2009 12:33:05 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7RCX5EV027349 for perforce@freebsd.org; Thu, 27 Aug 2009 12:33:05 GMT (envelope-from rene@FreeBSD.org) Date: Thu, 27 Aug 2009 12:33:05 GMT Message-Id: <200908271233.n7RCX5EV027349@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 167880 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Aug 2009 12:33:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=167880 Change 167880 by rene@rene_self on 2009/08/27 12:32:10 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/x11/chapter.sgml#8 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml#14 integrate .. //depot/projects/docproj_nl/share/sgml/man-refs.ent#21 integrate .. //depot/projects/docproj_nl/www/en/vendors.html#3 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/x11/chapter.sgml#8 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -504,7 +504,7 @@ <deviceinfo version="0.2"> <device> <match key="info.capabilities" contains="input.keyboard"> - <merge key="input.xkb.options" type="string">terminate:ctrl_alt_bksp</merge> + <merge key="input.x11_options.XkbOptions" type="string">terminate:ctrl_alt_bksp</merge> </match> </device> </deviceinfo> @@ -528,6 +528,55 @@ along with any other options needed (e.g. keyboard layout switching). + + As previously explained since version 7.4, by default, + the hald daemon will + automatically detect your keyboard. There are chances that + your keyboard layout or model will not be correct, desktop + environments like GNOME, + KDE or + Xfce provide tools to configure + the keyboard. However, it is possible to set the keyboard + properties directly either with the help of the + &man.setxkbmap.1; utility or with a + hald's configuration rule. + + For example if one wants to use a PC 102 keys keyboard + coming with a french layout, we have to create a keyboard + configuration file for hald + called x11-input.fdi and saved in the + /usr/local/etc/hal/fdi/policy + directory. This file should contain the following + lines: + + <?xml version="1.0" encoding="ISO-8859-1"?> +<deviceinfo version="0.2"> + <device> + <match key="info.capabilities" contains="input.keyboard"> + <merge key="input.x11_options.XkbModel" type="string">pc102</merge> + <merge key="input.x11_options.XkbLayout" type="string">fr</merge> + </match> + </device> +</deviceinfo> + + If this file already exists, just copy and add to your + file the lines regarding the keyboard configuration. + + You will have to reboot your machine to force + hald to read this file. + + It is possible to do the same configuration from an X + terminal or a script with this command line: + + &prompt.user; setxkbmap -model pc102 -layout fr + + The + /usr/local/share/X11/xkb/rules/base.lst + file lists the various keyboard, layouts and options + available. + + X11 tuning Next, tune the xorg.conf.new ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml#14 (text+ko) ==== @@ -1,7 +1,7 @@ ==== //depot/projects/docproj_nl/share/sgml/man-refs.ent#21 (text+ko) ==== @@ -20,7 +20,7 @@ lexicographical order by the entity (i.e., the dots used in place of special characters should not be expanded when comparing). - $FreeBSD: doc/share/sgml/man-refs.ent,v 1.489 2009/07/26 11:48:34 blackend Exp $ + $FreeBSD: doc/share/sgml/man-refs.ent,v 1.490 2009/08/26 20:54:04 blackend Exp $ --> @@ -568,6 +568,7 @@ + ==== //depot/projects/docproj_nl/www/en/vendors.html#3 (text+ko) ==== @@ -1,6 +1,6 @@ - + From owner-p4-projects@FreeBSD.ORG Thu Aug 27 13:28:07 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 006CE106568F; Thu, 27 Aug 2009 13:28:07 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B7D18106568D for ; Thu, 27 Aug 2009 13:28:06 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A76838FC36 for ; Thu, 27 Aug 2009 13:28:06 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7RDS6qd042642 for ; Thu, 27 Aug 2009 13:28:06 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7RDS6YD042640 for perforce@freebsd.org; Thu, 27 Aug 2009 13:28:06 GMT (envelope-from stas@freebsd.org) Date: Thu, 27 Aug 2009 13:28:06 GMT Message-Id: <200908271328.n7RDS6YD042640@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167886 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Aug 2009 13:28:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=167886 Change 167886 by stas@stas_yandex on 2009/08/27 13:27:29 - Add freebsd-specific suppressions file. Affected files ... .. //depot/projects/valgrind/Makefile.am#12 edit .. //depot/projects/valgrind/configure.in#12 edit .. //depot/projects/valgrind/freebsd.supp#1 add Differences ... ==== //depot/projects/valgrind/Makefile.am#12 (text+ko) ==== @@ -57,7 +57,8 @@ glibc-2.X-drd.supp \ exp-ptrcheck.supp \ libc-4x.supp \ - darwin9.supp + darwin9.supp \ + freebsd.supp DEFAULT_SUPP_FILES = @DEFAULT_SUPP@ # We include all the base .supp files in the distribution, but not ==== //depot/projects/valgrind/configure.in#12 (text+ko) ==== @@ -244,6 +244,7 @@ *freebsd*) AC_MSG_RESULT([ok (${host_os})]) VGCONF_OS="freebsd" + DEFAULT_SUPP="freebsd.supp ${DEFAULT_SUPP}" ;; *darwin*) From owner-p4-projects@FreeBSD.ORG Thu Aug 27 16:51:50 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 654211065690; Thu, 27 Aug 2009 16:51:50 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 29BE8106568B for ; Thu, 27 Aug 2009 16:51:50 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id F2CA58FC2E for ; Thu, 27 Aug 2009 16:51:49 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7RGpn5a071601 for ; Thu, 27 Aug 2009 16:51:49 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7RGpn2T071599 for perforce@freebsd.org; Thu, 27 Aug 2009 16:51:49 GMT (envelope-from rene@FreeBSD.org) Date: Thu, 27 Aug 2009 16:51:49 GMT Message-Id: <200908271651.n7RGpn2T071599@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 167895 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Aug 2009 16:51:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=167895 Change 167895 by rene@rene_self on 2009/08/27 16:51:14 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml#4 integrate .. //depot/projects/docproj_nl/www/en/donations/donors.sgml#20 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml#4 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -159,9 +159,17 @@ from the Ports Collection. Simply do the following: - &prompt.root; cd /usr/ports/emulators/linux_base-fc4 + &prompt.root; cd /usr/ports/emulators/linux_base-f10 &prompt.root; make install distclean + + On &os; systems prior to &os; 8.0, you will have + to use the emulators/linux_base-fc4 port + instead of emulators/linux_base-f10. + + You should now have working Linux binary compatibility. Some programs may complain about incorrect minor versions of the system libraries. In general, however, this does not seem to be ==== //depot/projects/docproj_nl/www/en/donations/donors.sgml#20 (text+ko) ==== @@ -1,6 +1,6 @@ - + %developers; @@ -2614,6 +2614,27 @@ stas Received + + + Justin Settle + Kuma Athlon 7750 + jkim + Received + + + + Justin Settle + HTPC Machine + wxs + Received + + + + Justin Settle + Soekris 5501 + lstewart + Received + &footer; From owner-p4-projects@FreeBSD.ORG Thu Aug 27 17:35:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 77828106568F; Thu, 27 Aug 2009 17:35:38 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 23AC2106568D for ; Thu, 27 Aug 2009 17:35:38 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 129A58FC33 for ; Thu, 27 Aug 2009 17:35:38 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7RHZbxN075880 for ; Thu, 27 Aug 2009 17:35:37 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7RHZb4b075878 for perforce@freebsd.org; Thu, 27 Aug 2009 17:35:37 GMT (envelope-from truncs@FreeBSD.org) Date: Thu, 27 Aug 2009 17:35:37 GMT Message-Id: <200908271735.n7RHZb4b075878@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 167897 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Aug 2009 17:35:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=167897 Change 167897 by truncs@aditya on 2009/08/27 17:35:17 Resort ext2_fs.h to make it more consistent with NetBSD's sources. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_fs.h#2 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_fs.h#2 (text+ko) ==== @@ -38,34 +38,13 @@ #define _LINUX_EXT2_FS_H #include -#define cpu_to_le32(x) htole32(x) -#define MAXMNTLEN 512 -#define EXT2_MAX_GROUP_LOADED 8 -#define e2fs_cgload(old, new, size) memcpy((new), (old), (size)); -#define e2fs_cgsave(old, new, size) memcpy((new), (old), (size)); /* - * The second extended filesystem constants/structures - */ - -/* * Define EXT2FS_DEBUG to produce debug messages */ #undef EXT2FS_DEBUG /* - * Define EXT2_PREALLOCATE to preallocate data blocks for expanding files - */ -#define EXT2_PREALLOCATE -#define EXT2_DEFAULT_PREALLOC_BLOCKS 8 - -/* - * The second extended file system version - */ -#define E2FS_DATE "95/08/09" -#define E2FS_VERSION "0.5b" - -/* * Debug code */ #ifdef EXT2FS_DEBUG @@ -113,75 +92,6 @@ #define EXT2_LINK_MAX 32000 /* - * Macro-instructions used to manage several block sizes - */ -#define EXT2_MIN_BLOCK_SIZE 1024 -#define EXT2_MAX_BLOCK_SIZE 4096 -#define EXT2_MIN_BLOCK_LOG_SIZE 10 -#if defined(_KERNEL) -# define EXT2_BLOCK_SIZE(s) ((s)->e2fs_bsize) -#else -# define EXT2_BLOCK_SIZE(s) (EXT2_MIN_BLOCK_SIZE << (s)->e2fs_log_bsize) -#endif -#define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (uint32_t)) -#if defined(_KERNEL) -# define EXT2_BLOCK_SIZE_BITS(s) ((s)->e2fs_blocksize_bits) -#else -# define EXT2_BLOCK_SIZE_BITS(s) ((s)->e2fs_log_bsize + 10) -#endif -#if defined(_KERNEL) -#define EXT2_ADDR_PER_BLOCK_BITS(s) (EXT2_SB(s)->s_addr_per_block_bits) -#define EXT2_INODE_SIZE(s) (EXT2_SB(s)->e2fs_isize) -#define EXT2_FIRST_INO(s) (EXT2_SB(s)->e2fs_first_inode) -#else -#define EXT2_INODE_SIZE(s) (((s)->s_rev_level == E2FS_REV0) ? \ - E2FS_REV0 : (s)->s_inode_size) -#define EXT2_FIRST_INO(s) (((s)->s_rev_level == E2FS_REV0) ? \ - E2FS_REV0 : (s)->e2fs_first_ino) -#endif - -/* - * Macro-instructions used to manage fragments - */ -#define EXT2_MIN_FRAG_SIZE 1024 -#define EXT2_MAX_FRAG_SIZE 4096 -#define EXT2_MIN_FRAG_LOG_SIZE 10 -#if defined(_KERNEL) -# define EXT2_FRAG_SIZE(s) (EXT2_SB(s)->e2fs_fsize) -# define EXT2_FRAGS_PER_BLOCK(s) (EXT2_SB(s)->e2fs_fpb) -#else -# define EXT2_FRAG_SIZE(s) (EXT2_MIN_FRAG_SIZE << (s)->e2fs_log_fsize) -# define EXT2_FRAGS_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / EXT2_FRAG_SIZE(s)) -#endif - - -/* ext2 file system block group descriptor */ - -struct ext2_gd { - u_int32_t ext2bgd_b_bitmap; /* blocks bitmap block */ - u_int32_t ext2bgd_i_bitmap; /* inodes bitmap block */ - u_int32_t ext2bgd_i_tables; /* inodes table block */ - u_int16_t ext2bgd_nbfree; /* number of free blocks */ - u_int16_t ext2bgd_nifree; /* number of free inodes */ - u_int16_t ext2bgd_ndirs; /* number of directories */ - u_int16_t reserved; - u_int32_t reserved2[3]; -}; - -/* - * Macro-instructions used to manage group descriptors - */ -#if defined(_KERNEL) -# define EXT2_BLOCKS_PER_GROUP(s) (EXT2_SB(s)->e2fs_bpg) -# define EXT2_DESC_PER_BLOCK(s) (EXT2_SB(s)->e2fs_descpb) -# define EXT2_DESC_PER_BLOCK_BITS(s) (EXT2_SB(s)->s_desc_per_block_bits) -#else -# define EXT2_BLOCKS_PER_GROUP(s) ((s)->e2fs_bpg) -# define EXT2_DESC_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (struct ext2_gd)) - -#endif - -/* * Constants relative to the data blocks */ #define EXT2_NDIR_BLOCKS 12 @@ -192,6 +102,13 @@ #define EXT2_MAXSYMLINKLEN (EXT2_N_BLOCKS * sizeof (uint32_t)) /* + * The path name on which the file system is mounted is maintained + * in fs_fsmnt. MAXMNTLEN defines the amount of space allocated in + * the super block for this name. + */ +#define MAXMNTLEN 512 + +/* * Super block for an ext2fs file system. */ struct ext2fs { @@ -236,14 +153,11 @@ }; - /* Assume that user mode programs are passing in an ext2fs superblock, not * a kernel struct super_block. This will allow us to call the feature-test * macros from user land. */ #define EXT2_SB(sb) (sb) - - /* * In-Memory Superblock */ @@ -270,6 +184,8 @@ uint32_t e2fs_gdbcount; /* Number of group descriptors */ uint32_t e2fs_gcount; /* Number of groups */ uint32_t e2fs_first_inode;/* First inode on fs */ + uint32_t e2fs_dircount; /* Directory count for Orlov Allocator*/ + uint8_t *e2fs_debts; /* Debts for Orlov Allocator*/ int32_t e2fs_isize; /* Size of inode */ uint32_t e2fs_mount_opt; uint32_t e2fs_blocksize_bits; @@ -279,6 +195,12 @@ }; /* + * The second extended file system version + */ +#define E2FS_DATE "95/08/09" +#define E2FS_VERSION "0.5b" + +/* * Revision levels */ #define E2FS_REV0 0 /* The good old (original) format */ @@ -290,18 +212,6 @@ #define E2FS_REV0_INODE_SIZE 128 /* - * Feature set definitions - */ - -#define EXT2_HAS_COMPAT_FEATURE(sb,mask) \ - ( EXT2_SB(sb)->e2fs->e2fs_features_compat & cpu_to_le32(mask) ) -#define EXT2_HAS_RO_COMPAT_FEATURE(sb,mask) \ - ( EXT2_SB(sb)->e2fs->e2fs_features_rocompat & cpu_to_le32(mask) ) -#define EXT2_HAS_INCOMPAT_FEATURE(sb,mask) \ - ( EXT2_SB(sb)->e2fs->e2fs_features_incompat & cpu_to_le32(mask) ) - - -/* * compatible/incompatible features */ #define EXT2F_COMPAT_PREALLOC 0x0001 @@ -328,6 +238,16 @@ #define EXT2F_INCOMPAT_SUPP EXT2F_INCOMPAT_FTYPE /* + * Feature set definitions + */ +#define EXT2_HAS_COMPAT_FEATURE(sb,mask) \ + ( EXT2_SB(sb)->e2fs->e2fs_features_compat & htole32(mask) ) +#define EXT2_HAS_RO_COMPAT_FEATURE(sb,mask) \ + ( EXT2_SB(sb)->e2fs->e2fs_features_rocompat & htole32(mask) ) +#define EXT2_HAS_INCOMPAT_FEATURE(sb,mask) \ + ( EXT2_SB(sb)->e2fs->e2fs_features_incompat & htole32(mask) ) + +/* * Definitions of behavior on errors */ #define E2FS_BEH_CONTINUE 1 /* continue operation */ @@ -350,4 +270,78 @@ #define E2FS_ISCLEAN 0x0001 /* Unmounted cleanly */ #define E2FS_ERRORS 0x0002 /* Errors detected */ +/* ext2 file system block group descriptor */ + +struct ext2_gd { + u_int32_t ext2bgd_b_bitmap; /* blocks bitmap block */ + u_int32_t ext2bgd_i_bitmap; /* inodes bitmap block */ + u_int32_t ext2bgd_i_tables; /* inodes table block */ + u_int16_t ext2bgd_nbfree; /* number of free blocks */ + u_int16_t ext2bgd_nifree; /* number of free inodes */ + u_int16_t ext2bgd_ndirs; /* number of directories */ + u_int16_t reserved; + u_int32_t reserved2[3]; +}; + +/* EXT2FS metadatas are stored in little-endian byte order. These macros + * helps reading these metadatas + */ + +#define e2fs_cgload(old, new, size) memcpy((new), (old), (size)); +#define e2fs_cgsave(old, new, size) memcpy((new), (old), (size)); +/* + * Macro-instructions used to manage several block sizes + */ +#define EXT2_MIN_BLOCK_SIZE 1024 +#define EXT2_MAX_BLOCK_SIZE 4096 +#define EXT2_MIN_BLOCK_LOG_SIZE 10 +#if defined(_KERNEL) +# define EXT2_BLOCK_SIZE(s) ((s)->e2fs_bsize) +#else +# define EXT2_BLOCK_SIZE(s) (EXT2_MIN_BLOCK_SIZE << (s)->e2fs_log_bsize) +#endif +#define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (uint32_t)) +#if defined(_KERNEL) +# define EXT2_BLOCK_SIZE_BITS(s) ((s)->e2fs_blocksize_bits) +#else +# define EXT2_BLOCK_SIZE_BITS(s) ((s)->e2fs_log_bsize + 10) +#endif +#if defined(_KERNEL) +#define EXT2_ADDR_PER_BLOCK_BITS(s) (EXT2_SB(s)->s_addr_per_block_bits) +#define EXT2_INODE_SIZE(s) (EXT2_SB(s)->e2fs_isize) +#define EXT2_FIRST_INO(s) (EXT2_SB(s)->e2fs_first_inode) +#else +#define EXT2_INODE_SIZE(s) (((s)->s_rev_level == E2FS_REV0) ? \ + E2FS_REV0 : (s)->s_inode_size) +#define EXT2_FIRST_INO(s) (((s)->s_rev_level == E2FS_REV0) ? \ + E2FS_REV0 : (s)->e2fs_first_ino) +#endif + +/* + * Macro-instructions used to manage fragments + */ +#define EXT2_MIN_FRAG_SIZE 1024 +#define EXT2_MAX_FRAG_SIZE 4096 +#define EXT2_MIN_FRAG_LOG_SIZE 10 +#if defined(_KERNEL) +# define EXT2_FRAG_SIZE(s) (EXT2_SB(s)->e2fs_fsize) +# define EXT2_FRAGS_PER_BLOCK(s) (EXT2_SB(s)->e2fs_fpb) +#else +# define EXT2_FRAG_SIZE(s) (EXT2_MIN_FRAG_SIZE << (s)->e2fs_log_fsize) +# define EXT2_FRAGS_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / EXT2_FRAG_SIZE(s)) +#endif + +/* + * Macro-instructions used to manage group descriptors + */ +#if defined(_KERNEL) +# define EXT2_BLOCKS_PER_GROUP(s) (EXT2_SB(s)->e2fs_bpg) +# define EXT2_DESC_PER_BLOCK(s) (EXT2_SB(s)->e2fs_descpb) +# define EXT2_DESC_PER_BLOCK_BITS(s) (EXT2_SB(s)->s_desc_per_block_bits) +#else +# define EXT2_BLOCKS_PER_GROUP(s) ((s)->e2fs_bpg) +# define EXT2_DESC_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (struct ext2_gd)) + +#endif + #endif /* _LINUX_EXT2_FS_H */ From owner-p4-projects@FreeBSD.ORG Thu Aug 27 18:12:19 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 52E481065692; Thu, 27 Aug 2009 18:12:19 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 176B7106568B for ; Thu, 27 Aug 2009 18:12:19 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 056DD8FC47 for ; Thu, 27 Aug 2009 18:12:19 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7RICIGg079862 for ; Thu, 27 Aug 2009 18:12:18 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7RICIO7079860 for perforce@freebsd.org; Thu, 27 Aug 2009 18:12:18 GMT (envelope-from hselasky@FreeBSD.org) Date: Thu, 27 Aug 2009 18:12:18 GMT Message-Id: <200908271812.n7RICIO7079860@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 167902 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Aug 2009 18:12:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=167902 Change 167902 by hselasky@hselasky_laptop001 on 2009/08/27 18:11:42 USB CORE: - Add definitions for the recently relased USB Network Control Model, NCM, which is supposed to increase throughput on USB ethernet links in a standard fashion. Today multiple methods exist for packing ethernet frames into a single contiguous short terminated USB transfer to increase throughput. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usb.h#46 edit .. //depot/projects/usb/src/sys/dev/usb/usb_cdc.h#12 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usb.h#46 (text+ko) ==== @@ -426,7 +426,6 @@ #define UISUBCLASS_ETHERNET_EMULATION_MODEL 12 #define UIPROTO_CDC_AT 1 -#define UIPROTO_CDC_ETH_512X4 0x76 /* FreeBSD specific */ #define UICLASS_HID 0x03 #define UISUBCLASS_BOOT 1 @@ -461,7 +460,7 @@ #define UIPROTO_HSHUBMTT 1 #define UICLASS_CDC_DATA 0x0a -#define UISUBCLASS_DATA 0 +#define UISUBCLASS_DATA 0x00 #define UIPROTO_DATA_ISDNBRI 0x30 /* Physical iface */ #define UIPROTO_DATA_HDLC 0x31 /* HDLC */ #define UIPROTO_DATA_TRANSPARENT 0x32 /* Transparent */ @@ -475,6 +474,8 @@ #define UIPROTO_DATA_HOST_BASED 0xfd /* Host based driver */ #define UIPROTO_DATA_PUF 0xfe /* see Prot. Unit Func. Desc. */ #define UIPROTO_DATA_VENDOR 0xff /* Vendor specific */ +#define UISUBCLASS_NCM 0x0d /* Network Control Model, NCM */ +#define UIPROTO_DATA_NCM 0x01 /* Network Control Model */ #define UICLASS_SMARTCARD 0x0b #define UICLASS_FIRM_UPD 0x0c ==== //depot/projects/usb/src/sys/dev/usb/usb_cdc.h#12 (text+ko) ==== @@ -188,4 +188,107 @@ #define UCDC_MDM_PARITY_ERR 0x20 #define UCDC_MDM_OVERRUN_ERR 0x40 +/* + * Network Control Model, NCM16 + NCM32, protocol definitions + */ +struct usb_ncm16_hdr { + uDWord dwSignature; + uWord wHeaderLength; + uWord wSequence; + uWord wBlockLength; + uWord wDpIndex; +} __packed; + +struct usb_ncm16_dp { + uWord wFrameIndex; + uWord wFrameLength; +} __packed; + +struct usb_ncm16_dpt { + uDWord dwSignature; + uWord wLength; + uWord wNextNdpIndex; + struct usb_ncm16_dp dp[0]; +} __packed; + +struct usb_ncm32_hdr { + uDWord dwSignature; + uWord wHeaderLength; + uWord wSequence; + uDWord dwBlockLength; + uDWord dwDpIndex; +} __packed; + +struct usb_ncm32_dp { + uDWord dwFrameIndex; + uDWord dwFrameLength; +} __packed; + +struct usb_ncm32_dpt { + uDWord dwSignature; + uWord wLength; + uWord wReserved6; + uDWord dwNextNdpIndex; + uDWord dwReserved12; + struct usb_ncm32_dp dp[0]; +} __packed; + +/* Communications interface class specific descriptors */ + +#define UCDC_NCM_FUNC_DESC_SUBTYPE 0x1A + +struct usb_ncm_func_descriptor { + uByte bLength; + uByte bDescriptorType; + uByte bDescriptorSubtype; + uByte bcdNcmVersion[2]; + uByte bmNetworkCapabilities; +#define UCDC_NCM_CAP_FILTER 0x01 +#define UCDC_NCM_CAP_MAC_ADDR 0x02 +#define UCDC_NCM_CAP_ENCAP 0x04 +#define UCDC_NCM_CAP_MAX_DATA 0x08 +#define UCDC_NCM_CAP_CRCMODE 0x10 +} __packed; + +/* Communications interface specific class request codes */ + +#define UCDC_NCM_SET_ETHERNET_MULTICAST_FILTERS 0x40 +#define UCDC_NCM_SET_ETHERNET_POWER_MGMT_PATTERN_FILTER 0x41 +#define UCDC_NCM_GET_ETHERNET_POWER_MGMT_PATTERN_FILTER 0x42 +#define UCDC_NCM_SET_ETHERNET_PACKET_FILTER 0x43 +#define UCDC_NCM_GET_ETHERNET_STATISTIC 0x44 +#define UCDC_NCM_GET_NTB_PARAMETERS 0x80 +#define UCDC_NCM_GET_NET_ADDRESS 0x81 +#define UCDC_NCM_SET_NET_ADDRESS 0x82 +#define UCDC_NCM_GET_NTB_FORMAT 0x83 +#define UCDC_NCM_SET_NTB_FORMAT 0x84 +#define UCDC_NCM_GET_NTB_INPUT_SIZE 0x85 +#define UCDC_NCM_SET_NTB_INPUT_SIZE 0x86 +#define UCDC_NCM_GET_MAX_DATAGRAM_SIZE 0x87 +#define UCDC_NCM_SET_MAX_DATAGRAM_SIZE 0x88 +#define UCDC_NCM_GET_CRC_MODE 0x89 +#define UCDC_NCM_SET_CRC_MODE 0x8A + +struct usb_ncm_parameters { + uWord wLength; + uWord bmNtbFormatsSupported; +#define UCDC_NCM_FORMAT_NTB16 0x0001 +#define UCDC_NCM_FORMAT_NTB32 0x0002 + uDWord dwNtbInMaxSize; + uWord wNdpInDivisor; + uWord wNdpInPayloadRemainder; + uWord wNdpInAlignment; + uWord wReserved14; + uDWord dwNtbOutMaxSize; + uWord wNdpOutDivisor; + uWord wNdpOutPayloadRemainder; + uWord wNdpOutAlignment; + uWord wReserved26; +} __packed; + +/* Communications interface specific class notification codes */ +#define UCDC_NCM_NOTIF_NETWORK_CONNECTION 0x00 +#define UCDC_NCM_NOTIF_RESPONSE_AVAILABLE 0x01 +#define UCDC_NCM_NOTIF_CONNECTION_SPEED_CHANGE 0x2A + #endif /* _USB_CDC_H_ */ From owner-p4-projects@FreeBSD.ORG Thu Aug 27 19:20:33 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BDF8F1065694; Thu, 27 Aug 2009 19:20:33 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 826041065692 for ; Thu, 27 Aug 2009 19:20:33 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 716B28FC4A for ; Thu, 27 Aug 2009 19:20:33 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7RJKXiW086380 for ; Thu, 27 Aug 2009 19:20:33 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7RJKXW4086378 for perforce@freebsd.org; Thu, 27 Aug 2009 19:20:33 GMT (envelope-from truncs@FreeBSD.org) Date: Thu, 27 Aug 2009 19:20:33 GMT Message-Id: <200908271920.n7RJKXW4086378@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 167905 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Aug 2009 19:20:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=167905 Change 167905 by truncs@aditya on 2009/08/27 19:20:28 ip->i_next_alloc_goal is often 0 (which means that it shouldn't be used), but it was often used. Using a goal of 0 gives preferernce to early blocks. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_alloc.c#2 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_alloc.c#2 (text+ko) ==== @@ -443,7 +443,7 @@ /* if the next block is actually what we thought it is, then set the goal to what we thought it should be */ - if(ip->i_next_alloc_block == lbn) + if(ip->i_next_alloc_block == lbn && && ip->i_next_alloc_goal != 0) return ip->i_next_alloc_goal; /* now check whether we were provided with an array that basically From owner-p4-projects@FreeBSD.ORG Thu Aug 27 19:37:52 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BB08B1065691; Thu, 27 Aug 2009 19:37:52 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7FD00106568B for ; Thu, 27 Aug 2009 19:37:52 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6EFBB8FC36 for ; Thu, 27 Aug 2009 19:37:52 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7RJbqSd087575 for ; Thu, 27 Aug 2009 19:37:52 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7RJbqFx087573 for perforce@freebsd.org; Thu, 27 Aug 2009 19:37:52 GMT (envelope-from truncs@FreeBSD.org) Date: Thu, 27 Aug 2009 19:37:52 GMT Message-Id: <200908271937.n7RJbqFx087573@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 167906 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Aug 2009 19:37:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=167906 Change 167906 by truncs@aditya on 2009/08/27 19:37:34 Remove unused variables. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_fs.h#3 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_fs.h#3 (text+ko) ==== @@ -184,8 +184,6 @@ uint32_t e2fs_gdbcount; /* Number of group descriptors */ uint32_t e2fs_gcount; /* Number of groups */ uint32_t e2fs_first_inode;/* First inode on fs */ - uint32_t e2fs_dircount; /* Directory count for Orlov Allocator*/ - uint8_t *e2fs_debts; /* Debts for Orlov Allocator*/ int32_t e2fs_isize; /* Size of inode */ uint32_t e2fs_mount_opt; uint32_t e2fs_blocksize_bits; From owner-p4-projects@FreeBSD.ORG Thu Aug 27 19:52:08 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A46041065697; Thu, 27 Aug 2009 19:52:08 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6879A1065695 for ; Thu, 27 Aug 2009 19:52:08 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 56D8D8FC41 for ; Thu, 27 Aug 2009 19:52:08 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7RJq828088577 for ; Thu, 27 Aug 2009 19:52:08 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7RJq7BO088575 for perforce@freebsd.org; Thu, 27 Aug 2009 19:52:07 GMT (envelope-from rene@FreeBSD.org) Date: Thu, 27 Aug 2009 19:52:07 GMT Message-Id: <200908271952.n7RJq7BO088575@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 167907 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Aug 2009 19:52:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=167907 Change 167907 by rene@rene_self on 2009/08/27 19:51:59 MFen Dutch handbook: x11 1.193 -> 1.194 linuxemu 1.137 -> 1.138 Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml#7 edit .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml#15 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml#7 (text+ko) ==== @@ -2,10 +2,9 @@ The FreeBSD Dutch Documentation Project $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml,v 1.11 2009/04/10 22:11:37 rene Exp $ - $FreeBSDnl: doc/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml,v 1.38 2006/01/05 21:13:22 siebrand Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml - %SRCID% 1.137 + %SRCID% 1.138 --> @@ -182,9 +181,17 @@ url="file://localhost/usr/ports/">Portscollectie. Dit kan met het volgende commando: - &prompt.root; cd /usr/ports/emulators/linux_base-fc4 + &prompt.root; cd /usr/ports/emulators/linux_base-f10 &prompt.root; make install distclean + + Op &os;-systemen vóór &os; 8.0 dient u de + port emulators/linux_base-fc4 in + plaats van emulators/linux_base-f10 te + gebruiken. + + Nu is er werkende &linux; binaire compatibiliteit. Sommige programma's kunnen klagen over onjuiste kleine versies van de systeembibliotheken. Over het algemeen ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml#15 (text+ko) ==== @@ -3,7 +3,7 @@ $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml,v 1.20 2009/08/26 16:54:36 rene Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/x11/chapter.sgml - %SRCID% 1.193 + %SRCID% 1.194 --> @@ -25,6 +25,10 @@ Radder Vertaald door + + René + Ladan + @@ -534,7 +538,7 @@ <deviceinfo version="0.2"> <device> <match key="info.capabilities" contains="input.keyboard"> - <merge key="input.xkb.options" type="string">terminate:ctrl_alt_bksp</merge> + <merge key="input.x11_options.XkbOptions" type="string">terminate:ctrl_alt_bksp</merge> </match> </device> </deviceinfo> @@ -558,7 +562,55 @@ Invoerapparaten kunnen dan zoals in vorige versies worden geconfigureerd, tezamen met eventuele andere benodigde opties - (b.v. omschakelen van toetsenbordlayout). + (b.v. omschakelen van toetsenbordindeling). + + + Zoals al eerder is uitgelegd zal sinds versie 7.4 de daemon + hald automatisch uw toetsenbord detecteren. + Het kan zijn dat de indeling of het model van uw toetsenbord niet + juist zijn. Bureaubladomgevingen zoals + GNOME, KDE of + Xfce bieden gereedschappen om het + toetsenbord in te stellen. Het is echter mogelijk om de eigenschappen + direct in te stellen met behulp van het gereedschap &man.setxkbmap.1; + of met een configuratieregel van + hald. + + Als men bijvoorbeeld een PC-toetsenbord met 102 toetsen met een + Franse indeling wilt gebruiken, dienen we een instellingenbestand voor + het toestenbord voor hald aan te maken + genaamd x11-input.fdi en het op te slaan in de + map /usr/local/etc/hal/fdi/policy. Het + dient de volgende regels te bevatten: + + <?xml version="1.0" encoding="ISO-8859-1"?> +<deviceinfo version="0.2"> + <device> + <match key="info.capabilities" contains="input.keyboard"> + <merge key="input.x11_options.XkbModel" type="string">pc102</merge> + <merge key="input.x11_options.XkbLayout" type="string">fr</merge> + </match> + </device> +<deviceinfo> + + Als dit bestand al bestaat, kunt u de regels betreffende de + configuratie van het toetsenbord kopiëren en aan uw bestand + toevoegen. + + U dient uw machine opnieuw op te starten om + hald te forceren om dit bestand te + lezen. + + Het is mogelijk om hetzelfde te bereiken vanaf een X-terminal of + een script met dit commando: + + &prompt.user; setxkbmap -model pc102 -layout fr + + Het bestand + /usr/local/share/X11/xkb/rules/base.lst noemt de + beschikbare toetsenborden, indelingen en opties. + X11 optimaliseren From owner-p4-projects@FreeBSD.ORG Thu Aug 27 20:25:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8EE631065692; Thu, 27 Aug 2009 20:25:45 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 39586106568C for ; Thu, 27 Aug 2009 20:25:45 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E4ED78FC3F for ; Thu, 27 Aug 2009 20:25:44 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7RKPi6F092178 for ; Thu, 27 Aug 2009 20:25:44 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7RKPiOp092176 for perforce@freebsd.org; Thu, 27 Aug 2009 20:25:44 GMT (envelope-from hselasky@FreeBSD.org) Date: Thu, 27 Aug 2009 20:25:44 GMT Message-Id: <200908272025.n7RKPiOp092176@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 167909 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Aug 2009 20:25:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=167909 Change 167909 by hselasky@hselasky_laptop001 on 2009/08/27 20:24:48 USB Network: - Add basic support for NCM v1.0 to if_cdce.c. - http://www.usb.org/developers/devclass_docs/NCM10.zip Affected files ... .. //depot/projects/usb/src/sys/dev/usb/net/if_cdce.c#21 edit .. //depot/projects/usb/src/sys/dev/usb/net/if_cdcereg.h#5 edit .. //depot/projects/usb/src/sys/dev/usb/usb.h#47 edit .. //depot/projects/usb/src/sys/dev/usb/usb_cdc.h#13 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/net/if_cdce.c#21 (text+ko) ==== @@ -40,6 +40,11 @@ * http://www.usb.org/developers/devclass_docs/usbcdc11.pdf */ +/* + * USB Network Control Model (NCM) + * http://www.usb.org/developers/devclass_docs/NCM10.zip + */ + #include __FBSDID("$FreeBSD: src/sys/dev/usb/net/if_cdce.c,v 1.16 2009/08/24 05:00:33 alfred Exp $"); @@ -89,6 +94,11 @@ static usb_callback_t cdce_intr_read_callback; static usb_callback_t cdce_intr_write_callback; +#if CDCE_HAVE_NCM +static usb_callback_t cdce_ncm_bulk_write_callback; +static usb_callback_t cdce_ncm_bulk_read_callback; +#endif + static uether_fn_t cdce_attach_post; static uether_fn_t cdce_init; static uether_fn_t cdce_stop; @@ -159,6 +169,61 @@ }, }; +#if CDCE_HAVE_NCM +static const struct usb_config cdce_ncm_config[CDCE_N_TRANSFER] = { + + [CDCE_BULK_RX] = { + .type = UE_BULK, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_RX, + .if_index = 0, + .frames = CDCE_NCM_RX_FRAMES_MAX, + .bufsize = (CDCE_NCM_RX_FRAMES_MAX * CDCE_NCM_RX_MAXLEN), + .flags = {.pipe_bof = 1,.short_frames_ok = 1,.short_xfer_ok = 1,}, + .callback = cdce_ncm_bulk_read_callback, + .timeout = 0, /* no timeout */ + .usb_mode = USB_MODE_DUAL, /* both modes */ + }, + + [CDCE_BULK_TX] = { + .type = UE_BULK, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_TX, + .if_index = 0, + .frames = CDCE_NCM_TX_FRAMES_MAX, + .bufsize = (CDCE_NCM_TX_FRAMES_MAX * CDCE_NCM_TX_MAXLEN), + .flags = {.pipe_bof = 1,.force_short_xfer = 1,}, + .callback = cdce_ncm_bulk_write_callback, + .timeout = 10000, /* 10 seconds */ + .usb_mode = USB_MODE_DUAL, /* both modes */ + }, + + [CDCE_INTR_RX] = { + .type = UE_INTERRUPT, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_RX, + .if_index = 1, + .bufsize = CDCE_IND_SIZE_MAX, + .flags = {.pipe_bof = 1,.short_xfer_ok = 1,.no_pipe_ok = 1,}, + .callback = cdce_intr_read_callback, + .timeout = 0, + .usb_mode = USB_MODE_HOST, + }, + + [CDCE_INTR_TX] = { + .type = UE_INTERRUPT, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_TX, + .if_index = 1, + .bufsize = CDCE_IND_SIZE_MAX, + .flags = {.pipe_bof = 1,.force_short_xfer = 1,.no_pipe_ok = 1,}, + .callback = cdce_intr_write_callback, + .timeout = 10000, /* 10 seconds */ + .usb_mode = USB_MODE_DEVICE, + }, +}; +#endif + static device_method_t cdce_methods[] = { /* USB interface */ DEVMETHOD(usb_handle_request, cdce_handle_request), @@ -213,8 +278,151 @@ {USB_IF_CSI(UICLASS_CDC, UISUBCLASS_ETHERNET_NETWORKING_CONTROL_MODEL, 0)}, {USB_IF_CSI(UICLASS_CDC, UISUBCLASS_MOBILE_DIRECT_LINE_MODEL, 0)}, + {USB_IF_CSI(UICLASS_CDC, UISUBCLASS_NETWORK_CONTROL_MODEL, 0)}, }; +#if CDCE_HAVE_NCM +/*------------------------------------------------------------------------* + * cdce_ncm_init + * + * Return values: + * 0: Success + * Else: Failure + *------------------------------------------------------------------------*/ +static uint8_t +cdce_ncm_init(struct cdce_softc *sc) +{ + struct usb_ncm_parameters temp; + struct usb_device_request req; + uDWord value; + int err; + + req.bmRequestType = UT_READ_CLASS_INTERFACE; + req.bRequest = UCDC_NCM_GET_NTB_PARAMETERS; + USETW(req.wValue, 0); + req.wIndex[0] = sc->sc_ifaces_index[1]; + req.wIndex[1] = 0; + USETW(req.wLength, sizeof(temp)); + + err = usbd_do_request_flags(sc->sc_ue.ue_udev, NULL, &req, + &temp, 0, NULL, 1000 /* ms */); + if (err) + return (1); + + /* Read correct set of parameters according to device mode */ + + if (usbd_get_mode(sc->sc_ue.ue_udev) == USB_MODE_HOST) { + sc->sc_ncm.rx_max = UGETW(temp.dwNtbInMaxSize); + sc->sc_ncm.tx_max = UGETW(temp.dwNtbOutMaxSize); + sc->sc_ncm.tx_remainder = UGETW(temp.wNdpOutPayloadRemainder); + sc->sc_ncm.tx_modulus = UGETW(temp.wNdpOutDivisor); + sc->sc_ncm.tx_struct_align = UGETW(temp.wNdpOutAlignment); + } else { + sc->sc_ncm.rx_max = UGETW(temp.dwNtbOutMaxSize); + sc->sc_ncm.tx_max = UGETW(temp.dwNtbInMaxSize); + sc->sc_ncm.tx_remainder = UGETW(temp.wNdpInPayloadRemainder); + sc->sc_ncm.tx_modulus = UGETW(temp.wNdpInDivisor); + sc->sc_ncm.tx_struct_align = UGETW(temp.wNdpInAlignment); + } + + /* Verify maximum receive length */ + + if (err || (sc->sc_ncm.rx_max < 32) || + (sc->sc_ncm.rx_max > CDCE_NCM_RX_MAXLEN)) { + DPRINTFN(1, "Using default maximum receive length\n"); + sc->sc_ncm.rx_max = CDCE_NCM_RX_MAXLEN; + } + + /* Verify maximum transmit length */ + + if (err || (sc->sc_ncm.tx_max < 32) || + (sc->sc_ncm.tx_max > CDCE_NCM_TX_MAXLEN)) { + DPRINTFN(1, "Using default maximum transmit length\n"); + sc->sc_ncm.tx_max = CDCE_NCM_TX_MAXLEN; + } + + /* + * Verify that the structure alignment is: + * - power of two + * - not greater than the maximum transmit length + * - not less than four bytes + */ + if (err || (sc->sc_ncm.tx_struct_align < 4) || + (sc->sc_ncm.tx_struct_align != + ((-sc->sc_ncm.tx_struct_align) & sc->sc_ncm.tx_struct_align)) || + (sc->sc_ncm.tx_struct_align >= sc->sc_ncm.tx_max)) { + DPRINTFN(1, "Using default other alignment: 4 bytes\n"); + sc->sc_ncm.tx_struct_align = 4; + } + + /* + * Verify that the payload alignment is: + * - power of two + * - not greater than the maximum transmit length + * - not less than four bytes + */ + if (err || (sc->sc_ncm.tx_modulus < 4) || + (sc->sc_ncm.tx_modulus != + ((-sc->sc_ncm.tx_modulus) & sc->sc_ncm.tx_modulus)) || + (sc->sc_ncm.tx_modulus >= sc->sc_ncm.tx_max)) { + DPRINTFN(1, "Using default transmit modulus: 4 bytes\n"); + sc->sc_ncm.tx_modulus = 4; + } + + /* Verify that the payload remainder */ + + if (err || (sc->sc_ncm.tx_remainder >= sc->sc_ncm.tx_modulus)) { + DPRINTFN(1, "Using default transmit remainder: 0 bytes\n"); + sc->sc_ncm.tx_remainder = 0; + } + + /* Additional configuration, will fail in device side mode, which is OK. */ + + req.bmRequestType = UT_WRITE_CLASS_INTERFACE; + req.bRequest = UCDC_NCM_SET_NTB_INPUT_SIZE; + USETW(req.wValue, 0); + req.wIndex[0] = sc->sc_ifaces_index[1]; + req.wIndex[1] = 0; + USETW(req.wLength, 4); + USETDW(value, sc->sc_ncm.rx_max); + + err = usbd_do_request_flags(sc->sc_ue.ue_udev, NULL, &req, + &value, 0, NULL, 1000 /* ms */); + if (err) { + DPRINTFN(1, "Setting input size " + "to %u failed.\n", sc->sc_ncm.rx_max); + } + + req.bmRequestType = UT_WRITE_CLASS_INTERFACE; + req.bRequest = UCDC_NCM_SET_CRC_MODE; + USETW(req.wValue, 0); /* no CRC */ + req.wIndex[0] = sc->sc_ifaces_index[1]; + req.wIndex[1] = 0; + USETW(req.wLength, 0); + + err = usbd_do_request_flags(sc->sc_ue.ue_udev, NULL, &req, + NULL, 0, NULL, 1000 /* ms */); + if (err) { + DPRINTFN(1, "Setting CRC mode to off failed.\n"); + } + + req.bmRequestType = UT_WRITE_CLASS_INTERFACE; + req.bRequest = UCDC_NCM_SET_NTB_FORMAT; + USETW(req.wValue, 0); /* NTB-16 */ + req.wIndex[0] = sc->sc_ifaces_index[1]; + req.wIndex[1] = 0; + USETW(req.wLength, 0); + + err = usbd_do_request_flags(sc->sc_ue.ue_udev, NULL, &req, + NULL, 0, NULL, 1000 /* ms */); + if (err) { + DPRINTFN(1, "Setting NTB format to 16-bit failed.\n"); + } + + return (0); /* success */ +} +#endif + static int cdce_probe(device_t dev) { @@ -240,31 +448,31 @@ const struct usb_cdc_union_descriptor *ud; const struct usb_interface_descriptor *id; const struct usb_cdc_ethernet_descriptor *ued; + const struct usb_config *pcfg; int error; uint8_t i; + uint8_t data_iface_no; char eaddr_str[5 * ETHER_ADDR_LEN]; /* approx */ sc->sc_flags = USB_GET_DRIVER_INFO(uaa); + sc->sc_ue.ue_udev = uaa->device; device_set_usb_desc(dev); mtx_init(&sc->sc_mtx, device_get_nameunit(dev), NULL, MTX_DEF); - if (sc->sc_flags & CDCE_FLAG_NO_UNION) { - sc->sc_ifaces_index[0] = uaa->info.bIfaceIndex; - sc->sc_ifaces_index[1] = uaa->info.bIfaceIndex; - sc->sc_data_iface_no = 0; /* not used */ - goto alloc_transfers; - } ud = usbd_find_descriptor (uaa->device, NULL, uaa->info.bIfaceIndex, UDESC_CS_INTERFACE, 0 - 1, UDESCSUB_CDC_UNION, 0 - 1); - if ((ud == NULL) || (ud->bLength < sizeof(*ud))) { - device_printf(dev, "no union descriptor!\n"); - goto detach; + if ((ud == NULL) || (ud->bLength < sizeof(*ud)) || + (sc->sc_flags & CDCE_FLAG_NO_UNION)) { + DPRINTFN(1, "No union descriptor!\n"); + sc->sc_ifaces_index[0] = uaa->info.bIfaceIndex; + sc->sc_ifaces_index[1] = uaa->info.bIfaceIndex; + goto alloc_transfers; } - sc->sc_data_iface_no = ud->bSlaveInterface[0]; + data_iface_no = ud->bSlaveInterface[0]; for (i = 0;; i++) { @@ -274,8 +482,7 @@ id = usbd_get_interface_descriptor(iface); - if (id && (id->bInterfaceNumber == - sc->sc_data_iface_no)) { + if (id && (id->bInterfaceNumber == data_iface_no)) { sc->sc_ifaces_index[0] = i; sc->sc_ifaces_index[1] = uaa->info.bIfaceIndex; usbd_set_parent_iface(uaa->device, i, uaa->info.bIfaceIndex); @@ -312,24 +519,30 @@ alloc_transfers: + pcfg = cdce_config; /* Default Configuration */ + for (i = 0; i != 32; i++) { - error = usbd_set_alt_interface_index - (uaa->device, sc->sc_ifaces_index[0], i); + error = usbd_set_alt_interface_index(uaa->device, + sc->sc_ifaces_index[0], i); + if (error) + break; +#if CDCE_HAVE_NCM + if ((i == 0) && (cdce_ncm_init(sc) == 0)) + pcfg = cdce_ncm_config; +#endif + error = usbd_transfer_setup(uaa->device, + sc->sc_ifaces_index, sc->sc_xfer, + pcfg, CDCE_N_TRANSFER, sc, &sc->sc_mtx); - if (error) { - device_printf(dev, "no valid alternate " - "setting found!\n"); - goto detach; - } - error = usbd_transfer_setup - (uaa->device, sc->sc_ifaces_index, - sc->sc_xfer, cdce_config, CDCE_N_TRANSFER, - sc, &sc->sc_mtx); + if (error == 0) + break; + } - if (error == 0) { - break; - } + if (error || (i == 32)) { + device_printf(dev, "No valid alternate " + "setting found!\n"); + goto detach; } ued = usbd_find_descriptor @@ -768,3 +981,328 @@ { return (ENXIO); /* use builtin handler */ } + +#if CDCE_HAVE_NCM +static uint8_t +cdce_ncm_fill_tx_frames(struct usb_xfer *xfer, uint8_t index) +{ + struct cdce_softc *sc = usbd_xfer_softc(xfer); + struct ifnet *ifp = uether_getifp(&sc->sc_ue); + struct usb_page_cache *pc = usbd_xfer_get_frame(xfer, index); + struct mbuf *m; + uint32_t rem; + uint32_t offset; + uint32_t last_offset; + uint32_t n; + + usbd_xfer_set_frame_offset(xfer, index * CDCE_NCM_TX_MAXLEN, index); + + offset = sizeof(sc->sc_ncm.hdr) + + sizeof(sc->sc_ncm.dpt) + sizeof(sc->sc_ncm.dp); + + /* Store last valid offset before alignment */ + last_offset = offset; + + /* Align offset correctly */ + offset = sc->sc_ncm.tx_remainder - + ((0UL - offset) & (0UL - sc->sc_ncm.tx_modulus)); + + for (n = 0; n != CDCE_NCM_SUBFRAMES_MAX; n++) { + + /* check if end of transmit buffer is reached */ + + if (offset >= sc->sc_ncm.tx_max) + break; + + /* compute maximum buffer size */ + + rem = sc->sc_ncm.tx_max - offset; + + IFQ_DRV_DEQUEUE(&(ifp->if_snd), m); + + if (m == NULL) + break; + + if (m->m_pkthdr.len > rem) { + if (n == 0) { + /* The frame won't fit in our buffer */ + DPRINTFN(1, "Frame too big to be transmitted!\n"); + m_freem(m); + ifp->if_oerrors++; + n--; + continue; + } + /* Wait till next buffer becomes ready */ + IFQ_DRV_PREPEND(&(ifp->if_snd), m); + break; + } + usbd_m_copy_in(pc, offset, m, 0, m->m_pkthdr.len); + + USETW(sc->sc_ncm.dp[n].wFrameLength, m->m_pkthdr.len); + USETW(sc->sc_ncm.dp[n].wFrameIndex, offset); + + /* Update offset */ + offset += m->m_pkthdr.len; + + /* Store last valid offset before alignment */ + last_offset = offset; + + /* Align offset correctly */ + offset = sc->sc_ncm.tx_remainder - + ((0UL - offset) & (0UL - sc->sc_ncm.tx_modulus)); + + /* + * If there's a BPF listener, bounce a copy + * of this frame to him: + */ + BPF_MTAP(ifp, m); + + /* Free mbuf */ + + m_freem(m); + + /* Pre-increment interface counter */ + + ifp->if_opackets++; + } + + if (n == 0) + return (1); + + rem = (sizeof(sc->sc_ncm.dpt) + (4 * n) + 4); + + USETW(sc->sc_ncm.dpt.wLength, rem); + + /* zero the rest of the data pointer entries */ + for (; n != CDCE_NCM_SUBFRAMES_MAX; n++) { + USETW(sc->sc_ncm.dp[n].wFrameLength, 0); + USETW(sc->sc_ncm.dp[n].wFrameIndex, 0); + } + + /* set frame length */ + usbd_xfer_set_frame_len(xfer, index, last_offset); + + /* Fill out 16-bit header */ + sc->sc_ncm.hdr.dwSignature[0] = 'N'; + sc->sc_ncm.hdr.dwSignature[1] = 'C'; + sc->sc_ncm.hdr.dwSignature[2] = 'M'; + sc->sc_ncm.hdr.dwSignature[3] = 'H'; + USETW(sc->sc_ncm.hdr.wHeaderLength, sizeof(sc->sc_ncm.hdr)); + USETW(sc->sc_ncm.hdr.wBlockLength, offset); + USETW(sc->sc_ncm.hdr.wSequence, sc->sc_ncm.tx_seq); + USETW(sc->sc_ncm.hdr.wDptIndex, sizeof(sc->sc_ncm.hdr)); + + sc->sc_ncm.tx_seq++; + + /* Fill out 16-bit frame table header */ + sc->sc_ncm.dpt.dwSignature[0] = 'N'; + sc->sc_ncm.dpt.dwSignature[1] = 'C'; + sc->sc_ncm.dpt.dwSignature[2] = 'M'; + sc->sc_ncm.dpt.dwSignature[3] = 'x'; + USETW(sc->sc_ncm.dpt.wNextNdpIndex, 0); /* reserved */ + + usbd_copy_in(pc, 0, &(sc->sc_ncm.hdr), sizeof(sc->sc_ncm.hdr)); + usbd_copy_in(pc, sizeof(sc->sc_ncm.hdr), &(sc->sc_ncm.dpt), + sizeof(sc->sc_ncm.dpt)); + usbd_copy_in(pc, sizeof(sc->sc_ncm.hdr) + sizeof(sc->sc_ncm.dpt), + &(sc->sc_ncm.dp), sizeof(sc->sc_ncm.dp)); + return (0); +} + +static void +cdce_ncm_bulk_write_callback(struct usb_xfer *xfer, usb_error_t error) +{ + struct cdce_softc *sc = usbd_xfer_softc(xfer); + struct ifnet *ifp = uether_getifp(&sc->sc_ue); + uint16_t x; + int actlen; + int aframes; + + switch (USB_GET_STATE(xfer)) { + case USB_ST_TRANSFERRED: + + usbd_xfer_status(xfer, &actlen, NULL, &aframes, NULL); + + DPRINTFN(10, "transfer complete: " + "%u bytes in %u frames\n", actlen, aframes); + + case USB_ST_SETUP: + for (x = 0; x != CDCE_NCM_TX_FRAMES_MAX; x++) { + if (cdce_ncm_fill_tx_frames(xfer, x)) + break; + } + + if (x != 0) { + usbd_xfer_set_frames(xfer, x); + usbd_transfer_submit(xfer); + } + break; + + default: /* Error */ + DPRINTFN(10, "Transfer error: %s\n", + usbd_errstr(error)); + + /* update error counter */ + ifp->if_oerrors += 1; + + if (error != USB_ERR_CANCELLED) { + /* try to clear stall first */ + usbd_xfer_set_stall(xfer); + usbd_xfer_set_frames(xfer, 0); + usbd_transfer_submit(xfer); + } + break; + } +} + +static void +cdce_ncm_bulk_read_callback(struct usb_xfer *xfer, usb_error_t error) +{ + struct cdce_softc *sc = usbd_xfer_softc(xfer); + struct usb_page_cache *pc = usbd_xfer_get_frame(xfer, 0); + struct ifnet *ifp = uether_getifp(&sc->sc_ue); + struct mbuf *m; + int sumdata; + int sumlen; + int actlen; + int aframes; + int temp; + int nframes; + int x; + int offset; + + switch (USB_GET_STATE(xfer)) { + case USB_ST_TRANSFERRED: + + usbd_xfer_status(xfer, &actlen, &sumlen, &aframes, NULL); + + DPRINTFN(1, "received %u bytes in %u frames\n", + actlen, aframes); + + if (actlen < (sizeof(sc->sc_ncm.hdr) + + sizeof(sc->sc_ncm.dpt))) { + DPRINTFN(1, "frame too short\n"); + goto tr_stall; + } + usbd_copy_out(pc, 0, &(sc->sc_ncm.hdr), + sizeof(sc->sc_ncm.hdr)); + + if ((sc->sc_ncm.hdr.dwSignature[0] != 'N') || + (sc->sc_ncm.hdr.dwSignature[1] != 'C') || + (sc->sc_ncm.hdr.dwSignature[2] != 'M') || + (sc->sc_ncm.hdr.dwSignature[3] != 'H')) { + DPRINTFN(1, "invalid HDR signature\n"); + goto tr_stall; + } + temp = UGETW(sc->sc_ncm.hdr.wBlockLength); + if (temp > sumlen) { + DPRINTFN(1, "unsupported block length %u/%u\n", + temp, sumlen); + goto tr_stall; + } + temp = UGETW(sc->sc_ncm.hdr.wDptIndex); + if ((temp + sizeof(sc->sc_ncm.dpt)) > actlen) { + DPRINTFN(1, "invalid DPT index\n"); + goto tr_stall; + } + usbd_copy_out(pc, temp, &(sc->sc_ncm.dpt), + sizeof(sc->sc_ncm.dpt)); + + if ((sc->sc_ncm.dpt.dwSignature[0] != 'N') || + (sc->sc_ncm.dpt.dwSignature[1] != 'C') || + (sc->sc_ncm.dpt.dwSignature[2] != 'M') || + (sc->sc_ncm.dpt.dwSignature[3] != 'x')) { + DPRINTFN(1, "invalid DPT signature\n"); + goto tr_stall; + } + nframes = UGETW(sc->sc_ncm.dpt.wLength) / 4; + + /* Subtract size of header and last zero padded entry */ + if (nframes >= (2 + 1)) + nframes -= (2 + 1); + else + nframes = 0; + + DPRINTFN(1, "nframes = %u\n", nframes); + + temp += sizeof(sc->sc_ncm.dpt); + + if ((temp + (4 * nframes)) > actlen) + goto tr_stall; + + if (nframes > CDCE_NCM_SUBFRAMES_MAX) { + DPRINTFN(1, "Truncating number of frames from %u to %u\n", + nframes, CDCE_NCM_SUBFRAMES_MAX); + nframes = CDCE_NCM_SUBFRAMES_MAX; + } + usbd_copy_out(pc, temp, &(sc->sc_ncm.dp), (4 * nframes)); + + sumdata = 0; + + for (x = 0; x != nframes; x++) { + + offset = UGETW(sc->sc_ncm.dp[x].wFrameIndex); + temp = UGETW(sc->sc_ncm.dp[x].wFrameLength); + if ((offset + temp) > actlen) { + DPRINTFN(1, "invalid frame detected (ignored)\n"); + m = NULL; + + } else if (temp >= sizeof(struct ether_header)) { + /* + * allocate a suitable memory buffer, if + * possible + */ + if (temp > (MCLBYTES - ETHER_ALIGN)) { + m = NULL; + continue; + } if (temp > (MHLEN - ETHER_ALIGN)) { + m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + } else { + m = m_gethdr(M_DONTWAIT, MT_DATA); + } + } else { + m = NULL; /* dump it */ + } + + DPRINTFN(16, "frame %u, offset = %u, length = %u \n", + x, offset, temp); + + /* check if we have a buffer */ + if (m) { + m_adj(m, ETHER_ALIGN); + + usbd_copy_out(pc, offset, m->m_data, temp); + + /* enqueue */ + uether_rxmbuf(&sc->sc_ue, m, temp); + + sumdata += temp; + } else { + ifp->if_ierrors++; + } + } + + DPRINTFN(1, "Efficiency: %u/%u bytes\n", sumdata, actlen); + + case USB_ST_SETUP: + usbd_xfer_set_frame_len(xfer, 0, sc->sc_ncm.rx_max); + usbd_xfer_set_frames(xfer, 1); + usbd_transfer_submit(xfer); + uether_rxflush(&sc->sc_ue); /* must be last */ + break; + + default: /* Error */ + DPRINTFN(1, "error = %s\n", + usbd_errstr(error)); + + if (error != USB_ERR_CANCELLED) { +tr_stall: + /* try to clear stall first */ + usbd_xfer_set_stall(xfer); + usbd_xfer_set_frames(xfer, 0); + usbd_transfer_submit(xfer); + } + break; + } +} +#endif ==== //depot/projects/usb/src/sys/dev/usb/net/if_cdcereg.h#5 (text+ko) ==== @@ -38,6 +38,18 @@ #define CDCE_FRAMES_MAX 8 /* units */ #define CDCE_IND_SIZE_MAX 32 /* bytes */ +#define CDCE_NCM_TX_MAXLEN 2048UL /* bytes */ +#define CDCE_NCM_TX_FRAMES_MAX 8 /* units */ + +#define CDCE_NCM_RX_MAXLEN (1UL << 14) /* bytes */ +#define CDCE_NCM_RX_FRAMES_MAX 1 /* units */ + +#define CDCE_NCM_SUBFRAMES_MAX 32 /* units */ + +#ifndef CDCE_HAVE_NCM +#define CDCE_HAVE_NCM 1 +#endif + enum { CDCE_BULK_RX, CDCE_BULK_TX, @@ -46,9 +58,24 @@ CDCE_N_TRANSFER, }; +struct cdce_ncm { + struct usb_ncm16_hdr hdr; + struct usb_ncm16_dpt dpt; + struct usb_ncm16_dp dp[CDCE_NCM_SUBFRAMES_MAX]; + uint32_t rx_max; + uint32_t tx_max; + uint16_t tx_remainder; + uint16_t tx_modulus; + uint16_t tx_struct_align; + uint16_t tx_seq; +}; + struct cdce_softc { struct usb_ether sc_ue; struct mtx sc_mtx; +#if CDCE_HAVE_NCM + struct cdce_ncm sc_ncm; +#endif struct usb_xfer *sc_xfer[CDCE_N_TRANSFER]; struct mbuf *sc_rx_buf[CDCE_FRAMES_MAX]; struct mbuf *sc_tx_buf[CDCE_FRAMES_MAX]; @@ -59,7 +86,6 @@ #define CDCE_FLAG_RX_DATA 0x0010 uint8_t sc_eaddr_str_index; - uint8_t sc_data_iface_no; uint8_t sc_ifaces_index[2]; }; ==== //depot/projects/usb/src/sys/dev/usb/usb.h#47 (text+ko) ==== @@ -424,6 +424,7 @@ #define UISUBCLASS_MOBILE_DIRECT_LINE_MODEL 10 #define UISUBCLASS_OBEX 11 #define UISUBCLASS_ETHERNET_EMULATION_MODEL 12 +#define UISUBCLASS_NETWORK_CONTROL_MODEL 13 #define UIPROTO_CDC_AT 1 @@ -474,7 +475,6 @@ #define UIPROTO_DATA_HOST_BASED 0xfd /* Host based driver */ #define UIPROTO_DATA_PUF 0xfe /* see Prot. Unit Func. Desc. */ #define UIPROTO_DATA_VENDOR 0xff /* Vendor specific */ -#define UISUBCLASS_NCM 0x0d /* Network Control Model, NCM */ #define UIPROTO_DATA_NCM 0x01 /* Network Control Model */ #define UICLASS_SMARTCARD 0x0b ==== //depot/projects/usb/src/sys/dev/usb/usb_cdc.h#13 (text+ko) ==== @@ -196,7 +196,7 @@ uWord wHeaderLength; uWord wSequence; uWord wBlockLength; - uWord wDpIndex; + uWord wDptIndex; } __packed; struct usb_ncm16_dp { @@ -216,7 +216,7 @@ uWord wHeaderLength; uWord wSequence; uDWord dwBlockLength; - uDWord dwDpIndex; + uDWord dwDptIndex; } __packed; struct usb_ncm32_dp { From owner-p4-projects@FreeBSD.ORG Fri Aug 28 00:48:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 009CA1065694; Fri, 28 Aug 2009 00:48:38 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B78A6106564A for ; Fri, 28 Aug 2009 00:48:32 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B53179001E for ; Thu, 27 Aug 2009 21:16:08 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7RLFWNQ006046 for ; Thu, 27 Aug 2009 21:15:37 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7RLFHQ6006007 for perforce@freebsd.org; Thu, 27 Aug 2009 21:15:17 GMT (envelope-from truncs@FreeBSD.org) Date: Thu, 27 Aug 2009 21:15:17 GMT Message-Id: <200908272115.n7RLFHQ6006007@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 167912 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Aug 2009 00:48:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=167912 Change 167912 by truncs@aditya on 2009/08/27 21:14:14 Style fixes and IO sync bug fix. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_inode.c#3 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_inode.c#3 (text+ko) ==== @@ -125,16 +125,11 @@ long count, nblocks, blocksreleased = 0; int aflags, error, i, allerror; off_t osize; -/* -printf("ext2_truncate called %d to %d\n", VTOI(ovp)->i_number, length); -*/ /* - * negative file sizes will totally break the code below and - * are not meaningful anyways. - */ + + oip = VTOI(ovp); if (length < 0) - return EFBIG; + return (EINVAL); - oip = VTOI(ovp); if (ovp->v_type == VLNK && oip->i_size < ovp->v_mount->mnt_maxsymlinklen) { #ifdef DIAGNOSTIC @@ -155,7 +150,7 @@ /* * Lengthen the size of the file. We must ensure that the * last byte of the file is allocated. Since the smallest - * value of oszie is 0, length will be at least 1. + * value of osize is 0, length will be at least 1. */ if (osize < length) { if (length > oip->i_e2fs->e2fs_maxfilesize) @@ -166,11 +161,12 @@ if (flags & IO_SYNC) aflags |= B_SYNC; vnode_pager_setsize(ovp, length); - if ((error = ext2_balloc(oip, lbn, offset + 1, cred, &bp, - aflags)) != 0) + error = ext2_balloc(oip, lbn, offset + 1, cred, &bp, aflags); + if (error) { + vnode_pager_setsize(vp, osize); return (error); oip->i_size = length; - if (aflags & IO_SYNC) + if (aflags & B_SYNC) bwrite(bp); else bawrite(bp); @@ -193,14 +189,15 @@ aflags = B_CLRBUF; if (flags & IO_SYNC) aflags |= B_SYNC; - if ((error = ext2_balloc(oip, lbn, offset, cred, &bp, - aflags)) != 0) + error = ext2_balloc(oip, lbn, offset, cred, &bp, aflags); + if (error) { return (error); + } oip->i_size = length; size = blksize(fs, oip, lbn); bzero((char *)bp->b_data + offset, (u_int)(size - offset)); allocbuf(bp, size); - if (aflags & IO_SYNC) + if (aflags & B_SYNC) bwrite(bp); else bawrite(bp); From owner-p4-projects@FreeBSD.ORG Fri Aug 28 02:04:58 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ADF25106568D; Fri, 28 Aug 2009 02:04:57 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 71E411065672 for ; Fri, 28 Aug 2009 02:04:52 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C90439012B for ; Thu, 27 Aug 2009 21:34:55 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7RLYJbO006835 for ; Thu, 27 Aug 2009 21:34:24 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7RLY4tP006821 for perforce@freebsd.org; Thu, 27 Aug 2009 21:34:04 GMT (envelope-from truncs@FreeBSD.org) Date: Thu, 27 Aug 2009 21:34:04 GMT Message-Id: <200908272134.n7RLY4tP006821@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 167914 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Aug 2009 02:04:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=167914 Change 167914 by truncs@aditya on 2009/08/27 21:32:56 Style fixes and new comments. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_vfsops.c#2 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_vfsops.c#2 (text+ko) ==== @@ -397,9 +397,10 @@ * Things to do to update the mount: * 1) invalidate all cached meta-data. * 2) re-read superblock from disk. - * 3) (re-read summary information from disk). - * 4) invalidate all cached file data. - * 5) re-read inode data for all active vnodes. + * 3) re-read summary information from disk. + * 4) invalidate all inactive vnodes. + * 5) invalidate all cached file data. + * 6) re-read inode data for all active vnodes. */ static int ext2_reload(struct mount *mp, struct thread *td) From owner-p4-projects@FreeBSD.ORG Fri Aug 28 13:58:00 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0117E1065678; Fri, 28 Aug 2009 13:58:00 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B792B1065676 for ; Fri, 28 Aug 2009 13:57:59 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8CC378FC1E for ; Fri, 28 Aug 2009 13:57:59 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7SDvxgn014656 for ; Fri, 28 Aug 2009 13:57:59 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7SDvxaE014654 for perforce@freebsd.org; Fri, 28 Aug 2009 13:57:59 GMT (envelope-from rene@FreeBSD.org) Date: Fri, 28 Aug 2009 13:57:59 GMT Message-Id: <200908281357.n7SDvxaE014654@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 167920 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Aug 2009 13:58:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=167920 Change 167920 by rene@rene_self on 2009/08/28 13:57:23 Update the Dutch Translation section: * add my contact info * update links Remove some EOL whitespace. Not build-tested (!), local www build is a bit broken. Affected files ... .. //depot/projects/docproj_nl/www/en/docproj/translations.sgml#7 edit Differences ... ==== //depot/projects/docproj_nl/www/en/docproj/translations.sgml#7 (text+ko) ==== @@ -157,17 +157,19 @@

The FreeBSD Dutch Documentation Project

-E-Mail: remko@FreeBSD.org
+E-Mail: remko@FreeBSD.org or + rene@FreeBSD.org
Released documents
-
Handbook (85% complete)
+
Handbook
+
Several articles
+
Web page
Work in progress (gets periodically build from perforce)
-
Handbook
-
Web page
+
FAQ
Repository of the ongoing work
Perforce
- +

The FreeBSD Estonian Documentation Project

@@ -196,7 +198,7 @@

The FreeBSD German Documentation Project

-Web: https://doc.bsdgroup.de
+Web: https://doc.bsdgroup.de
E-Mail: de-bsd-translators@de.FreeBSD.org
IRC: Server: irc.freenode.net, Channel: #FreeBSD-Doc.de
@@ -333,10 +335,10 @@ FreeBSD Tutorials - +

The FreeBSD Korean Documentation Project

-Web: http://www.kr.FreeBSD.org/projects/doc-kr/
+Web: http://www.kr.FreeBSD.org/projects/doc-kr/
E-Mail: doc@kr.FreeBSD.org
From owner-p4-projects@FreeBSD.ORG Fri Aug 28 14:32:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 83D601065673; Fri, 28 Aug 2009 14:32:38 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 47F60106566C for ; Fri, 28 Aug 2009 14:32:38 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 36F4E8FC16 for ; Fri, 28 Aug 2009 14:32:38 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7SEWc0A018291 for ; Fri, 28 Aug 2009 14:32:38 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7SEWcst018289 for perforce@freebsd.org; Fri, 28 Aug 2009 14:32:38 GMT (envelope-from truncs@FreeBSD.org) Date: Fri, 28 Aug 2009 14:32:38 GMT Message-Id: <200908281432.n7SEWcst018289@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 167925 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Aug 2009 14:32:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=167925 Change 167925 by truncs@aditya on 2009/08/28 14:31:53 Build fixes. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_alloc.c#3 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_inode.c#4 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_alloc.c#3 (text+ko) ==== @@ -443,7 +443,7 @@ /* if the next block is actually what we thought it is, then set the goal to what we thought it should be */ - if(ip->i_next_alloc_block == lbn && && ip->i_next_alloc_goal != 0) + if(ip->i_next_alloc_block == lbn && ip->i_next_alloc_goal != 0) return ip->i_next_alloc_goal; /* now check whether we were provided with an array that basically ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_inode.c#4 (text+ko) ==== @@ -165,6 +165,7 @@ if (error) { vnode_pager_setsize(vp, osize); return (error); + } oip->i_size = length; if (aflags & B_SYNC) bwrite(bp); From owner-p4-projects@FreeBSD.ORG Fri Aug 28 14:50:58 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9ECAF1065675; Fri, 28 Aug 2009 14:50:58 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 632F6106564A for ; Fri, 28 Aug 2009 14:50:58 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5243B8FC0C for ; Fri, 28 Aug 2009 14:50:58 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7SEowTA019733 for ; Fri, 28 Aug 2009 14:50:58 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7SEowXt019731 for perforce@freebsd.org; Fri, 28 Aug 2009 14:50:58 GMT (envelope-from jona@FreeBSD.org) Date: Fri, 28 Aug 2009 14:50:58 GMT Message-Id: <200908281450.n7SEowXt019731@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167926 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Aug 2009 14:50:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=167926 Change 167926 by jona@jona-trustedbsd-belle-vmware on 2009/08/28 14:50:35 Regression testing for fcntl() Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/regression/security/cap_test/Makefile#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/regression/security/cap_test/cap_test.c#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/regression/security/cap_test/cap_test.h#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/regression/security/cap_test/cap_test_fcntl.c#1 add Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/regression/security/cap_test/Makefile#2 (text+ko) ==== @@ -1,6 +1,6 @@ PROG= cap_test SRCS= cap_test.c cap_test_capabilities.c cap_test_syscalls.c \ - cap_test_sysctl.c + cap_test_sysctl.c cap_test_fcntl.c WARNS= 3 NO_MAN= ==== //depot/projects/trustedbsd/capabilities/src/tools/regression/security/cap_test/cap_test.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$P4: //depot/projects/trustedbsd/capabilities/src/tools/regression/security/cap_test/cap_test.c#1 $"); +__FBSDID("$P4: //depot/projects/trustedbsd/capabilities/src/tools/regression/security/cap_test/cap_test.c#2 $"); #include @@ -38,5 +38,6 @@ test_capabilities(); test_syscalls(); test_sysctl(); + test_fcntl(); exit(0); } ==== //depot/projects/trustedbsd/capabilities/src/tools/regression/security/cap_test/cap_test.h#2 (text+ko) ==== @@ -30,5 +30,6 @@ void test_capabilities(void); void test_syscalls(void); void test_sysctl(void); +void test_fcntl(void); #endif /* CAP_TEST_H */ From owner-p4-projects@FreeBSD.ORG Fri Aug 28 15:00:42 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 016DA1065674; Fri, 28 Aug 2009 15:00:42 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B185C1065670 for ; Fri, 28 Aug 2009 15:00:41 +0000 (UTC) (envelope-from r.c.ladan@gmail.com) Received: from mail-ew0-f209.google.com (mail-ew0-f209.google.com [209.85.219.209]) by mx1.freebsd.org (Postfix) with ESMTP id 48E968FC0C for ; Fri, 28 Aug 2009 15:00:40 +0000 (UTC) Received: by ewy5 with SMTP id 5so1217609ewy.36 for ; Fri, 28 Aug 2009 08:00:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=GOF29WBSW4p96uNC37tkFCLaqFg+JTWg7NMK+eaVIUY=; b=oDf+EitLFPboVYgTKxL+GAnX7++uXPLpbxBLmSRZcMl1azKiRmA14Jhuh6PyMgAsBg um2jZ3hnqnsKXGPbX35yaMBL1YJVqErUx6V61qXzP4F/Llb/Zz137SwU+LJb6PnpNV3h uPEK26GWag7CUYNtwlgsSyBRNdBnQgJRtvacE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=Tkd4BVJDufS8Luz3ShEKFYpFx1ASwEano/9WU2F7ZU+K66Ds5glfLh/DFfQNmk7ldw DHgoiV4o1ifSVwJHPFHio/5YsntIPD7yF942gMtLDq1JTSL0wfw1bKaT6ruw3gnO11dH /+IDw/xn7rUn9dQUJbnywaBdgWD4siFY7gXmk= MIME-Version: 1.0 Received: by 10.216.17.212 with SMTP id j62mr224343wej.132.1251469820725; Fri, 28 Aug 2009 07:30:20 -0700 (PDT) In-Reply-To: <200908281357.n7SDvxaE014654@repoman.freebsd.org> References: <200908281357.n7SDvxaE014654@repoman.freebsd.org> Date: Fri, 28 Aug 2009 16:30:20 +0200 Message-ID: From: Rene Ladan To: Perforce Change Reviews Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: Subject: Re: PERFORCE change 167920 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Aug 2009 15:00:42 -0000 2009/8/28 Rene Ladan : > http://perforce.freebsd.org/chv.cgi?CH=3D167920 > > Change 167920 by rene@rene_self on 2009/08/28 13:57:23 > > =A0 =A0 =A0 =A0Update the Dutch Translation section: > =A0 =A0 =A0 =A0* add my contact info > =A0 =A0 =A0 =A0* update links > > =A0 =A0 =A0 =A0Remove some EOL whitespace. > > =A0 =A0 =A0 =A0Not build-tested (!), local www build is a bit broken. On my computer the www/nl section has some build problems, the www/en section builds fine however. > > Affected files ... > > .. //depot/projects/docproj_nl/www/en/docproj/translations.sgml#7 edit > [snip] From owner-p4-projects@FreeBSD.ORG Fri Aug 28 15:11:43 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2447B106566C; Fri, 28 Aug 2009 15:11:43 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DCB9B1065670 for ; Fri, 28 Aug 2009 15:11:42 +0000 (UTC) (envelope-from simon@nitro.dk) Received: from mx.nitro.dk (zarniwoop.nitro.dk [83.92.207.38]) by mx1.freebsd.org (Postfix) with ESMTP id 9B4668FC19 for ; Fri, 28 Aug 2009 15:11:42 +0000 (UTC) Received: from arthur.nitro.dk (arthur.bofh [192.168.2.3]) by mx.nitro.dk (Postfix) with ESMTP id DB7D12D495E; Fri, 28 Aug 2009 15:11:40 +0000 (UTC) Received: by arthur.nitro.dk (Postfix, from userid 1000) id CE9FC5C07; Fri, 28 Aug 2009 17:11:40 +0200 (CEST) Date: Fri, 28 Aug 2009 17:11:40 +0200 From: "Simon L. Nielsen" To: Rene Ladan Message-ID: <20090828151139.GA1243@arthur.nitro.dk> References: <200908281357.n7SDvxaE014654@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) Cc: Perforce Change Reviews Subject: Re: PERFORCE change 167920 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Aug 2009 15:11:43 -0000 On 2009.08.28 16:30:20 +0200, Rene Ladan wrote: > 2009/8/28 Rene Ladan : > > http://perforce.freebsd.org/chv.cgi?CH=167920 > > > > Change 167920 by rene@rene_self on 2009/08/28 13:57:23 > > > >        Update the Dutch Translation section: > >        * add my contact info > >        * update links > > > >        Remove some EOL whitespace. > > > >        Not build-tested (!), local www build is a bit broken. > On my computer the www/nl section has some build problems, > the www/en section builds fine however. Well, it builds on www.freebsd.org (unless somebody disconnected it from the build)... you can drop a mail to doc@ or www@ if you want input on why it fails. -- Simon L. Nielsen From owner-p4-projects@FreeBSD.ORG Fri Aug 28 15:20:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 277E91065674; Fri, 28 Aug 2009 15:20:12 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E0569106566B for ; Fri, 28 Aug 2009 15:20:11 +0000 (UTC) (envelope-from r.c.ladan@gmail.com) Received: from mail-ew0-f209.google.com (mail-ew0-f209.google.com [209.85.219.209]) by mx1.freebsd.org (Postfix) with ESMTP id 490328FC16 for ; Fri, 28 Aug 2009 15:20:10 +0000 (UTC) Received: by ewy5 with SMTP id 5so1234466ewy.36 for ; Fri, 28 Aug 2009 08:20:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=bDpb0wn8v1bSRKH7IhlkPATTnKn9BN/WVePm4kF5DLw=; b=dDRUzFmypSRg/ec015Mi/jqwFjk6BL0Im0z8WpXHg5/qAw3229NjT6SI5BcZIoJlJX Eu5BSjYQNuDH4QzwLJX4GYl9YLJrWADX58Z0ghIRFEa6k4xfGQJIaU6R3gO2IR39DMDK szWPjl7vYojsAXVwr4kkRxJtxT5k0zhPfdyI4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=MEwahhp3+pW+rFBk5csXWAzoq3ilGYArBzsc/DgRxQAng+kXdyFy7PK+08yFc1Bbbm xAdOKSrUH/s6CH0W/ILfnSykPrfcMDlwRRbl2SexeJY8mPyAhiSIZM8Zx4U7eQNsc36M mxyjsa2p47ebOjuVA6a90tWlYJ+7xQNIRHfag= MIME-Version: 1.0 Received: by 10.216.26.82 with SMTP id b60mr233192wea.177.1251472809848; Fri, 28 Aug 2009 08:20:09 -0700 (PDT) In-Reply-To: <20090828151139.GA1243@arthur.nitro.dk> References: <200908281357.n7SDvxaE014654@repoman.freebsd.org> <20090828151139.GA1243@arthur.nitro.dk> Date: Fri, 28 Aug 2009 17:20:09 +0200 Message-ID: From: Rene Ladan To: "Simon L. Nielsen" Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: Perforce Change Reviews Subject: Re: PERFORCE change 167920 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Aug 2009 15:20:12 -0000 2009/8/28 Simon L. Nielsen : > On 2009.08.28 16:30:20 +0200, Rene Ladan wrote: >> 2009/8/28 Rene Ladan : >> > http://perforce.freebsd.org/chv.cgi?CH=3D167920 >> > >> > Change 167920 by rene@rene_self on 2009/08/28 13:57:23 >> > >> > =A0 =A0 =A0 =A0Update the Dutch Translation section: >> > =A0 =A0 =A0 =A0* add my contact info >> > =A0 =A0 =A0 =A0* update links >> > >> > =A0 =A0 =A0 =A0Remove some EOL whitespace. >> > >> > =A0 =A0 =A0 =A0Not build-tested (!), local www build is a bit broken. >> On my computer the www/nl section has some build problems, >> the www/en section builds fine however. > > Well, it builds on www.freebsd.org (unless somebody disconnected it > from the build)... you can drop a mail to doc@ or www@ if you want > input on why it fails. > Actually only the www/nl build fails, probably due to some WIP. The English version builds fine, see http://freebsd.rene-ladan.nl/en/docproj/translations.html#dutch Ren=E9 From owner-p4-projects@FreeBSD.ORG Fri Aug 28 16:33:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 635E31065674; Fri, 28 Aug 2009 16:33:59 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 05C221065672 for ; Fri, 28 Aug 2009 16:33:59 +0000 (UTC) (envelope-from yohanes@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E72568FC0A for ; Fri, 28 Aug 2009 16:33:58 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7SGXwQT029480 for ; Fri, 28 Aug 2009 16:33:58 GMT (envelope-from yohanes@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7SGXsgH029474 for perforce@freebsd.org; Fri, 28 Aug 2009 16:33:54 GMT (envelope-from yohanes@FreeBSD.org) Date: Fri, 28 Aug 2009 16:33:54 GMT Message-Id: <200908281633.n7SGXsgH029474@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to yohanes@FreeBSD.org using -f From: Yohanes Nugroho To: Perforce Change Reviews Cc: Subject: PERFORCE change 167929 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Aug 2009 16:33:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=167929 Change 167929 by yohanes@econa on 2009/08/28 16:33:54 sync Affected files ... .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/developers-handbook/x86/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/dtrace/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/filesystems/chapter.sgml#4 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/introduction/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/jails/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/virtualization/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/basics/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/desktop/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/dtrace/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/filesystems/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/multimedia/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/users/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/virtualization/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/x11/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/share/sgml/trademarks.ent#3 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/articles/committers-guide/article.sgml#3 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#5 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/articles/contributors/contrib.committers.sgml#4 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/articles/portbuild/article.sgml#3 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/basics/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/desktop/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/dtrace/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/filesystems/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/multimedia/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/x11/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/porters-handbook/book.sgml#4 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/share/sgml/authors.ent#4 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/articles/gjournal-desktop/article.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/basics/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/desktop/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/dtrace/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/filesystems/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/multimedia/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/ja_JP.eucJP/books/handbook/desktop/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/advanced-networking/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/basics/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/cutting-edge/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/desktop/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/dtrace/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/filesystems/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/linuxemu/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/multimedia/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/x11/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/basics/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/dtrace/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/filesystems/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/multimedia/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/share/pgpkeys/fluffy.key#1 branch .. //depot/projects/str91xx/doc/share/pgpkeys/lulf.key#2 integrate .. //depot/projects/str91xx/doc/share/pgpkeys/marck.key#2 integrate .. //depot/projects/str91xx/doc/share/pgpkeys/pgpkeys-developers.sgml#4 integrate .. //depot/projects/str91xx/doc/share/pgpkeys/pgpkeys.ent#4 integrate .. //depot/projects/str91xx/doc/share/sgml/man-refs.ent#3 integrate .. //depot/projects/str91xx/ports/CHANGES#2 integrate .. //depot/projects/str91xx/ports/GIDs#3 integrate .. //depot/projects/str91xx/ports/KNOBS#2 integrate .. //depot/projects/str91xx/ports/MOVED#4 integrate .. //depot/projects/str91xx/ports/Makefile#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.autotools.mk#3 integrate .. //depot/projects/str91xx/ports/Mk/bsd.gnome.mk#3 integrate .. //depot/projects/str91xx/ports/Mk/bsd.kde4.mk#3 integrate .. //depot/projects/str91xx/ports/Mk/bsd.octave.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.port.mk#3 integrate .. //depot/projects/str91xx/ports/Mk/bsd.python.mk#3 integrate .. //depot/projects/str91xx/ports/Mk/bsd.qt.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.scons.mk#3 integrate .. //depot/projects/str91xx/ports/Mk/bsd.sites.mk#3 integrate .. //depot/projects/str91xx/ports/Tools/portbuild/errorlogs/index.shtml#2 integrate .. //depot/projects/str91xx/ports/Tools/portbuild/portbuild.conf#3 integrate .. //depot/projects/str91xx/ports/Tools/portbuild/scripts/build#2 integrate .. //depot/projects/str91xx/ports/Tools/portbuild/scripts/buildenv#2 integrate .. //depot/projects/str91xx/ports/Tools/portbuild/scripts/dologs#2 integrate .. //depot/projects/str91xx/ports/Tools/portbuild/scripts/dopackages#2 integrate .. //depot/projects/str91xx/ports/Tools/portbuild/scripts/dopackagestats#3 integrate .. //depot/projects/str91xx/ports/Tools/portbuild/scripts/makeparallel#2 delete .. //depot/projects/str91xx/ports/Tools/portbuild/scripts/makeworld#2 integrate .. //depot/projects/str91xx/ports/Tools/portbuild/scripts/packagebuild#2 integrate .. //depot/projects/str91xx/ports/Tools/portbuild/scripts/stats#2 integrate .. //depot/projects/str91xx/ports/Tools/portbuild/scripts/updatesnap#2 integrate .. //depot/projects/str91xx/ports/Tools/portbuild/scripts/zexpire#2 integrate .. //depot/projects/str91xx/ports/Tools/scripts/tindex#4 integrate .. //depot/projects/str91xx/ports/UIDs#3 integrate .. //depot/projects/str91xx/ports/UPDATING#4 integrate .. //depot/projects/str91xx/src/ObsoleteFiles.inc#4 integrate .. //depot/projects/str91xx/src/UPDATING#4 integrate .. //depot/projects/str91xx/src/bin/sh/eval.c#4 integrate .. //depot/projects/str91xx/src/bin/sh/exec.c#3 integrate .. //depot/projects/str91xx/src/bin/sh/exec.h#2 integrate .. //depot/projects/str91xx/src/bin/sh/mknodes.c#2 integrate .. //depot/projects/str91xx/src/bin/sh/nodes.c.pat#2 integrate .. //depot/projects/str91xx/src/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c#2 integrate .. //depot/projects/str91xx/src/cddl/lib/libnvpair/Makefile#2 integrate .. //depot/projects/str91xx/src/contrib/bzip2/FREEBSD-vendor#2 integrate .. //depot/projects/str91xx/src/contrib/file/magic2mime#1 branch .. //depot/projects/str91xx/src/contrib/netcat/FREEBSD-vendor#2 integrate .. //depot/projects/str91xx/src/contrib/openpam/FREEBSD-vendor#2 integrate .. //depot/projects/str91xx/src/contrib/top/display.c#2 integrate .. //depot/projects/str91xx/src/contrib/traceroute/as.c#2 integrate .. //depot/projects/str91xx/src/contrib/traceroute/as.h#2 integrate .. //depot/projects/str91xx/src/contrib/traceroute/traceroute.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssh/FREEBSD-vendor#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/md4.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/crypto/pqueue/pqueue.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pqueue/pqueue.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/ssl/d1_both.c#3 integrate .. //depot/projects/str91xx/src/crypto/openssl/ssl/d1_pkt.c#3 integrate .. //depot/projects/str91xx/src/crypto/openssl/test/bftest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/bntest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/casttest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/destest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/dhtest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/dsatest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/ecdhtest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/ecdsatest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/ectest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/enginetest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/evp_test.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/exptest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/fips_aesavs.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/fips_desmovs.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/fips_dsatest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/fips_dssvs.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/fips_hmactest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/fips_randtest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/fips_rngvs.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/fips_rsagtest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/fips_rsastest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/fips_rsavtest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/fips_shatest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/fips_test_suite.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/hmactest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/ideatest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/jpaketest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/md2test.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/md4test.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/md5test.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/mdc2test.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/randtest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/rc2test.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/rc4test.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/rc5test.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/rmdtest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/rsa_test.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/sha1test.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/sha256t.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/sha512t.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/shatest.c#2 delete .. //depot/projects/str91xx/src/crypto/openssl/test/ssltest.c#2 delete .. //depot/projects/str91xx/src/etc/defaults/periodic.conf#2 integrate .. //depot/projects/str91xx/src/etc/defaults/rc.conf#3 integrate .. //depot/projects/str91xx/src/etc/freebsd-update.conf#2 integrate .. //depot/projects/str91xx/src/etc/mtree/BSD.include.dist#4 integrate .. //depot/projects/str91xx/src/etc/network.subr#3 integrate .. //depot/projects/str91xx/src/etc/rc.d/Makefile#4 integrate .. //depot/projects/str91xx/src/etc/rc.d/ipsec#2 integrate .. //depot/projects/str91xx/src/etc/rc.d/static_arp#1 branch .. //depot/projects/str91xx/src/etc/rc.d/wpa_supplicant#2 integrate .. //depot/projects/str91xx/src/gnu/usr.bin/groff/tmac/mdoc.local#3 integrate .. //depot/projects/str91xx/src/gnu/usr.bin/patch/pch.c#2 integrate .. //depot/projects/str91xx/src/include/Makefile#4 integrate .. //depot/projects/str91xx/src/lib/libc/db/hash/hash.c#2 integrate .. //depot/projects/str91xx/src/lib/libc/posix1e/Makefile.inc#3 integrate .. //depot/projects/str91xx/src/lib/libc/posix1e/mac.3#2 integrate .. //depot/projects/str91xx/src/lib/libc/posix1e/mac_free.3#2 integrate .. //depot/projects/str91xx/src/lib/libc/posix1e/mac_get.3#2 integrate .. //depot/projects/str91xx/src/lib/libc/posix1e/mac_set.3#2 integrate .. //depot/projects/str91xx/src/lib/libc/posix1e/mac_text.3#2 integrate .. //depot/projects/str91xx/src/lib/libc/posix1e/posix1e.3#2 integrate .. //depot/projects/str91xx/src/lib/libc/stdlib/ptsname.3#2 integrate .. //depot/projects/str91xx/src/lib/libkvm/kvm_vnet.c#2 integrate .. //depot/projects/str91xx/src/lib/libpmc/pmc.3#2 integrate .. //depot/projects/str91xx/src/lib/libpmc/pmc.atom.3#2 integrate .. //depot/projects/str91xx/src/lib/libpmc/pmc.core.3#2 integrate .. //depot/projects/str91xx/src/lib/libpmc/pmc.core2.3#3 integrate .. //depot/projects/str91xx/src/lib/libpmc/pmc.iaf.3#2 integrate .. //depot/projects/str91xx/src/lib/libpmc/pmc.k7.3#2 integrate .. //depot/projects/str91xx/src/lib/libpmc/pmc.k8.3#2 integrate .. //depot/projects/str91xx/src/lib/libpmc/pmc.p4.3#2 integrate .. //depot/projects/str91xx/src/lib/libpmc/pmc.p5.3#2 integrate .. //depot/projects/str91xx/src/lib/libpmc/pmc.p6.3#2 integrate .. //depot/projects/str91xx/src/lib/libpmc/pmc_capabilities.3#2 integrate .. //depot/projects/str91xx/src/lib/libpmc/pmc_read.3#2 integrate .. //depot/projects/str91xx/src/release/Makefile#3 integrate .. //depot/projects/str91xx/src/release/doc/en_US.ISO8859-1/relnotes/article.sgml#2 integrate .. //depot/projects/str91xx/src/release/scripts/lib32-make.sh#2 integrate .. //depot/projects/str91xx/src/release/scripts/mm-mtree.sh#1 branch .. //depot/projects/str91xx/src/release/svnbranch.awk#1 branch .. //depot/projects/str91xx/src/sbin/bsdlabel/bsdlabel.c#2 integrate .. //depot/projects/str91xx/src/sbin/geom/class/label/glabel.8#3 integrate .. //depot/projects/str91xx/src/sbin/geom/class/part/geom_part.c#3 integrate .. //depot/projects/str91xx/src/sbin/route/route.c#2 integrate .. //depot/projects/str91xx/src/sbin/savecore/savecore.c#2 integrate .. //depot/projects/str91xx/src/sbin/umount/umount.8#2 integrate .. //depot/projects/str91xx/src/share/examples/cvsup/stable-supfile#2 integrate .. //depot/projects/str91xx/src/share/man/man4/mfi.4#2 integrate .. //depot/projects/str91xx/src/share/man/man4/mpt.4#2 integrate .. //depot/projects/str91xx/src/share/man/man4/polling.4#2 integrate .. //depot/projects/str91xx/src/share/man/man5/freebsd-update.conf.5#2 integrate .. //depot/projects/str91xx/src/share/man/man5/rc.conf.5#2 integrate .. //depot/projects/str91xx/src/share/man/man5/tmpfs.5#2 integrate .. //depot/projects/str91xx/src/share/man/man7/release.7#2 integrate .. //depot/projects/str91xx/src/share/man/man9/Makefile#4 integrate .. //depot/projects/str91xx/src/share/man/man9/ieee80211.9#2 integrate .. //depot/projects/str91xx/src/share/man/man9/ieee80211_amrr.9#1 branch .. //depot/projects/str91xx/src/share/man/man9/ieee80211_beacon.9#1 branch .. //depot/projects/str91xx/src/share/man/man9/ieee80211_bmiss.9#1 branch .. //depot/projects/str91xx/src/share/man/man9/ieee80211_crypto.9#2 integrate .. //depot/projects/str91xx/src/share/man/man9/ieee80211_ddb.9#1 branch .. //depot/projects/str91xx/src/share/man/man9/ieee80211_input.9#2 integrate .. //depot/projects/str91xx/src/share/man/man9/ieee80211_ioctl.9#2 delete .. //depot/projects/str91xx/src/share/man/man9/ieee80211_node.9#2 integrate .. //depot/projects/str91xx/src/share/man/man9/ieee80211_output.9#2 integrate .. //depot/projects/str91xx/src/share/man/man9/ieee80211_proto.9#2 integrate .. //depot/projects/str91xx/src/share/man/man9/ieee80211_radiotap.9#2 integrate .. //depot/projects/str91xx/src/share/man/man9/ieee80211_regdomain.9#1 branch .. //depot/projects/str91xx/src/share/man/man9/ieee80211_scan.9#1 branch .. //depot/projects/str91xx/src/share/man/man9/ieee80211_vap.9#1 branch .. //depot/projects/str91xx/src/share/man/man9/kproc.9#2 integrate .. //depot/projects/str91xx/src/share/man/man9/kthread.9#2 integrate .. //depot/projects/str91xx/src/share/man/man9/sglist.9#2 integrate .. //depot/projects/str91xx/src/share/man/man9/taskqueue.9#2 integrate .. //depot/projects/str91xx/src/share/zoneinfo/africa#2 integrate .. //depot/projects/str91xx/src/share/zoneinfo/asia#3 integrate .. //depot/projects/str91xx/src/share/zoneinfo/australasia#2 integrate .. //depot/projects/str91xx/src/share/zoneinfo/europe#2 integrate .. //depot/projects/str91xx/src/share/zoneinfo/leapseconds#2 integrate .. //depot/projects/str91xx/src/sys/amd64/amd64/elf_machdep.c#2 integrate .. //depot/projects/str91xx/src/sys/amd64/amd64/local_apic.c#3 integrate .. //depot/projects/str91xx/src/sys/amd64/amd64/machdep.c#3 integrate .. //depot/projects/str91xx/src/sys/amd64/amd64/mp_machdep.c#3 integrate .. //depot/projects/str91xx/src/sys/amd64/amd64/pmap.c#3 integrate .. //depot/projects/str91xx/src/sys/amd64/amd64/trap.c#2 integrate .. //depot/projects/str91xx/src/sys/amd64/conf/GENERIC#3 integrate .. //depot/projects/str91xx/src/sys/amd64/conf/NOTES#3 integrate .. //depot/projects/str91xx/src/sys/amd64/conf/XENHVM#2 integrate .. //depot/projects/str91xx/src/sys/amd64/include/apicvar.h#2 integrate .. //depot/projects/str91xx/src/sys/amd64/include/pmc_mdep.h#2 integrate .. //depot/projects/str91xx/src/sys/amd64/include/smp.h#2 integrate .. //depot/projects/str91xx/src/sys/amd64/linux32/linux32_sysvec.c#3 integrate .. //depot/projects/str91xx/src/sys/arm/arm/pmap.c#4 integrate .. //depot/projects/str91xx/src/sys/arm/arm/undefined.c#2 integrate .. //depot/projects/str91xx/src/sys/arm/at91/uart_dev_at91usart.c#2 integrate .. //depot/projects/str91xx/src/sys/arm/conf/CAMBRIA#3 integrate .. //depot/projects/str91xx/src/sys/arm/conf/SHEEVAPLUG#1 branch .. //depot/projects/str91xx/src/sys/arm/mv/common.c#3 integrate .. //depot/projects/str91xx/src/sys/arm/mv/discovery/db78xxx.c#3 integrate .. //depot/projects/str91xx/src/sys/arm/mv/kirkwood/db88f6xxx.c#3 integrate .. //depot/projects/str91xx/src/sys/arm/mv/kirkwood/files.db88f6xxx#2 integrate .. //depot/projects/str91xx/src/sys/arm/mv/kirkwood/files.kirkwood#1 branch .. //depot/projects/str91xx/src/sys/arm/mv/kirkwood/files.sheevaplug#1 branch .. //depot/projects/str91xx/src/sys/arm/mv/kirkwood/sheevaplug.c#1 branch .. //depot/projects/str91xx/src/sys/arm/mv/kirkwood/std.db88f6xxx#2 integrate .. //depot/projects/str91xx/src/sys/arm/mv/kirkwood/std.kirkwood#1 branch .. //depot/projects/str91xx/src/sys/arm/mv/kirkwood/std.sheevaplug#1 branch .. //depot/projects/str91xx/src/sys/arm/mv/mv_machdep.c#3 integrate .. //depot/projects/str91xx/src/sys/arm/mv/mvreg.h#3 integrate .. //depot/projects/str91xx/src/sys/arm/mv/mvvar.h#2 integrate .. //depot/projects/str91xx/src/sys/arm/mv/orion/db88f5xxx.c#3 integrate .. //depot/projects/str91xx/src/sys/arm/xscale/ixp425/ixdp425_pci.c#2 integrate .. //depot/projects/str91xx/src/sys/boot/i386/gptboot/gptboot.c#2 integrate .. //depot/projects/str91xx/src/sys/cam/ata/ata_xpt.c#2 integrate .. //depot/projects/str91xx/src/sys/cam/cam_ccb.h#3 integrate .. //depot/projects/str91xx/src/sys/cam/cam_xpt.c#3 integrate .. //depot/projects/str91xx/src/sys/cam/scsi/scsi_da.c#3 integrate .. //depot/projects/str91xx/src/sys/cddl/compat/opensolaris/kern/opensolaris.c#4 integrate .. //depot/projects/str91xx/src/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c#1 branch .. //depot/projects/str91xx/src/sys/cddl/compat/opensolaris/sys/mutex.h#3 integrate .. //depot/projects/str91xx/src/sys/cddl/compat/opensolaris/sys/proc.h#2 integrate .. //depot/projects/str91xx/src/sys/cddl/compat/opensolaris/sys/taskq.h#2 delete .. //depot/projects/str91xx/src/sys/cddl/compat/opensolaris/sys/taskq_impl.h#2 delete .. //depot/projects/str91xx/src/sys/cddl/compat/opensolaris/sys/vnode.h#3 integrate .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c#3 integrate .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c#2 integrate .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#3 integrate .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c#2 integrate .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h#2 integrate .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h#2 integrate .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#2 integrate .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#2 integrate .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#3 integrate .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#3 integrate .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#3 integrate .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c#2 integrate .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/os/taskq.c#2 delete .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c#2 delete .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c#2 delete .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c#2 delete .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.h#3 delete .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/sys/callb.h#2 integrate .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/sys/taskq.h#1 branch .. //depot/projects/str91xx/src/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h#2 integrate .. //depot/projects/str91xx/src/sys/compat/ia32/ia32_sysvec.c#2 integrate .. //depot/projects/str91xx/src/sys/compat/linux/linux_ioctl.c#4 integrate .. //depot/projects/str91xx/src/sys/conf/files#4 integrate .. //depot/projects/str91xx/src/sys/conf/newvers.sh#3 integrate .. //depot/projects/str91xx/src/sys/conf/options#4 integrate .. //depot/projects/str91xx/src/sys/conf/options.amd64#2 integrate .. //depot/projects/str91xx/src/sys/conf/options.arm#3 integrate .. //depot/projects/str91xx/src/sys/conf/options.i386#2 integrate .. //depot/projects/str91xx/src/sys/conf/options.pc98#2 integrate .. //depot/projects/str91xx/src/sys/contrib/altq/altq/altq_subr.c#3 integrate .. //depot/projects/str91xx/src/sys/contrib/pf/net/pf.c#3 integrate .. //depot/projects/str91xx/src/sys/contrib/pf/net/pf_if.c#3 integrate .. //depot/projects/str91xx/src/sys/contrib/pf/net/pfvar.h#3 integrate .. //depot/projects/str91xx/src/sys/dev/aac/aac.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/acpica/acpi.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/acpica/acpi_battery.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/acpica/acpi_cpu.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/acpica/acpi_dock.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/acpica/acpi_thermal.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/adb/adb_bus.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/alc/if_alc.c#2 integrate .. //depot/projects/str91xx/src/sys/dev/amdtemp/amdtemp.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/amr/amr.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/asmc/asmc.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/ata/ata-all.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/ath/ath_hal/ah_regdomain.c#2 integrate .. //depot/projects/str91xx/src/sys/dev/atkbdc/psm.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/bge/if_bge.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/bktr/bktr_os.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/drm/drmP.h#3 integrate .. //depot/projects/str91xx/src/sys/dev/drm/drm_bufs.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/drm/drm_drv.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/drm/drm_fops.c#2 integrate .. //depot/projects/str91xx/src/sys/dev/drm/drm_pciids.h#3 integrate .. //depot/projects/str91xx/src/sys/dev/drm/drm_sysctl.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/drm/r600_blit.c#1 branch .. //depot/projects/str91xx/src/sys/dev/drm/r600_cp.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/drm/radeon_cp.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/drm/radeon_cs.c#1 branch .. //depot/projects/str91xx/src/sys/dev/drm/radeon_drm.h#2 integrate .. //depot/projects/str91xx/src/sys/dev/drm/radeon_drv.h#3 integrate .. //depot/projects/str91xx/src/sys/dev/drm/radeon_state.c#2 integrate .. //depot/projects/str91xx/src/sys/dev/e1000/if_em.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/e1000/if_igb.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/hptrr/hptrr_osm_bsd.c#2 integrate .. //depot/projects/str91xx/src/sys/dev/hwpmc/hwpmc_core.c#2 integrate .. //depot/projects/str91xx/src/sys/dev/hwpmc/hwpmc_piv.c#2 integrate .. //depot/projects/str91xx/src/sys/dev/hwpmc/hwpmc_ppro.c#2 integrate .. //depot/projects/str91xx/src/sys/dev/hwpmc/hwpmc_x86.c#2 integrate .. //depot/projects/str91xx/src/sys/dev/ips/ips_pci.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/iscsi/initiator/isc_cam.c#2 integrate .. //depot/projects/str91xx/src/sys/dev/isp/isp_freebsd.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/ixgbe/ixgbe.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/mfi/mfi.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/mfi/mfi_ioctl.h#2 integrate .. //depot/projects/str91xx/src/sys/dev/mfi/mfireg.h#2 integrate .. //depot/projects/str91xx/src/sys/dev/mge/if_mge.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/mii/e1000phy.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/mlx/mlx.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/mmc/mmc.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/pccbb/pccbb.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/ppbus/vpo.c#2 integrate .. //depot/projects/str91xx/src/sys/dev/pst/pst-iop.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/pty/pty.c#1 branch .. //depot/projects/str91xx/src/sys/dev/re/if_re.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/rp/rp.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/snp/snp.c#2 integrate .. //depot/projects/str91xx/src/sys/dev/sound/pci/hda/hdac.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/sound/usb/uaudio.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/syscons/scvgarndr.c#2 integrate .. //depot/projects/str91xx/src/sys/dev/syscons/scvidctl.c#2 integrate .. //depot/projects/str91xx/src/sys/dev/twe/twe.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/usb/controller/usb_controller.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/input/ukbd.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/misc/ufm.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/net/if_aue.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/net/if_cdce.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/net/usb_ethernet.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/serial/uipaq.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/serial/uvisor.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/storage/umass.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/storage/urio.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/usb.h#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/usb_busdma.c#5 integrate .. //depot/projects/str91xx/src/sys/dev/usb/usb_compat_linux.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/usb_dev.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/usb_device.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/usb_device.h#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/usb_handle_request.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/usb_hub.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/usb_process.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/usb_process.h#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/usb_transfer.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/usbdevs#4 integrate .. //depot/projects/str91xx/src/sys/dev/usb/wlan/if_upgt.c#4 integrate .. //depot/projects/str91xx/src/sys/dev/xen/blkback/blkback.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/xen/console/console.c#3 integrate .. //depot/projects/str91xx/src/sys/dev/xen/netback/netback.c#3 integrate .. //depot/projects/str91xx/src/sys/fs/fifofs/fifo_vnops.c#3 integrate .. //depot/projects/str91xx/src/sys/fs/nfsclient/nfs_clsubs.c#2 integrate .. //depot/projects/str91xx/src/sys/fs/nfsclient/nfs_clvnops.c#4 integrate .. //depot/projects/str91xx/src/sys/geom/multipath/g_multipath.c#2 integrate .. //depot/projects/str91xx/src/sys/geom/part/g_part_gpt.c#2 integrate .. //depot/projects/str91xx/src/sys/i386/acpica/acpi_machdep.c#3 integrate .. //depot/projects/str91xx/src/sys/i386/bios/smapi.c#3 integrate .. //depot/projects/str91xx/src/sys/i386/bios/smbios.c#3 integrate .. //depot/projects/str91xx/src/sys/i386/bios/vpd.c#3 integrate .. //depot/projects/str91xx/src/sys/i386/conf/GENERIC#3 integrate .. //depot/projects/str91xx/src/sys/i386/conf/NOTES#3 integrate .. //depot/projects/str91xx/src/sys/i386/i386/elf_machdep.c#3 integrate .. //depot/projects/str91xx/src/sys/i386/i386/local_apic.c#3 integrate .. //depot/projects/str91xx/src/sys/i386/i386/machdep.c#3 integrate .. //depot/projects/str91xx/src/sys/i386/i386/mp_machdep.c#3 integrate .. //depot/projects/str91xx/src/sys/i386/i386/trap.c#2 integrate .. //depot/projects/str91xx/src/sys/i386/include/apicvar.h#4 integrate .. //depot/projects/str91xx/src/sys/i386/include/pmc_mdep.h#2 integrate .. //depot/projects/str91xx/src/sys/i386/include/smp.h#2 integrate .. //depot/projects/str91xx/src/sys/i386/isa/vesa.c#3 integrate .. //depot/projects/str91xx/src/sys/i386/linux/linux_sysvec.c#2 integrate .. //depot/projects/str91xx/src/sys/i386/xen/mp_machdep.c#4 integrate .. //depot/projects/str91xx/src/sys/ia64/ia64/genassym.c#2 integrate .. //depot/projects/str91xx/src/sys/ia64/ia64/interrupt.c#2 integrate .. //depot/projects/str91xx/src/sys/ia64/ia64/machdep.c#3 integrate .. //depot/projects/str91xx/src/sys/ia64/ia64/mp_machdep.c#4 integrate .. //depot/projects/str91xx/src/sys/ia64/include/smp.h#2 integrate .. //depot/projects/str91xx/src/sys/isa/isahint.c#2 integrate .. //depot/projects/str91xx/src/sys/kern/imgact_elf.c#2 integrate .. //depot/projects/str91xx/src/sys/kern/kern_cons.c#2 integrate .. //depot/projects/str91xx/src/sys/kern/kern_exit.c#4 integrate .. //depot/projects/str91xx/src/sys/kern/kern_jail.c#4 integrate .. //depot/projects/str91xx/src/sys/kern/kern_lock.c#3 integrate .. //depot/projects/str91xx/src/sys/kern/kern_mutex.c#3 integrate .. //depot/projects/str91xx/src/sys/kern/kern_poll.c#3 integrate .. //depot/projects/str91xx/src/sys/kern/kern_rwlock.c#4 integrate .. //depot/projects/str91xx/src/sys/kern/kern_shutdown.c#4 integrate .. //depot/projects/str91xx/src/sys/kern/kern_subr.c#2 integrate .. //depot/projects/str91xx/src/sys/kern/kern_sx.c#4 integrate .. //depot/projects/str91xx/src/sys/kern/kern_sysctl.c#3 integrate .. //depot/projects/str91xx/src/sys/kern/kern_uuid.c#3 integrate .. //depot/projects/str91xx/src/sys/kern/subr_bus.c#3 integrate .. //depot/projects/str91xx/src/sys/kern/subr_kdb.c#2 integrate .. //depot/projects/str91xx/src/sys/kern/subr_pcpu.c#3 integrate .. //depot/projects/str91xx/src/sys/kern/subr_sglist.c#2 integrate .. //depot/projects/str91xx/src/sys/kern/subr_smp.c#2 integrate .. //depot/projects/str91xx/src/sys/kern/subr_taskqueue.c#2 integrate .. //depot/projects/str91xx/src/sys/kern/sys_generic.c#3 integrate .. //depot/projects/str91xx/src/sys/kern/tty_pts.c#4 integrate .. //depot/projects/str91xx/src/sys/kern/tty_pty.c#2 delete .. //depot/projects/str91xx/src/sys/kern/tty_ttydisc.c#3 integrate .. //depot/projects/str91xx/src/sys/kern/uipc_domain.c#3 integrate .. //depot/projects/str91xx/src/sys/kern/uipc_socket.c#3 integrate .. //depot/projects/str91xx/src/sys/kern/vfs_cache.c#4 integrate .. //depot/projects/str91xx/src/sys/kern/vfs_syscalls.c#4 integrate .. //depot/projects/str91xx/src/sys/mips/include/smp.h#2 integrate .. //depot/projects/str91xx/src/sys/mips/mips/mp_machdep.c#3 integrate .. //depot/projects/str91xx/src/sys/modules/Makefile#4 integrate .. //depot/projects/str91xx/src/sys/modules/drm/radeon/Makefile#2 integrate .. //depot/projects/str91xx/src/sys/modules/pty/Makefile#1 branch .. //depot/projects/str91xx/src/sys/modules/zfs/Makefile#3 integrate .. //depot/projects/str91xx/src/sys/net/bpf.c#3 integrate .. //depot/projects/str91xx/src/sys/net/bpf_buffer.c#2 integrate .. //depot/projects/str91xx/src/sys/net/bpf_zerocopy.c#2 integrate .. //depot/projects/str91xx/src/sys/net/bpfdesc.h#2 integrate .. //depot/projects/str91xx/src/sys/net/bridgestp.c#3 integrate .. //depot/projects/str91xx/src/sys/net/flowtable.c#3 integrate .. //depot/projects/str91xx/src/sys/net/flowtable.h#3 integrate .. //depot/projects/str91xx/src/sys/net/if.c#4 integrate .. //depot/projects/str91xx/src/sys/net/if_bridge.c#3 integrate .. //depot/projects/str91xx/src/sys/net/if_ef.c#3 integrate .. //depot/projects/str91xx/src/sys/net/if_llatbl.c#3 integrate .. //depot/projects/str91xx/src/sys/net/if_llatbl.h#2 integrate .. //depot/projects/str91xx/src/sys/net/if_var.h#4 integrate .. //depot/projects/str91xx/src/sys/net/if_vlan.c#3 integrate .. //depot/projects/str91xx/src/sys/net/rtsock.c#4 integrate .. //depot/projects/str91xx/src/sys/net/vnet.c#2 integrate .. //depot/projects/str91xx/src/sys/net/vnet.h#3 integrate .. //depot/projects/str91xx/src/sys/net80211/ieee80211.c#3 integrate .. //depot/projects/str91xx/src/sys/net80211/ieee80211_input.c#3 integrate .. //depot/projects/str91xx/src/sys/netatalk/at_control.c#3 integrate .. //depot/projects/str91xx/src/sys/netgraph/ng_gif.c#3 integrate .. //depot/projects/str91xx/src/sys/netinet/in.c#3 integrate .. //depot/projects/str91xx/src/sys/netinet/ip_carp.c#3 integrate .. //depot/projects/str91xx/src/sys/netinet/ip_divert.c#3 integrate .. //depot/projects/str91xx/src/sys/netinet/ip_divert.h#2 integrate .. //depot/projects/str91xx/src/sys/netinet/ip_fw.h#3 integrate .. //depot/projects/str91xx/src/sys/netinet/ip_output.c#3 integrate .. //depot/projects/str91xx/src/sys/netinet/ipfw/ip_fw2.c#2 integrate .. //depot/projects/str91xx/src/sys/netinet/ipfw/ip_fw_pfil.c#2 integrate .. //depot/projects/str91xx/src/sys/netinet/sctp_bsd_addr.c#2 integrate .. //depot/projects/str91xx/src/sys/netinet/sctp_indata.c#3 integrate .. //depot/projects/str91xx/src/sys/netinet/sctp_input.c#3 integrate .. //depot/projects/str91xx/src/sys/netinet/sctp_os_bsd.h#3 integrate .. //depot/projects/str91xx/src/sys/netinet/sctp_output.c#3 integrate .. //depot/projects/str91xx/src/sys/netinet/sctp_pcb.c#3 integrate .. //depot/projects/str91xx/src/sys/netinet/sctp_timer.c#2 integrate .. //depot/projects/str91xx/src/sys/netinet/sctputil.c#4 integrate .. //depot/projects/str91xx/src/sys/netinet/sctputil.h#3 integrate .. //depot/projects/str91xx/src/sys/netinet/tcp_timewait.c#3 integrate .. //depot/projects/str91xx/src/sys/netinet6/icmp6.c#4 integrate .. //depot/projects/str91xx/src/sys/netinet6/in6.c#4 integrate .. //depot/projects/str91xx/src/sys/netinet6/in6_ifattach.c#4 integrate .. //depot/projects/str91xx/src/sys/netinet6/ip6_input.c#4 integrate .. //depot/projects/str91xx/src/sys/netinet6/nd6.c#3 integrate .. //depot/projects/str91xx/src/sys/netipsec/xform_ipip.c#3 integrate .. //depot/projects/str91xx/src/sys/nfsclient/bootp_subr.c#4 integrate .. //depot/projects/str91xx/src/sys/nfsclient/nfs_subs.c#3 integrate .. //depot/projects/str91xx/src/sys/nfsclient/nfs_vnops.c#3 integrate .. //depot/projects/str91xx/src/sys/pc98/cbus/fdc.c#3 integrate .. //depot/projects/str91xx/src/sys/pc98/conf/NOTES#2 integrate .. //depot/projects/str91xx/src/sys/pci/if_rlreg.h#3 integrate .. //depot/projects/str91xx/src/sys/powerpc/include/smp.h#2 integrate .. //depot/projects/str91xx/src/sys/powerpc/powerpc/mp_machdep.c#3 integrate .. //depot/projects/str91xx/src/sys/rpc/clnt_dg.c#3 integrate .. //depot/projects/str91xx/src/sys/rpc/clnt_rc.c#3 integrate .. //depot/projects/str91xx/src/sys/rpc/clnt_vc.c#3 integrate .. //depot/projects/str91xx/src/sys/rpc/rpc_generic.c#2 integrate .. //depot/projects/str91xx/src/sys/rpc/svc_dg.c#3 integrate .. //depot/projects/str91xx/src/sys/rpc/svc_generic.c#3 integrate .. //depot/projects/str91xx/src/sys/rpc/svc_vc.c#3 integrate .. //depot/projects/str91xx/src/sys/security/audit/audit.h#3 integrate .. //depot/projects/str91xx/src/sys/sparc64/include/smp.h#2 integrate .. //depot/projects/str91xx/src/sys/sun4v/include/smp.h#2 integrate .. //depot/projects/str91xx/src/sys/sys/bus.h#3 integrate .. //depot/projects/str91xx/src/sys/sys/cons.h#2 integrate .. //depot/projects/str91xx/src/sys/sys/imgact_elf.h#2 integrate .. //depot/projects/str91xx/src/sys/sys/jail.h#4 integrate .. //depot/projects/str91xx/src/sys/sys/lock.h#3 integrate .. //depot/projects/str91xx/src/sys/sys/param.h#4 integrate .. //depot/projects/str91xx/src/sys/sys/pcpu.h#3 integrate .. //depot/projects/str91xx/src/sys/sys/sglist.h#2 integrate .. //depot/projects/str91xx/src/sys/sys/smp.h#2 integrate .. //depot/projects/str91xx/src/sys/sys/sysctl.h#3 integrate .. //depot/projects/str91xx/src/sys/sys/systm.h#3 integrate .. //depot/projects/str91xx/src/sys/sys/taskqueue.h#2 integrate .. //depot/projects/str91xx/src/sys/sys/ttydisc.h#2 integrate .. //depot/projects/str91xx/src/sys/ufs/ffs/ffs_softdep.c#3 integrate .. //depot/projects/str91xx/src/sys/xdr/xdr_mbuf.c#2 integrate .. //depot/projects/str91xx/src/sys/xen/xenbus/xenbus_probe.c#3 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/Dependencies#2 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/Doxyfile-cam#2 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/Doxyfile-crypto#2 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/Doxyfile-dev_pci#2 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/Doxyfile-dev_sound#2 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/Doxyfile-dev_usb#2 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/Doxyfile-geom#2 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/Doxyfile-kern#2 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/Doxyfile-libkern#2 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/Doxyfile-linux#2 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/Doxyfile-net80211#2 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/Doxyfile-netgraph#2 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/Doxyfile-netinet#2 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/Doxyfile-netinet6#2 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/Doxyfile-netipsec#2 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/Doxyfile-opencrypto#2 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/Doxyfile-vm#2 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/Makefile#2 integrate .. //depot/projects/str91xx/src/tools/kerneldoc/subsys/common-Doxyfile#2 integrate .. //depot/projects/str91xx/src/tools/regression/bin/sh/builtins/eval3.0#1 branch .. //depot/projects/str91xx/src/tools/regression/bin/sh/execution/func1.0#1 branch .. //depot/projects/str91xx/src/tools/regression/poll/Makefile#2 integrate .. //depot/projects/str91xx/src/tools/regression/poll/sockpoll.c#1 branch .. //depot/projects/str91xx/src/tools/regression/priv/Makefile#2 integrate .. //depot/projects/str91xx/src/tools/regression/priv/main.c#2 integrate .. //depot/projects/str91xx/src/tools/regression/priv/priv_netinet_ipsec.c#2 integrate .. //depot/projects/str91xx/src/tools/regression/priv/priv_vfs_extattr_system.c#2 integrate .. //depot/projects/str91xx/src/tools/tools/ath/athpoke/athpoke.c#3 integrate .. //depot/projects/str91xx/src/tools/tools/vimage/Makefile#2 integrate .. //depot/projects/str91xx/src/tools/tools/vimage/vimage.8#2 integrate .. //depot/projects/str91xx/src/tools/tools/vimage/vimage.c#2 integrate .. //depot/projects/str91xx/src/usr.bin/calendar/calendars/calendar.freebsd#3 integrate .. //depot/projects/str91xx/src/usr.bin/fstat/fstat.c#3 integrate .. //depot/projects/str91xx/src/usr.bin/fstat/zfs.c#3 integrate .. //depot/projects/str91xx/src/usr.bin/look/look.c#2 integrate .. //depot/projects/str91xx/src/usr.bin/procstat/procstat.1#2 integrate .. //depot/projects/str91xx/src/usr.sbin/Makefile#4 integrate .. //depot/projects/str91xx/src/usr.sbin/acpi/acpidump/acpi.c#3 integrate .. //depot/projects/str91xx/src/usr.sbin/acpi/acpidump/acpi_user.c#2 integrate .. //depot/projects/str91xx/src/usr.sbin/acpi/acpidump/acpidump.c#2 integrate .. //depot/projects/str91xx/src/usr.sbin/acpi/acpidump/acpidump.h#3 integrate .. //depot/projects/str91xx/src/usr.sbin/arp/arp.c#3 integrate .. //depot/projects/str91xx/src/usr.sbin/freebsd-update/freebsd-update.sh#2 integrate .. //depot/projects/str91xx/src/usr.sbin/iostat/iostat.c#2 integrate .. //depot/projects/str91xx/src/usr.sbin/jls/jls.c#4 integrate .. //depot/projects/str91xx/src/usr.sbin/kbdcontrol/kbdcontrol.c#2 integrate .. //depot/projects/str91xx/src/usr.sbin/mfiutil/Makefile#1 branch .. //depot/projects/str91xx/src/usr.sbin/mfiutil/README#1 branch .. //depot/projects/str91xx/src/usr.sbin/mfiutil/mfi_cmd.c#1 branch .. //depot/projects/str91xx/src/usr.sbin/mfiutil/mfi_config.c#1 branch .. //depot/projects/str91xx/src/usr.sbin/mfiutil/mfi_drive.c#1 branch .. //depot/projects/str91xx/src/usr.sbin/mfiutil/mfi_evt.c#1 branch .. //depot/projects/str91xx/src/usr.sbin/mfiutil/mfi_flash.c#1 branch .. //depot/projects/str91xx/src/usr.sbin/mfiutil/mfi_patrol.c#1 branch .. //depot/projects/str91xx/src/usr.sbin/mfiutil/mfi_show.c#1 branch .. //depot/projects/str91xx/src/usr.sbin/mfiutil/mfi_volume.c#1 branch .. //depot/projects/str91xx/src/usr.sbin/mfiutil/mfiutil.1#1 branch .. //depot/projects/str91xx/src/usr.sbin/mfiutil/mfiutil.8#1 branch .. //depot/projects/str91xx/src/usr.sbin/mfiutil/mfiutil.c#1 branch .. //depot/projects/str91xx/src/usr.sbin/mfiutil/mfiutil.h#1 branch .. //depot/projects/str91xx/src/usr.sbin/mptutil/Makefile#1 branch .. //depot/projects/str91xx/src/usr.sbin/mptutil/mpt_cam.c#1 branch .. //depot/projects/str91xx/src/usr.sbin/mptutil/mpt_cmd.c#1 branch .. //depot/projects/str91xx/src/usr.sbin/mptutil/mpt_config.c#1 branch .. //depot/projects/str91xx/src/usr.sbin/mptutil/mpt_drive.c#1 branch .. //depot/projects/str91xx/src/usr.sbin/mptutil/mpt_evt.c#1 branch .. //depot/projects/str91xx/src/usr.sbin/mptutil/mpt_show.c#1 branch .. //depot/projects/str91xx/src/usr.sbin/mptutil/mpt_volume.c#1 branch .. //depot/projects/str91xx/src/usr.sbin/mptutil/mptutil.8#1 branch .. //depot/projects/str91xx/src/usr.sbin/mptutil/mptutil.c#1 branch .. //depot/projects/str91xx/src/usr.sbin/mptutil/mptutil.h#1 branch .. //depot/projects/str91xx/src/usr.sbin/ntp/scripts/mkver#2 integrate .. //depot/projects/str91xx/src/usr.sbin/pkg_install/add/main.c#2 integrate .. //depot/projects/str91xx/src/usr.sbin/ppp/ether.c#2 integrate .. //depot/projects/str91xx/src/usr.sbin/ppp/exec.c#2 integrate .. //depot/projects/str91xx/src/usr.sbin/ppp/exec.h#2 integrate .. //depot/projects/str91xx/src/usr.sbin/ppp/main.c#2 integrate .. //depot/projects/str91xx/src/usr.sbin/ppp/netgraph.c#2 integrate .. //depot/projects/str91xx/src/usr.sbin/ppp/physical.c#2 integrate .. //depot/projects/str91xx/src/usr.sbin/ppp/ppp.8.m4#3 integrate .. //depot/projects/str91xx/src/usr.sbin/ppp/tty.c#2 integrate .. //depot/projects/str91xx/src/usr.sbin/pstat/pstat.c#3 integrate .. //depot/projects/str91xx/src/usr.sbin/sysinstall/devices.c#3 integrate .. //depot/projects/str91xx/src/usr.sbin/sysinstall/install.c#3 integrate .. //depot/projects/str91xx/src/usr.sbin/sysinstall/media.c#3 integrate .. //depot/projects/str91xx/src/usr.sbin/sysinstall/sysinstall.8#2 integrate .. //depot/projects/str91xx/src/usr.sbin/traceroute6/Makefile#2 integrate .. //depot/projects/str91xx/src/usr.sbin/traceroute6/traceroute6.8#2 integrate .. //depot/projects/str91xx/src/usr.sbin/traceroute6/traceroute6.c#2 integrate .. //depot/projects/str91xx/src/usr.sbin/wpa/wpa_cli/Makefile#2 integrate .. //depot/projects/str91xx/src/usr.sbin/zic/zic.c#2 integrate .. //depot/projects/str91xx/www/Makefile#2 integrate .. //depot/projects/str91xx/www/de/platforms/arm.sgml#2 integrate .. //depot/projects/str91xx/www/de/projects/newbies.sgml#2 integrate .. //depot/projects/str91xx/www/de/share/sgml/news.xml#3 integrate .. //depot/projects/str91xx/www/en/donations/donors.sgml#3 integrate .. //depot/projects/str91xx/www/en/gnome/docs/halfaq.sgml#2 integrate .. //depot/projects/str91xx/www/en/platforms/arm.sgml#2 integrate .. //depot/projects/str91xx/www/en/projects/newbies.sgml#2 integrate .. //depot/projects/str91xx/www/en/releases/8.0R/Makefile#1 branch .. //depot/projects/str91xx/www/en/releases/8.0R/schedule.sgml#1 branch .. //depot/projects/str91xx/www/en/releng/index.sgml#3 integrate .. //depot/projects/str91xx/www/en/vendors.html#2 integrate .. //depot/projects/str91xx/www/fr/projects/newbies.sgml#2 integrate .. //depot/projects/str91xx/www/hu/platforms/arm.sgml#2 integrate .. //depot/projects/str91xx/www/hu/share/sgml/events.xml#3 integrate .. //depot/projects/str91xx/www/hu/share/sgml/news.xml#4 integrate .. //depot/projects/str91xx/www/hu/share/sgml/press.xml#3 integrate .. //depot/projects/str91xx/www/ja/about.sgml#3 integrate .. //depot/projects/str91xx/www/share/sgml/commercial.consult.xml#3 integrate .. //depot/projects/str91xx/www/share/sgml/commercial.isp.xml#3 integrate .. //depot/projects/str91xx/www/share/sgml/events.xml#3 integrate .. //depot/projects/str91xx/www/share/sgml/news.xml#4 integrate .. //depot/projects/str91xx/www/share/sgml/press.xml#3 integrate Differences ... ==== //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/developers-handbook/x86/chapter.sgml#2 (text+ko) ==== @@ -16,9 +16,9 @@ author to assign us the copyright. For now, it is valuable content so it should stay. - $FreeBSD: doc/de_DE.ISO8859-1/books/developers-handbook/x86/chapter.sgml,v 1.2 2009/05/04 20:47:47 jkois Exp $ - $FreeBSDde: de-docproj/books/developers-handbook/x86/chapter.sgml,v 1.20 2009/04/14 18:23:35 bcr Exp $ - basiert auf: 1.16 + $FreeBSD: doc/de_DE.ISO8859-1/books/developers-handbook/x86/chapter.sgml,v 1.3 2009/08/22 20:19:47 bcr Exp $ + $FreeBSDde: de-docproj/books/developers-handbook/x86/chapter.sgml,v 1.21 2009/08/05 19:06:29 bcr Exp $ + basiert auf: 1.17 --> @@ -6083,7 +6083,8 @@ FreeBSD im Besonderen. Thomas M. Sommers öffnete die Türen für - mich. Seine Wie + mich. Seine Wie schreibe ich "Hallo Welt" in FreeBSD-Assembler? Webseite war mein erster Kontakt mit Assembler-Programmierung unter FreeBSD. ==== //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#2 (text+ko) ==== @@ -2,9 +2,9 @@ The FreeBSD Documentation Project The FreeBSD German Documentation Project - $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml,v 1.41 2008/10/12 18:02:27 jkois Exp $ - $FreeBSDde: de-docproj/books/handbook/advanced-networking/chapter.sgml,v 1.173 2008/10/09 05:34:18 jkois Exp $ - basiert auf: 1.414 + $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml,v 1.42 2009/08/22 20:19:47 bcr Exp $ + $FreeBSDde: de-docproj/books/handbook/advanced-networking/chapter.sgml,v 1.184 2009/08/11 18:59:11 bcr Exp $ + basiert auf: 1.425 --> @@ -35,7 +35,7 @@ - Bluetooth- sowie drahtlose, der Norm IEEE 802.11 + &bluetooth;- sowie drahtlose, der Norm &ieee; 802.11 entsprechende, Geräte mit FreeBSD verwenden können. @@ -68,7 +68,7 @@ - CARP, das Common Access Redundancy Protocol, unter + CARP, das Common Address Redundancy Protocol, unter &os; einsetzen können. @@ -480,9 +480,8 @@ Netzwerkroutingtabellen finden Sie in &man.route.8;. - + Rechner mit zwei Heimatnetzen - Dual-Homed-Hosts @@ -535,7 +534,7 @@ indem Sie in &man.rc.conf.5; folgende Änderung durchführen: - gateway_enable=YES # Auf YES setzen, wenn der Rechner als Gateway arbeiten soll + gateway_enable="YES" # Auf YES setzen, wenn der Rechner als Gateway arbeiten soll Diese Option setzt die &man.sysctl.8;-Variable net.inet.ip.forwarding auf @@ -559,7 +558,7 @@ wie gated zur Verfügung. - + @@ -698,9 +697,8 @@ - + Verteilung von Routing-Informationen - routing propagation @@ -743,9 +741,8 @@ bezeichnet. - + Problembehebung - traceroute @@ -769,9 +766,8 @@ &man.traceroute.8;. - + Multicast-Routing - Multicast-Routing @@ -842,7 +838,7 @@ Grundlagen Die meisten drahtlosen Netzwerke basieren auf dem - Standard IEEE 802.11. Sie bestehen aus Stationen, die + Standard &ieee; 802.11. Sie bestehen aus Stationen, die in der Regel im 2,4 GHz- oder im 5 GHz-Band miteinander kommunizieren. Es ist aber auch möglich, dass regional andere Frequenzen, @@ -865,7 +861,7 @@ Die ersten 802.11-Netzwerke arbeiteten im 2,4 GHz-Band und nutzten dazu Prokolle der - IEEE-Standards 802.11 sowie 802.11b. Diese Standards + &ieee;-Standards 802.11 sowie 802.11b. Diese Standards legen unter anderem Betriebsfrequenzen sowie Merkmale des MAC-Layers (wie Frames und Transmissionsraten) fest. Später kam der Standard 802.11a hinzu, der im @@ -890,7 +886,7 @@ einigen, um miteinander kommunizieren zu können. Dieses Schema ist sehr leicht zu knacken und wird deshalb heute kaum mehr eingesetzt. Aktuelle Sicherheitsmechanismen - bauen auf dem Standard IEEE 802.11i auf, der neue + bauen auf dem Standard &ieee; 802.11i auf, der neue kryptografische Schlüssel (Chiffren), ein neues Protokoll für die Anmeldung von Stationen an einem Access Point sowie Mechanismen zum Austausch von @@ -1009,6 +1005,13 @@ wlan_scan_ap_load="YES" wlan_scan_sta_load="YES" + + Die beiden Module wlan_scan_ap und + wlan_scan_sta werden von &os; 7.X + benötigt, andere &os; Versionen brauchen diese hingegen + nicht. + + Zusätzlich benötigen Sie noch Module zur Verschlüsselung ihres drahtlosen Netzwerks. Diese werden normalerweise @@ -1030,6 +1033,11 @@ wlan_ccmp_load="YES" wlan_tkip_load="YES" + Die beiden Module wlan_scan_ap und + wlan_scan_sta werden von &os; 7.X + benötigt, andere &os; Versionen brauchen diese hingegen + nicht. + Danach müssen Sie Ihr &os;-System neu starten. Alternativ können Sie die Kernelmodule aber auch manuell mit &man.kldload.8; laden. @@ -1042,13 +1050,14 @@ device ath # Atheros IEEE 802.11 wireless network driver device ath_hal # Atheros Hardware Access Layer -device ath_rate_sample # John Bicket's SampleRate control algorithm. -device wlan # 802.11 support (Required) +options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors +device ath_rate_sample # SampleRate tx rate control for ath +device wlan # 802.11 support device wlan_scan_ap # 802.11 AP mode scanning device wlan_scan_sta # 802.11 STA mode scanning -device wlan_wep # WEP crypto support for 802.11 devices -device wlan_ccmp # AES-CCMP crypto support for 802.11 devices -device wlan_tkip # TKIP and Michael crypto support for 802.11 devices +device wlan_wep # 802.11 WEP support +device wlan_ccmp # 802.11 CCMP support +device wlan_tkip # 802.11 TKIP support Danach bauen Sie den neuen Kernel und starten Ihr &os;-System neu. @@ -1360,6 +1369,7 @@ ifconfig_ath0="ssid Ihre_ssid inet 192.168.1.100 netmask 255.255.255.0" + WPA @@ -1596,7 +1606,7 @@ - Das RSN/WPA2-Protokoll (IEEE 802.11i) wird + Das RSN/WPA2-Protokoll (&ieee; 802.11i) wird verwendet. @@ -3335,14 +3345,240 @@ - Link Aggregation and Failover + + + + Andrew + Thompson + Written by + + + + + + Benedict + Reuschling + Übersetzt von + + + Sharon + Bahagi + + + + Link Aggregation und Failover + + lagg + failover + fec + lacp + loadbalance + roundrobin + + + Einleitung + Die &man.lagg.4;-Schnittstelle erlaubt die Aggregation von + mehreren Netzwerkadaptern als eine virtuelle Schnittstelle mit dem + Ziel, Ausfallsicherheit (Failover) und Hochgeschwindigkeitsverbindungen + bereitzustellen. + + + + Anwendungsoptionen + + + + Ausfallsicherheit (Failover) + + + Sendet und empfängt Netzwerkverkehr nur auf dem + Masterport. Sollte der Masterport nicht zur Verfügung stehen, + wird der nächste aktive Port verwendet. Der zuerst + hinzugefügte Adapter wird zum Masterport, jeder weitere Adapter + dient als Gerät zur Ausfallsicherheit. + + + + &cisco; Fast ðerchannel; + + + &cisco; Fast ðerchannel; (FEC), ist eine statische + Konfiguration und handelt weder Aggregation mit der Gegenstelle aus, + noch werden Frames zur Überwachung der Verbindung ausgetauscht. + Wenn der Switch LACP unterstützt, sollte diese Option auch + verwendet werden. + + FEC balanciert den ausgehenden Verkehr + über die aktiven Ports, basierend auf gehashten + Protokollheaderinformationen und akzeptiert eingehenden Verkehr auf + jedem aktiven Port. Der Hash enthält die Ethernet-Quell- und + Zieladresse, und, falls verfügbar, den VLAN-Tag, sowie die + IPv4/IPv6 Quell- und Zieladresse. + + + + LACP + + + Das &ieee; 802.3ad Link Aggregation Control Protokoll + (LACP) und das Marker Protocol. LACP wird eine Menge von + aggregierbaren Verbindungen mit der Gegenstelle in einer oder + mehreren Link Aggregated Groups (LAG) aushandeln. Jede LAG besteht + aus Ports der gleichen Geschwindigkeit, eingestellt auf + Voll-Duplex-Betrieb. Der Verkehr wird über die Ports + in der LAG mit der größten Gesamtgeschwindigkeit + balanciert, in den meisten Fällen wird es nur eine LAG geben, + die alle Ports enthält. Im Falle von Änderungen in der + physischen Anbindung wird die Link Aggregation schnell zu einer + neuen Konfiguration konvergieren. + + LACP balanciert ausgehenden Verkehr + über die aktiven Ports basierend auf der gehashten + Protokollheaderinformation und akzeptiert eingehenden Verkehr auf + jedem aktiven Port. Der Hash beinhaltet die Ethernet-Quell- und + Zieladresse, und, soweit verfügbar, den VLAN-Tag, sowie die + IPv4/IPv6 Quell- und Zieladresse. + + + + Lastverteilung (Loadbalance) + + + Dabei handelt es sich um einen Alias des + FEC-Modus. + + + + Round-Robin + + + Verteilt ausgehenden Verkehr mittels einer Round-Robin-Zuteilung + über alle aktiven Ports und akzeptiert eingehenden Verkehr auf + jedem aktiven Port. Dieser Modus verletzt die Reihenfolge von + Ethernet-Frames und sollte mit Vorsicht eingesetzt werden. + + >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Aug 28 17:43:04 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8BC261065675; Fri, 28 Aug 2009 17:43:04 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4FCCC106564A for ; Fri, 28 Aug 2009 17:43:04 +0000 (UTC) (envelope-from r.c.ladan@gmail.com) Received: from mail-ew0-f209.google.com (mail-ew0-f209.google.com [209.85.219.209]) by mx1.freebsd.org (Postfix) with ESMTP id DBD238FC12 for ; Fri, 28 Aug 2009 17:43:03 +0000 (UTC) Received: by ewy5 with SMTP id 5so1351625ewy.36 for ; Fri, 28 Aug 2009 10:43:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=XNYpdzEm1R9WQHBw5uip4Hj0IyR9H4Y/Bv0CdM++/1Q=; b=eGl1vhQpR1cj9McA7RaL/u2ajvFq8nUZbb7N0Yyz6+MF/l+39+a518SNTjz3IZ2fpt zbzRaxWEhWE//l++xukzmaBoggwM6vCyJdQuFMxHxCaWJvFkI1oV3pqsgz6Bh9G8exNu /2X9UJU22+97tXM6r+YNMgQm/uIKV4bG+AmWw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=g1f5obnxk+5RI33BbOs7ZlVGLM1mMUYLdmYLAwmFIeeWeWO3QoRjBbluRsPCKazJ37 Zlak9gZRVSkaXG4hy0LVqNppfSkC1YarduyqwLVjvIx2PplJCcRX1dPrZO2d5Qg0F90g GOb+lfMRzLwh113FFEKdg93dC9kPMlBPNjs7s= MIME-Version: 1.0 Received: by 10.216.87.68 with SMTP id x46mr293129wee.2.1251481382864; Fri, 28 Aug 2009 10:43:02 -0700 (PDT) In-Reply-To: <200908281357.n7SDvxaE014654@repoman.freebsd.org> References: <200908281357.n7SDvxaE014654@repoman.freebsd.org> Date: Fri, 28 Aug 2009 19:43:02 +0200 Message-ID: From: Rene Ladan To: Perforce Change Reviews Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: Subject: Re: PERFORCE change 167920 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Aug 2009 17:43:04 -0000 2009/8/28 Rene Ladan : > http://perforce.freebsd.org/chv.cgi?CH=3D167920 > > Change 167920 by rene@rene_self on 2009/08/28 13:57:23 > > =A0 =A0 =A0 =A0Update the Dutch Translation section: > =A0 =A0 =A0 =A0* add my contact info > =A0 =A0 =A0 =A0* update links > > =A0 =A0 =A0 =A0Remove some EOL whitespace. > [...] I should obviously split the patch into a content and a whitespace patch when committing it to CVS. I was a bit too much in "translator" instead of "author" mode. > Affected files ... > > .. //depot/projects/docproj_nl/www/en/docproj/translations.sgml#7 edit > > Differences ... > [...] Rene From owner-p4-projects@FreeBSD.ORG Fri Aug 28 20:43:32 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0C1571065678; Fri, 28 Aug 2009 20:43:32 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C41CD1065676 for ; Fri, 28 Aug 2009 20:43:31 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B20C28FC08 for ; Fri, 28 Aug 2009 20:43:31 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7SKhV3B068220 for ; Fri, 28 Aug 2009 20:43:31 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7SKhVvE068218 for perforce@freebsd.org; Fri, 28 Aug 2009 20:43:31 GMT (envelope-from rene@FreeBSD.org) Date: Fri, 28 Aug 2009 20:43:31 GMT Message-Id: <200908282043.n7SKhVvE068218@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 167932 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Aug 2009 20:43:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=167932 Change 167932 by rene@rene_self on 2009/08/28 20:43:06 MFen handbook/firewall up to the new line 640 Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/firewalls/chapter.sgml#8 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/firewalls/chapter.sgml#8 (text+ko) ==== @@ -2,7 +2,6 @@ The FreeBSD Dutch Documentation Project $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/firewalls/chapter.sgml,v 1.10 2008/12/28 19:42:42 rene Exp $ - $FreeBSDnl: doc/nl_NL.ISO8859-1/books/handbook/firewalls/chapter.sgml,v 1.33 2006/01/05 21:13:21 siebrand Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/firewalls/chapter.sgml %SRCID% 1.89 @@ -153,9 +152,11 @@ door ze heen gaat aanzienlijk verminderen. - Tenzij anders aangegeven, creëeren alle configuratie- - en voorbeelden van regelverzamelingen inclusieve firewalls. + Tenzij anders aangegeven, creëeren alle configuraties + en voorbeelden van regelverzamelingen in dit hoofdstuk inclusieve + firewalls. + De beveiliging kan nog verder vergroot worden met een stateful firewall. Dit type firewall houdt bij welke connecties er door de firewall tot stand zijn gekomen @@ -180,15 +181,14 @@ beheersen van bandbreedtegebruik): &man.altq.4; en &man.dummynet.4;. Dummynet is traditioneel sterk verbonden met IPFW en ALTQ met - PF. Het vormgeven van verkeer voor - IPFILTER kan momenteel gedaan worden met - IPFILTER voor NAT en filtering en + PF. Het vormgeven van verkeer voor IPFILTER kan + momenteel gedaan worden met IPFILTER voor NAT en filtering en IPFW met &man.dummynet.4; of door PF met ALTQ te gebruiken. IPFW en PF gebruiken allemaal regels om de toegang van pakketten tot een - systeem te regelen, hoewel ze dat op andere manieren doen en de - syntaxis voor regels anders is. + systeem te regelen, hoewel ze dat op andere manieren doen en ze + een andere regelsyntaxis hebben. De reden dat er meerdere firewallpakketten in &os; zitten is dat verschillende mensen verschillende eisen en voorkeuren @@ -202,7 +202,7 @@ Omdat alle firewalls gebaseerd zijn op het inspecteren van aangegeven controlevelden in pakketten, moet iemand die sets van - firewallregels opstelt begrijpen hoe TCP/IP + firewallregels opstelt begrijpen hoe TCP/IP werkt, welke waarde de controlevelden kunnen hebben en hoe die waarden gebruikt worden in normaal verkeer. Op de volgende webpagina wordt een prima uitleg gegeven: - De OpenBSD Packet Filter (PF) en - <acronym>ALTQ</acronym> + De OpenBSD Packet Filter (PF) en <acronym>ALTQ</acronym> firewall @@ -261,7 +260,7 @@ systeem zal de PF kernelmodule dynamisch laden wanneer het statement pf_enable="YES" voor &man.rc.conf.5; aanwezig is. De PF module - zal echter niet laden als het systeem geen instellingenbestand + zal echter niet geladen worden als het systeem geen instellingenbestand met een PF ruleset kan vinden. De standaardplaats is /etc/pf.conf. Indien uw PF ruleset ergens anders staat, voeg dan @@ -320,8 +319,8 @@ PF wordt gebruikt prijsgeeft. Het kan worden gecombineerd met &man.carp.4; om failover firewalls aan te maken die gebruik maken van PF. Meer informatie - over CARP kan gevonden worden in hoofdstuk 29 van het handboek. + over CARP kan gevonden worden in van het Handboek. De kernelopties voor PF kunnen gevonden worden in /usr/src/sys/conf/NOTES en zijn @@ -488,34 +487,34 @@ options ALTQ schakelt het ALTQ raamwerk in. - options ALTQ_CBQ schakelt Class Based - Queuing (CBQ) in. Met + options ALTQ_CBQ schakelt Class Based + Queuing (CBQ) in. Met CBQ kan de bandbreedte van een verbinding worden opgedeeld in verschillende klassen of wachtrijen om verkeer te prioriteren op basis van filterregels. - options ALTQ_RED schakelt Random Early - Detection (RED) in. RED - wordt gebruikt om netwerkverstopping te voorkomen. - RED doet dit door de lengte van de wachtrij - te meten en die te vergelijken met de minimale en maximale + options ALTQ_RED schakelt Random Early + Detection (RED) in. + RED wordt gebruikt om netwerkverstopping te + voorkomen. RED doet dit door de lengte van de + wachtrij te meten en die te vergelijken met de minimale en maximale drempelwaarden voor de wachtrij. Als de wachtrij groter is dan de maximale waarde worden alle nieuwe pakketten genegeerd. Het werkt naar zijn naam, dus RED negeert willekeurig pakketten van verschillende verbindingen. - options ALTQ_RIO schakelt Random Early - Detection In and Out in. + options ALTQ_RIO schakelt Random Early + Detection In and Out in. options ALTQ_HFSC schakelt de - Hierarchical Fair Service Curve Packet Scheduler in. Meer - informatie over HFSC staat op Hierarchical Fair Service Curve Packet Scheduler + in. Meer informatie over HFSC staat op . - options ALTQ_PRIQ schakelt Priority - Queuing (PRIQ) in. PRIQ - laat verkeerd dat in een hogere wachtrij staat altijd eerder - door. + options ALTQ_PRIQ schakelt Priority + Queuing (PRIQ) in. + PRIQ laat verkeer dat in een hogere wachtrij staat + altijd eerder door. options ALTQ_NOPCC schakelt SMP ondersteuning voor @@ -533,11 +532,6 @@ IPFILTER - - Aan dit onderdeel wordt nog gewerkt. De inhoud is wellicht - niet altijd volledig en juist. - - Darren Reed is de auteur van IPFILTER, dat niet afhankelijk is van één besturingssysteem. Het is een open source applicatie die is geporteerd naar &os;, NetBSD, OpenBSD, @@ -563,10 +557,10 @@ quick en keep state toegevoegd waarmee de logica van het verwerken van regels drastisch is gemoderniseerd. In de officiële documentatie - van IPF worden de verouderde regels en verwerkingslogica + van IPF worden alleen de regels en verwerkingslogica behandeld. De moderne functies worden alleen behandeld als - opties, waardoor hun nut dat er een veiliger firewall mee te - maken volledig onderbelicht blijft. + opties, waardoor hun nut dat er een veel betere en veiligere firewall mee + te maken volledig onderbelicht blijft. De instructies in dit hoofdstuk zijn gebaseerd op regels die gebruik maken van de optie quick en de @@ -574,16 +568,6 @@ raamwerk waarmee een set van inclusieve firewallregels wordt samengesteld. - Een inclusieve firewall staat alleen pakketten toe die - voldoen aan de regels. Op die manier kan er in de hand - gehouden worden welke diensten van binnen de firewall naar - buiten mogen en welke diensten op het private netwerk vanaf - het Internet bereikbaar zijn. Al het andere verkeer wordt - vanuit het ontwerp standaard geblokkeerd en gelogd. - Inclusieve firewalls zijn veel veiliger dan exclusieve - firewalls. Het is ook de enige wijze voor de opzet van een - firewall die in dit hoofdstuk wordt behandeld. - Voor een gedetailleerde uitleg over de verwerking van de verouderde regels zie ingeschakeld. IPF hoeft niet in de kernel gecompileerd te worden om het standaardgedrag te wijzigen naar block all. Dat is mogelijk - door als laatste regel een regel toe te voegen die al het - verkeer blokkeert. + door op het einde van de ruleset een regel block all + toe te voegen die al het verkeer blokkeert. @@ -683,14 +667,15 @@ Beschikbare opties voor rc.conf - De volgende instellingen moeten in /etc/rc.conf - staan om IPF bij het booten te activeren: + De volgende instellingen moeten in /etc/rc.conf + staan om IPF bij het opstarten te activeren: ipfilter_enable="YES" # Start ipf firewall ipfilter_rules="/etc/ipf.rules" # laad regels uit het doelbestand ipmon_enable="YES" # Start IP monitor log ipmon_flags="-Ds" # D = start als daemon # s = log naar syslog + # v = log tcp window, ack, seq # n = vertaal IP & poort naar namen From owner-p4-projects@FreeBSD.ORG Fri Aug 28 22:19:26 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5946C1065675; Fri, 28 Aug 2009 22:19:26 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1DC071065673 for ; Fri, 28 Aug 2009 22:19:26 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0BCA68FC15 for ; Fri, 28 Aug 2009 22:19:26 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7SMJPht087138 for ; Fri, 28 Aug 2009 22:19:25 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7SMJP2q087136 for perforce@freebsd.org; Fri, 28 Aug 2009 22:19:25 GMT (envelope-from jona@FreeBSD.org) Date: Fri, 28 Aug 2009 22:19:25 GMT Message-Id: <200908282219.n7SMJP2q087136@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167933 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Aug 2009 22:19:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=167933 Change 167933 by jona@jona-trustedbsd-belle-vmware on 2009/08/28 22:18:41 Better passing of rights, including 64b type handling Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel.c#14 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel.h#13 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel.c#14 (text+ko) ==== @@ -232,10 +232,9 @@ data[0] = ua_marshall_int(UA_OPEN_PATH); data[1] = ua_marshall_string(path, strlen(path)); data[2] = ua_marshall_int(flags); - data[3] = ua_marshall_int(rights); + data[3] = ua_marshall_long(rights); data[4] = ua_marshall_int(mask); - for(int i = 0; i <= 4; i++) { if(ua_send(angel, data[i], NULL, 0) < 0) return -1; @@ -277,40 +276,40 @@ if(angel < 0) return NULL; int flags = 0; - cap_rights_t rights = CAP_SEEK | CAP_FSYNC; + cap_rights_t rights = CAP_SEEK | CAP_FSYNC | CAP_FCNTL | CAP_FCHFLAGS | CAP_MASK_VALID; - if(strstr(mode, "r+")) + if(strnstr(mode, "r+", 3)) { flags |= O_RDWR; rights |= CAP_READ | CAP_WRITE | CAP_FTRUNCATE; } - else if(strstr(mode, "r")) + else if(strnstr(mode, "r", 2)) { flags |= O_RDONLY; rights |= CAP_READ; } - else if(strstr(mode, "w+")) + else if(strnstr(mode, "w+", 3)) { flags |= O_RDWR | O_CREAT | O_TRUNC; rights |= CAP_READ | CAP_WRITE | CAP_FTRUNCATE; } - else if(strstr(mode, "w")) + else if(strnstr(mode, "w", 2)) { flags |= O_WRONLY | O_CREAT | O_TRUNC; rights |= CAP_WRITE | CAP_FTRUNCATE; } - else if(strstr(mode, "a+")) + else if(strnstr(mode, "a+", 3)) { flags |= O_RDWR | O_CREAT | O_APPEND; rights |= CAP_READ | CAP_WRITE | CAP_FTRUNCATE; } - else if(strstr(mode, "a")) + else if(strnstr(mode, "a", 2)) { flags |= O_WRONLY | O_CREAT | O_APPEND; rights |= CAP_WRITE | CAP_FTRUNCATE; } - int fd = ua_open(path, flags); + int fd = ua_ropen(path, flags, rights, 0); if(flags & O_APPEND) if(lseek(fd, 0, SEEK_END) < 0) { @@ -320,6 +319,10 @@ return NULL; } + char buf[80]; + bzero(buf, 80); + if(read(fd, buf, 35) < 0) perror("Error reading file"); + return fdopen(fd, mode); } @@ -542,6 +545,52 @@ +datum* ua_marshall_long(int64_t value) +{ + int size = sizeof(datum) + sizeof(value); + datum *d = (datum*) malloc(size); + + d->type = LONG | INTEGER; + d->length = sizeof(value); + + void *address = ((char*) d) + sizeof(datum); + ((int64_t*) address)[0] = value; + + return d; +} + + + +int ua_unmarshall_long(const datum *d, int64_t *value) +{ + if(d == NULL) + { + errno = EINVAL; + return -1; + } + + if(!(d->type & (LONG | INTEGER))) + { + if(d->type & ERROR) handle_error(d); + else errno = EINVAL; + return -1; + } + + if(d->length > sizeof(int64_t)) + { + errno = EOVERFLOW; + return -1; + } + else bzero(value, sizeof(int32_t)); + + memcpy(value, ((const char*) d) + sizeof(datum), sizeof(*value)); + + return d->length; +} + + + + datum* ua_marshall_string(const char *value, unsigned int len) { int size = sizeof(datum) + len; @@ -655,7 +704,7 @@ data[4] = ua_marshall_int(options->mult); data[5] = ua_marshall_string(options->filter, options->filterlen); data[6] = ua_marshall_int(options->flags); - data[7] = ua_marshall_int(options->rights); + data[7] = ua_marshall_long(options->rights); data[8] = ua_marshall_int(options->umask); int total_size = 0; @@ -743,8 +792,9 @@ options->flags = tmp_int; head = (const datum*) (((const char*) head) + sizeof(datum) + head->length); - if(ua_unmarshall_int(head, &tmp_int) < 0) return -1; - options->rights = tmp_int; + int64_t tmp_long; + if(ua_unmarshall_long(head, &tmp_long) < 0) return -1; + options->rights = tmp_long; head = (const datum*) (((const char*) head) + sizeof(datum) + head->length); if(ua_unmarshall_int(head, &tmp_int) < 0) return -1; @@ -757,13 +807,14 @@ void handle_error(const datum *d) { - int32_t errnum; + int32_t errnum = 0; char msg[200]; int msglen = 200; - if(ua_unmarshall_error(d, &errnum, msg, &msglen) < 0) return; + ua_unmarshall_error(d, &errnum, msg, &msglen); errno = errnum; + printf("libuserangel error: %s\n", msg); /* TODO: do something! fprintf(stderr, "user_angel error: %s (%i: %s)\n", ==== //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel.h#13 (text+ko) ==== @@ -122,6 +122,7 @@ /* Unmarshalling functions; calling programs should free the result */ struct ua_datum* ua_marshall_int(int32_t value); +struct ua_datum* ua_marshall_long(int64_t value); struct ua_datum* ua_marshall_string(const char *value, unsigned int len); struct ua_datum* ua_marshall_error(int errnum, const char *msg, unsigned int msglen); struct ua_datum* ua_marshall_powerbox(const struct ua_powerbox_options *options); @@ -129,6 +130,7 @@ /* Unmarshalling functions; return the number of bytes unmarshalled (or -1) */ int ua_unmarshall_int(const struct ua_datum *d, int32_t *value); +int ua_unmarshall_long(const struct ua_datum *d, int64_t *value); int ua_unmarshall_bytes(const struct ua_datum *d, char *value, unsigned int *len); int ua_unmarshall_string(const struct ua_datum *d, char *value, unsigned int *len); int ua_unmarshall_error(const struct ua_datum *d, int *errnum, char *msg, int *msglen); From owner-p4-projects@FreeBSD.ORG Fri Aug 28 22:24:32 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1EF1C1065672; Fri, 28 Aug 2009 22:24:32 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C0847106564A for ; Fri, 28 Aug 2009 22:24:31 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AF22E8FC24 for ; Fri, 28 Aug 2009 22:24:31 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7SMOVdk087529 for ; Fri, 28 Aug 2009 22:24:31 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7SMOVje087527 for perforce@freebsd.org; Fri, 28 Aug 2009 22:24:31 GMT (envelope-from jona@FreeBSD.org) Date: Fri, 28 Aug 2009 22:24:31 GMT Message-Id: <200908282224.n7SMOVje087527@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167934 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Aug 2009 22:24:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=167934 Change 167934 by jona@jona-trustedbsd-belle-vmware on 2009/08/28 22:23:48 Some test code went into the last rev... putting things right now Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel.c#15 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel.c#15 (text+ko) ==== @@ -276,7 +276,7 @@ if(angel < 0) return NULL; int flags = 0; - cap_rights_t rights = CAP_SEEK | CAP_FSYNC | CAP_FCNTL | CAP_FCHFLAGS | CAP_MASK_VALID; + cap_rights_t rights = CAP_SEEK | CAP_FSYNC | CAP_FCNTL; if(strnstr(mode, "r+", 3)) { @@ -319,10 +319,6 @@ return NULL; } - char buf[80]; - bzero(buf, 80); - if(read(fd, buf, 35) < 0) perror("Error reading file"); - return fdopen(fd, mode); } @@ -807,11 +803,11 @@ void handle_error(const datum *d) { - int32_t errnum = 0; + int32_t errnum; char msg[200]; int msglen = 200; - ua_unmarshall_error(d, &errnum, msg, &msglen); + if(ua_unmarshall_error(d, &errnum, msg, &msglen) < 0) return; errno = errnum; printf("libuserangel error: %s\n", msg); From owner-p4-projects@FreeBSD.ORG Fri Aug 28 23:30:09 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 356EA106591B; Fri, 28 Aug 2009 23:30:09 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EE41C106593F for ; Fri, 28 Aug 2009 23:30:08 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DCF918FC22 for ; Fri, 28 Aug 2009 23:30:08 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7SNU8Uj093821 for ; Fri, 28 Aug 2009 23:30:08 GMT (envelope-from anchie@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7SNU8n3093819 for perforce@freebsd.org; Fri, 28 Aug 2009 23:30:08 GMT (envelope-from anchie@FreeBSD.org) Date: Fri, 28 Aug 2009 23:30:08 GMT Message-Id: <200908282330.n7SNU8n3093819@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anchie@FreeBSD.org using -f From: Ana Kukec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167941 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Aug 2009 23:30:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=167941 Change 167941 by anchie@anchie_malimis on 2009/08/28 23:29:47 Add tags to the outgoing RS/RA messages. Affected files ... .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/nd6_nbr.c#9 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/raw_ip6.c#4 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#28 edit Differences ... ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/nd6_nbr.c#9 (text+ko) ==== @@ -628,6 +628,7 @@ struct llentry *ln = NULL; union nd_opts ndopts; struct mbuf *chain = NULL; + struct m_tag *mtag; struct sockaddr_in6 sin6; char ip6bufs[INET6_ADDRSTRLEN], ip6bufd[INET6_ADDRSTRLEN]; ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/raw_ip6.c#4 (text+ko) ==== @@ -99,6 +99,7 @@ #include #include #include +#include #ifdef IPSEC #include @@ -367,6 +368,7 @@ #endif { struct mbuf *control; + struct m_tag *mtag; struct socket *so; struct sockaddr_in6 *dstsock; struct in6_addr *dst; @@ -506,6 +508,23 @@ *p = in6_cksum(m, ip6->ip6_nxt, sizeof(*ip6), plen); } + /* Send RA/RS messages to user land for protection, before sending + * them to rtadvd/rtsol. + */ + if (send_input_hook != NULL) { + switch (type) { + case ND_ROUTER_ADVERT: + case ND_ROUTER_SOLICIT: + if (send_input_hook != NULL) { + mtag = m_tag_get(PACKET_TAG_ND_OUTGOING, + sizeof(unsigned short), M_NOWAIT); + if (mtag == NULL) + goto bad; + m_tag_prepend(m, mtag); + } + } + } + error = ip6_output(m, optp, NULL, 0, in6p->in6p_moptions, &oifp, in6p); if (so->so_proto->pr_protocol == IPPROTO_ICMPV6) { if (oifp) ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#28 (text+ko) ==== @@ -31,7 +31,7 @@ struct sockaddr_in6 dst; struct icmp6_hdr *icmp6; int icmp6len; - //int *offp = NULL; + int offp; printf("send.c: send_output()\n"); @@ -97,8 +97,8 @@ return (ENOSYS); } - //*offp = sizeof (struct ip6_hdr); - //icmp6_rip6_input(&m, *offp); + offp = sizeof (struct ip6_hdr); + icmp6_rip6_input(&m, offp); /* * No error returned from nd6_??_input() so the only thing From owner-p4-projects@FreeBSD.ORG Sat Aug 29 09:22:57 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C82A1106566C; Sat, 29 Aug 2009 09:22:57 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 57F37106564A for ; Sat, 29 Aug 2009 09:22:57 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 480928FC1C for ; Sat, 29 Aug 2009 09:22:57 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7T9Mvxu077869 for ; Sat, 29 Aug 2009 09:22:57 GMT (envelope-from anchie@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7T9Mvid077867 for perforce@freebsd.org; Sat, 29 Aug 2009 09:22:57 GMT (envelope-from anchie@FreeBSD.org) Date: Sat, 29 Aug 2009 09:22:57 GMT Message-Id: <200908290922.n7T9Mvid077867@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anchie@FreeBSD.org using -f From: Ana Kukec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167950 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 Aug 2009 09:22:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=167950 Change 167950 by anchie@anchie_malimis on 2009/08/29 09:22:09 Additional check before tagging RS/RA messages. Affected files ... .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/raw_ip6.c#5 edit Differences ... ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/raw_ip6.c#5 (text+ko) ==== @@ -508,20 +508,20 @@ *p = in6_cksum(m, ip6->ip6_nxt, sizeof(*ip6), plen); } - /* Send RA/RS messages to user land for protection, before sending + /* + * Send RA/RS messages to user land for protection, before sending * them to rtadvd/rtsol. */ - if (send_input_hook != NULL) { + if (send_input_hook != NULL && + so->so_proto->pr_protocol == IPPROTO_ICMPV6) { switch (type) { case ND_ROUTER_ADVERT: case ND_ROUTER_SOLICIT: - if (send_input_hook != NULL) { - mtag = m_tag_get(PACKET_TAG_ND_OUTGOING, - sizeof(unsigned short), M_NOWAIT); - if (mtag == NULL) - goto bad; - m_tag_prepend(m, mtag); - } + mtag = m_tag_get(PACKET_TAG_ND_OUTGOING, + sizeof(unsigned short), M_NOWAIT); + if (mtag == NULL) + goto bad; + m_tag_prepend(m, mtag); } } From owner-p4-projects@FreeBSD.ORG Sat Aug 29 15:12:19 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1A0B01065672; Sat, 29 Aug 2009 15:12:19 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C995F106566C for ; Sat, 29 Aug 2009 15:12:18 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B7E998FC12 for ; Sat, 29 Aug 2009 15:12:18 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7TFCICV018986 for ; Sat, 29 Aug 2009 15:12:18 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7TFCI3k018984 for perforce@freebsd.org; Sat, 29 Aug 2009 15:12:18 GMT (envelope-from rene@FreeBSD.org) Date: Sat, 29 Aug 2009 15:12:18 GMT Message-Id: <200908291512.n7TFCI3k018984@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 167952 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 Aug 2009 15:12:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=167952 Change 167952 by rene@rene_self on 2009/08/29 15:11:17 MFen handbook/firewalls up to the new line 1334 Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/firewalls/chapter.sgml#9 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/firewalls/chapter.sgml#9 (text+ko) ==== @@ -675,14 +675,13 @@ ipmon_enable="YES" # Start IP monitor log ipmon_flags="-Ds" # D = start als daemon # s = log naar syslog - # v = log tcp window, ack, seq # n = vertaal IP & poort naar namen Als er een LAN achter de firewall staat dat gebruik maakt - van IP adressen uit de privaat reeks, dan + van IP-adressen uit de private reeks, dan moet de volgende optie ook ingesteld worden om - NAT functionaliteit in te schakelen: + NAT-functionaliteit in te schakelen: gateway_enable="YES" # Schakel in als LAN gateway ipnat_enable="YES" # Start ipnat functie @@ -694,7 +693,7 @@ ipf - &man.ipf.8; wordt gebruikt om het bestand met + Het commando &man.ipf.8; wordt gebruikt om het bestand met firewallregels te laden. Gewoonlijk wordt er een bestand aangemaakt waarin de situatieafhankelijke regels staan waarmee in één keer de bestaande regels kunnen @@ -767,9 +766,9 @@ Packet log flags set: (0) Als er als optie voor inkomend of - voor uitgaand wordt meegegeven, dan wordt - de juiste lijst met regels die de kernel op dat moment gebruikt - weergegeven. + voor uitgaand wordt meegegeven, dan zal het + commando de juiste lijst met regels die de kernel op dat moment gebruikt + wordt weergeven. ipfstat –in toont de tabel met regels voor inkomend verkeer met regelnummers @@ -801,7 +800,7 @@ ipfstat is de vlag waarmee de staat-tabel wordt getoond op een wijze die vergelijkbaar is met de wijze waarop &man.top.1; de draaiende - &os; procestabel toont. Als een firewall wordt aangevallen dan + &os; procestabel toont. Als een firewall wordt aangevallen, dan geeft deze functie de mogelijkheid om de pakketten van de aanvaller te identificeren en nader te onderzoeken. De optionele subvlaggen bieden de mogelijkheid om een bron of @@ -834,9 +833,10 @@ IPFILTER ingesteld om samen te werken. &os; heeft ingebouwde mogelijkheden om automatisch syslogs te roteren. Daarom is het beter om de uitvoer naar &man.syslogd.8; te schrijven - dan naar een gewoon bestand. In rc.conf - is te zien dat de instelling ipmon_flags - de waarde heeft: + dan naar een gewoon bestand. In de standaardversie van het bestand + rc.conf is te zien dat de instelling + ipmon_flags de waarde + heeft: ipmon_flags="-Ds" # D = start als daemon # s = log naar syslog @@ -848,11 +848,11 @@ pakketten heeft de firewall laten vallen, waar kwamen ze vandaan en waar gingen ze heen? Dit zijn allemaal voordelen als het gaat om uitvinden waar een aanvaller vandaan komt en - wat hij heeft geprobeerd. + wat deze heeft geprobeerd. - Zelfs als loggen is ingeschakeld logt IPF nog niets uit - zichzelf. De beheerder van de firewall beslist welke actieve - regels iets weg moeten schrijven door het sleutelwoord + Zelfs als loggen is ingeschakeld, logt IPF nog niets uit + zichzelf. De beheerder van de firewall beslist welke regels in de + regelverzameling iets weg moeten schrijven door het sleutelwoord log aan die regels toe te voegen. Gewoonlijk worden alleen deny regels gelogd. @@ -886,16 +886,17 @@ Om IPFILTER alle gelogde gegevens naar /var/log/ipfilter.log te laten schrijven, - dient dat bestand te bestaan. Dat kan met het volgende + dient dat bestand vooraf te bestaan. Dat kan met het volgende commando: &prompt.root; touch /var/log/ipfilter.log - De syslogfunctie wordt beheerd met instellingen in - /etc/syslog.conf. + De functionaliteit van &man.syslogd.8; wordt beheerd met + instellingen in /etc/syslog.conf. syslog.conf biedt aanzienlijke - flexibiliteit in hoe syslog omgaat met systeemberichten die - door softwaretoepassingen als IPF worden gegeven. + flexibiliteit in hoe syslog omgaat met + systeemberichten die door softwaretoepassingen als IPF worden + gegeven. Zo kan de volgende instelling toegevoegd worden aan /etc/syslog.conf: @@ -908,8 +909,8 @@ Om de wijzigingen in /etc/syslog.conf actief te maken kan er - gereboot worden of is het mogelijk de syslogtaak een schop te - geven zodat /etc/syslog.conf opnieuw + gereboot worden of is het mogelijk de daemon &man.syslogd.8; een schop + te geven zodat /etc/syslog.conf opnieuw wordt ingelezen met /etc/rc.d/syslogd reload. Het PID (procesnummer) is te achterhalen door een overzicht van taken te tonen met @@ -974,10 +975,9 @@ De adressen. Dit zijn eigenlijk drie velden: het - bronadres en poort gescheiden door een komma het symbool - -> en het bestemmingsadres en poort. - 209.53.17.22,80 -> - 198.73.220.17,1722. + bronadres en poort gescheiden door een komma, het symbool + -> en het bestemmingsadres en poort, bijvoorbeeld: + 209.53.17.22,80 -> 198.73.220.17,1722. @@ -1014,8 +1014,8 @@ regels bevat en stellen dat op zo'n manier op dat het uitgevoerd kan worden als een script met substitutie. Het grote voordeel van deze werkwijze is dat er dan alleen de - waarde van een variabele gewijzigd hoeft te worden en dat - als het script opnieuw wordt uitgevoerd, op alle plaatsen + waarde geassocieerd met een symboliscche naam gewijzigd hoeft te worden + en dat als het script opnieuw wordt uitgevoerd, op alle plaatsen waar de variabele wordt gebruikt, de nieuwe waarde in de regels wordt opgenomen. Omdat het een script is, kan substitutie gebruik worden om vaak voorkomende waarden @@ -1024,8 +1024,7 @@ onderstaande voorbeeld. De syntaxis die in het script wordt gebruikt is - compatibel met de shells sh, - csh en tcsh. + compatibel met de shells &man.sh.1;, &man.csh.1; en &man.tcsh.1;. Velden waarvoor substitutie van toepassing is worden vooraf gegaan door het dollarteken @@ -1075,9 +1074,8 @@ voorbeeld, maar tonen hoe substitutievelden worden gedefinieerd en hoe ze worden gebruikt. Als het bovenstaande voorbeeld de inhoud van - /etc/ipf.rules.script was, dan kon het - geladen worden door het vanaf de commandoregel aan te - roepen: + /etc/ipf.rules.script was, dan konden deze regels + herladen worden door het vanaf de commandoregel aan te roepen: &prompt.root; sh /etc/ipf.rules.script @@ -1106,11 +1104,11 @@ /etc/rc.conf (dit is de standaardwaarde). - Voeg een script zoals de volgende toe aan de - /usr/local/etc/rc.d opstart - directory. Het script zou een duidelijke naam - moeten hebben zoals ipf.loadrules.sh. - De .sh is noodzakelijk. + Voeg een script zoals de volgende toe aan de opstartmap + /usr/local/etc/rc.d. Het + script zou een duidelijke naam moeten hebben zoals + ipf.loadrules.sh. De uitbreiding + .sh is noodzakelijk. #!/bin/sh sh /etc/ipf.rules.script @@ -1129,21 +1127,22 @@ Sets van IPF regels - Een set regels is een groep ipf regels + Een set regels is een groep IPF-regels die is gemaakt om pakketten toe te staan of te blokkeren op basis van de eigenschappen van dat pakket. De bi-directionele uitwisseling van pakketten tussen hosts bestaat uit een gesprek dat een sessie heet. De set van - firewallregels beoordeelt pakketten twee keer: als het - aankomt van de host op het publieke Internet en als het de - host weer verlaat op de weg terug naar de host op het - publieke Internet. Iedere TCP/IP dienst - als telnet, www, mail, etc, heeft zijn eigen protocol, bron - IP adres en bestemmings - IP adres of de bron- en bestemmingspoort. - Deze attributen vormen de basis voor het opstellen van regels - waarmee diensten toegelaten of geblokkeerd kunnen - worden. + firewallregels verwerkt zowel de pakketten die arriveren van het + publieke Internet, als de pakketten die door het systeem zijn + geproduceerd als een antwoord erop. Elke + TCP/IP-dienst (i.e. telnet, www, mail, enz.) is + vooraf gedefinieerd door een protocol en bevoorrechte (luister)poort. + Pakketten bedoeld voor een speciale dienst beginnen bij het bronadres + gebruik makend van een onbevoorrechte (hogere orde) poort en komen aan + bij de specifieke dienstpoort op het bestemmingsadres. Alle + bovengenoemde parameters (poorten en adressen) kunnen gebruikt worden + als selectiecriteria om regels aa te maken die diensten zullen toestaan + of blokkeren. IPFILTER @@ -1165,16 +1164,6 @@ is het raamwerk waarmee een set van inclusieve firewallregels wordt samengesteld. - Een inclusieve firewall staat alleen diensten toe die - voldoen aan de regels. Op die manier kan er in de hand - gehouden worden welke diensten van binnen de firewall naar - buiten mogen en welke diensten op het private netwerk vanaf - het Internet bereikbaar zijn. Al het andere verkeer wordt - vanuit het ontwerp standaard geblokkeerd en gelogd. - Inclusieve firewalls zijn veel veiliger dan exclusieve - firewalls. Het is ook de enige wijze voor de opzet van een - firewall die in dit hoofdstuk wordt behandeld. - Werk bij het wijzigen van firewallregels zeer voorzichtig. Met sommige instellingen is een @@ -1267,9 +1256,10 @@ Een verplicht onderdeel voor iedere filterregel waarin expliciet wordt aangegeven op welke zijde van de in/uit - hij van toepassing is. Het volgende sleutelwoord moet + deze van toepassing is. Het volgende sleutelwoord moet in of out - zijn, anders is de regel syntactisch onjuist. + zijn en één van de twee moet gecodeerd wworden, anders + is de regel syntactisch onjuist. in betekent dat de regel van toepassing is op inkomende pakketten. @@ -1308,8 +1298,8 @@ (in/out). Ook deze optie is verplicht voor de moderne regels. - Als een pakket wordt gelogd, dan wordt de kop van het - pakket weggeschreven naar het ipl + Als een pakket wordt gelogd, dan worden de koppen van het + pakket weggeschreven naar het ipl pakketloggende pseudo–apparaat. Direct na het sleutelwoord log mogen de volgende opties gebruikt worden (in de aangegeven volgorde): @@ -1319,8 +1309,8 @@ kop. first; als het sleutelwoord - log samen met keep - state wordt gebruikt, wordt het aangeraden om + log samen met een optie keep + state wordt gebruikt, wordt het aangeraden om deze optie ook te gebruiken zodat alleen het pakket dat als eerste in de sessie van toepassing was en niet ook alle pakketten die daarna in de sessie volgens @@ -1354,9 +1344,9 @@ udp, icmp of ieder ander protocol dat in /etc/protocols staat wordt herkend en kan gebruikt worden. Het bijzondere - protocol sleutelwoord tcp/udp kan gebruikt - worden om zowel voor TCP als - UDP pakketten van toepassing te laten zijn. Het is + protocolsleutelwoord tcp/udp kan gebruikt + worden om zowel voor TCP- als + UDP-pakketten van toepassing te laten zijn. Het is toegevoegd voor het gemak om vrijwel gelijke regels te voorkomen. @@ -1368,28 +1358,25 @@ hetzelfde als from any to any zonder overige parameters. - from bron to dest; de + from bron to bestemming; de sleutelwoorden from en to worden gebruikt om te testen op - IP adressen. In regels moet zowel een - bron als bestemmings IP adres + IP-adressen. In regels moet + zowel een bron- als + bestemmings-IP-adres aangegeven worden. any is een - bijzonder sleutelwoord dat van toepassing is voor ieder - IP adres als in from any to - any of from 0.0.0.0/0 to any - of from any to 0.0.0.0/0 of - from 0.0.0.0 to any of from - any to 0.0.0.0. + bijzonder sleutelwoord dat van toepassing is op ieder + IP-adres. Voorbeelden van gebruik: from + any to any of from 0.0.0.0/0 to any of + from any to 0.0.0.0/0 of from 0.0.0.0 to + any of from any to 0.0.0.0. - IP adressen mogen ingevoerd worden - in de vorm numeriek, door punten gescheiden - adres/maskerlengte of als een enkelvoudig - IP adres in de vorm numeriek, door - punten gescheiden. - - Het is vaak lastig om te komen tot een reeks adressen - in de vorm adres/masker. De volgende webpagina kan daar - wellicht bij helpen: Het is vaak lastig om te komen tot een reeks IP-adressen die zich + niet gemakkelijk laten uitdrukken met de gepunte numerieke vorm/ + masker-lengte notatie. De port net-mgmt/ipcalc kan gebruikt worden om de + berekeningen te vereenvoudigen. Aanvullende informatie is beschikbaar + op de webpgina van het gereedschap: . @@ -1398,9 +1385,10 @@ Als in een regel op een poort wordt gecontroleerd, voor bron- of bestemmingspoort of beiden, dan is dat alleen van - toepassing op TCP en UDP pakketten. Bij - het maken van poortvergelijkingen kunnen zowel de dienstnamen - uit /etc/services als een uit een + toepassing op TCP- en + UDP-pakketten. Bij het maken van + poortvergelijkingen kunnen zowel de dienstnamen uit + /etc/services als een uit een natuurlijk getal bestaand poortnummer ingesteld worden. Als de poort onderdeel is van het from object dan wordt het vergeleken met het poortnummer van de bron en @@ -1410,13 +1398,13 @@ is in de moderne regels verplicht en neemt de vorm aan van from any to any port = 80. - Poortvergelijkingen kunnen op verschillende manieren - ingesteld worden met een aantal verschillende operators. + Enkelvoudige poortvergelijkingen kunnen op verschillende manieren + gedaan worden met een aantal verschillende operatoren. Er kunnen ook reeksen van poorten ingesteld worden. port = of een van de volgende operators: !=, <, >, <, >=, eq, ne, - lt, gt, le, ge. + lt, gt, le, ge. Reeksen van poorten worden met de volgende optie aangegeven: port <> of @@ -1430,7 +1418,8 @@ - TCP_VLAG + + <acronym>TCP</acronym>_VLAG Vlaggen zijn alleen beschikbaar voor het filteren van TCP. De letters staan voor From owner-p4-projects@FreeBSD.ORG Sat Aug 29 15:43:53 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 52CA01065673; Sat, 29 Aug 2009 15:43:53 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1553E106566C for ; Sat, 29 Aug 2009 15:43:53 +0000 (UTC) (envelope-from zjriggl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 029A68FC0A for ; Sat, 29 Aug 2009 15:43:53 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7TFhqE4021268 for ; Sat, 29 Aug 2009 15:43:52 GMT (envelope-from zjriggl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7TFhq0h021266 for perforce@freebsd.org; Sat, 29 Aug 2009 15:43:52 GMT (envelope-from zjriggl@FreeBSD.org) Date: Sat, 29 Aug 2009 15:43:52 GMT Message-Id: <200908291543.n7TFhq0h021266@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zjriggl@FreeBSD.org using -f From: Zachariah Riggle To: Perforce Change Reviews Cc: Subject: PERFORCE change 167953 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 Aug 2009 15:43:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=167953 Change 167953 by zjriggl@zjriggl_tcpregression on 2009/08/29 15:43:23 Added better comments Affected files ... .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/loggable.py#8 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpconstructor.py#2 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpsenddaemon.py#3 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpstatemachine.py#11 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tests/tcpFilterTest.py#3 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tests/testTcpConstructor.py#2 edit Differences ... ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/loggable.py#8 (text+ko) ==== @@ -1,3 +1,52 @@ +# Copyright 1994-2009 The FreeBSD Project. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. Redistributions in binary +# form must reproduce the above copyright notice, this list of conditions and +# the following disclaimer in the documentation and/or other materials provided +# with the distribution. THIS SOFTWARE IS PROVIDED BY THE FREEBSD PROJECT ``AS +# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# The views and conclusions contained in the software and documentation are +# those of the authors and should not be interpreted as representing official +# policies, either expressed or implied, of the FreeBSD Project. + +''' +tcpregression.loggable + +Implements the logging interface used by the TCP regression framework. +The tcplog class provides several convenience functions to allow access to +different log-levels not defined by the standard logging library. + + Sub-Info + - PACKET_RECEIVED + Logs packets that are destined for our TCP stack as they arrive. + - PACKET_SENT + Logs packets that are sent from our TCP stack as they are injected + into the network. + - STATE_CHANGE + Logs changes in the TCP state as defined by the TCP RFC + (i.e. CLOSED -> SYN-SENT -> ESTABLISHED -> FIN-WAIT-1 -> FIN-WAIT-2 + -> TIME-WAIT -> CLOSED ) + + Sub-Debug + - FIELD_GENERATED + This log statement is printed every time an individual TCP packet field + is auto-generated. + +''' + import logging import pcsextension import inspect @@ -16,8 +65,8 @@ break # -------- Set Up New Loglevel Names -------- -( logging.FIELD_CHANGE, - logging.RESPONSE_GENERATION ) = range( logging.DEBUG - 2, logging.DEBUG ) +( logging.FIELD_GENERATION, + logging.FIELD_CHANGE ) = range( logging.DEBUG - 2, logging.DEBUG ) ( logging.PACKET_TRANSMIT, logging.PACKET_RECEIVED, @@ -64,7 +113,7 @@ # -------- Loglevel names -------- logging.addLevelName( logging.FIELD_CHANGE, "FIELD" ) -logging.addLevelName( logging.RESPONSE_GENERATION, colorText( "GENERATE", fgCyan ) ) +logging.addLevelName( logging.FIELD_GENERATION, colorText( "GENERATE", fgCyan ) ) logging.addLevelName( logging.PACKET_RECEIVED, colorText( "RECVD", fgYellow ) ) logging.addLevelName( logging.PACKET_SENT, colorText( "SENT", fgGreen ) ) logging.addLevelName( logging.STATE_CHANGE, colorText( "STATE", fgBlue ) ) @@ -72,6 +121,7 @@ class tcplog( object ): ''' Provides rapid access to logging mechanisms for derived classes. + Also includes the name of the caller when printing a DEBUG statement. Provides all of the standard log levels: debug @@ -80,10 +130,10 @@ error fatal/critical As well as some custom-defined ones: - state - State changes - packet - Packet send/recv - response - Response generation - field - Field change + state - State changes (i.e. CLOSED->SYN SENT) + packet - Packet send/recv + generate - TCP field, or PCS.Chain generation + field - TCP field, non-generated >>> from loggable import Loggable >>> class A(object): @@ -100,9 +150,9 @@ >>> a.log.pktsent('test') 2009-05-24 12:48:26,402 - __main__.A - PACKET_SENT - test >>> a.log.generated('test') - 2009-05-24 12:48:49,516 - __main__.A - RESPONSE_GEN - test + 2009-05-24 12:48:49,516 - __main__.A - GENERATE - test >>> a.log.field('test') - 2009-05-24 12:48:52,475 - __main__.A - FIELD_CHANGE - test + 2009-05-24 12:48:52,475 - __main__.A - FIELD - test ''' def __init__( self, parent ): @@ -121,5 +171,5 @@ state = lambda self, x: self.logger.log( logging.STATE_CHANGE, x ) pktsent = lambda self, x: self.logger.log( logging.PACKET_SENT, x ) pktrecv = lambda self, x: self.logger.log( logging.PACKET_RECEIVED, x ) - generated = lambda self, x: self.logger.log( logging.RESPONSE_GENERATION, x ) + generated = lambda self, x: self.logger.log( logging.FIELD_GENERATION, x ) field = lambda self, x: self.logger.log( logging.FIELD_CHANGE, x ) ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpconstructor.py#2 (text+ko) ==== @@ -3,7 +3,7 @@ @author: zach ''' - +import logging import socket import testconfig from random import randint @@ -20,13 +20,14 @@ from loggable import tcplog -class tcpConstructor( object ): +class TcpConstructor( object ): ''' - Used to construct a packet complete with hardware and IP layers. - Currently supports: - - Ethernet - - IPv4 - TODO IPv6 + Generates a complete packet chain, given a TCP packet and information + regarding the underlying IP and Ethernet/Loopback levels. + + This helper class simply creates a valid pcs.Chain object, complete + with hardware and IP-level pcs.Packet objects, given a + pcs.packets.tcp.tcp object. ''' ipVersion = IPPROTO_IPV4 @@ -34,7 +35,7 @@ @prop def loopback(): ''' - Set to 'True' to generate loopback packets for the hardware layer + Set to 'True' to use loopback packets for the hardware layer instead of Ethernet packets. ''' _loopback = False @@ -83,7 +84,7 @@ dest = ( testconfig.remoteMAC, testconfig.remoteIP ), loopback = False ): ''' - Initialize the tcpConstructor object. + Initialize the TcpConstructor object. @param src: Tuple containing (HwAddress, IpAddress) for the SOURCE IP and @@ -170,7 +171,7 @@ - dst = remote IP address (@see setRemoteIP) - id = Random, between 0 and 65535 inclusive - Other values are filled in with default values that will likely be changed. + Other values are filled in with sane default values. ''' ip = ipv4() ip.version = 4 @@ -190,7 +191,7 @@ Genreates a pcs.packets.ipv6.ipv6 object TODO: Not supported. ''' - pass + raise NotImplementedError( 'Not implemented' ) def generateIP( self ): ''' @@ -216,6 +217,12 @@ return ether def generateLoopback( self ): + ''' + Generates a loopback-layer packet. + + @note: + Supports IPv4 and IPv6 network layers. + ''' lb = localhost() if self.ipVersion == IPPROTO_IPV6: lb.type = socket.htonl( socket.AF_INET6 ) @@ -223,7 +230,11 @@ lb.type = socket.htonl( socket.AF_INET ) return lb - def generateHardware( self ): + def generateDataLink( self ): + ''' + Generates a data-link layer packet, using on self.loopback to + determine whether to use Loopback/NULL or Ethernet. + ''' if self.loopback: return self.generateLoopback() else: @@ -231,23 +242,31 @@ def generateChain( self, tcpPacket ): ''' - Generates a pcs.Chain complete with Ethernet and IP levels, that uses the provided - pcs.packets.tcp.tcp object as the TCP layer. - NOTE: This method makes no modifications to the TCP packet, and as such does not - perform any validation of auto-generation of ANY TCP fields. The length of the - TCP header + data is necessary to set the IP length field. + Generates a chain given a TCP packet. + + @param tcpPacket: + TCP-layer packet to be used in the chain. + + @note: + 'tcpPacket' can realisitacally be any implementation of + pcs.Packet, but it was designed to be used with + pcs.packets.tcp.tcp ''' - hw = self.generateHardware() + + dl = self.generateDataLink() ip = self.generateIP() - hw.data = ip + dl.data = ip ip.data = tcpPacket # Set the proper IP length and checksum ip.length = ip.length + len( tcpPacket.chain().bytes ) ip.checksum = ipChecksum( ip ) - chain = hw.chain() - self.log.generated( repr( chain ) ) + # Build the chain. + chain = dl.chain() + + if self.log.logger.isEnabledFor( logging.FIELD_GENERATION ): + self.log.generated( repr( chain ) ) return chain ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpsenddaemon.py#3 (text+ko) ==== @@ -6,6 +6,7 @@ import threading import loggable +import logging from pcs.packets import tcp from pcs.packets import payload import timer @@ -14,30 +15,46 @@ class TcpSendDaemon( threading.Thread ): ''' - This class is responsible for automatically re-sending unacknowledged - data after some configured delay. + Thread daemon that polls a TcpStateMachine object's outboundPackets + queue and re-sends all unacknowledged packets every 'timeout' seconds. ''' timeout = None log = None __killed = False - def __init__( self, target ): + def __init__( self, tcpStateMachine, pollEvery = 1 ): ''' - @param target TcpStateMachine that this daemon is sending for. + @param tcpStateMachine: + TcpStateMachine that this daemon is sending for. + @param pollEvery: + Polling period, in seconds. ''' self.log = loggable.tcplog( self ) - self.timeout = timer.timer( 1 ) - threading.Thread.__init__( self, None, self.sendThread, None, ( target, ) ) - self.log.info( 'Starting send thread for object %s' % repr( target ) ) - self.daemon = True + self.timeout = timer.timer( pollEvery ) + threading.Thread.__init__( self, None, self.sendThread, None, ( tcpStateMachine, ) ) + self.log.info( 'Starting send thread for object %s' % repr( tcpStateMachine ) ) def kill( self ): + ''' + Terminates the thread. + + @note: + The thread will die the next time it polls. If using blocking + Pcap I/O, this may not be until after the next packet is recv'd. + ''' self.__killed = True def sendThread( self, t ): + ''' + Thread that performs the actual work + + @note: + The thread will auto-die when the TCP state enters CLOSED or + TIME_WAIT, or when the kill() method is called. + ''' - while t.state not in ( CLOSED, TIME_WAIT ): + while t.state not in ( CLOSED, TIME_WAIT ) and not self.__killed: # Restart the timer self.timeout.reset() @@ -48,8 +65,7 @@ # Are we supposed to be sending stuff? if not t.autoResendUnackedSequences: - self.log.debug( "Auto-resend disabled" ) - continue + self.log.debug( "Auto-send disabled" ) # Is there anything to send? if len( t.outboundSequences ) == 0: @@ -63,41 +79,67 @@ # Grab all available data, up to MSS. Only send one MSS' worth of data. sequencesToSend = t.outboundSequences[:t.snd_una + t.mss] - self.log.debug( "Getting sequences %i to %i in %s" % ( t.snd_una, t.snd_una + t.mss, sequencesToSend ) ) - self.log.debug( "Got sequences %i to %i: %s" % - ( t.snd_una, t.snd_una + len( sequencesToSend ), repr( sequencesToSend ) ) ) + if self.log.logger.isEnabledFor( logging.DEBUG ): + self.log.debug( "Getting sequences %i to %i in %s" % + ( t.snd_una, t.snd_una + t.mss, sequencesToSend ) ) + self.log.debug( "Got sequences %i to %i: %s" % + ( t.snd_una, t.snd_una + len( sequencesToSend ), repr( sequencesToSend ) ) ) # Len... if len( sequencesToSend ) == 0: self.log.warn( "outboundSequences is not empty, but there is no data to send." ) continue - # Check for a SYN or FIN - syn = 1 if ( type( sequencesToSend[0] ) == Sequenced and sequencesToSend[0].syn ) else 0 - fin = 1 if ( type( sequencesToSend[0] ) == Sequenced and sequencesToSend[0].fin ) else 0 - if syn: self.log.debug( "Sending SYN!" ) - if fin: self.log.debug( "Sending FIN!" ) + # Check for a SYN or FIN in the sequences that we selected + # syn = 1 if ( type( sequencesToSend[0] ) == Sequenced and sequencesToSend[0].syn ) else 0 + # fin = 1 if ( type( sequencesToSend[0] ) == Sequenced and sequencesToSend[0].fin ) else 0 + + synOffsets = ( sequencesToSend.index( x ) for x in sequencesToSend \ + if x.syn ) + finOffsets = ( sequencesToSend.index( x ) for x in sequencesToSend \ + if x.syn ) + syn = 0 in synOffsets + fin = 0 in finOffsets + + if synOffsets: + if syn: + self.log.debug( "Sending SYN, not sending any other data." ) + else: + self.log.debug( "SYN in outbound data, sending all data up to that offset." ) + if finOffsets: + if fin: + self.log.debug( "Sending FIN, not sending any other data" ) + else: + self.log.debug( "FIN in outbound data, sending all data up to that offset." ) + + # Find out what the 'last byte' is that we're sending. + lastByte = len( sequencesToSend ) + if not ( fin or syn ) and ( synOffsets or finOffsets ): + lastByte = min( synOffsets + finOffsets ) bytes = '' - if not fin and not syn: - bytes = ''.join( sequencesToSend ) + if not ( syn or fin ): + bytes = ''.join( sequencesToSend[:lastByte] ) - self.log.debug( "Sending %i bytes" % len( bytes ) ) + if self.log.logger.isEnabledFor( logging.DEBUG ): + self.log.debug( "Sending %i bytes of daat" % len( bytes ) ) # TCP Fields tcpFields = {tcp.f_data: payload.payload( bytes ), tcp.f_sequence: t.snd_una, tcp.f_syn: syn, tcp.f_fin: fin } - if not syn: + if not ( syn or fin ): tcpFields[tcp.f_ack] = 1 tcpFields[tcp.f_ack_number] = t.rcv_nxt - self.log.debug( "Set outgoing packet ACK to %i" % t.rcv_nxt ) + + if self.log.logger.isEnabledFor( logging.DEBUG ): + self.log.debug( "Set outgoing packet ACK to %i" % t.rcv_nxt ) # Create the packet tcpPacket = t.newPacket( tcpFields ) # Send the packet. Note that we use 'sendRaw' so that it is ALWAYS sent. - self.log.debug( "Sending packet." ) t.sendRawTcp( tcpPacket ) + self.log.debug( 'Quitting send thread' ) ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpstatemachine.py#11 (text+ko) ==== @@ -1,34 +1,60 @@ +# Copyright 1994-2009 The FreeBSD Project. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. Redistributions in binary +# form must reproduce the above copyright notice, this list of conditions and +# the following disclaimer in the documentation and/or other materials provided +# with the distribution. THIS SOFTWARE IS PROVIDED BY THE FREEBSD PROJECT ``AS +# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# The views and conclusions contained in the software and documentation are +# those of the authors and should not be interpreted as representing official +# policies, either expressed or implied, of the FreeBSD Project. + ''' -Created on May 24, 2009 - -@author: zach +Provides the TcpStateMachine class. ''' from loggable import tcplog from pcs.packets import tcp, payload from pcsextension import findTcpLayer from pcsextension.checksum import tcpChecksum -from pcsextension.decorators import prop, validateTypes, uint16, uint32, synchronized +from pcsextension.decorators import prop, validateTypes, uint16, uint32, \ + synchronized from pcsextension.hwaddress import HwAddress from pcsextension.ipaddress import IpAddress from pcsextension.networkport import NetworkPort from segmentbuffer import SegmentBuffer from sequence import seq, Sequenced, seq_fin, seq_finack, seq_syn, seq_synack -from tcpconstructor import tcpConstructor +from tcpconstructor import TcpConstructor from tcpfilter import TcpFilter from tcprecvdaemon import TcpRecvDaemon from tcpsenddaemon import TcpSendDaemon -from tcpstates import CLOSE_WAIT, CLOSED, CLOSING, ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, \ - LAST_ACK, LISTEN, SYN_RECEIVED, SYN_SENT, TIME_WAIT, TcpState, synchronizedStates, tcpStates +from tcpstates import CLOSE_WAIT, CLOSED, CLOSING, ESTABLISHED, FIN_WAIT_1, \ + FIN_WAIT_2, LAST_ACK, LISTEN, SYN_RECEIVED, SYN_SENT, TIME_WAIT, TcpState, \ + synchronizedStates, tcpStates +from threading import RLock from time import time -from threading import RLock +from timer import timer +import logging +import pcs import pcs.pcap as pcap -import pcs +import random import testconfig +import threading import time -from timer import timer -import random -import threading + # Valid state transitions, as defined by the diagram on RFC 793 pp. 23: # September 1981 # Transmission Control Protocol @@ -86,34 +112,64 @@ class TcpStateMachine( object ): ''' - Enumerates the various states of a TCP connection as defined by RFC 793, - pages 21-22. + Encapsulates a 'TCP control block', as well as the corresponding logic + for accepting, starting, and closing a connection, and transferring data + between two hosts using TCP. - Allows arbitrary state assignment with the 'state' property and the 'setState' method - (state=X is the same as setState(X)). + Usage example + ============= + Consider an echo server running on localhost port 7. + The below shows the TCP State Machine being set up in a manner very + similar to regular sockets programming, and sending a few bytes of + data, then recv'ing those bytes back. The connection is then closed. + + >>> # These lines will disable all logging. Remove them to enable the + >>> # Very-verbose log statements that show each step of the process. + >>> import logging + >>> logging.getLogger('tcpregression').disabled = True + >>> from tcpregression.tcpstatemachine import TcpStateMachine + >>> tsm = TcpStateMachine(remotehost=('127.0.0.1',7)) + >>> tsm.state + Closed + >>> tsm.open() + True + >>> tsm.state + Established + >>> tsm.send('asdfasdf') + 8 + >>> data = tsm.recv() + >>> data + 'asdfasdf' + >>> tsm.close() + True + >>> tsm.state + Time-Wait + >>> import time + >>> time.sleep(tsm.timeout) + >>> tsm.state + Closed - Allows for checked state transitions with the 'advanceState' method. + Advanced usage + ============== + All parts of the TCP State Machine can be directly modified -- + nothing is off limits. For example, throwing an extra SYN on the + outbound transmit queue is as simple as the below example. See + sequence.py for more information the the Sequenced class and + >>> tsm.outboundSequences += [seq_syn] - >>> from tcpstatemachine import * - >>> t = TcpStateMachine() - >>> t.state - 0 - >>> t.state = CLOSED - 2009-05-24 14:46:37,198 - tcpstatemachine.TcpStateMachine - STATE_CHANGE - Changing state from None to None - >>> t.state - 0 - >>> t.state = LISTEN - 2009-05-24 14:46:42,621 - tcpstatemachine.TcpStateMachine - STATE_CHANGE - Changing state from None to Listen - >>> t.advanceSt ate(SYN_RECEIVED) - 2009-05-24 14:46:52,939 - tcpstatemachine.TcpStateMachine - STATE_CHANGE - Changing state from Listen to Syn-Recvd - True - >>> t.state - 3 - >>> t.advanceState(SYN_SENT) - 2009-05-24 14:46:57,922 - tcpstatemachine.TcpStateMachine - STATE_CHANGE - Attempted invalid state transition from Syn-Recvd to Syn-Sent - False - >>> t.state - 3 + Additionally, disabling of the auto-processing mechanism allows for + fully manual control over the flow of packets. For example: + >>> tsm.processPacketsOnArrival = False + >>> tsm.reset() + >>> tsm.outboundSequences = [seq_syn] + >>> tsm.state = SYN_SENT + >>> while True: + ... p = tsm.recvRaw() + ... if p.syn and p.ack and p.ack_num == (tsm.iss + 1): + ... break + >>> tsm.rcv_nxt = p.sequence + 1 + >>> tsm.sendAck() + >>> tsm.state = ESTABLISHED ''' __constructor = None @@ -131,12 +187,12 @@ remote host must be provided as a 2 - tuple, a string and an integer. Example: - >>> t = TcpStateMachine( ( "127.0.0.1", 10000 ), ( "192.168.0.1", 80 ) ) + >>> t = TcpStateMachine( locahost=( "127.0.0.1", 10000 ), + ... remotehost=( "192.168.0.1", 80 ) ) ''' # Required objects. - # self.lock = RLock() - self.__constructor = tcpConstructor() + self.__constructor = TcpConstructor() self.__tcpFilter = TcpFilter( testconfig.interface ) self._inboundSequences = SegmentBuffer() self._outboundSequences = SegmentBuffer() @@ -169,14 +225,15 @@ # Reset the internal state. self.reset() - # @uint32 @prop def snd_nxt(): ''' - Next sequence to be sent (SND.NXT). - This is automatically calculated based on the next-available index - in outboundSequences. However, if the value is set directly, it is overridden. - Set it to None to re-enable auto-calculation + Next sequence to be sent (SND.NXT in the RFC). + This is automatically calculated based on the next available index + in outboundSequences. + + If the value is set directly, the provided value is used. + Set it to None to re-enable auto-calculation. ''' return {'fget': lambda self: self._snd_nxt or self.outboundSequences.nextIndex } @@ -186,49 +243,58 @@ def snd_una(): ''' First (i.e. oldest) unacknowledged sequence (SND.UNA). - This is automatically calculated based on the first index in outboundSequences. + This is automatically calculated based on the first index in + outboundSequences. + Setting this value sets the 'base' member of that same list, which will remove any information from the retransmit queue with a lower SEQ #. ''' return {'fget': lambda self: self.outboundSequences.base, 'fset': lambda self, x: self.outboundSequences.setBase( x ) } -# _snd_una = # Not necessary... @uint16 def snd_wnd(): ''' Send window size (SND.WND) ''' _snd_wnd = 0 @uint16 - def snd_up(): ''' Send urgent pointer ''' + def snd_up(): ''' Send urgent pointer (SND.UP) ''' _snd_up = 0 @uint32 - def snd_wl1(): ''' Sequence number used for last window update. ''' + def snd_wl1(): ''' Sequence number used for last window update (SND.WL1) ''' _snd_wl1 = 0 @uint32 - def snd_wl2(): ''' Ack number used for last window update ''' + def snd_wl2(): ''' Ack number used for last window update (SND.WL2)''' _snd_wl2 = 0 @prop def iss(): - ''' Initial Send Sequence (ISS) ''' - return {'fset': lambda self, x: self.setISS( x ) } + ''' + Initial Send Sequence (ISS). This value is set via self.generateISS() + when self.reset() is called, and when establishing a new connection via + self.open(). + + To define a *static* ISS (i.e. the same ISS is always used), do the + following (this example uses 1234): + object.generateISS = lambda self: 1234 + + @attention: + The ISS is linked to the outboundSequences queue, and modifying iss + will set outboundSequences.base=iss and delete the contents of + the outboundSequences list. + ''' + return {'fset': lambda self, x: self.__setISS( x ) } _iss = 0 - def setISS( self, iss ): - ''' - Sets the ISS, and also updates the outboundSequences base to reflect - the new ISS. Any information in outboundSequences is deleted. - ''' + def __setISS( self, iss ): self._iss = iss self.snd_una = self.iss - # self.outboundSequences.base = iss self.outboundSequences = [] self.outboundSequences.base = iss @uint16 - def rcv_wnd(): ''' Receive Window (RCV.WND) ''' + def rcv_wnd(): ''' Receive Window (RCV.WND). ''' _rcv_wnd = 2 ** 16 - 1 @uint16 @@ -238,12 +304,12 @@ @prop def irs(): ''' Initial Receive Sequence (IRS) ''' - return {'fset': lambda self, x: self.setIRS( x )} + return {'fset': lambda self, x: self.__setIRS( x )} _irs = 0 - def setIRS( self, irs ): + def __setIRS( self, irs ): ''' - @see setISS + @see: TcpStateMachine.__setISS ''' self._irs = irs self.inboundSequences.base = irs @@ -274,58 +340,95 @@ ''' Flag used to start/stop the recv'er thread from processing additional packets. Default is True. + + @type: + bool ''' _processPacketsOnArrival = True @prop def autoResendUnackedSequences(): ''' - Flag used to start/stop the resender thread from automatically retransmit - un-acknowledged packets. + Flag used to start/stop the resender thread from automatically + retransmit un-acknowledged packets. Default is True. + + @type: + bool ''' _autoResendUnackedSequences = True # Ethernet stuff @prop - def localEthernet(): ''' Local hardware ethernet address ''' + def localEthernet(): + ''' + Local hardware ethernet address + @type: + tcpregression.pcsextension.HwAddress + ''' _localEthernet = HwAddress( default = testconfig.localMAC ) @prop - def remoteEthernet(): '''Remote hardware ethernet address''' + def remoteEthernet(): + ''' + Remote hardware ethernet address + @type: + tcpregression.pcsextension.HwAddress + ''' _remoteEthernet = HwAddress( default = testconfig.remoteMAC ) @prop def localIP(): - '''Local IP address.''' + ''' + Local IP address. + @type: + tcpregression.pcsextension.IpAddress + ''' return {'fset': lambda self, x: self.localIP.set( x ) } @prop def remoteIP(): - '''Remote IP address.''' + ''' + Remote IP address. + @type: + tcpregression.pcsextension.IpAddress + ''' return {'fset': lambda self, x: self.remoteIP.set( x ) } @prop def localPort(): - '''Local port.''' + ''' + Local port. + @type: + tcpregression.pcsextension.NetworkPort + ''' return {'fset': lambda self, x: self.localPort.set( x ) } @prop def remotePort(): - '''Remote port.''' + ''' + Remote port. + @type: + tcpregression.pcsextension.NetworkPort + ''' return {'fset': lambda self, x: self.remotePort.set( x ) } - def setRemotePort( self, x ): - import traceback - traceback.print_stack() - self._remotePort = x - @prop - def userTimer(): ''' User timeout timer ''' + def userTimer(): + ''' + User timeout timer + @type: + threading.Timer + ''' _userTimer = None @prop - def timeWaitTimer(): ''' Time-wait timer ''' + def timeWaitTimer(): + ''' + Time-wait timer + @type: + threading.Timer + ''' _timeWaitTimer = None # Interface is actually a shortcut to the connector's interface field, @@ -334,40 +437,69 @@ # specified interface. @prop def interface(): - '''Interface to use for sending/recving data''' + ''' + Interface to use for sending/recving data + @type: + str + ''' return {'fget': lambda self: self.__tcpFilter.interface, 'fset': lambda self, x: setattr( self.__tcpFilter, 'interface', x )} def getConnector( self ): ''' - Retrieves the connector used to send and receive packets. - Note: The name 'connector' is simply for consistency. The object that is - returned is actually a TcpFilter object. + Retrieves the TcpFilter object used to send and receive packets. + + @return: + A TcpFilter object, or None. ''' return self.__tcpFilter - def setLoopback( self, lb = True ): + def setLoopback( self, lb = True, iface = None ): ''' - Call with lb=True to omit the ethernet layer with a loopback layer in its place. - This should be done when using lo0 instead of eth0, or the source and destination - IP address are the same. + Sets the TcpStateMachine into loopback mode. This call is more of + a helper function, as loopback vs. ethernet doesn't have anything + to do with TCP. + + This function searches for a list of loopback interfaces from pcap, + and automatically sets the TcpFilter to use the first loopback IF + it finds, or 'iface' if it is set. + + Additionally, it tells the TcpConstructor to use Loopback frames + instead of Ethernet frames. + + If 'lb' is False, the TcpStateMachine sets the TcpConstructor to + use Ethernet frames, and uses [1] the first non-loopback interface + it finds, or 'iface' if it is set. + + If lb=True and the current interface is already loopback interface, + the interface is not changed unless specified by 'iface'. + + @param lb: + True/False value, specify whether to use loopback or not. + @param iface: + Override the interface selection. Synonymous with: + self.interface = iface ''' self.__constructor.loopback = lb + loInterface = iface + # Override the interface if lb and ( self.interface not in self.loopbackInterfaces ): - self.log.warn( 'Overriding interface to be %s' % self.loopbackInterfaces[0] ) devs = [dev[0] for dev in pcap.findalldevs()] - loInterface = ( iface for iface in self.loopbackInterfaces if iface in devs ) + if not iface: + iface = ( _if for _if in self.loopbackInterfaces if _if in devs ) if len( loInterface ) < 1: self.log.error( 'cannot set loopback, could not identify any ' ' loopback interfaces in available interfaces (%s) out ' ' of known loopback interfaces (%s)' % ( devs, self.loopbackInterfaces ) ) - else : - # Select the first interface - self.interface = loInterface[0] + + if lo + self.interface = iface or (loInterface[0] + + # Used by setLoopback, this should be a list of all known loopback interface names. # findalldevs() returns a tuple where the first item is the interface name, @@ -383,7 +515,7 @@ Is the connection in a synchronized state? Return True if yes, otherwise False. - @see tcpstates.synchronizedStates + @see: tcpstates.synchronizedStates ''' return self.state in synchronizedStates @@ -393,6 +525,7 @@ Dictionary of fields of outgoing TCP packets should be auto-generated, and various packet-generation toggles. ''' + return {'fset': lambda self, x: self.__updateGenerateDictionary( x )} _generate = {tcp.f_checksum: True, tcp.f_offset: True, tcp.f_sequence: True, @@ -402,6 +535,10 @@ tcp.f_window: True, tcp.f_urg_pointer: True } + def __updateGenerateDictionary( self, newDict ): + self._generate = newDict + self.__fieldsToGenerateUpdated = True + def generateISS( self ): ''' Generates a new Initial Sequence Number (ISS). @@ -429,8 +566,9 @@ @prop def inboundSequences(): ''' - List of all received sequences. This includes data recv'd from IRS onward. - @see outboundSequences for more information. + List of all received sequences. This includes data recv'd from IRS + onward. + @see: TcpStateMachine.outboundSequences ''' return { 'fset': lambda self, x: self.inboundSequences.update( x ) } @@ -446,7 +584,7 @@ ''' Recv buffer of octets waiting for the user to call recv(). Note that this buffer will explicitly exclude all SYN and FIN sequences. - @see inboundSequences + @see: TcpStateMachine.inboundSequences ''' return {'fget': lambda self: [octet for octet in self.inboundSequences ] } @@ -592,8 +730,11 @@ def close( self ): ''' - Close the socket connection. This is synonymous with the 'close' function used - by normal UNIX sockets. + Close the socket connection. This is synonymous with the 'close' + function used by normal UNIX sockets. + + @return: + True on success; False otherwise. ''' self.log.info( "Closing connection" ) @@ -604,7 +745,7 @@ # # Otherwise, return "error: connection does not exist". self.log.error( 'connection does not exist' ) - return - 1 + return False #LISTEN STATE elif self.state is LISTEN: # Any outstanding RECEIVEs are returned with "error: closing" @@ -618,7 +759,6 @@ # queued SENDs, or RECEIVEs. self.state = CLOSED self.reset() - #SYN-RECEIVED STATE elif self.state is SYN_RECEIVED: # If no SENDs have been issued and there is no pending data to send, @@ -633,7 +773,6 @@ # state. self.outboundSequences += [seq_fin]# Sequenced(fin=1)] self.state = FIN_WAIT_1 - #FIN-WAIT-1 STATE #FIN-WAIT-2 STATE >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Aug 29 15:47:58 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2E2E81065670; Sat, 29 Aug 2009 15:47:58 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CE9AB106564A for ; Sat, 29 Aug 2009 15:47:57 +0000 (UTC) (envelope-from zjriggl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BD34D8FC14 for ; Sat, 29 Aug 2009 15:47:57 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7TFlv2j021609 for ; Sat, 29 Aug 2009 15:47:57 GMT (envelope-from zjriggl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7TFlv9x021607 for perforce@freebsd.org; Sat, 29 Aug 2009 15:47:57 GMT (envelope-from zjriggl@FreeBSD.org) Date: Sat, 29 Aug 2009 15:47:57 GMT Message-Id: <200908291547.n7TFlv9x021607@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zjriggl@FreeBSD.org using -f From: Zachariah Riggle To: Perforce Change Reviews Cc: Subject: PERFORCE change 167954 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 Aug 2009 15:47:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=167954 Change 167954 by zjriggl@zjriggl_tcpregression on 2009/08/29 15:47:47 Last commit didn't seem to go through. COMMENTS. Affected files ... .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/__init__.py#2 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/loggable.py#9 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/logging.conf#7 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpconstructor.py#3 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpfilter.py#2 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcprecvdaemon.py#5 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpsenddaemon.py#4 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpstatemachine.py#12 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpstates.py#5 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/testconfig.py#8 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/timer.py#2 edit Differences ... ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/__init__.py#2 (text+ko) ==== ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/loggable.py#9 (text+ko) ==== ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/logging.conf#7 (text+ko) ==== @@ -1,28 +1,28 @@ [loggers] -keys=root,tcpregression +keys = root, tcpregression [handlers] -keys=consoleHandler +keys = consoleHandler [formatters] -keys=simpleFormatter +keys = simpleFormatter [logger_root] -level=DEBUG -handlers=consoleHandler +level = DEBUG +handlers = consoleHandler [logger_tcpregression] -level=DEBUG -propagate=0 -qualname=tcpregression -handlers=consoleHandler +level = DEBUG +propagate = 0 +qualname = tcpregression +handlers = consoleHandler [handler_consoleHandler] -class=StreamHandler -level=DEBUG -formatter=simpleFormatter -args=(sys.stdout,) +class = StreamHandler +level = DEBUG +formatter = simpleFormatter +args = ( sys.stdout, ) [formatter_simpleFormatter] -format=%(name)s - %(levelname)s - %(message)s -datefmt= +format = % ( name )s - % ( levelname )s - % ( message )s +datefmt = ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpconstructor.py#3 (text+ko) ==== ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpfilter.py#2 (text+ko) ==== ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcprecvdaemon.py#5 (text+ko) ==== ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpsenddaemon.py#4 (text+ko) ==== ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpstatemachine.py#12 (text+ko) ==== ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpstates.py#5 (text+ko) ==== ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/testconfig.py#8 (text+ko) ==== @@ -1,11 +1,11 @@ from random import randint -localPort = randint(31000,32000) +localPort = randint( 31000, 32000 ) localIP = "127.0.0.3" localIPv6 = "::1" localMAC = "00:1b:63:06:82:b2" -remotePort = randint(32000,33000) +remotePort = randint( 32000, 33000 ) remoteIP = "127.0.0.1" remoteIPv6 = "::1" remoteMAC = "00:21:29:a5:a9:3f" @@ -16,7 +16,7 @@ # Maximum Segment Size to be used for sending (as a default) # based on the MTU, Ethernet header size, and IPv6 header size. # IPv6 header size is used because it's larger, just to be safe. -mss = mtu - 14 - 40 +mss = mtu - 14 - 40 interface = "lo0" ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/timer.py#2 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Sat Aug 29 16:44:00 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 218001065670; Sat, 29 Aug 2009 16:44:00 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 47560106564A for ; Sat, 29 Aug 2009 16:43:59 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3632A8FC12 for ; Sat, 29 Aug 2009 16:43:59 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7TGhwAG026672 for ; Sat, 29 Aug 2009 16:43:58 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7TGhwVp026670 for perforce@freebsd.org; Sat, 29 Aug 2009 16:43:58 GMT (envelope-from mav@freebsd.org) Date: Sat, 29 Aug 2009 16:43:58 GMT Message-Id: <200908291643.n7TGhwVp026670@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167956 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 Aug 2009 16:44:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=167956 Change 167956 by mav@mav_mavbook on 2009/08/29 16:43:57 Remove duplicate qfrozen_cnt variable from struct cam_ed. ccbq.queue.qfrozen_cnt should be used instead. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#100 edit .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt_internal.h#6 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#100 (text+ko) ==== @@ -2472,7 +2472,7 @@ path = start_ccb->ccb_h.path; cam_ccbq_insert_ccb(&path->device->ccbq, start_ccb); - if (path->device->qfrozen_cnt == 0) + if (path->device->ccbq.queue.qfrozen_cnt == 0) runq = xpt_schedule_dev_sendq(path->bus, path->device); else runq = 0; @@ -2931,7 +2931,7 @@ xpt_release_devq(crs->ccb_h.path, /*count*/1, /*run_queue*/TRUE); } - start_ccb->crs.qfrozen_cnt = dev->qfrozen_cnt; + start_ccb->crs.qfrozen_cnt = dev->ccbq.queue.qfrozen_cnt; start_ccb->ccb_h.status = CAM_REQ_CMP; break; } @@ -3227,7 +3227,7 @@ * If the device has been "frozen", don't attempt * to run it. */ - if (device->qfrozen_cnt > 0) { + if (device->ccbq.queue.qfrozen_cnt > 0) { continue; } @@ -3250,7 +3250,7 @@ * the device queue until we have a slot * available. */ - device->qfrozen_cnt++; + device->ccbq.queue.qfrozen_cnt++; STAILQ_INSERT_TAIL(&xsoftc.highpowerq, &work_ccb->ccb_h, xpt_links.stqe); @@ -3282,7 +3282,7 @@ * The client wants to freeze the queue * after this CCB is sent. */ - device->qfrozen_cnt++; + device->ccbq.queue.qfrozen_cnt++; } /* In Target mode, the peripheral driver knows best... */ @@ -4031,7 +4031,7 @@ mtx_assert(path->bus->sim->mtx, MA_OWNED); - path->device->qfrozen_cnt += count; + path->device->ccbq.queue.qfrozen_cnt += count; /* * Mark the last CCB in the queue as needing @@ -4049,7 +4049,7 @@ ccbh = TAILQ_LAST(&path->device->ccbq.active_ccbs, ccb_hdr_tailq); if (ccbh && ccbh->status == CAM_REQ_INPROG) ccbh->status = CAM_REQUEUE_REQ; - return (path->device->qfrozen_cnt); + return (path->device->ccbq.queue.qfrozen_cnt); } u_int32_t @@ -4093,11 +4093,12 @@ int rundevq; rundevq = 0; - if (dev->qfrozen_cnt > 0) { + if (dev->ccbq.queue.qfrozen_cnt > 0) { - count = (count > dev->qfrozen_cnt) ? dev->qfrozen_cnt : count; - dev->qfrozen_cnt -= count; - if (dev->qfrozen_cnt == 0) { + count = (count > dev->ccbq.queue.qfrozen_cnt) ? + dev->ccbq.queue.qfrozen_cnt : count; + dev->ccbq.queue.qfrozen_cnt -= count; + if (dev->ccbq.queue.qfrozen_cnt == 0) { /* * No longer need to wait for a successful @@ -4402,7 +4403,6 @@ SLIST_INIT(&device->periphs); device->generation = 0; device->owner = NULL; - device->qfrozen_cnt = 0; device->flags = CAM_DEV_UNCONFIGURED; device->tag_delay_count = 0; device->tag_saved_openings = 0; @@ -4974,7 +4974,7 @@ xpt_start_tags(ccb_h->path); if ((dev->ccbq.queue.entries > 0) - && (dev->qfrozen_cnt == 0) + && (dev->ccbq.queue.qfrozen_cnt == 0) && (device_is_send_queued(dev) == 0)) { runq = xpt_schedule_dev_sendq(ccb_h->path->bus, dev); ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt_internal.h#6 (text+ko) ==== @@ -106,7 +106,6 @@ u_int8_t queue_flags; /* Queue flags from the control page */ u_int8_t serial_num_len; u_int8_t *serial_num; - u_int32_t qfrozen_cnt; u_int32_t flags; #define CAM_DEV_UNCONFIGURED 0x01 #define CAM_DEV_REL_TIMEOUT_PENDING 0x02 From owner-p4-projects@FreeBSD.ORG Sat Aug 29 21:26:08 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1DB68106566C; Sat, 29 Aug 2009 21:26:08 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D6693106564A for ; Sat, 29 Aug 2009 21:26:07 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AC09D8FC19 for ; Sat, 29 Aug 2009 21:26:07 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7TLQ754071849 for ; Sat, 29 Aug 2009 21:26:07 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7TLQ7NV071847 for perforce@freebsd.org; Sat, 29 Aug 2009 21:26:07 GMT (envelope-from mav@freebsd.org) Date: Sat, 29 Aug 2009 21:26:07 GMT Message-Id: <200908292126.n7TLQ7NV071847@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167961 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 Aug 2009 21:26:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=167961 Change 167961 by mav@mav_mavbook on 2009/08/29 21:25:55 Forgotten part. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#20 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#20 (text+ko) ==== @@ -388,6 +388,8 @@ #define AHCI_IRQ_MODE_AFTER 1 #define AHCI_IRQ_MODE_ONE 2 } irqs[16]; + uint32_t caps; /* Controller capabilities */ + uint32_t caps2; /* Controller capabilities */ int numirqs; int channels; int ichannels;