summaryrefslogtreecommitdiff
path: root/usr/src/cmd
diff options
context:
space:
mode:
authorKeith M Wesolowski <wesolows@foobazco.org>2013-05-08 18:18:49 +0000
committerKeith M Wesolowski <wesolows@foobazco.org>2013-05-08 18:18:49 +0000
commit43840e901cacf50a9bb41148069e34ca307524e8 (patch)
tree2836162f69bba2534e8b9acf9797e5892f103258 /usr/src/cmd
parentabd43b3991c3becf4fd3cc1a370aeafdc8749a30 (diff)
parent5dbfd19ad5fcc2b779f40f80fa05c1bd28fd0b4e (diff)
downloadillumos-joyent-43840e901cacf50a9bb41148069e34ca307524e8.tar.gz
[illumos-gate merge]
commit 5dbfd19ad5fcc2b779f40f80fa05c1bd28fd0b4e 3713 Implement accept4() 3714 Implement pipe2() 3715 Implement dup3() 3716 Implement mkostemp() and mkostemps() 3719 so_socketpair syscall should preserve FD_CLOEXEC flag commit 6136c589445a3ea081bd34ab72db1060875b6bcc 3722 link-editor is over restrictive of R_AMD64_32 addends Conflicts: usr/src/lib/libc/sparcv9/Makefile.com [copyright] usr/src/lib/libc/sparc/Makefile.com [copyright] usr/src/lib/libc/i386/Makefile.com [copyright]
Diffstat (limited to 'usr/src/cmd')
-rw-r--r--usr/src/cmd/sgs/packages/common/SUNWonld-README1
-rw-r--r--usr/src/cmd/truss/codes.c4
-rw-r--r--usr/src/cmd/truss/print.c72
-rw-r--r--usr/src/cmd/truss/print.h7
-rw-r--r--usr/src/cmd/truss/systable.c6
5 files changed, 83 insertions, 7 deletions
diff --git a/usr/src/cmd/sgs/packages/common/SUNWonld-README b/usr/src/cmd/sgs/packages/common/SUNWonld-README
index 2a6d570955..32672515c4 100644
--- a/usr/src/cmd/sgs/packages/common/SUNWonld-README
+++ b/usr/src/cmd/sgs/packages/common/SUNWonld-README
@@ -1646,3 +1646,4 @@ Bugid Risk Synopsis
3451 archive libraries with no symbols shouldn't require a string table
3616 SHF_GROUP sections should not be discarded via other COMDAT mechanisms
3709 need sloppy relocation for GNU .debug_macro
+3722 link-editor is over restrictive of R_AMD64_32 addends
diff --git a/usr/src/cmd/truss/codes.c b/usr/src/cmd/truss/codes.c
index dcab90e5fa..87fae4f257 100644
--- a/usr/src/cmd/truss/codes.c
+++ b/usr/src/cmd/truss/codes.c
@@ -146,8 +146,8 @@ const char *const FCNTLname[] = {
"F_GETLK64",
"F_SETLK64",
"F_SETLKW64",
- NULL, /* 36 */
- NULL, /* 37 */
+ "F_DUP2FD_CLOEXEC",
+ "F_DUPFD_CLOEXEC",
NULL, /* 38 */
NULL, /* 39 */
"F_SHARE",
diff --git a/usr/src/cmd/truss/print.c b/usr/src/cmd/truss/print.c
index 9fbbefbe62..fc236bd556 100644
--- a/usr/src/cmd/truss/print.c
+++ b/usr/src/cmd/truss/print.c
@@ -372,6 +372,48 @@ prt_ioa(private_t *pri, int raw, long val) /* print ioctl argument */
}
void
+prt_pip(private_t *pri, int raw, long val) /* print pipe code */
+{
+ const char *s = NULL;
+
+ if (!raw) {
+ switch (val) {
+ case O_CLOEXEC:
+ s = "O_CLOEXEC";
+ break;
+ case O_NONBLOCK:
+ s = "O_NONBLOCK";
+ break;
+ case O_CLOEXEC|O_NONBLOCK:
+ s = "O_CLOEXEC|O_NONBLOCK";
+ break;
+ }
+ }
+
+ if (s == NULL)
+ prt_dex(pri, 0, val);
+ else
+ outstring(pri, s);
+}
+
+void
+prt_pfd(private_t *pri, int raw, long val) /* print pipe code */
+{
+ int fds[2];
+ char str[32];
+
+ /* the fds only have meaning if the return value is 0 */
+ if (!raw &&
+ pri->Rval1 >= 0 &&
+ Pread(Proc, fds, sizeof (fds), (long)val) == sizeof (fds)) {
+ snprintf(str, sizeof (str), "[%d,%d]", fds[0], fds[1]);
+ outstring(pri, str);
+ } else {
+ prt_hex(pri, 0, val);
+ }
+}
+
+void
prt_fcn(private_t *pri, int raw, long val) /* print fcntl code */
{
const char *s = raw? NULL : fcntlname(val);
@@ -1747,6 +1789,32 @@ prt_skv(private_t *pri, int raw, long val)
}
}
+/*
+ * Print accept4() flags argument.
+ */
+void
+prt_acf(private_t *pri, int raw, long val)
+{
+ int first = 1;
+ if (raw || !val ||
+ (val & ~(SOCK_CLOEXEC|SOCK_NDELAY|SOCK_NONBLOCK))) {
+ prt_dex(pri, 0, val);
+ return;
+ }
+
+ if (val & SOCK_CLOEXEC) {
+ outstring(pri, "|SOCK_CLOEXEC" + first);
+ first = 0;
+ }
+ if (val & SOCK_NDELAY) {
+ outstring(pri, "|SOCK_NDELAY" + first);
+ first = 0;
+ }
+ if (val & SOCK_NONBLOCK) {
+ outstring(pri, "|SOCK_NONBLOCK" + first);
+ }
+}
+
/*
* Print setsockopt()/getsockopt() 2nd argument.
@@ -2708,7 +2776,7 @@ void (* const Print[])() = {
prt_rst, /* RST -- print string returned by syscall */
prt_smf, /* SMF -- print streams message flags */
prt_ioa, /* IOA -- print ioctl argument */
- prt_nov, /* Was SIX, now available for reuse */
+ prt_pip, /* PIP -- print pipe flags */
prt_mtf, /* MTF -- print mount flags */
prt_mft, /* MFT -- print mount file system type */
prt_iob, /* IOB -- print contents of I/O buffer */
@@ -2783,5 +2851,7 @@ void (* const Print[])() = {
prt_mob, /* MOB -- print mmapobj() flags */
prt_snf, /* SNF -- print AT_SYMLINK_[NO]FOLLOW flag */
prt_skc, /* SKC -- print sockconfig() subcode */
+ prt_acf, /* ACF -- print accept4 flags */
+ prt_pfd, /* PFD -- print pipe fds */
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 98c2223052..9a9a43b4cb 100644
--- a/usr/src/cmd/truss/print.h
+++ b/usr/src/cmd/truss/print.h
@@ -26,6 +26,7 @@
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
+/* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All right reserved. */
#ifndef _TRUSS_PRINT_H
#define _TRUSS_PRINT_H
@@ -61,7 +62,7 @@ extern "C" {
#define RST 21 /* print string returned by sys call */
#define SMF 22 /* print streams message flags */
#define IOA 23 /* print ioctl argument */
-/* Number 24 now available for reuse */
+#define PIP 24 /* print pipe flags */
#define MTF 25 /* print mount flags */
#define MFT 26 /* print mount file system type */
#define IOB 27 /* print contents of I/O buffer */
@@ -136,7 +137,9 @@ extern "C" {
#define MOB 96 /* print mmapobj() flags */
#define SNF 97 /* print AT_SYMLINK_[NO]FOLLOW flag */
#define SKC 98 /* print sockconfig subcode */
-#define HID 99 /* hidden argument, don't print */
+#define ACF 99 /* accept4 flags */
+#define PFD 100 /* pipe fds[2] */
+#define HID 101 /* 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 66ae2525f4..3cd07c698b 100644
--- a/usr/src/cmd/truss/systable.c
+++ b/usr/src/cmd/truss/systable.c
@@ -26,6 +26,8 @@
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
+/* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
+
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
@@ -258,7 +260,7 @@ const struct systable systable[] = {
{"pgrpsys", 3, DEC, NOV, DEC, DEC, DEC}, /* 39 */
{"uucopystr", 3, DEC, NOV, STG, RST, UNS}, /* 40 */
{ NULL, 8, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX},
-{"pipe", 0, DEC, DEC}, /* 42 */
+{"pipe", 2, DEC, NOV, PFD, PIP}, /* 42 */
{"times", 1, DEC, NOV, HEX}, /* 43 */
{"profil", 4, DEC, NOV, HEX, UNS, HEX, OCT}, /* 44 */
{"faccessat", 4, DEC, NOV, ATC, STG, ACC, FAT}, /* 45 */
@@ -450,7 +452,7 @@ const struct systable systable[] = {
{"so_socketpair", 1, DEC, NOV, HEX}, /* 231 */
{"bind", 4, DEC, NOV, DEC, HEX, DEC, SKV}, /* 232 */
{"listen", 3, DEC, NOV, DEC, DEC, SKV}, /* 233 */
-{"accept", 4, DEC, NOV, DEC, HEX, HEX, SKV}, /* 234 */
+{"accept", 5, DEC, NOV, DEC, HEX, HEX, SKV, ACF}, /* 234 */
{"connect", 4, DEC, NOV, DEC, HEX, DEC, SKV}, /* 235 */
{"shutdown", 3, DEC, NOV, DEC, SHT, SKV}, /* 236 */
{"recv", 4, DEC, NOV, DEC, IOB, DEC, DEC}, /* 237 */