diff options
Diffstat (limited to 'usr/src/cmd/truss/print.c')
| -rw-r--r-- | usr/src/cmd/truss/print.c | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/usr/src/cmd/truss/print.c b/usr/src/cmd/truss/print.c index f49197a7f6..66a9d7387e 100644 --- a/usr/src/cmd/truss/print.c +++ b/usr/src/cmd/truss/print.c @@ -21,6 +21,7 @@ /* * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, Joyent, Inc. All rights reserved. */ /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ @@ -82,6 +83,7 @@ #include <sys/rctl_impl.h> #include <sys/fork.h> #include <sys/task.h> +#include <sys/random.h> #include "ramdata.h" #include "print.h" #include "proto.h" @@ -843,6 +845,7 @@ prt_mad(private_t *pri, int raw, long val) /* print madvise() argument */ case MADV_ACCESS_DEFAULT: s = "MADV_ACCESS_DEFAULT"; break; case MADV_ACCESS_LWP: s = "MADV_ACCESS_LWP"; break; case MADV_ACCESS_MANY: s = "MADV_ACCESS_MANY"; break; + case MADV_PURGE: s = "MADV_PURGE"; break; } } @@ -870,7 +873,9 @@ prt_mc4(private_t *pri, int raw, long val) /* print memcntl() (4th) argument */ return; case MC_SYNC: - if ((val & ~(MS_SYNC|MS_ASYNC|MS_INVALIDATE)) == 0) { + if ((val & + ~(MS_SYNC|MS_ASYNC|MS_INVALIDATE|MS_INVALCURPROC)) + == 0) { *(s = pri->code_buf) = '\0'; if (val & MS_SYNC) (void) strlcat(s, "|MS_SYNC", CBSIZE); @@ -879,6 +884,9 @@ prt_mc4(private_t *pri, int raw, long val) /* print memcntl() (4th) argument */ if (val & MS_INVALIDATE) (void) strlcat(s, "|MS_INVALIDATE", CBSIZE); + if (val & MS_INVALCURPROC) + (void) strlcat(s, "|MS_INVALCURPROC", + CBSIZE); } break; @@ -1992,6 +2000,7 @@ udp_optname(private_t *pri, long val) case UDP_EXCLBIND: return ("UDP_EXCLBIND"); case UDP_RCVHDR: return ("UDP_RCVHDR"); case UDP_NAT_T_ENDPOINT: return ("UDP_NAT_T_ENDPOINT"); + case UDP_SRCPORT_HASH: return ("UDP_SRCPORT_HASH"); default: (void) snprintf(pri->code_buf, sizeof (pri->code_buf), "0x%lx", @@ -2440,7 +2449,10 @@ prt_zga(private_t *pri, int raw, long val) case ZONE_ATTR_BOOTARGS: s = "ZONE_ATTR_BOOTARGS"; break; case ZONE_ATTR_BRAND: s = "ZONE_ATTR_BRAND"; break; case ZONE_ATTR_FLAGS: s = "ZONE_ATTR_FLAGS"; break; - case ZONE_ATTR_PHYS_MCAP: s = "ZONE_ATTR_PHYS_MCAP"; break; + case ZONE_ATTR_DID: s = "ZONE_ATTR_DID"; break; + case ZONE_ATTR_PMCAP_NOVER: s = "ZONE_ATTR_PMCAP_NOVER"; break; + case ZONE_ATTR_PMCAP_PAGEOUT: s = "ZONE_ATTR_PMCAP_PAGEOUT"; + break; } } @@ -2741,6 +2753,27 @@ prt_snf(private_t *pri, int raw, long val) prt_hex(pri, 0, val); } +void +prt_grf(private_t *pri, int raw, long val) +{ + int first = 1; + + if (raw != 0 || val == 0 || + (val & ~(GRND_NONBLOCK | GRND_RANDOM)) != 0) { + outstring(pri, "0"); + return; + } + + if (val & GRND_NONBLOCK) { + outstring(pri, "|GRND_NONBLOCK" + first); + first = 0; + } + if (val & GRND_RANDOM) { + outstring(pri, "|GRND_RANDOM" + first); + first = 0; + } +} + /* * Array of pointers to print functions, one for each format. */ @@ -2846,5 +2879,6 @@ void (* const Print[])() = { prt_skc, /* SKC -- print sockconfig() subcode */ prt_acf, /* ACF -- print accept4 flags */ prt_pfd, /* PFD -- print pipe fds */ + prt_grf, /* GRF -- print getrandom flags */ prt_dec, /* HID -- hidden argument, make this the last one */ }; |
