Date: Fri, 10 Jul 2009 19:12:15 GMT From: Edward Tomasz Napierala <trasz@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 165911 for review Message-ID: <200907101912.n6AJCF0l068054@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=165911 Change 165911 by trasz@trasz_victim on 2009/07/10 19:12:12 IFC. Affected files ... .. //depot/projects/soc2009/trasz_limits/MAINTAINERS#3 integrate .. //depot/projects/soc2009/trasz_limits/bin/ps/ps.1#3 integrate .. //depot/projects/soc2009/trasz_limits/cddl/contrib/opensolaris/head/thread.h#2 integrate .. //depot/projects/soc2009/trasz_limits/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c#2 integrate .. //depot/projects/soc2009/trasz_limits/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h#2 integrate .. //depot/projects/soc2009/trasz_limits/etc/mtree/BSD.include.dist#4 integrate .. //depot/projects/soc2009/trasz_limits/include/Makefile#4 integrate .. //depot/projects/soc2009/trasz_limits/include/unistd.h#3 integrate .. //depot/projects/soc2009/trasz_limits/lib/libc/sys/Makefile.inc#4 integrate .. //depot/projects/soc2009/trasz_limits/lib/libc/sys/Symbol.map#6 integrate .. //depot/projects/soc2009/trasz_limits/lib/libc/sys/execve.2#2 integrate .. //depot/projects/soc2009/trasz_limits/lib/libc/sys/pathconf.2#3 integrate .. //depot/projects/soc2009/trasz_limits/lib/libcam/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/lib/libthr/thread/thr_rtld.c#2 integrate .. //depot/projects/soc2009/trasz_limits/lib/libthr/thread/thr_rwlock.c#2 integrate .. //depot/projects/soc2009/trasz_limits/lib/libusb/libusb.h#2 integrate .. //depot/projects/soc2009/trasz_limits/lib/libusb/libusb10.c#2 integrate .. //depot/projects/soc2009/trasz_limits/lib/libusb/libusb10.h#2 integrate .. //depot/projects/soc2009/trasz_limits/lib/libusb/libusb10_desc.c#2 integrate .. //depot/projects/soc2009/trasz_limits/lib/libusb/libusb10_io.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sbin/camcontrol/camcontrol.8#2 integrate .. //depot/projects/soc2009/trasz_limits/sbin/camcontrol/camcontrol.c#2 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/Makefile#6 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/ahci.4#1 branch .. //depot/projects/soc2009/trasz_limits/share/man/man4/pcm.4#4 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man5/procfs.5#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/cpu_switch.S#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/exception.S#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/genassym.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/io_apic.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/machdep.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/msi.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/pmap.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/sys_machdep.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/vm_machdep.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/ia32/ia32_exception.S#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/ia32/ia32_reg.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/ia32/ia32_signal.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/include/param.h#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/include/pcb.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/linux32/linux32_sysvec.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/arm/include/param.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/bsm/audit_kevents.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/ata/ata_all.c#1 branch .. //depot/projects/soc2009/trasz_limits/sys/cam/ata/ata_all.h#1 branch .. //depot/projects/soc2009/trasz_limits/sys/cam/ata/ata_da.c#1 branch .. //depot/projects/soc2009/trasz_limits/sys/cam/ata/ata_xpt.c#1 branch .. //depot/projects/soc2009/trasz_limits/sys/cam/cam.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/cam.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/cam_ccb.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/cam_periph.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/cam_xpt.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/cam_xpt.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/cam_xpt_internal.h#1 branch .. //depot/projects/soc2009/trasz_limits/sys/cam/cam_xpt_periph.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/scsi/scsi_all.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/scsi/scsi_cd.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/scsi/scsi_ch.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/scsi/scsi_da.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/scsi/scsi_pass.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/scsi/scsi_pt.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/scsi/scsi_sa.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/scsi/scsi_ses.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/scsi/scsi_sg.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/scsi/scsi_xpt.c#1 branch .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_proto.h#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_syscall.h#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_syscalls.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_sysent.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/syscalls.master#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/compat/svr4/svr4_stat.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/conf/files#9 integrate .. //depot/projects/soc2009/trasz_limits/sys/conf/newvers.sh#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/advansys/advansys.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/advansys/advlib.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/ahci/ahci.c#1 branch .. //depot/projects/soc2009/trasz_limits/sys/dev/ahci/ahci.h#1 branch .. //depot/projects/soc2009/trasz_limits/sys/dev/aic7xxx/aic79xx_osm.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/aic7xxx/aic7xxx_osm.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/amd/amd.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/ata/atapi-cam.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/ata/atapi-cd.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/ata/chipsets/ata-ahci.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/ata/chipsets/ata-nvidia.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/ath/ah_osdep.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/ath/ah_osdep.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/ciss/ciss.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/ciss/cissvar.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/cxgb/cxgb_sge.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/drm/drm_pciids.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/drm/r600_cp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/drm/radeon_drv.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/e1000/e1000_82542.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/ipw/if_ipw.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/isp/isp_freebsd.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/iwi/if_iwi.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/iwn/if_iwn.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/mfi/mfi.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/mfi/mfivar.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/mlx/mlx.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/mlx/mlxvar.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/mpt/mpt.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/mpt/mpt_pci.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/mwl/if_mwl.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/mwl/if_mwlvar.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/sound/pcm/feeder_rate.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/trm/trm.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/wpi/if_wpi.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/xl/if_xl.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/fs/fifofs/fifo_vnops.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/fs/nfs/nfs_var.h#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/fs/nfsclient/nfs_clrpcops.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/fs/nfsclient/nfs_clstate.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/geom/geom_dev.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/geom/part/g_part.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/geom/part/g_part_if.m#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/i386/io_apic.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/i386/msi.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/i386/pmap.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/ibcs2/ibcs2_misc.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/include/param.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/xen/pmap.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/ia64/include/param.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/init_sysent.c#7 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_exit.c#9 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_prot.c#15 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/subr_param.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/sys_pipe.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/syscalls.c#6 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/syscalls.master#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/systrace_args.c#6 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/tty.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/tty_pts.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/uipc_socket.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/vfs_syscalls.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/mips/include/param.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/modules/Makefile#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/modules/ahci/Makefile#1 branch .. //depot/projects/soc2009/trasz_limits/sys/modules/cam/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/modules/geom/geom_label/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/modules/wlan/Makefile#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_action.c#1 branch .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_action.h#1 branch .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_adhoc.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_ageq.c#1 branch .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_ageq.h#1 branch .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_freebsd.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_hostap.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_ht.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_ht.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_ioctl.h#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_node.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_node.h#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_sta.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_var.h#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_wds.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/powerpc/include/param.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/sparc64/include/param.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/sun4v/include/param.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/disk.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#22 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/namei.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/socketvar.h#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/syscall.h#6 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/syscall.mk#6 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/syscallsubr.h#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/sysproto.h#6 edit .. //depot/projects/soc2009/trasz_limits/sys/tools/sound/feeder_rate_mkfilter.awk#3 integrate .. //depot/projects/soc2009/trasz_limits/tools/regression/usr.bin/jot/regress.dddd.out#1 branch .. //depot/projects/soc2009/trasz_limits/tools/regression/usr.bin/jot/regress.sh#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/cpio/cmdline.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/cpio/test/test_owner_parse.c#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/fstat/fstat.1#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/jot/jot.c#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/netstat/netstat.1#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/sockstat/sockstat.1#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/jail/jail.8#5 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/jls/jls.8#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/jls/jls.c#5 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/pkg_install/add/perform.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/ppp/ppp.8.m4#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/sysinstall/dispatch.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/sysinstall/install.c#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/sysinstall/menus.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/sysinstall/sysinstall.h#3 integrate Differences ... ==== //depot/projects/soc2009/trasz_limits/MAINTAINERS#3 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/MAINTAINERS,v 1.153 2009/06/24 17:23:10 imp Exp $ +$FreeBSD: src/MAINTAINERS,v 1.154 2009/07/06 11:46:18 flz Exp $ Please note that the content of this file is strictly advisory. No locks listed here are valid. The only strict review requirements @@ -111,7 +111,7 @@ rpc alfred Pre-commit review requested. xfs kan@FreeBSD.org,rodrigc@FreeBSD.org,cattelan@xfs.org Pre-commit review preferred. -pkg_install krion Pre-commit review or approval from portmgr@ requested. +pkg_install portmgr Pre-commit review or approval from portmgr@ requested. linux emul emulation Please discuss changes here. bs{diff,patch} cperciva Pre-commit review requested. portsnap cperciva Pre-commit review requested. @@ -123,7 +123,6 @@ usr.bin/bluetooth emax Pre-commit review preferred. usr.sbin/bluetooth emax Pre-commit review preferred. gnu/usr.bin/send-pr bugmaster Pre-commit review requested. -BSD.{local,x11*}.dist portmgr Pre-commit review requested, since these files interface with ports. ncurses rafan Heads-up appreciated, try not to break it. Following are the entries from the Makefiles, and a few other sources. ==== //depot/projects/soc2009/trasz_limits/bin/ps/ps.1#3 (text+ko) ==== @@ -27,9 +27,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 -.\" $FreeBSD: src/bin/ps/ps.1,v 1.91 2009/05/17 04:00:43 brian Exp $ +.\" $FreeBSD: src/bin/ps/ps.1,v 1.92 2009/07/09 16:40:00 trasz Exp $ .\" -.Dd May 16, 2009 +.Dd July 9, 2009 .Dt PS 1 .Os .Sh NAME @@ -637,6 +637,7 @@ .Xr kill 1 , .Xr pgrep 1 , .Xr pkill 1 , +.Xr procstat 1 , .Xr w 1 , .Xr kvm 3 , .Xr strftime 3 , ==== //depot/projects/soc2009/trasz_limits/cddl/contrib/opensolaris/head/thread.h#2 (text+ko) ==== @@ -53,7 +53,6 @@ #define mutex_lock(l) pthread_mutex_lock(l) #define mutex_trylock(l) pthread_mutex_trylock(l) #define mutex_unlock(l) pthread_mutex_unlock(l) -#define mutex_owned(l) pthread_mutex_isowned_np(l) #define rwlock_init(l,f,a) pthread_rwlock_init(l,NULL) #define rwlock_destroy(l) pthread_rwlock_destroy(l) #define rw_rdlock(l) pthread_rwlock_rdlock(l) ==== //depot/projects/soc2009/trasz_limits/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c#2 (text+ko) ==== @@ -115,6 +115,14 @@ mp->initialized = B_FALSE; } +int +zmutex_owned(kmutex_t *mp) +{ + ASSERT(mp->initialized == B_TRUE); + + return (mp->m_owner == curthread); +} + void mutex_enter(kmutex_t *mp) { ==== //depot/projects/soc2009/trasz_limits/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h#2 (text+ko) ==== @@ -237,9 +237,11 @@ #define mutex_init(mp, b, c, d) zmutex_init((kmutex_t *)(mp)) #define mutex_destroy(mp) zmutex_destroy((kmutex_t *)(mp)) +#define mutex_owned(mp) zmutex_owned((kmutex_t *)(mp)) extern void zmutex_init(kmutex_t *mp); extern void zmutex_destroy(kmutex_t *mp); +extern int zmutex_owned(kmutex_t *mp); extern void mutex_enter(kmutex_t *mp); extern void mutex_exit(kmutex_t *mp); extern int mutex_tryenter(kmutex_t *mp); ==== //depot/projects/soc2009/trasz_limits/etc/mtree/BSD.include.dist#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/mtree/BSD.include.dist,v 1.130 2009/05/27 16:16:56 thompsa Exp $ +# $FreeBSD: src/etc/mtree/BSD.include.dist,v 1.131 2009/07/10 08:18:08 scottl Exp $ # # Please see the file src/etc/mtree/README before making changes to this file. # @@ -78,6 +78,8 @@ .. .. cam + ata + .. scsi .. .. ==== //depot/projects/soc2009/trasz_limits/include/Makefile#4 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 1/4/94 -# $FreeBSD: src/include/Makefile,v 1.289 2009/05/27 16:16:56 thompsa Exp $ +# $FreeBSD: src/include/Makefile,v 1.290 2009/07/10 08:18:08 scottl Exp $ # # Doing a "make install" builds /usr/include. @@ -38,7 +38,7 @@ nfs nfsclient nfsserver \ sys vm -LSUBDIRS= cam/scsi \ +LSUBDIRS= cam/ata cam/scsi \ dev/acpica dev/an dev/bktr dev/firewire dev/hwpmc \ dev/ic dev/iicbus ${_dev_ieee488} dev/lmc dev/ofw \ dev/pbio ${_dev_powermac_nvram} dev/ppbus dev/smbus \ ==== //depot/projects/soc2009/trasz_limits/include/unistd.h#3 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)unistd.h 8.12 (Berkeley) 4/27/95 - * $FreeBSD: src/include/unistd.h,v 1.94 2009/06/15 20:38:55 jhb Exp $ + * $FreeBSD: src/include/unistd.h,v 1.95 2009/07/08 15:23:18 trasz Exp $ */ #ifndef _UNISTD_H_ @@ -513,6 +513,7 @@ int iruserok(unsigned long, int, const char *, const char *); int iruserok_sa(const void *, int, int, const char *, const char *); int issetugid(void); +long lpathconf(const char *, int); #ifndef _MKDTEMP_DECLARED char *mkdtemp(char *); #define _MKDTEMP_DECLARED ==== //depot/projects/soc2009/trasz_limits/lib/libc/sys/Makefile.inc#4 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile.inc 8.3 (Berkeley) 10/24/94 -# $FreeBSD: src/lib/libc/sys/Makefile.inc,v 1.140 2009/06/24 21:10:52 jhb Exp $ +# $FreeBSD: src/lib/libc/sys/Makefile.inc,v 1.141 2009/07/08 15:23:18 trasz Exp $ # sys sources .PATH: ${.CURDIR}/${MACHINE_ARCH}/sys ${.CURDIR}/sys @@ -159,6 +159,7 @@ MLINKS+=ntp_adjtime.2 ntp_gettime.2 MLINKS+=open.2 openat.2 MLINKS+=pathconf.2 fpathconf.2 +MLINKS+=pathconf.2 lpathconf.2 MLINKS+=read.2 pread.2 read.2 preadv.2 read.2 readv.2 MLINKS+=readlink.2 readlinkat.2 MLINKS+=recv.2 recvfrom.2 recv.2 recvmsg.2 ==== //depot/projects/soc2009/trasz_limits/lib/libc/sys/Symbol.map#6 (text) ==== @@ -1,5 +1,5 @@ /* - * $FreeBSD: src/lib/libc/sys/Symbol.map,v 1.26 2009/06/29 01:33:59 kan Exp $ + * $FreeBSD: src/lib/libc/sys/Symbol.map,v 1.27 2009/07/08 15:23:18 trasz Exp $ */ /* @@ -346,6 +346,7 @@ jail_set; jail_remove; linkat; + lpathconf; mkdirat; mkfifoat; mknodat; ==== //depot/projects/soc2009/trasz_limits/lib/libc/sys/execve.2#2 (text+ko) ==== @@ -26,7 +26,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)execve.2 8.5 (Berkeley) 6/1/94 -.\" $FreeBSD: src/lib/libc/sys/execve.2,v 1.42 2008/08/26 10:53:32 kib Exp $ +.\" $FreeBSD: src/lib/libc/sys/execve.2,v 1.43 2009/07/05 20:20:09 pjd Exp $ .\" .Dd April 10, 2008 .Dt EXECVE 2 @@ -220,13 +220,11 @@ .Fn fexecve , the file descriptor .Fa fd -need not have been -opened with the +need not have been opened with the .Dv O_EXEC flag. -However, if the file to be executed denies read and write -permission for the process preparing to do the exec, the only way to -provide the +However, if the file to be executed denies read permission for the process +preparing to do the exec, the only way to provide the .Fa fd to .Fn fexecve @@ -234,6 +232,7 @@ .Dv O_EXEC flag when opening .Fa fd . +Note that the file to be executed can not be open for writing. .Sh RETURN VALUES As the .Fn execve @@ -277,7 +276,7 @@ permission, but has an invalid magic number in its header. .It Bq Er ETXTBSY The new process file is a pure procedure (shared text) -file that is currently open for writing or reading by some process. +file that is currently open for writing by some process. .It Bq Er ENOMEM The new process requires more virtual memory than is allowed by the imposed maximum ==== //depot/projects/soc2009/trasz_limits/lib/libc/sys/pathconf.2#3 (text+ko) ==== @@ -26,13 +26,14 @@ .\" SUCH DAMAGE. .\" .\" @(#)pathconf.2 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/sys/pathconf.2,v 1.23 2009/06/25 12:53:50 trasz Exp $ +.\" $FreeBSD: src/lib/libc/sys/pathconf.2,v 1.24 2009/07/08 15:23:18 trasz Exp $ .\" -.Dd June 25, 2009 +.Dd July 7, 2009 .Dt PATHCONF 2 .Os .Sh NAME .Nm pathconf , +.Nm lpathconf , .Nm fpathconf .Nd get configurable pathname variables .Sh LIBRARY @@ -42,10 +43,13 @@ .Ft long .Fn pathconf "const char *path" "int name" .Ft long +.Fn lpathconf "const char *path" "int name" +.Ft long .Fn fpathconf "int fd" "int name" .Sh DESCRIPTION The -.Fn pathconf +.Fn pathconf , +.Fn lpathconf and .Fn fpathconf system calls provide a method for applications to determine the current @@ -53,7 +57,9 @@ with a pathname or file descriptor. .Pp For -.Fn pathconf , +.Fn pathconf +and +.Fn lpathconf , the .Fa path argument is the name of a file or directory. @@ -68,6 +74,18 @@ Symbolic constants for each name value are found in the include file .Li <unistd.h> . .Pp +The +.Fn lpathconf +system call is like +.Fn pathconf +except in the case where the named file is a symbolic link, +in which case +.Fn lpathconf +returns information about the link, +while +.Fn pathconf +returns information about the file the link references. +.Pp The available values are as follows: .Pp .Bl -tag -width 6n @@ -239,3 +257,7 @@ .Fn fpathconf system calls first appeared in .Bx 4.4 . +The +.Fn lpathconf +system call first appeared in +.Fx 8.0 . ==== //depot/projects/soc2009/trasz_limits/lib/libcam/Makefile#2 (text+ko) ==== @@ -1,8 +1,9 @@ -# $FreeBSD: src/lib/libcam/Makefile,v 1.12 2004/02/05 22:44:22 ru Exp $ +# $FreeBSD: src/lib/libcam/Makefile,v 1.13 2009/07/10 08:18:08 scottl Exp $ LIB= cam SHLIBDIR?= /lib -SRCS= camlib.c scsi_cmdparse.c scsi_all.c scsi_da.c scsi_sa.c cam.c +SRCS= camlib.c scsi_cmdparse.c scsi_all.c scsi_da.c scsi_sa.c cam.c \ + ata_all.c INCS= camlib.h DPADD= ${LIBSBUF} @@ -34,7 +35,8 @@ cam_cdbparse.3 csio_encode_visit.3 \ cam_cdbparse.3 buff_encode_visit.3 -.PATH: ${.CURDIR}/../../sys/cam/scsi ${.CURDIR}/../../sys/cam +.PATH: ${.CURDIR}/../../sys/cam/scsi ${.CURDIR}/../../sys/cam/ata \ + ${.CURDIR}/../../sys/cam SDIR= ${.CURDIR}/../../sys CFLAGS+= -I${.CURDIR} -I${SDIR} ==== //depot/projects/soc2009/trasz_limits/lib/libthr/thread/thr_rtld.c#2 (text) ==== @@ -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/lib/libthr/thread/thr_rtld.c,v 1.11 2009/04/19 23:02:50 rwatson Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_rtld.c,v 1.12 2009/07/06 09:31:04 attilio Exp $ * */ @@ -114,6 +114,7 @@ THR_CRITICAL_ENTER(curthread); while (_thr_rwlock_rdlock(&l->lock, 0, NULL) != 0) ; + curthread->rdlock_count++; RESTORE_ERRNO(); } @@ -148,6 +149,7 @@ state = l->lock.rw_state; if (_thr_rwlock_unlock(&l->lock) == 0) { + curthread->rdlock_count--; if ((state & URWLOCK_WRITE_OWNER) == 0) { THR_CRITICAL_LEAVE(curthread); } else { ==== //depot/projects/soc2009/trasz_limits/lib/libthr/thread/thr_rwlock.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/thread/thr_rwlock.c,v 1.15 2008/04/14 08:08:40 davidxu Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_rwlock.c,v 1.16 2009/07/06 09:31:04 attilio Exp $ */ #include <errno.h> @@ -177,10 +177,11 @@ /* if interrupted, try to lock it in userland again. */ if (_thr_rwlock_tryrdlock(&prwlock->lock, flags) == 0) { ret = 0; - curthread->rdlock_count++; break; } } + if (ret == 0) + curthread->rdlock_count++; return (ret); } ==== //depot/projects/soc2009/trasz_limits/lib/libusb/libusb.h#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/lib/libusb/libusb.h,v 1.7 2009/06/23 01:04:58 thompsa Exp $ */ +/* $FreeBSD: src/lib/libusb/libusb.h,v 1.8 2009/07/10 14:15:53 thompsa Exp $ */ /*- * Copyright (c) 2009 Sylvestre Gallon. All rights reserved. * @@ -27,14 +27,16 @@ #ifndef __LIBUSB_H__ #define __LIBUSB_H__ +#include <sys/time.h> +#include <sys/types.h> +#include <sys/endian.h> +#include <sys/queue.h> + #include <stdint.h> #include <time.h> #include <string.h> #include <pthread.h> -#include <sys/time.h> -#include <sys/types.h> -#include <sys/endian.h> #ifdef __cplusplus extern "C" { @@ -44,10 +46,6 @@ #endif -struct list_head { - struct list_head *prev, *next; -}; - /* libusb enums */ enum libusb_class_code { @@ -183,6 +181,33 @@ LIBUSB_DEBUG_TRANSFER=2, }; +/* internal structures */ + +typedef struct libusb_pollfd { + int fd; + short events; +} libusb_pollfd; + +struct usb_pollfd { + TAILQ_ENTRY(usb_pollfd) list; + struct libusb_pollfd pollfd; +}; + +struct usb_transfer { + TAILQ_ENTRY(usb_transfer) list; + int num_iso_packets; + struct timeval timeout; + int transferred; + uint8_t flags; +}; + +struct usb_ep_tr { + TAILQ_ENTRY(usb_ep_tr) list; + uint8_t addr; + uint8_t idx; + uint8_t flags; + void *os_priv; +}; /* libusb structures */ typedef void (*libusb_pollfd_added_cb) (int fd, short events, void *user_data); @@ -194,16 +219,16 @@ int ctrl_pipe[2]; - struct list_head usb_devs; + TAILQ_HEAD(usb_devs_list, libusb_device) usb_devs; pthread_mutex_t usb_devs_lock; - struct list_head open_devs; + TAILQ_HEAD(open_devs_list, libusb_device_handle) open_devs; pthread_mutex_t open_devs_lock; - struct list_head flying_transfers; + TAILQ_HEAD(flying_transfers_list, usb_transfer) flying_transfers; pthread_mutex_t flying_transfers_lock; - struct list_head pollfds; + TAILQ_HEAD(pollfds_list, usb_pollfd) pollfds; pthread_mutex_t pollfds_lock; unsigned int pollfd_modify; @@ -230,7 +255,7 @@ uint8_t device_address; uint8_t num_configurations; - struct list_head list; + TAILQ_ENTRY(libusb_device) list; unsigned long session_data; void *os_priv; } libusb_device; @@ -239,9 +264,10 @@ pthread_mutex_t lock; unsigned long claimed_interfaces; - struct list_head list; + TAILQ_ENTRY(libusb_device_handle) list; struct libusb_device *dev; void *os_priv; + TAILQ_HEAD(ep_list, usb_ep_tr) ep_list; } libusb_device_handle; typedef struct libusb_device_descriptor { @@ -343,11 +369,6 @@ struct libusb_iso_packet_descriptor iso_packet_desc[0]; } libusb_transfer __aligned(sizeof(void *)); -typedef struct libusb_pollfd { - int fd; - short events; -} libusb_pollfd; - /* Library initialisation */ void libusb_set_debug(libusb_context * ctx, int level); @@ -360,6 +381,7 @@ void libusb_free_device_list(libusb_device ** list, int unref_devices); uint8_t libusb_get_bus_number(libusb_device * dev); uint8_t libusb_get_device_address(libusb_device * dev); +int libusb_clear_halt(libusb_device_handle *devh, unsigned char endpoint); int libusb_get_max_packet_size(libusb_device * dev, unsigned char endpoint); libusb_device *libusb_ref_device(libusb_device * dev); void libusb_unref_device(libusb_device * dev); ==== //depot/projects/soc2009/trasz_limits/lib/libusb/libusb10.c#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/lib/libusb/libusb10.c,v 1.1 2009/06/23 01:04:58 thompsa Exp $ */ +/* $FreeBSD: src/lib/libusb/libusb10.c,v 1.2 2009/07/10 14:15:53 thompsa Exp $ */ /*- * Copyright (c) 2009 Sylvestre Gallon. All rights reserved. * @@ -75,8 +75,8 @@ pthread_mutex_init(&ctx->usb_devs_lock, NULL); pthread_mutex_init(&ctx->open_devs_lock, NULL); - USB_LIST_INIT(&ctx->usb_devs); - USB_LIST_INIT(&ctx->open_devs); + TAILQ_INIT(&ctx->usb_devs); + TAILQ_INIT(&ctx->open_devs); pthread_mutex_init(&ctx->flying_transfers_lock, NULL); pthread_mutex_init(&ctx->pollfds_lock, NULL); @@ -85,8 +85,8 @@ pthread_mutex_init(&ctx->event_waiters_lock, NULL); pthread_cond_init(&ctx->event_waiters_cond, NULL); - USB_LIST_INIT(&ctx->flying_transfers); - USB_LIST_INIT(&ctx->pollfds); + TAILQ_INIT(&ctx->flying_transfers); + TAILQ_INIT(&ctx->pollfds); ret = pipe(ctx->ctrl_pipe); if (ret < 0) { @@ -123,7 +123,7 @@ { GET_CONTEXT(ctx); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_exit enter"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_exit enter"); usb_remove_pollfd(ctx, ctx->ctrl_pipe[0]); close(ctx->ctrl_pipe[0]); close(ctx->ctrl_pipe[1]); @@ -135,7 +135,7 @@ pthread_mutex_unlock(&default_context_lock); free(ctx); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_exit leave"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_exit leave"); } /* Device handling and initialisation. */ @@ -150,7 +150,7 @@ int i; GET_CONTEXT(ctx); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_list enter"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_list enter"); usb_backend = libusb20_be_alloc_default(); if (usb_backend == NULL) @@ -178,6 +178,10 @@ ddesc = libusb20_dev_get_device_desc(pdev); dev = malloc(sizeof(*dev)); if (dev == NULL) { + while (i != 0) { + libusb_unref_device((*list)[i - 1]); + i--; + } free(*list); libusb20_be_free(usb_backend); return (LIBUSB_ERROR_NO_MEM); @@ -194,7 +198,7 @@ dev->os_priv = pdev; pthread_mutex_lock(&ctx->usb_devs_lock); - LIST_ADD(&dev->list, &ctx->usb_devs); + TAILQ_INSERT_HEAD(&ctx->usb_devs, dev, list); pthread_mutex_unlock(&ctx->usb_devs_lock); (*list)[i] = libusb_ref_device(dev); @@ -203,7 +207,7 @@ (*list)[i] = NULL; libusb20_be_free(usb_backend); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_list leave"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_list leave"); return (i); } @@ -219,7 +223,7 @@ ctx = NULL; GET_CONTEXT(ctx); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_free_device_list enter"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_free_device_list enter"); if (list == NULL) return ; @@ -229,7 +233,7 @@ libusb_unref_device(list[i]); } free(list); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_free_device_list leave"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_free_device_list leave"); } uint8_t @@ -239,11 +243,11 @@ ctx = NULL; GET_CONTEXT(ctx); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_bus_number enter"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_bus_number enter"); if (dev == NULL) return (LIBUSB_ERROR_NO_DEVICE); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_bus_number leave"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_bus_number leave"); return (dev->bus_number); } @@ -254,11 +258,11 @@ ctx = NULL; GET_CONTEXT(ctx); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_address enter"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_address enter"); if (dev == NULL) return (LIBUSB_ERROR_NO_DEVICE); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_address leave"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_address leave"); return (dev->device_address); } @@ -274,7 +278,7 @@ ctx = NULL; GET_CONTEXT(ctx); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_max_packet_size enter"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_max_packet_size enter"); if (dev == NULL) return (LIBUSB_ERROR_NO_DEVICE); @@ -299,7 +303,7 @@ out: libusb_free_config_descriptor(pdconf); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_max_packet_size leave"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_max_packet_size leave"); return (ret); } @@ -310,7 +314,7 @@ ctx = NULL; GET_CONTEXT(ctx); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_ref_device enter"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_ref_device enter"); if (dev == NULL) return (NULL); @@ -319,7 +323,7 @@ dev->refcnt++; pthread_mutex_unlock(&dev->lock); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_ref_device leave"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_ref_device leave"); return (dev); } @@ -330,7 +334,7 @@ ctx = NULL; GET_CONTEXT(ctx); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_unref_device enter"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_unref_device enter"); if (dev == NULL) return; @@ -341,13 +345,13 @@ if (dev->refcnt == 0) { pthread_mutex_lock(&dev->ctx->usb_devs_lock); - LIST_DEL(&dev->list); + TAILQ_REMOVE(&ctx->usb_devs, dev, list); pthread_mutex_unlock(&dev->ctx->usb_devs_lock); libusb20_dev_free(dev->os_priv); free(dev); } - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_unref_device leave"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_unref_device leave"); } int @@ -360,7 +364,7 @@ int err; GET_CONTEXT(ctx); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open enter"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open enter"); dummy = 1; if (devh == NULL) @@ -378,6 +382,7 @@ memset(hdl, 0, sizeof(*hdl)); pthread_mutex_init(&hdl->lock, NULL); + TAILQ_INIT(&hdl->ep_list); hdl->dev = libusb_ref_device(dev); hdl->claimed_interfaces = 0; hdl->os_priv = dev->os_priv; @@ -390,7 +395,7 @@ } pthread_mutex_lock(&ctx->open_devs_lock); - LIST_ADD(&hdl->list, &ctx->open_devs); + TAILQ_INSERT_HEAD(&ctx->open_devs, hdl, list); pthread_mutex_unlock(&ctx->open_devs_lock); *devh = hdl; @@ -414,7 +419,7 @@ pthread_mutex_unlock(&ctx->pollfd_modify_lock); libusb_unlock_events(ctx); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open leave"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open leave"); return (0); } @@ -429,7 +434,7 @@ int i, j; GET_CONTEXT(ctx); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open_device_width_vid_pid enter"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open_device_width_vid_pid enter"); devh = NULL; @@ -440,13 +445,15 @@ pdev = (struct libusb20_device *)devs[j]->os_priv; pdesc = libusb20_dev_get_device_desc(pdev); if (pdesc->idVendor == vendor_id && - pdesc->idProduct == product_id) + pdesc->idProduct == product_id) { if (libusb_open(devs[j], &devh) < 0) devh = NULL; + break ; + } } libusb_free_device_list(devs, 1); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open_device_width_vid_pid leave"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open_device_width_vid_pid leave"); return (devh); } @@ -455,6 +462,7 @@ { libusb_context *ctx; struct libusb20_device *pdev; + struct usb_ep_tr *eptr; unsigned char dummy = 1; int err; @@ -465,7 +473,7 @@ pdev = devh->os_priv; GET_CONTEXT(ctx); - dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_close enter"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_close enter"); pthread_mutex_lock(&ctx->pollfd_modify_lock); ctx->pollfd_modify++; @@ -475,12 +483,21 @@ if (err <= 0) { pthread_mutex_lock(&ctx->open_devs_lock); - LIST_DEL(&devh->list); + TAILQ_REMOVE(&ctx->open_devs, devh, list); pthread_mutex_unlock(&ctx->open_devs_lock); usb_remove_pollfd(ctx, libusb20_dev_get_fd(pdev)); + libusb20_dev_close(pdev); libusb_unref_device(devh->dev); - libusb20_dev_close(pdev); + TAILQ_FOREACH(eptr, &devh->ep_list, list) { >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907101912.n6AJCF0l068054>
