Mercurial > illumos > illumos-gate
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 }; |