PERFORCE change 180544 for review
Edward Tomasz Napierala
trasz at FreeBSD.org
Tue Jul 6 17:35:01 UTC 2010
http://p4web.freebsd.org/@@180544?ac=10
Change 180544 by trasz at trasz_victim on 2010/07/06 17:34:45
IFC.
Affected files ...
.. //depot/projects/soc2009/trasz_limits/ObsoleteFiles.inc#20 integrate
.. //depot/projects/soc2009/trasz_limits/bin/sh/expand.c#9 integrate
.. //depot/projects/soc2009/trasz_limits/bin/sh/jobs.c#6 integrate
.. //depot/projects/soc2009/trasz_limits/bin/sh/jobs.h#2 integrate
.. //depot/projects/soc2009/trasz_limits/bin/sh/parser.c#12 integrate
.. //depot/projects/soc2009/trasz_limits/bin/sh/sh.1#12 integrate
.. //depot/projects/soc2009/trasz_limits/gnu/usr.bin/gdb/libgdb/fbsd-threads.c#2 integrate
.. //depot/projects/soc2009/trasz_limits/include/arpa/inet.h#3 integrate
.. //depot/projects/soc2009/trasz_limits/lib/libc/gmon/gmon.c#3 integrate
.. //depot/projects/soc2009/trasz_limits/lib/libc/net/sctp_recvmsg.3#5 integrate
.. //depot/projects/soc2009/trasz_limits/lib/libc/net/sctp_send.3#5 integrate
.. //depot/projects/soc2009/trasz_limits/lib/libc/net/sctp_sys_calls.c#3 integrate
.. //depot/projects/soc2009/trasz_limits/lib/libc/posix1e/acl_from_text.c#4 integrate
.. //depot/projects/soc2009/trasz_limits/lib/libfetch/http.c#3 integrate
.. //depot/projects/soc2009/trasz_limits/lib/libthread_db/Symbol.map#2 integrate
.. //depot/projects/soc2009/trasz_limits/lib/libthread_db/libpthread_db.c#2 integrate
.. //depot/projects/soc2009/trasz_limits/lib/libthread_db/libthr_db.c#3 integrate
.. //depot/projects/soc2009/trasz_limits/lib/libthread_db/thread_db.c#2 integrate
.. //depot/projects/soc2009/trasz_limits/lib/libthread_db/thread_db.h#3 integrate
.. //depot/projects/soc2009/trasz_limits/lib/libthread_db/thread_db_int.h#2 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/bsdlabel/bsdlabel.c#4 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/camcontrol/camcontrol.8#7 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/fsck_ffs/suj.c#3 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/geom/class/multipath/geom_multipath.c#5 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/mca/mca.c#3 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/reboot/boot_i386.8#2 integrate
.. //depot/projects/soc2009/trasz_limits/share/man/man4/Makefile#20 integrate
.. //depot/projects/soc2009/trasz_limits/share/man/man4/ata.4#5 integrate
.. //depot/projects/soc2009/trasz_limits/share/man/man4/bwi.4#2 integrate
.. //depot/projects/soc2009/trasz_limits/share/man/man4/siftr.4#1 branch
.. //depot/projects/soc2009/trasz_limits/share/man/man9/Makefile#14 integrate
.. //depot/projects/soc2009/trasz_limits/share/man/man9/alloc_unr.9#3 integrate
.. //depot/projects/soc2009/trasz_limits/share/man/man9/vm_page_alloc.9#3 integrate
.. //depot/projects/soc2009/trasz_limits/share/misc/committers-doc.dot#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/intr_machdep.c#6 integrate
.. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/machdep.c#17 integrate
.. //depot/projects/soc2009/trasz_limits/sys/amd64/ia32/ia32_signal.c#7 integrate
.. //depot/projects/soc2009/trasz_limits/sys/amd64/include/segments.h#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/arm/arm/machdep.c#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/cddl/contrib/opensolaris/uts/common/sys/fasttrap_impl.h#1 branch
.. //depot/projects/soc2009/trasz_limits/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c#1 branch
.. //depot/projects/soc2009/trasz_limits/sys/cddl/contrib/opensolaris/uts/sparc/dtrace/fasttrap_isa.c#1 branch
.. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_misc.c#10 integrate
.. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_signal.h#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/conf/files#30 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ata/ata-all.c#12 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ata/ata-all.h#8 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ata/ata-card.c#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ata/ata-disk.c#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/bge/if_bge.c#15 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/e1000/e1000_82575.h#6 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/e1000/e1000_api.c#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/e1000/e1000_api.h#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/e1000/e1000_hw.h#6 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/e1000/e1000_mbx.c#1 branch
.. //depot/projects/soc2009/trasz_limits/sys/dev/e1000/e1000_mbx.h#1 branch
.. //depot/projects/soc2009/trasz_limits/sys/dev/e1000/e1000_regs.h#6 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/e1000/e1000_vf.c#1 branch
.. //depot/projects/soc2009/trasz_limits/sys/dev/e1000/e1000_vf.h#1 branch
.. //depot/projects/soc2009/trasz_limits/sys/dev/e1000/if_igb.c#17 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/e1000/if_igb.h#7 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ixgbe/ixgbe.c#12 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ixgbe/ixgbe.h#6 integrate
.. //depot/projects/soc2009/trasz_limits/sys/i386/i386/intr_machdep.c#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/i386/i386/machdep.c#15 integrate
.. //depot/projects/soc2009/trasz_limits/sys/ia64/ia64/machdep.c#11 integrate
.. //depot/projects/soc2009/trasz_limits/sys/ia64/ia64/mca.c#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/ia64/ia64/mp_machdep.c#11 integrate
.. //depot/projects/soc2009/trasz_limits/sys/ia64/include/asm.h#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/ia64/include/mca.h#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/ia64/include/profile.h#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_context.c#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_exec.c#15 integrate
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_sig.c#12 integrate
.. //depot/projects/soc2009/trasz_limits/sys/kern/subr_sleepqueue.c#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/kern/subr_trap.c#7 integrate
.. //depot/projects/soc2009/trasz_limits/sys/kern/subr_unit.c#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/kern/sys_process.c#10 integrate
.. //depot/projects/soc2009/trasz_limits/sys/kern/tty.c#11 integrate
.. //depot/projects/soc2009/trasz_limits/sys/kern/vfs_bio.c#11 integrate
.. //depot/projects/soc2009/trasz_limits/sys/mips/include/pte.h#6 integrate
.. //depot/projects/soc2009/trasz_limits/sys/mips/mips/pm_machdep.c#7 integrate
.. //depot/projects/soc2009/trasz_limits/sys/mips/mips/tlb.c#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/mips/rmi/board.c#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/mips/rmi/board.h#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/modules/Makefile#20 integrate
.. //depot/projects/soc2009/trasz_limits/sys/modules/em/Makefile#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/modules/igb/Makefile#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/modules/siftr/Makefile#1 branch
.. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_crypto.h#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_crypto_ccmp.c#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_crypto_tkip.c#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netgraph/ng_ipfw.c#7 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netgraph/ng_pipe.c#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netgraph/ng_source.c#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netgraph/ng_source.h#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_pcb.c#11 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/sctputil.c#13 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/siftr.c#1 branch
.. //depot/projects/soc2009/trasz_limits/sys/pc98/pc98/machdep.c#11 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/aim/clock.c#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/aim/machdep.c#9 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/booke/clock.c#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/booke/machdep.c#8 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/include/asm.h#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/include/intr.h#3 delete
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/mpc85xx/atpic.c#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/mpc85xx/opic.c#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/powermac/cuda.c#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/powermac/hrowpic.c#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/powermac/openpic_macio.c#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/powermac/pmu.c#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/powerpc/intr_machdep.c#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/powerpc/openpic.c#6 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/psim/openpic_iobus.c#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/sparc64/include/smp.h#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/sparc64/sparc64/machdep.c#10 integrate
.. //depot/projects/soc2009/trasz_limits/sys/sun4v/sun4v/machdep.c#6 integrate
.. //depot/projects/soc2009/trasz_limits/sys/sys/proc.h#22 integrate
.. //depot/projects/soc2009/trasz_limits/sys/sys/ptrace.h#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/sys/signalvar.h#6 integrate
.. //depot/projects/soc2009/trasz_limits/sys/sys/syscallsubr.h#8 integrate
.. //depot/projects/soc2009/trasz_limits/sys/sys/systm.h#10 integrate
.. //depot/projects/soc2009/trasz_limits/sys/ufs/ffs/ffs_alloc.c#6 integrate
.. //depot/projects/soc2009/trasz_limits/sys/ufs/ffs/ffs_inode.c#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/ufs/ffs/ffs_softdep.c#8 integrate
.. //depot/projects/soc2009/trasz_limits/sys/ufs/ffs/ffs_vnops.c#8 integrate
.. //depot/projects/soc2009/trasz_limits/sys/ufs/ffs/softdep.h#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/ufs/ufs/inode.h#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/ufs/ufs/ufs_inode.c#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/ufs/ufs/ufs_lookup.c#7 integrate
.. //depot/projects/soc2009/trasz_limits/sys/ufs/ufs/ufs_vnops.c#9 integrate
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_contig.c#9 integrate
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_fault.c#8 integrate
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_map.c#16 integrate
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_object.c#10 integrate
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_page.c#13 integrate
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_page.h#8 integrate
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_pageout.c#10 integrate
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_pager.h#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/x86/isa/atrtc.c#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/x86/isa/clock.c#5 integrate
.. //depot/projects/soc2009/trasz_limits/tools/regression/bin/sh/expansion/arith2.0#3 integrate
.. //depot/projects/soc2009/trasz_limits/usr.sbin/wpa/wpa_supplicant/driver_freebsd.c#3 integrate
Differences ...
==== //depot/projects/soc2009/trasz_limits/ObsoleteFiles.inc#20 (text+ko) ====
@@ -1,5 +1,5 @@
#
-# $FreeBSD: src/ObsoleteFiles.inc,v 1.236 2010/05/14 20:40:37 delphij Exp $
+# $FreeBSD: src/ObsoleteFiles.inc,v 1.237 2010/07/02 02:20:25 marcel 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,10 @@
# The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
#
+# 20100701: [powerpc] removed <machine/intr.h>
+.if ${TARGET_ARCH} == "powerpc"
+OLD_FILES+=usr/include/machine/intr.h
+.endif
# 20100514: library version bump for versioned symbols for liblzma
OLD_LIBS+=usr/lib/liblzma.so.0
.if ${TARGET_ARCH} == "amd64"
==== //depot/projects/soc2009/trasz_limits/bin/sh/expand.c#9 (text+ko) ====
@@ -38,7 +38,7 @@
#endif
#endif /* not lint */
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/bin/sh/expand.c,v 1.64 2010/05/11 23:19:28 jilles Exp $");
+__FBSDID("$FreeBSD: src/bin/sh/expand.c,v 1.65 2010/06/29 22:37:45 jilles Exp $");
#include <sys/types.h>
#include <sys/time.h>
@@ -818,7 +818,7 @@
{
if (*name == '!')
- return backgndpid != -1;
+ return backgndpidset();
else if (*name == '@' || *name == '*') {
if (*shellparam.p == NULL)
return 0;
@@ -891,7 +891,7 @@
num = shellparam.nparam;
goto numvar;
case '!':
- num = backgndpid;
+ num = backgndpidval();
numvar:
expdest = cvtnum(num, expdest);
break;
==== //depot/projects/soc2009/trasz_limits/bin/sh/jobs.c#6 (text+ko) ====
@@ -36,7 +36,7 @@
#endif
#endif /* not lint */
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/bin/sh/jobs.c,v 1.77 2010/06/06 22:27:32 jilles Exp $");
+__FBSDID("$FreeBSD: src/bin/sh/jobs.c,v 1.78 2010/06/29 22:37:45 jilles Exp $");
#include <fcntl.h>
#include <signal.h>
@@ -75,6 +75,7 @@
STATIC struct job *jobtab; /* array of jobs */
STATIC int njobs; /* size of array */
MKINIT pid_t backgndpid = -1; /* pid of last background process */
+MKINIT struct job *bgjob = NULL; /* last background process */
#if JOBS
STATIC struct job *jobmru; /* most recently used job list */
STATIC pid_t initialpgrp; /* pgrp of shell on invocation */
@@ -183,6 +184,7 @@
SHELLPROC {
backgndpid = -1;
+ bgjob = NULL;
#if JOBS
jobctl = 0;
#endif
@@ -413,7 +415,11 @@
continue;
showjob(jp, 0, mode);
jp->changed = 0;
- if (jp->state == JOBDONE) {
+ /* Hack: discard jobs for which $! has not been referenced
+ * in interactive mode when they terminate.
+ */
+ if (jp->state == JOBDONE && !jp->remembered &&
+ (iflag || jp != bgjob)) {
freejob(jp);
}
}
@@ -431,6 +437,8 @@
int i;
INTOFF;
+ if (bgjob == jp)
+ bgjob = NULL;
for (i = jp->nprocs, ps = jp->ps ; --i >= 0 ; ps++) {
if (ps->cmd != nullstr)
ckfree(ps->cmd);
@@ -477,12 +485,27 @@
#endif
else
retval = WTERMSIG(status) + 128;
- if (! iflag)
+ if (! iflag || ! job->changed)
freejob(job);
+ else {
+ job->remembered = 0;
+ if (job == bgjob)
+ bgjob = NULL;
+ }
in_waitcmd--;
return retval;
}
} else {
+ for (jp = jobtab ; jp < jobtab + njobs; jp++)
+ if (jp->used && jp->state == JOBDONE) {
+ if (! iflag || ! jp->changed)
+ freejob(jp);
+ else {
+ jp->remembered = 0;
+ if (jp == bgjob)
+ bgjob = NULL;
+ }
+ }
for (jp = jobtab ; ; jp++) {
if (jp >= jobtab + njobs) { /* no running procs */
in_waitcmd--;
@@ -623,6 +646,8 @@
jp[i].next = &jp[jp[i].next -
jobtab];
#endif
+ if (bgjob != NULL)
+ bgjob = &jp[bgjob - jobtab];
/* Relocate `ps' pointers */
for (i = 0; i < njobs; i++)
if (jp[i].ps == &jobtab[i].ps0)
@@ -644,6 +669,7 @@
jp->changed = 0;
jp->nprocs = 0;
jp->foreground = 0;
+ jp->remembered = 0;
#if JOBS
jp->jobctl = jobctl;
jp->next = NULL;
@@ -821,8 +847,13 @@
pgrp = jp->ps[0].pid;
setpgid(pid, pgrp);
}
- if (mode == FORK_BG)
+ if (mode == FORK_BG) {
+ if (bgjob != NULL && bgjob->state == JOBDONE &&
+ !bgjob->remembered && !iflag)
+ freejob(bgjob);
backgndpid = pid; /* set $! */
+ bgjob = jp;
+ }
if (jp) {
struct procstat *ps = &jp->ps[jp->nprocs++];
ps->pid = pid;
@@ -975,10 +1006,15 @@
if (jp->state != state) {
TRACE(("Job %d: changing state from %d to %d\n", jp - jobtab + 1, jp->state, state));
jp->state = state;
+ if (jp != job) {
+ if (done && !jp->remembered &&
+ !iflag && jp != bgjob)
+ freejob(jp);
#if JOBS
- if (done)
- deljob(jp);
+ else if (done)
+ deljob(jp);
#endif
+ }
}
}
}
@@ -1074,6 +1110,21 @@
}
+int
+backgndpidset(void)
+{
+ return backgndpid != -1;
+}
+
+
+pid_t
+backgndpidval(void)
+{
+ if (bgjob != NULL)
+ bgjob->remembered = 1;
+ return backgndpid;
+}
+
/*
* Return a string identifying a command (to be printed by the
* jobs command.
==== //depot/projects/soc2009/trasz_limits/bin/sh/jobs.h#2 (text+ko) ====
@@ -30,7 +30,7 @@
* SUCH DAMAGE.
*
* @(#)jobs.h 8.2 (Berkeley) 5/4/95
- * $FreeBSD: src/bin/sh/jobs.h,v 1.19 2006/10/07 16:51:16 stefanf Exp $
+ * $FreeBSD: src/bin/sh/jobs.h,v 1.20 2010/06/29 22:37:45 jilles Exp $
*/
/* Mode argument to forkshell. Don't change FORK_FG or FORK_BG. */
@@ -68,6 +68,7 @@
char used; /* true if this entry is in used */
char changed; /* true if status has changed */
char foreground; /* true if running in the foreground */
+ char remembered; /* true if $! referenced */
#if JOBS
char jobctl; /* job running under job control */
struct job *next; /* job used after this one */
@@ -81,7 +82,6 @@
SHOWJOBS_PGIDS /* PID of the group leader only */
};
-extern pid_t backgndpid; /* pid of last background process */
extern int job_warning; /* user was warned about stopped jobs */
extern int in_waitcmd; /* are we in waitcmd()? */
extern int in_dowait; /* are we in dowait()? */
@@ -98,6 +98,8 @@
pid_t forkshell(struct job *, union node *, int);
int waitforjob(struct job *, int *);
int stoppedjobs(void);
+int backgndpidset(void);
+pid_t backgndpidval(void);
char *commandtext(union node *);
#if ! JOBS
==== //depot/projects/soc2009/trasz_limits/bin/sh/parser.c#12 (text+ko) ====
@@ -36,7 +36,7 @@
#endif
#endif /* not lint */
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/bin/sh/parser.c,v 1.81 2010/06/19 10:33:04 jilles Exp $");
+__FBSDID("$FreeBSD: src/bin/sh/parser.c,v 1.82 2010/07/02 22:17:13 jilles Exp $");
#include <stdlib.h>
#include <unistd.h>
@@ -1734,7 +1734,8 @@
{
static char ps[PROMPTLEN];
char *fmt;
- int i, j, trim;
+ const char *pwd;
+ int i, trim;
static char internal_error[] = "<internal prompt error>";
/*
@@ -1785,17 +1786,15 @@
*/
case 'W':
case 'w':
- ps[i] = '\0';
- getcwd(&ps[i], PROMPTLEN - i);
- if (*fmt == 'W' && ps[i + 1] != '\0') {
- /* Final path component only. */
- trim = 1;
- for (j = i; ps[j] != '\0'; j++)
- if (ps[j] == '/')
- trim = j + 1;
- memmove(&ps[i], &ps[trim],
- j - trim + 1);
- }
+ pwd = lookupvar("PWD");
+ if (pwd == NULL)
+ pwd = "?";
+ if (*fmt == 'W' &&
+ *pwd == '/' && pwd[1] != '\0')
+ strlcpy(&ps[i], strrchr(pwd, '/') + 1,
+ PROMPTLEN - i);
+ else
+ strlcpy(&ps[i], pwd, PROMPTLEN - i);
/* Skip to end of path. */
while (ps[i + 1] != '\0')
i++;
==== //depot/projects/soc2009/trasz_limits/bin/sh/sh.1#12 (text+ko) ====
@@ -30,9 +30,9 @@
.\" SUCH DAMAGE.
.\"
.\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95
-.\" $FreeBSD: src/bin/sh/sh.1,v 1.141 2010/05/24 15:12:12 jilles Exp $
+.\" $FreeBSD: src/bin/sh/sh.1,v 1.142 2010/06/29 22:37:45 jilles Exp $
.\"
-.Dd May 24, 2010
+.Dd June 29, 2010
.Dt SH 1
.Os
.Sh NAME
@@ -1106,6 +1106,10 @@
For a
pipeline, the process ID is that of the last command in the
pipeline.
+If this parameter is referenced, the shell will remember
+the process ID and its exit status until the
+.Ic wait
+built-in command reports completion of the process.
.It Li $0
(zero) Expands to the name of the shell or shell script.
.El
==== //depot/projects/soc2009/trasz_limits/gnu/usr.bin/gdb/libgdb/fbsd-threads.c#2 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/gnu/usr.bin/gdb/libgdb/fbsd-threads.c,v 1.18 2008/09/14 16:52:42 marcel Exp $ */
+/* $FreeBSD: src/gnu/usr.bin/gdb/libgdb/fbsd-threads.c,v 1.19 2010/07/04 12:09:30 kib Exp $ */
/* FreeBSD libthread_db assisted debugging support.
Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
@@ -1299,6 +1299,7 @@
td_thrhandle_t th;
td_thrinfo_t ti;
td_err_e err;
+ const char *code;
if (!fbsd_thread_active || !IS_THREAD(inferior_ptid))
return;
@@ -1315,6 +1316,42 @@
fbsd_print_sigset(&ti.ti_sigmask);
printf_filtered("signal pending:\n");
fbsd_print_sigset(&ti.ti_pending);
+ if (ti.ti_siginfo.si_signo != 0) {
+ printf_filtered("si_signo %d si_errno %d", ti.ti_siginfo.si_signo,
+ ti.ti_siginfo.si_errno);
+ if (ti.ti_siginfo.si_errno != 0)
+ printf_filtered(" (%s)", strerror(ti.ti_siginfo.si_errno));
+ printf_filtered("\n");
+ switch (ti.ti_siginfo.si_code) {
+ case SI_NOINFO:
+ code = "NOINFO";
+ break;
+ case SI_USER:
+ code = "USER";
+ break;
+ case SI_QUEUE:
+ code = "QUEUE";
+ break;
+ case SI_TIMER:
+ code = "TIMER";
+ break;
+ case SI_ASYNCIO:
+ code = "ASYNCIO";
+ break;
+ case SI_MESGQ:
+ code = "MESGQ";
+ break;
+ case SI_KERNEL:
+ code = "KERNEL";
+ break;
+ default:
+ code = "UNKNOWN";
+ break;
+ }
+ printf_filtered("si_code %s si_pid %d si_uid %d si_status %x si_addr %p\n",
+ code, ti.ti_siginfo.si_pid, ti.ti_siginfo.si_uid, ti.ti_siginfo.si_status,
+ ti.ti_siginfo.si_addr);
+ }
}
static int
==== //depot/projects/soc2009/trasz_limits/include/arpa/inet.h#3 (text+ko) ====
@@ -52,13 +52,13 @@
/*%
* @(#)inet.h 8.1 (Berkeley) 6/2/93
* $Id: inet.h,v 1.2.18.1 2005/04/27 05:00:50 sra Exp $
- * $FreeBSD: src/include/arpa/inet.h,v 1.32 2010/02/16 19:46:46 imp Exp $
+ * $FreeBSD: src/include/arpa/inet.h,v 1.33 2010/07/06 03:48:46 maxim Exp $
*/
#ifndef _ARPA_INET_H_
#define _ARPA_INET_H_
-/* External definitions for functions in inet(3), addr2ascii(3) */
+/* External definitions for functions in inet(3). */
#include <sys/cdefs.h>
#include <sys/_types.h>
==== //depot/projects/soc2009/trasz_limits/lib/libc/gmon/gmon.c#3 (text+ko) ====
@@ -31,7 +31,7 @@
static char sccsid[] = "@(#)gmon.c 8.1 (Berkeley) 6/4/93";
#endif
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/gmon/gmon.c,v 1.23 2009/12/05 19:31:38 ed Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/gmon/gmon.c,v 1.25 2010/07/01 00:48:00 marcel Exp $");
#include "namespace.h"
#include <sys/param.h>
@@ -41,6 +41,7 @@
#include <err.h>
#include <fcntl.h>
+#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -58,8 +59,8 @@
struct gmonparam _gmonparam = { GMON_PROF_OFF };
static int s_scale;
-/* see profil(2) where this is describe (incorrectly) */
-#define SCALE_1_TO_1 0x10000L
+/* See profil(2) where this is described (incorrectly). */
+#define SCALE_SHIFT 16
#define ERR(s) _write(2, s, sizeof(s))
@@ -110,24 +111,8 @@
p->tos[0].link = 0;
o = p->highpc - p->lowpc;
- if (p->kcountsize < o) {
-#ifndef hp300
- s_scale = ((float)p->kcountsize / o ) * SCALE_1_TO_1;
-#else /* avoid floating point */
- int quot = o / p->kcountsize;
-
- if (quot >= 0x10000)
- s_scale = 1;
- else if (quot >= 0x100)
- s_scale = 0x10000 / quot;
- else if (o >= 0x800000)
- s_scale = 0x1000000 / (o / (p->kcountsize >> 8));
- else
- s_scale = 0x1000000 / ((o << 8) / p->kcountsize);
-#endif
- } else
- s_scale = SCALE_1_TO_1;
-
+ s_scale = (p->kcountsize < o) ?
+ ((uintmax_t)p->kcountsize << SCALE_SHIFT) / o : (1 << SCALE_SHIFT);
moncontrol(1);
}
==== //depot/projects/soc2009/trasz_limits/lib/libc/net/sctp_recvmsg.3#5 (text+ko) ====
@@ -29,7 +29,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/lib/libc/net/sctp_recvmsg.3,v 1.8 2010/06/11 18:43:55 brucec Exp $
+.\" $FreeBSD: src/lib/libc/net/sctp_recvmsg.3,v 1.9 2010/07/04 08:09:33 brucec Exp $
.\"
.Dd August 13, 2007
.Dt SCTP_RECVMSG 3
@@ -146,14 +146,14 @@
argument is defined as follows.
.Bd -literal
struct sctp_sndrcvinfo {
- u_int16_t sinfo_stream; /* Stream arriving on */
- u_int16_t sinfo_ssn; /* Stream Sequence Number */
- u_int16_t sinfo_flags; /* Flags on the incoming message */
- u_int32_t sinfo_ppid; /* The ppid field */
- u_int32_t sinfo_context; /* context field */
- u_int32_t sinfo_timetolive; /* not used by sctp_recvmsg */
- u_int32_t sinfo_tsn; /* The transport sequence number */
- u_int32_t sinfo_cumtsn; /* The cumulative acknowledgment point */
+ uint16_t sinfo_stream; /* Stream arriving on */
+ uint16_t sinfo_ssn; /* Stream Sequence Number */
+ uint16_t sinfo_flags; /* Flags on the incoming message */
+ uint32_t sinfo_ppid; /* The ppid field */
+ uint32_t sinfo_context; /* context field */
+ uint32_t sinfo_timetolive; /* not used by sctp_recvmsg */
+ uint32_t sinfo_tsn; /* The transport sequence number */
+ uint32_t sinfo_cumtsn; /* The cumulative acknowledgment point */
sctp_assoc_t sinfo_assoc_id; /* The association id of the peer */
};
.Ed
==== //depot/projects/soc2009/trasz_limits/lib/libc/net/sctp_send.3#5 (text+ko) ====
@@ -29,7 +29,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/lib/libc/net/sctp_send.3,v 1.7 2010/01/31 21:45:14 brucec Exp $
+.\" $FreeBSD: src/lib/libc/net/sctp_send.3,v 1.8 2010/07/04 08:09:33 brucec Exp $
.\"
.Dd December 15, 2006
.Dt SCTP_SEND 3
@@ -94,14 +94,14 @@
and has the following format:
.Bd -literal
struct sctp_sndrcvinfo {
- u_int16_t sinfo_stream; /* Stream sending to */
- u_int16_t sinfo_ssn; /* valid for recv only */
- u_int16_t sinfo_flags; /* flags to control sending */
- u_int32_t sinfo_ppid; /* ppid field */
- u_int32_t sinfo_context; /* context field */
- u_int32_t sinfo_timetolive; /* timetolive for PR-SCTP */
- u_int32_t sinfo_tsn; /* valid for recv only */
- u_int32_t sinfo_cumtsn; /* valid for recv only */
+ uint16_t sinfo_stream; /* Stream sending to */
+ uint16_t sinfo_ssn; /* valid for recv only */
+ uint16_t sinfo_flags; /* flags to control sending */
+ uint32_t sinfo_ppid; /* ppid field */
+ uint32_t sinfo_context; /* context field */
+ uint32_t sinfo_timetolive; /* timetolive for PR-SCTP */
+ uint32_t sinfo_tsn; /* valid for recv only */
+ uint32_t sinfo_cumtsn; /* valid for recv only */
sctp_assoc_t sinfo_assoc_id; /* The association id */
};
.Ed
==== //depot/projects/soc2009/trasz_limits/lib/libc/net/sctp_sys_calls.c#3 (text+ko) ====
@@ -29,7 +29,7 @@
* SUCH DAMAGE.
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/net/sctp_sys_calls.c,v 1.15 2010/01/31 21:47:39 brucec Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/net/sctp_sys_calls.c,v 1.17 2010/07/05 03:55:49 brucec Exp $");
#include <stdio.h>
#include <string.h>
#include <errno.h>
@@ -49,9 +49,9 @@
#ifndef IN6_IS_ADDR_V4MAPPED
#define IN6_IS_ADDR_V4MAPPED(a) \
- ((*(const u_int32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
- (*(const u_int32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
- (*(const u_int32_t *)(const void *)(&(a)->s6_addr[8]) == ntohl(0x0000ffff)))
+ ((*(const uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
+ (*(const uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
+ (*(const uint32_t *)(const void *)(&(a)->s6_addr[8]) == ntohl(0x0000ffff)))
#endif
@@ -304,7 +304,7 @@
goto out_error;
}
-
+ sa = (struct sockaddr *)((caddr_t)sa + sz);
}
sa = addrs;
/*
@@ -533,11 +533,11 @@
size_t len,
const struct sockaddr *to,
socklen_t tolen,
- u_int32_t ppid,
- u_int32_t flags,
- u_int16_t stream_no,
- u_int32_t timetolive,
- u_int32_t context)
+ uint32_t ppid,
+ uint32_t flags,
+ uint16_t stream_no,
+ uint32_t timetolive,
+ uint32_t context)
{
#ifdef SYS_sctp_generic_sendmsg
struct sctp_sndrcvinfo sinfo;
@@ -814,11 +814,11 @@
size_t len,
struct sockaddr *addrs,
int addrcnt,
- u_int32_t ppid,
- u_int32_t flags,
- u_int16_t stream_no,
- u_int32_t timetolive,
- u_int32_t context)
+ uint32_t ppid,
+ uint32_t flags,
+ uint16_t stream_no,
+ uint32_t timetolive,
+ uint32_t context)
{
struct sctp_sndrcvinfo sinfo;
==== //depot/projects/soc2009/trasz_limits/lib/libc/posix1e/acl_from_text.c#4 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/posix1e/acl_from_text.c,v 1.13 2009/11/16 09:28:22 brueffer Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/posix1e/acl_from_text.c,v 1.14 2010/07/05 19:01:10 trasz Exp $");
#include <sys/types.h>
#include "namespace.h"
@@ -271,9 +271,6 @@
* XXX NOT THREAD SAFE, RELIES ON GETPWNAM, GETGRNAM
* XXX USES *PW* AND *GR* WHICH ARE STATEFUL AND THEREFORE THIS ROUTINE
* MAY HAVE SIDE-EFFECTS
- *
- * XXX currently doesn't deal correctly with a numeric uid being passed
- * instead of a username. What is correct behavior here? Check chown.
*/
static int
_posix1e_acl_name_to_id(acl_tag_t tag, char *name, uid_t *id)
==== //depot/projects/soc2009/trasz_limits/lib/libfetch/http.c#3 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libfetch/http.c,v 1.87 2010/01/19 10:19:55 des Exp $");
+__FBSDID("$FreeBSD: src/lib/libfetch/http.c,v 1.88 2010/07/01 17:44:33 des Exp $");
/*
* The following copyright applies to the base64 code:
@@ -1786,12 +1786,14 @@
case hdr_www_authenticate:
if (conn->err != HTTP_NEED_AUTH)
break;
- http_parse_authenticate(p, &server_challenges);
+ if (http_parse_authenticate(p, &server_challenges))
+ ++n;
break;
case hdr_proxy_authenticate:
if (conn->err != HTTP_NEED_PROXY_AUTH)
break;
- http_parse_authenticate(p, &proxy_challenges);
+ if (http_parse_authenticate(p, &proxy_challenges) == 0);
+ ++n;
break;
case hdr_end:
/* fall through */
==== //depot/projects/soc2009/trasz_limits/lib/libthread_db/Symbol.map#2 (text) ====
@@ -1,5 +1,5 @@
/*
- * $FreeBSD: src/lib/libthread_db/Symbol.map,v 1.2 2007/04/29 14:05:22 deischen Exp $
+ * $FreeBSD: src/lib/libthread_db/Symbol.map,v 1.3 2010/07/04 12:08:04 kib Exp $
*/
FBSD_1.0 {
@@ -19,7 +19,6 @@
td_thr_dbsuspend;
td_thr_event_enable;
td_thr_event_getmsg;
- td_thr_get_info;
td_thr_getfpregs;
td_thr_getgregs;
#if defined(i386)
@@ -33,3 +32,7 @@
td_thr_tls_get_addr;
td_thr_validate;
};
+
+FBSD_1.2 {
+ td_thr_get_info;
+};
==== //depot/projects/soc2009/trasz_limits/lib/libthread_db/libpthread_db.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libthread_db/libpthread_db.c,v 1.20 2008/09/14 16:52:42 marcel Exp $");
+__FBSDID("$FreeBSD: src/lib/libthread_db/libpthread_db.c,v 1.21 2010/07/04 12:08:04 kib Exp $");
#include <stddef.h>
#include <stdlib.h>
@@ -570,7 +570,7 @@
}
static td_err_e
-pt_thr_get_info(const td_thrhandle_t *th, td_thrinfo_t *info)
+pt_thr_old_get_info(const td_thrhandle_t *th, td_old_thrinfo_t *info)
{
const td_thragent_t *ta = th->th_ta;
struct ptrace_lwpinfo linfo;
@@ -659,6 +659,16 @@
return (0);
}
+static td_err_e
+pt_thr_get_info(const td_thrhandle_t *th, td_thrinfo_t *info)
+{
+ td_err_e e;
+
+ e = pt_thr_old_get_info(th, (td_old_thrinfo_t *)info);
+ bzero(&info->ti_siginfo, sizeof(info->ti_siginfo));
+ return (e);
+}
+
#ifdef __i386__
static td_err_e
pt_thr_getxmmregs(const td_thrhandle_t *th, char *fxsave)
@@ -1114,6 +1124,7 @@
.to_thr_dbsuspend = pt_thr_dbsuspend,
.to_thr_event_enable = pt_thr_event_enable,
.to_thr_event_getmsg = pt_thr_event_getmsg,
+ .to_thr_old_get_info = pt_thr_old_get_info,
.to_thr_get_info = pt_thr_get_info,
.to_thr_getfpregs = pt_thr_getfpregs,
.to_thr_getgregs = pt_thr_getgregs,
==== //depot/projects/soc2009/trasz_limits/lib/libthread_db/libthr_db.c#3 (text+ko) ====
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libthread_db/libthr_db.c,v 1.17 2009/06/09 12:32:10 des Exp $");
+__FBSDID("$FreeBSD: src/lib/libthread_db/libthr_db.c,v 1.18 2010/07/04 12:08:04 kib Exp $");
#include <proc_service.h>
#include <stddef.h>
@@ -453,7 +453,7 @@
}
static td_err_e
-pt_thr_get_info(const td_thrhandle_t *th, td_thrinfo_t *info)
+pt_thr_get_info_common(const td_thrhandle_t *th, td_thrinfo_t *info, int old)
{
const td_thragent_t *ta = th->th_ta;
struct ptrace_lwpinfo linfo;
@@ -489,6 +489,13 @@
if (ret == PS_OK) {
info->ti_sigmask = linfo.pl_sigmask;
info->ti_pending = linfo.pl_siglist;
+ if (!old) {
+ if ((linfo.pl_flags & PL_FLAG_SI) != 0)
+ info->ti_siginfo = linfo.pl_siginfo;
+ else
+ bzero(&info->ti_siginfo,
+ sizeof(info->ti_siginfo));
+ }
} else
return (ret);
if (state == ta->thread_state_running)
@@ -501,6 +508,20 @@
return (0);
}
+static td_err_e
+pt_thr_old_get_info(const td_thrhandle_t *th, td_old_thrinfo_t *info)
+{
+
+ return (pt_thr_get_info_common(th, (td_thrinfo_t *)info, 1));
+}
+
+static td_err_e
+pt_thr_get_info(const td_thrhandle_t *th, td_thrinfo_t *info)
+{
+
+ return (pt_thr_get_info_common(th, info, 0));
+}
+
#ifdef __i386__
static td_err_e
pt_thr_getxmmregs(const td_thrhandle_t *th, char *fxsave)
@@ -761,6 +782,7 @@
.to_thr_dbsuspend = pt_thr_dbsuspend,
.to_thr_event_enable = pt_thr_event_enable,
.to_thr_event_getmsg = pt_thr_event_getmsg,
+ .to_thr_old_get_info = pt_thr_old_get_info,
.to_thr_get_info = pt_thr_get_info,
.to_thr_getfpregs = pt_thr_getfpregs,
.to_thr_getgregs = pt_thr_getgregs,
==== //depot/projects/soc2009/trasz_limits/lib/libthread_db/thread_db.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libthread_db/thread_db.c,v 1.9 2008/09/14 16:52:42 marcel Exp $");
+__FBSDID("$FreeBSD: src/lib/libthread_db/thread_db.c,v 1.10 2010/07/04 12:08:04 kib Exp $");
#include <proc_service.h>
#include <stddef.h>
@@ -176,6 +176,14 @@
}
td_err_e
+td_thr_old_get_info(const td_thrhandle_t *th, td_old_thrinfo_t *info)
+{
+ const td_thragent_t *ta = th->th_ta;
+ return (ta->ta_ops->to_thr_old_get_info(th, info));
+}
+__sym_compat(td_thr_get_info, td_thr_old_get_info, FBSD_1.0);
+
+td_err_e
td_thr_get_info(const td_thrhandle_t *th, td_thrinfo_t *info)
{
const td_thragent_t *ta = th->th_ta;
==== //depot/projects/soc2009/trasz_limits/lib/libthread_db/thread_db.h#3 (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.10 2009/06/09 12:32:10 des Exp $
+ * $FreeBSD: src/lib/libthread_db/thread_db.h,v 1.11 2010/07/04 12:08:04 kib Exp $
*/
#ifndef _THREAD_DB_H_
@@ -191,6 +191,7 @@
psaddr_t ti_startfunc;
psaddr_t ti_stkbase;
size_t ti_stksize;
+ siginfo_t ti_siginfo;
} td_thrinfo_t;
/*
==== //depot/projects/soc2009/trasz_limits/lib/libthread_db/thread_db_int.h#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/libthread_db/thread_db_int.h,v 1.6 2008/09/14 16:52:42 marcel Exp $
+ * $FreeBSD: src/lib/libthread_db/thread_db_int.h,v 1.7 2010/07/04 12:08:04 kib Exp $
*/
#ifndef _THREAD_DB_INT_H_
@@ -32,6 +32,25 @@
#include <sys/types.h>
#include <sys/queue.h>
+typedef struct {
+ const td_thragent_t *ti_ta_p;
+ thread_t ti_tid;
+ psaddr_t ti_thread;
+ td_thr_state_e ti_state;
+ td_thr_type_e ti_type;
+ td_thr_events_t ti_events;
+ int ti_pri;
+ lwpid_t ti_lid;
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list