summaryrefslogtreecommitdiff
path: root/usr/src/cmd/truss
diff options
context:
space:
mode:
authorAli Bahrami <Ali.Bahrami@Sun.COM>2009-07-29 09:36:17 -0600
committerAli Bahrami <Ali.Bahrami@Sun.COM>2009-07-29 09:36:17 -0600
commitbcddb6779a6655c3d06d4cebc85548da46445b4a (patch)
treec5993c0ef05097ae9bdff8f840245c5920f377fa /usr/src/cmd/truss
parent7d11f38e3afb613f50d948591e7cfd898f8c5acb (diff)
downloadillumos-gate-bcddb6779a6655c3d06d4cebc85548da46445b4a.tar.gz
6861993 "truss" does not understand flags used by mmapobj(2)
Diffstat (limited to 'usr/src/cmd/truss')
-rw-r--r--usr/src/cmd/truss/print.c22
-rw-r--r--usr/src/cmd/truss/print.h7
-rw-r--r--usr/src/cmd/truss/systable.c2
3 files changed, 26 insertions, 5 deletions
diff --git a/usr/src/cmd/truss/print.c b/usr/src/cmd/truss/print.c
index 882497b4c6..38f43f4816 100644
--- a/usr/src/cmd/truss/print.c
+++ b/usr/src/cmd/truss/print.c
@@ -780,6 +780,27 @@ prt_mty(private_t *pri, int raw, long val) /* print mmap() mapping type flags */
outstring(pri, s);
}
+void
+prt_mob(private_t *pri, int raw, long val) /* print mmapobj() flags */
+{
+ if (val == 0)
+ prt_dec(pri, 0, val);
+ else if (raw || (val & ~(MMOBJ_PADDING|MMOBJ_INTERPRET)) != 0)
+ prt_hhx(pri, 0, val);
+ else {
+#define CBSIZE sizeof (pri->code_buf)
+ char *s = pri->code_buf;
+
+ *s = '\0';
+ if (val & MMOBJ_PADDING)
+ (void) strlcat(s, "|MMOBJ_PADDING", CBSIZE);
+ if (val & MMOBJ_INTERPRET)
+ (void) strlcat(s, "|MMOBJ_INTERPRET", CBSIZE);
+ outstring(pri, s + 1);
+#undef CBSIZE
+ }
+}
+
/*ARGSUSED*/
void
prt_mcf(private_t *pri, int raw, long val) /* print memcntl() function */
@@ -2704,5 +2725,6 @@ void (* const Print[])() = {
prt_fxf, /* FXF -- print forkx() flags */
prt_spf, /* SPF -- print rctlsys_projset() flags */
prt_un1, /* UN1 -- as prt_uns except for -1 */
+ prt_mob, /* MOB -- print mmapobj() flags */
prt_dec, /* HID -- hidden argument, make this the last one */
};
diff --git a/usr/src/cmd/truss/print.h b/usr/src/cmd/truss/print.h
index e2d8b59100..f816741945 100644
--- a/usr/src/cmd/truss/print.h
+++ b/usr/src/cmd/truss/print.h
@@ -19,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -30,8 +30,6 @@
#ifndef _TRUSS_PRINT_H
#define _TRUSS_PRINT_H
-#pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.6 */
-
#ifdef __cplusplus
extern "C" {
#endif
@@ -135,7 +133,8 @@ extern "C" {
#define FXF 93 /* print forkx flags */
#define SPF 94 /* print rctlsys_projset flags */
#define UN1 95 /* unsigned except for -1 */
-#define HID 96 /* hidden argument, don't print */
+#define MOB 96 /* print mmapobj() flags */
+#define HID 97 /* hidden argument, don't print */
/* make sure HID is always the last member */
/*
diff --git a/usr/src/cmd/truss/systable.c b/usr/src/cmd/truss/systable.c
index 9fa1a5a9fd..2a9654ba41 100644
--- a/usr/src/cmd/truss/systable.c
+++ b/usr/src/cmd/truss/systable.c
@@ -347,7 +347,7 @@ const struct systable systable[] = {
{"lxstat", 3, DEC, NOV, DEC, STG, HEX}, /* 124 */
{"fxstat", 3, DEC, NOV, DEC, DEC, HEX}, /* 125 */
{"xmknod", 4, DEC, NOV, DEC, STG, OCT, HEX}, /* 126 */
-{"mmapobj", 5, DEC, NOV, DEC, HEX, HEX, HEX, HEX}, /* 127 */
+{"mmapobj", 5, DEC, NOV, DEC, MOB, HEX, HEX, HEX}, /* 127 */
{"setrlimit", 2, DEC, NOV, RLM, HEX}, /* 128 */
{"getrlimit", 2, DEC, NOV, RLM, HEX}, /* 129 */
{"lchown", 3, DEC, NOV, STG, DEC, DEC}, /* 130 */