summaryrefslogtreecommitdiff
path: root/usr/src/lib/libdtrace/common
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libdtrace/common')
-rw-r--r--usr/src/lib/libdtrace/common/dt_open.c6
-rw-r--r--usr/src/lib/libdtrace/common/dt_proc.c10
-rw-r--r--usr/src/lib/libdtrace/common/procfs.d.in11
-rw-r--r--usr/src/lib/libdtrace/common/procfs.sed.in15
4 files changed, 29 insertions, 13 deletions
diff --git a/usr/src/lib/libdtrace/common/dt_open.c b/usr/src/lib/libdtrace/common/dt_open.c
index 5a9321b178..db7a384b18 100644
--- a/usr/src/lib/libdtrace/common/dt_open.c
+++ b/usr/src/lib/libdtrace/common/dt_open.c
@@ -99,8 +99,9 @@
#define DT_VERS_1_2_1 DT_VERSION_NUMBER(1, 2, 1)
#define DT_VERS_1_2_2 DT_VERSION_NUMBER(1, 2, 2)
#define DT_VERS_1_3 DT_VERSION_NUMBER(1, 3, 0)
-#define DT_VERS_LATEST DT_VERS_1_3
-#define DT_VERS_STRING "Sun D 1.3"
+#define DT_VERS_1_4 DT_VERSION_NUMBER(1, 4, 0)
+#define DT_VERS_LATEST DT_VERS_1_4
+#define DT_VERS_STRING "Sun D 1.4"
const dt_version_t _dtrace_versions[] = {
DT_VERS_1_0, /* D API 1.0.0 (PSARC 2001/466) Solaris 10 FCS */
@@ -109,6 +110,7 @@ const dt_version_t _dtrace_versions[] = {
DT_VERS_1_2_1, /* D API 1.2.1 Solaris Express 4/06 */
DT_VERS_1_2_2, /* D API 1.2.2 Solaris Express 6/06 */
DT_VERS_1_3, /* D API 1.3 Solaris Express 10/06 */
+ DT_VERS_1_4, /* D API 1.4 Solaris Express 2/07 */
0
};
diff --git a/usr/src/lib/libdtrace/common/dt_proc.c b/usr/src/lib/libdtrace/common/dt_proc.c
index 66bc3aa011..3d739a7b06 100644
--- a/usr/src/lib/libdtrace/common/dt_proc.c
+++ b/usr/src/lib/libdtrace/common/dt_proc.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -91,7 +90,8 @@
#include <dt_impl.h>
#define IS_SYS_EXEC(w) (w == SYS_exec || w == SYS_execve)
-#define IS_SYS_FORK(w) (w == SYS_vfork || w == SYS_fork1 || w == SYS_forkall)
+#define IS_SYS_FORK(w) (w == SYS_vfork || w == SYS_fork1 || \
+ w == SYS_forkall || w == SYS_forksys)
static dt_bkpt_t *
dt_proc_bpcreate(dt_proc_t *dpr, uintptr_t addr, dt_bkpt_f *func, void *data)
@@ -504,6 +504,8 @@ dt_proc_control(void *arg)
(void) Psysexit(P, SYS_fork1, B_TRUE);
(void) Psysentry(P, SYS_forkall, B_TRUE);
(void) Psysexit(P, SYS_forkall, B_TRUE);
+ (void) Psysentry(P, SYS_forksys, B_TRUE);
+ (void) Psysexit(P, SYS_forksys, B_TRUE);
Psync(P); /* enable all /proc changes */
dt_proc_attach(dpr, B_FALSE); /* enable rtld breakpoints */
diff --git a/usr/src/lib/libdtrace/common/procfs.d.in b/usr/src/lib/libdtrace/common/procfs.d.in
index 5d97197c31..915d754d88 100644
--- a/usr/src/lib/libdtrace/common/procfs.d.in
+++ b/usr/src/lib/libdtrace/common/procfs.d.in
@@ -18,6 +18,7 @@
*
* CDDL HEADER END
*/
+
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
@@ -69,12 +70,18 @@ inline int PR_DETACH = @PR_DETACH@;
#pragma D binding "1.0" PR_DETACH
inline int PR_DAEMON = @PR_DAEMON@;
#pragma D binding "1.0" PR_DAEMON
+inline int PR_IDLE = @PR_IDLE@;
+#pragma D binding "1.4" PR_IDLE
inline int PR_ISSYS = @PR_ISSYS@;
#pragma D binding "1.0" PR_ISSYS
inline int PR_VFORKP = @PR_VFORKP@;
#pragma D binding "1.0" PR_VFORKP
inline int PR_ORPHAN = @PR_ORPHAN@;
#pragma D binding "1.0" PR_ORPHAN
+inline int PR_NOSIGCHLD = @PR_NOSIGCHLD@;
+#pragma D binding "1.4" PR_NOSIGCHLD
+inline int PR_WAITPID = @PR_WAITPID@;
+#pragma D binding "1.4" PR_WAITPID
inline int PR_FORK = @PR_FORK@;
#pragma D binding "1.0" PR_FORK
inline int PR_RLC = @PR_RLC@;
@@ -91,8 +98,6 @@ inline int PR_PTRACE = @PR_PTRACE@;
#pragma D binding "1.0" PR_PTRACE
inline int PR_MSFORK = @PR_MSFORK@;
#pragma D binding "1.0" PR_MSFORK
-inline int PR_IDLE = @PR_IDLE@;
-#pragma D binding "1.0" PR_IDLE
inline char PR_MODEL_ILP32 = @PR_MODEL_ILP32@;
#pragma D binding "1.0" PR_MODEL_ILP32
@@ -292,6 +297,8 @@ translator lwpsinfo_t < kthread_t *T > {
((T == T->t_procp->p_agenttp) ? PR_AGENT : 0) |
((!(T->t_proc_flag & @TP_TWAIT@)) ? PR_DETACH : 0) |
((T->t_proc_flag & @TP_DAEMON@) ? PR_DAEMON : 0) |
+ ((T->t_procp->p_pidflag & @CLDNOSIGCHLD@) ? PR_NOSIGCHLD : 0) |
+ ((T->t_procp->p_pidflag & @CLDWAITPID@) ? PR_WAITPID : 0) |
((T->t_procp->p_proc_flag & @P_PR_FORK@) ? PR_FORK : 0) |
((T->t_procp->p_proc_flag & @P_PR_RUNLCL@) ? PR_RLC : 0) |
((T->t_procp->p_proc_flag & @P_PR_KILLCL@) ? PR_KLC : 0) |
diff --git a/usr/src/lib/libdtrace/common/procfs.sed.in b/usr/src/lib/libdtrace/common/procfs.sed.in
index a3d7a23f08..f889f6333c 100644
--- a/usr/src/lib/libdtrace/common/procfs.sed.in
+++ b/usr/src/lib/libdtrace/common/procfs.sed.in
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -19,8 +18,9 @@
*
* CDDL HEADER END
*/
+
/*
- * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -76,6 +76,9 @@ SED_REPLACE(SSTOP)
SED_REPLACE(SIDL)
SED_REPLACE(SONPROC)
+SED_REPLACE(CLDNOSIGCHLD)
+SED_REPLACE(CLDWAITPID)
+
SED_REPLACE(PR_STOPPED)
SED_REPLACE(PR_ISTOP)
SED_REPLACE(PR_DSTOP)
@@ -86,9 +89,12 @@ SED_REPLACE(PR_ASLWP)
SED_REPLACE(PR_AGENT)
SED_REPLACE(PR_DETACH)
SED_REPLACE(PR_DAEMON)
+SED_REPLACE(PR_IDLE)
SED_REPLACE(PR_ISSYS)
SED_REPLACE(PR_VFORKP)
SED_REPLACE(PR_ORPHAN)
+SED_REPLACE(PR_NOSIGCHLD)
+SED_REPLACE(PR_WAITPID)
SED_REPLACE(PR_FORK)
SED_REPLACE(PR_RLC)
SED_REPLACE(PR_KLC)
@@ -97,7 +103,6 @@ SED_REPLACE(PR_MSACCT)
SED_REPLACE(PR_BPTADJ)
SED_REPLACE(PR_PTRACE)
SED_REPLACE(PR_MSFORK)
-SED_REPLACE(PR_IDLE)
SED_REPLACE(PR_MODEL_ILP32)
SED_REPLACE(PR_MODEL_LP64)