comparison usr/src/cmd/truss/print.c @ 14022:19e11862653b

3713 Implement accept4() 3714 Implement pipe2() 3715 Implement dup3() 3716 Implement mkostemp() and mkostemps() 3719 so_socketpair syscall should preserve FD_CLOEXEC flag Reviewed by: Dan McDonald <danmcd@nexenta.com> Reviewed by: Robert Mustacchi <rm@joyent.com> Approved by: Garrett D'Amore <garrett@damore.org>
author Theo Schlossnagle <jesus@omniti.com>
date Thu, 11 Apr 2013 04:50:36 +0000
parents 1a1202688ff3
children c50199ce44c8
comparison
equal deleted inserted replaced
14021:1faa5bdf272f 14022:19e11862653b
369 break; 369 break;
370 } 370 }
371 } 371 }
372 372
373 void 373 void
374 prt_pip(private_t *pri, int raw, long val) /* print pipe code */
375 {
376 const char *s = NULL;
377
378 if (!raw) {
379 switch (val) {
380 case O_CLOEXEC:
381 s = "O_CLOEXEC";
382 break;
383 case O_NONBLOCK:
384 s = "O_NONBLOCK";
385 break;
386 case O_CLOEXEC|O_NONBLOCK:
387 s = "O_CLOEXEC|O_NONBLOCK";
388 break;
389 }
390 }
391
392 if (s == NULL)
393 prt_dex(pri, 0, val);
394 else
395 outstring(pri, s);
396 }
397
398 void
399 prt_pfd(private_t *pri, int raw, long val) /* print pipe code */
400 {
401 int fds[2];
402 char str[32];
403
404 /* the fds only have meaning if the return value is 0 */
405 if (!raw &&
406 pri->Rval1 >= 0 &&
407 Pread(Proc, fds, sizeof (fds), (long)val) == sizeof (fds)) {
408 snprintf(str, sizeof (str), "[%d,%d]", fds[0], fds[1]);
409 outstring(pri, str);
410 } else {
411 prt_hex(pri, 0, val);
412 }
413 }
414
415 void
374 prt_fcn(private_t *pri, int raw, long val) /* print fcntl code */ 416 prt_fcn(private_t *pri, int raw, long val) /* print fcntl code */
375 { 417 {
376 const char *s = raw? NULL : fcntlname(val); 418 const char *s = raw? NULL : fcntlname(val);
377 419
378 if (s == NULL) 420 if (s == NULL)
1736 case SOV_DEFAULT: outstring(pri, "SOV_DEFAULT"); break; 1778 case SOV_DEFAULT: outstring(pri, "SOV_DEFAULT"); break;
1737 case SOV_SOCKSTREAM: outstring(pri, "SOV_SOCKSTREAM"); break; 1779 case SOV_SOCKSTREAM: outstring(pri, "SOV_SOCKSTREAM"); break;
1738 case SOV_SOCKBSD: outstring(pri, "SOV_SOCKBSD"); break; 1780 case SOV_SOCKBSD: outstring(pri, "SOV_SOCKBSD"); break;
1739 case SOV_XPG4_2: outstring(pri, "SOV_XPG4_2"); break; 1781 case SOV_XPG4_2: outstring(pri, "SOV_XPG4_2"); break;
1740 default: prt_dec(pri, 0, val); break; 1782 default: prt_dec(pri, 0, val); break;
1783 }
1784 }
1785
1786 /*
1787 * Print accept4() flags argument.
1788 */
1789 void
1790 prt_acf(private_t *pri, int raw, long val)
1791 {
1792 int first = 1;
1793 if (raw || !val ||
1794 (val & ~(SOCK_CLOEXEC|SOCK_NDELAY|SOCK_NONBLOCK))) {
1795 prt_dex(pri, 0, val);
1796 return;
1797 }
1798
1799 if (val & SOCK_CLOEXEC) {
1800 outstring(pri, "|SOCK_CLOEXEC" + first);
1801 first = 0;
1802 }
1803 if (val & SOCK_NDELAY) {
1804 outstring(pri, "|SOCK_NDELAY" + first);
1805 first = 0;
1806 }
1807 if (val & SOCK_NONBLOCK) {
1808 outstring(pri, "|SOCK_NONBLOCK" + first);
1741 } 1809 }
1742 } 1810 }
1743 1811
1744 1812
1745 /* 1813 /*
2697 prt_fat, /* FAT -- print faccessat( flag */ 2765 prt_fat, /* FAT -- print faccessat( flag */
2698 prt_sfs, /* SFS -- print sysfs code */ 2766 prt_sfs, /* SFS -- print sysfs code */
2699 prt_rst, /* RST -- print string returned by syscall */ 2767 prt_rst, /* RST -- print string returned by syscall */
2700 prt_smf, /* SMF -- print streams message flags */ 2768 prt_smf, /* SMF -- print streams message flags */
2701 prt_ioa, /* IOA -- print ioctl argument */ 2769 prt_ioa, /* IOA -- print ioctl argument */
2702 prt_nov, /* Was SIX, now available for reuse */ 2770 prt_pip, /* PIP -- print pipe flags */
2703 prt_mtf, /* MTF -- print mount flags */ 2771 prt_mtf, /* MTF -- print mount flags */
2704 prt_mft, /* MFT -- print mount file system type */ 2772 prt_mft, /* MFT -- print mount file system type */
2705 prt_iob, /* IOB -- print contents of I/O buffer */ 2773 prt_iob, /* IOB -- print contents of I/O buffer */
2706 prt_hhx, /* HHX -- print value in hexadecimal (half size) */ 2774 prt_hhx, /* HHX -- print value in hexadecimal (half size) */
2707 prt_wop, /* WOP -- print waitsys() options */ 2775 prt_wop, /* WOP -- print waitsys() options */
2772 prt_spf, /* SPF -- print rctlsys_projset() flags */ 2840 prt_spf, /* SPF -- print rctlsys_projset() flags */
2773 prt_un1, /* UN1 -- as prt_uns except for -1 */ 2841 prt_un1, /* UN1 -- as prt_uns except for -1 */
2774 prt_mob, /* MOB -- print mmapobj() flags */ 2842 prt_mob, /* MOB -- print mmapobj() flags */
2775 prt_snf, /* SNF -- print AT_SYMLINK_[NO]FOLLOW flag */ 2843 prt_snf, /* SNF -- print AT_SYMLINK_[NO]FOLLOW flag */
2776 prt_skc, /* SKC -- print sockconfig() subcode */ 2844 prt_skc, /* SKC -- print sockconfig() subcode */
2845 prt_acf, /* ACF -- print accept4 flags */
2846 prt_pfd, /* PFD -- print pipe fds */
2777 prt_dec, /* HID -- hidden argument, make this the last one */ 2847 prt_dec, /* HID -- hidden argument, make this the last one */
2778 }; 2848 };