Date: Mon, 15 Sep 2008 09:33:31 GMT From: Peter Wemm <peter@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 149794 for review Message-ID: <200809150933.m8F9XVqQ026938@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=149794 Change 149794 by peter@peter_daintree on 2008/09/15 09:33:15 IFC @149788 Affected files ... .. //depot/projects/hammer/ObsoleteFiles.inc#59 integrate .. //depot/projects/hammer/UPDATING#122 integrate .. //depot/projects/hammer/contrib/telnet/arpa/telnet.h#2 integrate .. //depot/projects/hammer/gnu/usr.bin/gdb/libgdb/fbsd-threads.c#13 integrate .. //depot/projects/hammer/include/arpa/telnet.h#3 integrate .. //depot/projects/hammer/lib/libarchive/archive_platform.h#22 integrate .. //depot/projects/hammer/lib/libarchive/archive_read_support_compression_program.c#5 integrate .. //depot/projects/hammer/lib/libarchive/archive_write_disk.c#17 integrate .. //depot/projects/hammer/lib/libarchive/config_freebsd.h#10 integrate .. //depot/projects/hammer/lib/libarchive/filter_fork.c#5 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_event.c#3 integrate .. //depot/projects/hammer/lib/libthread_db/libpthread_db.c#12 integrate .. //depot/projects/hammer/lib/libthread_db/libthr_db.c#11 integrate .. //depot/projects/hammer/lib/libthread_db/thread_db.c#7 integrate .. //depot/projects/hammer/lib/libthread_db/thread_db.h#7 integrate .. //depot/projects/hammer/lib/libthread_db/thread_db_int.h#5 integrate .. //depot/projects/hammer/rescue/rescue/Makefile#41 integrate .. //depot/projects/hammer/sbin/mount_nfs/mount_nfs.8#16 integrate .. //depot/projects/hammer/sbin/mount_nfs/mount_nfs.c#17 integrate .. //depot/projects/hammer/share/man/man4/snd_hda.4#9 integrate .. //depot/projects/hammer/share/man/man9/bus_dma.9#29 integrate .. //depot/projects/hammer/share/man/man9/dev_clone.9#1 branch .. //depot/projects/hammer/share/man/man9/devfs_set_cdevpriv.9#1 branch .. //depot/projects/hammer/share/man/man9/insmntque.9#2 integrate .. //depot/projects/hammer/share/man/man9/make_dev.9#12 integrate .. //depot/projects/hammer/sys/amd64/amd64/vm_machdep.c#94 integrate .. //depot/projects/hammer/sys/amd64/include/pmc_mdep.h#5 integrate .. //depot/projects/hammer/sys/amd64/pci/pci_cfgreg.c#30 integrate .. //depot/projects/hammer/sys/arm/arm/intr.c#21 integrate .. //depot/projects/hammer/sys/arm/arm/nexus.c#11 integrate .. //depot/projects/hammer/sys/arm/include/intr.h#10 integrate .. //depot/projects/hammer/sys/arm/include/pcpu.h#8 integrate .. //depot/projects/hammer/sys/arm/xscale/ixp425/ixp425.c#7 integrate .. //depot/projects/hammer/sys/arm/xscale/ixp425/ixp425_qmgr.c#4 integrate .. //depot/projects/hammer/sys/compat/linux/linux_misc.c#53 integrate .. //depot/projects/hammer/sys/compat/ndis/ntoskrnl_var.h#27 integrate .. //depot/projects/hammer/sys/conf/NOTES#151 integrate .. //depot/projects/hammer/sys/dev/aac/aac_pci.c#34 integrate .. //depot/projects/hammer/sys/dev/hwpmc/hwpmc_x86.c#8 integrate .. //depot/projects/hammer/sys/dev/mlx/mlx.c#13 integrate .. //depot/projects/hammer/sys/dev/sound/pci/hda/hda_reg.h#2 integrate .. //depot/projects/hammer/sys/dev/sound/pci/hda/hdac.c#20 integrate .. //depot/projects/hammer/sys/dev/sound/pci/hda/hdac_private.h#7 integrate .. //depot/projects/hammer/sys/dev/tx/if_tx.c#30 integrate .. //depot/projects/hammer/sys/dev/usb/ubsa.c#23 integrate .. //depot/projects/hammer/sys/dev/usb/ufoma.c#7 integrate .. //depot/projects/hammer/sys/dev/usb/usbdevs#109 integrate .. //depot/projects/hammer/sys/fs/nullfs/null_vnops.c#32 integrate .. //depot/projects/hammer/sys/i386/i386/sys_machdep.c#28 integrate .. //depot/projects/hammer/sys/i386/i386/vm_machdep.c#63 integrate .. //depot/projects/hammer/sys/i386/include/pmc_mdep.h#6 integrate .. //depot/projects/hammer/sys/i386/include/proc.h#11 integrate .. //depot/projects/hammer/sys/i386/pci/pci_cfgreg.c#31 integrate .. //depot/projects/hammer/sys/kern/subr_witness.c#75 integrate .. //depot/projects/hammer/sys/modules/Makefile#132 integrate .. //depot/projects/hammer/sys/net/if_atmsubr.c#23 integrate .. //depot/projects/hammer/sys/net/if_fwsubr.c#21 integrate .. //depot/projects/hammer/sys/net/if_iso88025subr.c#23 integrate .. //depot/projects/hammer/sys/net/route.c#37 integrate .. //depot/projects/hammer/sys/net/route.h#22 integrate .. //depot/projects/hammer/sys/netgraph/ng_base.c#62 integrate .. //depot/projects/hammer/sys/netinet/if_ether.c#49 integrate .. //depot/projects/hammer/sys/netinet/in_rmx.c#18 integrate .. //depot/projects/hammer/sys/netinet/in_var.h#17 integrate .. //depot/projects/hammer/sys/netinet/ip_fw.h#36 integrate .. //depot/projects/hammer/sys/netinet/ip_fw2.c#99 integrate .. //depot/projects/hammer/sys/netinet/tcp_output.c#53 integrate .. //depot/projects/hammer/sys/netinet/tcp_subr.c#85 integrate .. //depot/projects/hammer/sys/netinet/tcp_syncache.c#64 integrate .. //depot/projects/hammer/sys/nfsclient/nfs_vfsops.c#62 integrate .. //depot/projects/hammer/sys/powerpc/aim/mp_cpudep.c#2 integrate .. //depot/projects/hammer/sys/powerpc/include/spr.h#9 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/autoconf.c#9 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/cpu.c#10 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/mp_machdep.c#8 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/openpic.c#17 integrate .. //depot/projects/hammer/sys/sys/procfs.h#5 integrate .. //depot/projects/hammer/tools/build/mk/OptionalObsoleteFiles.inc#14 integrate .. //depot/projects/hammer/usr.bin/tar/config_freebsd.h#6 integrate .. //depot/projects/hammer/usr.bin/tar/test/Makefile#3 integrate .. //depot/projects/hammer/usr.bin/tar/test/test_symlink_dir.c#1 branch .. //depot/projects/hammer/usr.bin/tar/write.c#35 integrate .. //depot/projects/hammer/usr.bin/top/machine.c#25 integrate .. //depot/projects/hammer/usr.sbin/fwcontrol/fwcontrol.8#17 integrate .. //depot/projects/hammer/usr.sbin/iostat/iostat.c#13 integrate .. //depot/projects/hammer/usr.sbin/mlxcontrol/command.c#2 integrate .. //depot/projects/hammer/usr.sbin/mlxcontrol/interface.c#2 integrate .. //depot/projects/hammer/usr.sbin/ntp/config.h#9 integrate .. //depot/projects/hammer/usr.sbin/quot/quot.c#10 integrate Differences ... ==== //depot/projects/hammer/ObsoleteFiles.inc#59 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.158 2008/09/10 18:36:58 jhb Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.160 2008/09/14 17:49:46 antoine Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,8 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20080913: pax removed from rescue +OLD_FILES+=rescue/pax # 20080823: removal of unneeded pt_chown, to implement grantpt(3) OLD_FILES+=usr/libexec/pt_chown # 20080822: ntp 4.2.4p5 import @@ -3794,7 +3796,6 @@ OLD_FILES+=usr/games/worms OLD_FILES+=usr/games/wump OLD_FILES+=sbin/mount_reiserfs -OLD_FILES+=usr/bin/hesinfo OLD_FILES+=usr/include/c++/3.4/ext/demangle.h OLD_FILES+=usr/include/cam/cam_extend.h OLD_FILES+=usr/include/dev/wi/wi_hostap.h @@ -4204,10 +4205,8 @@ OLD_FILES+=usr/share/doc/ntp/tickadj.htm OLD_FILES+=usr/share/doc/papers/nqnfs.ascii.gz OLD_FILES+=usr/share/doc/papers/px.ascii.gz -OLD_FILES+=usr/share/man/man1/hesinfo.1.gz OLD_FILES+=usr/share/man/man3/mbrune.3.gz OLD_FILES+=usr/share/man/man3/rune.3.gz -OLD_FILES+=usr/share/man/man3/hesiod.3.gz OLD_FILES+=usr/share/man/man3/mac_is_present_np.3.gz OLD_FILES+=usr/share/man/man3/fpsetsticky.3.gz OLD_FILES+=usr/share/man/man3/gss_krb5_copy_ccache.3.gz @@ -4222,7 +4221,6 @@ OLD_FILES+=usr/share/man/man3/setinvalidrune.3.gz OLD_FILES+=usr/share/man/man3/mbrune.3.gz OLD_FILES+=usr/share/man/man3/rune.3.gz -OLD_FILES+=usr/share/man/man3/hesiod.3.gz OLD_FILES+=usr/share/man/man3/mac_is_present_np.3.gz OLD_FILES+=usr/share/man/man3/fpsetsticky.3.gz OLD_FILES+=usr/share/man/man3/gss_krb5_copy_ccache.3.gz @@ -4238,7 +4236,6 @@ OLD_FILES+=usr/share/man/man3/fungetrune.3.gz OLD_FILES+=usr/share/man/man3/fputrune.3.gz OLD_FILES+=usr/share/man/man3/fgetrune.3.gz -OLD_FILES+=usr/share/man/man5/hesiod.conf.5.gz OLD_FILES+=usr/share/man/man5/usbd.conf.5.gz .if ${TARGET_ARCH} != "i386" && ${TARGET_ARCH} != "amd64" OLD_FILES+=usr/share/man/man8/boot_i386.8.gz ==== //depot/projects/hammer/UPDATING#122 (text+ko) ==== @@ -30,10 +30,10 @@ drivers have not yet been ported to the new TTY layer: PCI/ISA: - cy, digi, rc, rp, si, sio + cy, digi, rc, rp, sio USB: - ubser, ucycom, ufoma + ubser, ucycom Line disciplines: ng_h4, ng_tty, ppp, sl, snp @@ -1126,4 +1126,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.541 2008/09/03 08:30:17 roberto Exp $ +$FreeBSD: src/UPDATING,v 1.542 2008/09/14 19:25:57 ed Exp $ ==== //depot/projects/hammer/contrib/telnet/arpa/telnet.h#2 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)telnet.h 8.2 (Berkeley) 12/15/93 - * $FreeBSD: src/contrib/telnet/arpa/telnet.h,v 1.9 2003/01/18 06:10:21 billf Exp $ + * $FreeBSD: src/contrib/telnet/arpa/telnet.h,v 1.10 2008/09/13 17:46:50 antoine Exp $ */ #ifndef _ARPA_TELNET_H_ @@ -140,8 +140,8 @@ "TACACS UID", "OUTPUT MARKING", "TTYLOC", "3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW", "LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION", - "ENCRYPT", "NEW-ENVIRON", "TN3270E", "CHARSET", "COM-PORT", - "KERMIT", + "ENCRYPT", "NEW-ENVIRON", "TN3270E", "XAUTH", "CHARSET", + "RSP", "COM-PORT", "SLE", "STARTTLS", "KERMIT", 0 }; #define TELOPT_FIRST TELOPT_BINARY ==== //depot/projects/hammer/gnu/usr.bin/gdb/libgdb/fbsd-threads.c#13 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/gnu/usr.bin/gdb/libgdb/fbsd-threads.c,v 1.17 2008/04/29 17:47:25 jhb Exp $ */ +/* $FreeBSD: src/gnu/usr.bin/gdb/libgdb/fbsd-threads.c,v 1.18 2008/09/14 16:52:42 marcel Exp $ */ /* FreeBSD libthread_db assisted debugging support. Copyright 1999, 2000, 2001 Free Software Foundation, Inc. @@ -710,7 +710,7 @@ error ("Cannot get thread event message: %s", thread_db_err_str (err)); } - err = td_thr_get_info_p (msg.th_p, &ti); + err = td_thr_get_info_p ((void *)(uintptr_t)msg.th_p, &ti); if (err != TD_OK) error ("Cannot get thread info: %s", thread_db_err_str (err)); ptid = BUILD_THREAD (ti.ti_tid, GET_PID (ptid)); @@ -720,7 +720,7 @@ /* We may already know about this thread, for instance when the user has issued the `info threads' command before the SIGTRAP for hitting the thread creation breakpoint was reported. */ - attach_thread (ptid, msg.th_p, &ti, 1); + attach_thread (ptid, (void *)(uintptr_t)msg.th_p, &ti, 1); break; case TD_DEATH: if (!in_thread_list (ptid)) @@ -1178,13 +1178,14 @@ if (ti.ti_lid != 0) { - snprintf (buf, sizeof (buf), "Thread %p (LWP %d)", - th.th_thread, ti.ti_lid); + snprintf (buf, sizeof (buf), "Thread %llx (LWP %d)", + (unsigned long long)th.th_thread, ti.ti_lid); } else { - snprintf (buf, sizeof (buf), "Thread %p (%s)", - th.th_thread, thread_db_state_str (ti.ti_state)); + snprintf (buf, sizeof (buf), "Thread %llx (%s)", + (unsigned long long)th.th_thread, + thread_db_state_str (ti.ti_state)); } return buf; ==== //depot/projects/hammer/include/arpa/telnet.h#3 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)telnet.h 8.2 (Berkeley) 12/15/93 - * $FreeBSD: src/include/arpa/telnet.h,v 1.9 2003/01/18 06:13:57 billf Exp $ + * $FreeBSD: src/include/arpa/telnet.h,v 1.10 2008/09/13 17:46:50 antoine Exp $ */ #ifndef _ARPA_TELNET_H_ @@ -140,8 +140,8 @@ "TACACS UID", "OUTPUT MARKING", "TTYLOC", "3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW", "LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION", - "ENCRYPT", "NEW-ENVIRON", "TN3270E", "CHARSET", "COM-PORT", - "KERMIT", + "ENCRYPT", "NEW-ENVIRON", "TN3270E", "XAUTH", "CHARSET", + "RSP", "COM-PORT", "SLE", "STARTTLS", "KERMIT", 0 }; #define TELOPT_FIRST TELOPT_BINARY ==== //depot/projects/hammer/lib/libarchive/archive_platform.h#22 (text+ko) ==== @@ -22,7 +22,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/libarchive/archive_platform.h,v 1.30 2008/05/26 17:00:22 kientzle Exp $ + * $FreeBSD: src/lib/libarchive/archive_platform.h,v 1.31 2008/09/12 04:03:34 kientzle Exp $ */ /* @@ -78,6 +78,9 @@ #if !HAVE_DECL_SIZE_MAX #define SIZE_MAX (~(size_t)0) #endif +#if !HAVE_DECL_SSIZE_MAX +#define SSIZE_MAX ((ssize_t)(SIZE_MAX >> 1)) +#endif #if !HAVE_DECL_UINT32_MAX #define UINT32_MAX (~(uint32_t)0) #endif ==== //depot/projects/hammer/lib/libarchive/archive_read_support_compression_program.c#5 (text+ko) ==== @@ -24,13 +24,15 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_compression_program.c,v 1.4 2008/06/15 10:45:57 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_compression_program.c,v 1.5 2008/09/12 03:53:54 kientzle Exp $"); /* This capability is only available on POSIX systems. */ #if !defined(HAVE_PIPE) || !defined(HAVE_FCNTL) || \ !(defined(HAVE_FORK) || defined(HAVE_VFORK)) +#include "archive.h" + /* * On non-Posix systems, allow the program to build, but choke if * this function is actually invoked. ==== //depot/projects/hammer/lib/libarchive/archive_write_disk.c#17 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_disk.c,v 1.36 2008/09/07 05:22:33 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_disk.c,v 1.39 2008/09/14 05:51:25 kientzle Exp $"); #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> @@ -514,9 +514,15 @@ } if (a->flags & ARCHIVE_EXTRACT_SPARSE) { +#if HAVE_STRUCT_STAT_ST_BLKSIZE if ((r = _archive_write_disk_lazy_stat(a)) != ARCHIVE_OK) return (r); block_size = a->pst->st_blksize; +#else + /* XXX TODO XXX Is there a more appropriate choice here ? */ + /* This needn't match the filesystem allocation size. */ + block_size = 16*1024; +#endif } if (a->filesize >= 0 && (off_t)(offset + size) > a->filesize) @@ -631,12 +637,14 @@ /* Last write ended at exactly the filesize; we're done. */ /* Hopefully, this is the common case. */ } else { +#if HAVE_FTRUNCATE if (ftruncate(a->fd, a->filesize) == -1 && a->filesize == 0) { archive_set_error(&a->archive, errno, "File size could not be restored"); return (ARCHIVE_FAILED); } +#endif /* * Explicitly stat the file as some platforms might not * implement the XSI option to extend files via ftruncate. @@ -1955,7 +1963,10 @@ } -#if ( defined(HAVE_LCHFLAGS) || defined(HAVE_CHFLAGS) || defined(HAVE_FCHFLAGS) ) && !defined(__linux) +#if ( defined(HAVE_LCHFLAGS) || defined(HAVE_CHFLAGS) || defined(HAVE_FCHFLAGS) ) && defined(HAVE_STRUCT_STAT_ST_FLAGS) +/* + * BSD reads flags using stat() and sets them with one of {f,l,}chflags() + */ static int set_fflags_platform(struct archive_write_disk *a, int fd, const char *name, mode_t mode, unsigned long set, unsigned long clear) @@ -2004,11 +2015,9 @@ return (ARCHIVE_WARN); } -#elif defined(__linux) && defined(EXT2_IOC_GETFLAGS) && defined(EXT2_IOC_SETFLAGS) - +#elif defined(EXT2_IOC_GETFLAGS) && defined(EXT2_IOC_SETFLAGS) /* - * Linux has flags too, but uses ioctl() to access them instead of - * having a separate chflags() system call. + * Linux uses ioctl() to read and write file flags. */ static int set_fflags_platform(struct archive_write_disk *a, int fd, const char *name, @@ -2076,7 +2085,7 @@ return (ret); } -#else /* Not HAVE_CHFLAGS && Not __linux */ +#else /* * Of course, some systems have neither BSD chflags() nor Linux' flags ==== //depot/projects/hammer/lib/libarchive/config_freebsd.h#10 (text+ko) ==== @@ -22,7 +22,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/libarchive/config_freebsd.h,v 1.11 2008/07/05 01:50:07 kientzle Exp $ + * $FreeBSD: src/lib/libarchive/config_freebsd.h,v 1.14 2008/09/14 05:51:25 kientzle Exp $ */ /* FreeBSD 5.0 and later have ACL support. */ @@ -41,6 +41,7 @@ #define HAVE_DECL_INT64_MAX 1 #define HAVE_DECL_INT64_MIN 1 #define HAVE_DECL_SIZE_MAX 1 +#define HAVE_DECL_SSIZE_MAX 1 #define HAVE_DECL_STRERROR_R 1 #define HAVE_DECL_UINT32_MAX 1 #define HAVE_DECL_UINT64_MAX 1 @@ -55,6 +56,7 @@ #define HAVE_FCNTL_H 1 #define HAVE_FSEEKO 1 #define HAVE_FSTAT 1 +#define HAVE_FTRUNCATE 1 #define HAVE_FUTIMES 1 #define HAVE_GETEUID 1 #define HAVE_GETPID 1 @@ -86,6 +88,8 @@ #define HAVE_STRINGS_H 1 #define HAVE_STRING_H 1 #define HAVE_STRRCHR 1 +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 +#define HAVE_STRUCT_STAT_ST_FLAGS 1 #define HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC 1 #define HAVE_SYS_ACL_H 1 #define HAVE_SYS_IOCTL_H 1 ==== //depot/projects/hammer/lib/libarchive/filter_fork.c#5 (text+ko) ==== @@ -29,7 +29,7 @@ #if defined(HAVE_PIPE) && defined(HAVE_FCNTL) && \ (defined(HAVE_FORK) || defined(HAVE_VFORK)) -__FBSDID("$FreeBSD: src/lib/libarchive/filter_fork.c,v 1.4 2008/06/15 10:45:57 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/filter_fork.c,v 1.5 2008/09/12 05:33:00 kientzle Exp $"); #if defined(HAVE_POLL) # if defined(HAVE_POLL_H) @@ -61,7 +61,7 @@ if (pipe(stdin_pipe) == -1) goto state_allocated; - if (stdin_pipe[0] == STDOUT_FILENO) { + if (stdin_pipe[0] == 1 /* stdout */) { if ((tmp = dup(stdin_pipe[0])) == -1) goto stdin_opened; close(stdin_pipe[0]); @@ -69,7 +69,7 @@ } if (pipe(stdout_pipe) == -1) goto stdin_opened; - if (stdout_pipe[1] == STDIN_FILENO) { + if (stdout_pipe[1] == 0 /* stdin */) { if ((tmp = dup(stdout_pipe[1])) == -1) goto stdout_opened; close(stdout_pipe[1]); @@ -86,16 +86,16 @@ case 0: close(stdin_pipe[1]); close(stdout_pipe[0]); - if (dup2(stdin_pipe[0], STDIN_FILENO) == -1) + if (dup2(stdin_pipe[0], 0 /* stdin */) == -1) _exit(254); - if (stdin_pipe[0] != STDIN_FILENO) + if (stdin_pipe[0] != 0 /* stdin */) close(stdin_pipe[0]); - if (dup2(stdout_pipe[1], STDOUT_FILENO) == -1) + if (dup2(stdout_pipe[1], 1 /* stdout */) == -1) _exit(254); - if (stdout_pipe[1] != STDOUT_FILENO) + if (stdout_pipe[1] != 1 /* stdout */) close(stdout_pipe[1]); execlp(path, path, (char *)NULL); - _exit(254); + _exit(254); default: close(stdin_pipe[0]); close(stdout_pipe[1]); ==== //depot/projects/hammer/lib/libthr/thread/thr_event.c#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/lib/libthr/thread/thr_event.c,v 1.2 2006/09/06 04:04:10 davidxu Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_event.c,v 1.3 2008/09/14 16:07:21 marcel Exp $ */ #include "thr_private.h" @@ -42,7 +42,7 @@ _thr_report_creation(struct pthread *curthread, struct pthread *newthread) { curthread->event_buf.event = TD_CREATE; - curthread->event_buf.th_p = (td_thrhandle_t *)newthread; + curthread->event_buf.th_p = (uintptr_t)newthread; curthread->event_buf.data = 0; THR_UMUTEX_LOCK(curthread, &_thr_event_lock); _thread_last_event = curthread; @@ -55,7 +55,7 @@ _thr_report_death(struct pthread *curthread) { curthread->event_buf.event = TD_DEATH; - curthread->event_buf.th_p = (td_thrhandle_t *)curthread; + curthread->event_buf.th_p = (uintptr_t)curthread; curthread->event_buf.data = 0; THR_UMUTEX_LOCK(curthread, &_thr_event_lock); _thread_last_event = curthread; ==== //depot/projects/hammer/lib/libthread_db/libpthread_db.c#12 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/lib/libthread_db/libpthread_db.c,v 1.19 2008/08/06 03:14:18 marcel Exp $"); +__FBSDID("$FreeBSD: src/lib/libthread_db/libpthread_db.c,v 1.20 2008/09/14 16:52:42 marcel Exp $"); #include <stddef.h> #include <stdlib.h> @@ -220,7 +220,6 @@ pt_ta_map_id2thr(const td_thragent_t *ta, thread_t id, td_thrhandle_t *th) { prgregset_t gregs; - TAILQ_HEAD(, pthread) thread_list; psaddr_t pt, tcb_addr; lwpid_t lwp; int ret; @@ -229,27 +228,24 @@ if (id < 0 || id >= ta->map_len || ta->map[id].type == PT_NONE) return (TD_NOTHR); - ret = ps_pread(ta->ph, ta->thread_list_addr, &thread_list, - sizeof(thread_list)); + + ret = thr_pread_ptr(ta, ta->thread_list_addr, &pt); if (ret != 0) - return (P2T(ret)); - pt = (psaddr_t)thread_list.tqh_first; + return (TD_ERR); if (ta->map[id].type == PT_LWP) { /* * if we are referencing a lwp, make sure it was not already * mapped to user thread. */ while (pt != 0) { - ret = ps_pread(ta->ph, pt + ta->thread_off_tcb, - &tcb_addr, sizeof(tcb_addr)); + ret = thr_pread_ptr(ta, pt + ta->thread_off_tcb, + &tcb_addr); if (ret != 0) - return (P2T(ret)); - ret = ps_pread(ta->ph, - tcb_addr + ta->thread_off_tmbx + - offsetof(struct kse_thr_mailbox, tm_lwp), - &lwp, sizeof(lwp)); + return (TD_ERR); + ret = thr_pread_int(ta, tcb_addr + ta->thread_off_tmbx + + offsetof(struct kse_thr_mailbox, tm_lwp), &lwp); if (ret != 0) - return (P2T(ret)); + return (TD_ERR); /* * If the lwp was already mapped to userland thread, * we shouldn't reference it directly in future. @@ -259,11 +255,9 @@ return (TD_NOTHR); } /* get next thread */ - ret = ps_pread(ta->ph, - pt + ta->thread_off_next, - &pt, sizeof(pt)); + ret = thr_pread_ptr(ta, pt + ta->thread_off_next, &pt); if (ret != 0) - return (P2T(ret)); + return (TD_ERR); } /* check lwp */ ret = ps_lgetregs(ta->ph, ta->map[id].lwp, gregs); @@ -274,17 +268,14 @@ } } else { while (pt != 0 && ta->map[id].thr != pt) { - ret = ps_pread(ta->ph, - pt + ta->thread_off_tcb, - &tcb_addr, sizeof(tcb_addr)); + ret = thr_pread_ptr(ta, pt + ta->thread_off_tcb, + &tcb_addr); if (ret != 0) - return (P2T(ret)); + return (TD_ERR); /* get next thread */ - ret = ps_pread(ta->ph, - pt + ta->thread_off_next, - &pt, sizeof(pt)); + ret = thr_pread_ptr(ta, pt + ta->thread_off_next, &pt); if (ret != 0) - return (P2T(ret)); + return (TD_ERR); } if (pt == 0) { @@ -302,29 +293,24 @@ static td_err_e pt_ta_map_lwp2thr(const td_thragent_t *ta, lwpid_t lwp, td_thrhandle_t *th) { - TAILQ_HEAD(, pthread) thread_list; - psaddr_t pt, ptr; - lwpid_t tmp_lwp; + psaddr_t pt, tcb_addr; + lwpid_t lwp1; int ret; - + TDBG_FUNC(); - ret = ps_pread(ta->ph, ta->thread_list_addr, &thread_list, - sizeof(thread_list)); + ret = thr_pread_ptr(ta, ta->thread_list_addr, &pt); if (ret != 0) - return (P2T(ret)); - pt = (psaddr_t)thread_list.tqh_first; + return (TD_ERR); while (pt != 0) { - ret = ps_pread(ta->ph, pt + ta->thread_off_tcb, - &ptr, sizeof(ptr)); + ret = thr_pread_ptr(ta, pt + ta->thread_off_tcb, &tcb_addr); if (ret != 0) - return (P2T(ret)); - ptr += ta->thread_off_tmbx + - offsetof(struct kse_thr_mailbox, tm_lwp); - ret = ps_pread(ta->ph, ptr, &tmp_lwp, sizeof(lwpid_t)); + return (TD_ERR); + ret = thr_pread_int(ta, tcb_addr + ta->thread_off_tmbx + + offsetof(struct kse_thr_mailbox, tm_lwp), &lwp1); if (ret != 0) - return (P2T(ret)); - if (tmp_lwp == lwp) { + return (TD_ERR); + if (lwp1 == lwp) { th->th_ta = ta; th->th_tid = pt_map_thread(ta, pt, PT_USER); if (th->th_tid == -1) @@ -335,11 +321,9 @@ } /* get next thread */ - ret = ps_pread(ta->ph, - pt + ta->thread_off_next, - &pt, sizeof(pt)); + ret = thr_pread_ptr(ta, pt + ta->thread_off_next, &pt); if (ret != 0) - return (P2T(ret)); + return (TD_ERR); } return (TD_NOTHR); @@ -350,11 +334,10 @@ void *cbdata_p, td_thr_state_e state __unused, int ti_pri __unused, sigset_t *ti_sigmask_p __unused, unsigned int ti_user_flags __unused) { - TAILQ_HEAD(, pthread) thread_list; td_thrhandle_t th; psaddr_t pt; ps_err_e pserr; - int activated; + int activated, ret; TDBG_FUNC(); @@ -365,11 +348,9 @@ if (!activated) return (TD_OK); - pserr = ps_pread(ta->ph, ta->thread_list_addr, &thread_list, - sizeof(thread_list)); - if (pserr != 0) - return (P2T(pserr)); - pt = (psaddr_t)thread_list.tqh_first; + ret = thr_pread_ptr(ta, ta->thread_list_addr, &pt); + if (ret != 0) + return (TD_ERR); while (pt != 0) { th.th_ta = ta; th.th_tid = pt_map_thread(ta, pt, PT_USER); @@ -380,11 +361,9 @@ if ((*callback)(&th, cbdata_p)) return (TD_DBERR); /* get next thread */ - pserr = ps_pread(ta->ph, - pt + ta->thread_off_next, &pt, - sizeof(pt)); - if (pserr != PS_OK) - return (P2T(pserr)); + ret = thr_pread_ptr(ta, pt + ta->thread_off_next, &pt); + if (ret != 0) + return (TD_ERR); } return (TD_OK); } ==== //depot/projects/hammer/lib/libthread_db/libthr_db.c#11 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/lib/libthread_db/libthr_db.c,v 1.15 2008/08/06 03:14:18 marcel Exp $"); +__FBSDID("$FreeBSD: src/lib/libthread_db/libthr_db.c,v 1.16 2008/09/14 16:52:42 marcel Exp $"); #include <proc_service.h> #include <stddef.h> @@ -201,34 +201,28 @@ static td_err_e pt_ta_map_id2thr(const td_thragent_t *ta, thread_t id, td_thrhandle_t *th) { - TAILQ_HEAD(, pthread) thread_list; psaddr_t pt; - long lwp; + int32_t lwp; int ret; TDBG_FUNC(); if (id == 0) return (TD_NOTHR); - ret = ps_pread(ta->ph, ta->thread_list_addr, &thread_list, - sizeof(thread_list)); + ret = thr_pread_ptr(ta, ta->thread_list_addr, &pt); if (ret != 0) - return (P2T(ret)); + return (TD_ERR); /* Iterate through thread list to find pthread */ - pt = (psaddr_t)thread_list.tqh_first; while (pt != 0) { - ret = ps_pread(ta->ph, pt + ta->thread_off_tid, - &lwp, sizeof(lwp)); + ret = thr_pread_int(ta, pt + ta->thread_off_tid, &lwp); if (ret != 0) - return (P2T(ret)); + return (TD_ERR); if (lwp == id) break; /* get next thread */ - ret = ps_pread(ta->ph, - pt + ta->thread_off_next, - &pt, sizeof(pt)); + ret = thr_pread_ptr(ta, pt + ta->thread_off_next, &pt); if (ret != 0) - return (P2T(ret)); + return (TD_ERR); } if (pt == 0) return (TD_NOTHR); @@ -249,24 +243,20 @@ void *cbdata_p, td_thr_state_e state __unused, int ti_pri __unused, sigset_t *ti_sigmask_p __unused, unsigned int ti_user_flags __unused) { - TAILQ_HEAD(, pthread) thread_list; td_thrhandle_t th; psaddr_t pt; - long lwp; + int32_t lwp; int ret; TDBG_FUNC(); - ret = ps_pread(ta->ph, ta->thread_list_addr, &thread_list, - sizeof(thread_list)); + ret = thr_pread_ptr(ta, ta->thread_list_addr, &pt); if (ret != 0) - return (P2T(ret)); - pt = (psaddr_t)thread_list.tqh_first; + return (TD_ERR); while (pt != 0) { - ret = ps_pread(ta->ph, pt + ta->thread_off_tid, &lwp, - sizeof(lwp)); + ret = thr_pread_int(ta, pt + ta->thread_off_tid, &lwp); if (ret != 0) - return (P2T(ret)); + return (TD_ERR); if (lwp != 0 && lwp != TERMINATED) { th.th_ta = ta; th.th_tid = (thread_t)lwp; @@ -275,10 +265,9 @@ return (TD_DBERR); } /* get next thread */ - ret = ps_pread(ta->ph, pt + ta->thread_off_next, &pt, - sizeof(pt)); + ret = thr_pread_ptr(ta, pt + ta->thread_off_next, &pt); if (ret != 0) - return (P2T(ret)); + return (TD_ERR); } return (TD_OK); } @@ -377,24 +366,23 @@ { static td_thrhandle_t handle; - psaddr_t pt, pt_temp; + psaddr_t pt; td_thr_events_e tmp; - long lwp; + int32_t lwp; int ret; TDBG_FUNC(); - ret = ps_pread(ta->ph, ta->thread_last_event_addr, &pt, sizeof(pt)); + ret = thr_pread_ptr(ta, ta->thread_last_event_addr, &pt); if (ret != 0) - return (P2T(ret)); + return (TD_ERR); if (pt == 0) return (TD_NOMSG); /* * Take the event pointer, at the time, libthr only reports event * once a time, so it is not a link list. */ - pt_temp = 0; - ps_pwrite(ta->ph, ta->thread_last_event_addr, &pt_temp, sizeof(pt_temp)); + thr_pwrite_ptr(ta, ta->thread_last_event_addr, 0); /* Read event info */ ret = ps_pread(ta->ph, pt + ta->thread_off_event_buf, msg, sizeof(*msg)); @@ -406,14 +394,14 @@ tmp = 0; ps_pwrite(ta->ph, pt + ta->thread_off_event_buf, &tmp, sizeof(tmp)); /* Convert event */ - pt = (psaddr_t)msg->th_p; - ret = ps_pread(ta->ph, pt + ta->thread_off_tid, &lwp, sizeof(lwp)); + pt = msg->th_p; + ret = thr_pread_int(ta, pt + ta->thread_off_tid, &lwp); if (ret != 0) - return (P2T(ret)); + return (TD_ERR); handle.th_ta = ta; handle.th_tid = lwp; handle.th_thread = pt; - msg->th_p = &handle; + msg->th_p = (uintptr_t)&handle; return (0); } @@ -478,14 +466,13 @@ ret = pt_validate(th); if (ret) return (ret); - ret = ps_pread(ta->ph, th->th_thread + ta->thread_off_state, - &state, sizeof(state)); + ret = thr_pread_int(ta, th->th_thread + ta->thread_off_state, &state); if (ret != 0) - return (P2T(ret)); - ret = ps_pread(ta->ph, th->th_thread + ta->thread_off_report_events, - &info->ti_traceme, sizeof(int)); + return (TD_ERR); + ret = thr_pread_int(ta, th->th_thread + ta->thread_off_report_events, + &info->ti_traceme); if (ret != 0) - return (P2T(ret)); + return (TD_ERR); ret = ps_pread(ta->ph, th->th_thread + ta->thread_off_event_mask, &info->ti_events, sizeof(td_thr_events_t)); if (ret != 0) @@ -662,15 +649,15 @@ static td_thrhandle_t handle; const td_thragent_t *ta = th->th_ta; psaddr_t pt, pt_temp; - long lwp; + int32_t lwp; int ret; td_thr_events_e tmp; TDBG_FUNC(); pt = th->th_thread; - ret = ps_pread(ta->ph, ta->thread_last_event_addr, &pt_temp, sizeof(pt_temp)); + ret = thr_pread_ptr(ta, ta->thread_last_event_addr, &pt_temp); if (ret != 0) - return (P2T(ret)); + return (TD_ERR); /* Get event */ ret = ps_pread(ta->ph, pt + ta->thread_off_event_buf, msg, sizeof(*msg)); if (ret != 0) @@ -681,22 +668,21 @@ * Take the event pointer, at the time, libthr only reports event * once a time, so it is not a link list. */ - if (pt == pt_temp) { - pt_temp = 0; - ps_pwrite(ta->ph, ta->thread_last_event_addr, &pt_temp, sizeof(pt_temp)); - } + if (pt == pt_temp) + thr_pwrite_ptr(ta, ta->thread_last_event_addr, 0); + /* Clear event */ tmp = 0; ps_pwrite(ta->ph, pt + ta->thread_off_event_buf, &tmp, sizeof(tmp)); /* Convert event */ - pt = (psaddr_t)msg->th_p; - ret = ps_pread(ta->ph, pt + ta->thread_off_tid, &lwp, sizeof(lwp)); + pt = msg->th_p; + ret = thr_pread_int(ta, pt + ta->thread_off_tid, &lwp); if (ret != 0) - return (P2T(ret)); + return (TD_ERR); handle.th_ta = ta; handle.th_tid = lwp; handle.th_thread = pt; - msg->th_p = &handle; + msg->th_p = (uintptr_t)&handle; return (0); } ==== //depot/projects/hammer/lib/libthread_db/thread_db.c#7 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/lib/libthread_db/thread_db.c,v 1.8 2008/07/31 20:25:52 marcel Exp $"); +__FBSDID("$FreeBSD: src/lib/libthread_db/thread_db.c,v 1.9 2008/09/14 16:52:42 marcel Exp $"); #include <proc_service.h> #include <stddef.h> @@ -324,7 +324,7 @@ } int -thr_pread_int(struct td_thragent *ta, psaddr_t addr, uint32_t *val) +thr_pread_int(const struct td_thragent *ta, psaddr_t addr, uint32_t *val) { uint64_t tmp; int error; @@ -337,17 +337,23 @@ } int -thr_pread_long(struct td_thragent *ta, psaddr_t addr, uint64_t *val) +thr_pread_long(const struct td_thragent *ta, psaddr_t addr, uint64_t *val) { return (thr_pread(ta->ph, addr, val, sizeof(long), BYTE_ORDER)); } int -thr_pread_ptr(struct td_thragent *ta, psaddr_t addr, uint64_t *val) +thr_pread_ptr(const struct td_thragent *ta, psaddr_t addr, psaddr_t *val) { + uint64_t tmp; + int error; + + error = thr_pread(ta->ph, addr, &tmp, sizeof(void *), BYTE_ORDER); + if (!error) + *val = tmp; - return (thr_pread(ta->ph, addr, val, sizeof(void *), BYTE_ORDER)); + return (error); } static int @@ -406,21 +412,21 @@ } int -thr_pwrite_int(struct td_thragent *ta, psaddr_t addr, uint32_t val) +thr_pwrite_int(const struct td_thragent *ta, psaddr_t addr, uint32_t val) { return (thr_pwrite(ta->ph, addr, val, sizeof(int), BYTE_ORDER)); } int -thr_pwrite_long(struct td_thragent *ta, psaddr_t addr, uint64_t val) +thr_pwrite_long(const struct td_thragent *ta, psaddr_t addr, uint64_t val) { return (thr_pwrite(ta->ph, addr, val, sizeof(long), BYTE_ORDER)); } int -thr_pwrite_ptr(struct td_thragent *ta, psaddr_t addr, uint64_t val) +thr_pwrite_ptr(const struct td_thragent *ta, psaddr_t addr, psaddr_t val) { return (thr_pwrite(ta->ph, addr, val, sizeof(void *), BYTE_ORDER)); ==== //depot/projects/hammer/lib/libthread_db/thread_db.h#7 (text+ko) ==== @@ -24,7 +24,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/libthread_db/thread_db.h,v 1.8 2008/08/13 00:03:35 marcel Exp $ + * $FreeBSD: src/lib/libthread_db/thread_db.h,v 1.9 2008/09/14 16:52:42 marcel Exp $ */ #ifndef _THREAD_DB_H_ @@ -95,7 +95,7 @@ typedef struct { td_thr_events_e event; >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809150933.m8F9XVqQ026938>