size_t ret;
umove(tcp, tcp->u_arg[2], &mi);
tprintf("{address=%#lx, size=%lu, flags=", mi.addr, mi.size);
- printflags(modflags, mi.flags);
+ printflags(modflags, mi.flags, "MOD_???");
tprintf(", usecount=%lu}", mi.usecount);
umove(tcp, tcp->u_arg[4], &ret);
tprintf(", %Zu", ret);
extern void newoutf P((struct tcb *));
extern int get_scno P((struct tcb *));
extern int trace_syscall P((struct tcb *));
-extern void printxval P((const struct xlat *, int, char *));
+extern void printxval P((const struct xlat *, int, const char *));
extern int printargs P((struct tcb *));
extern int addflags P((const struct xlat *, int));
-extern int printflags P((const struct xlat *, int));
+extern int printflags P((const struct xlat *, int, const char *));
extern int umoven P((struct tcb *, long, int, char *));
extern int umovestr P((struct tcb *, long, int, char *));
extern int upeek P((int, long, long *));
switch (tcp->u_arg[1]) {
case F_SETFD:
tprintf(", ");
- if (printflags(fdflags, tcp->u_arg[2]) == 0)
- tprintf("0");
+ printflags(fdflags, tcp->u_arg[2], "FD_???");
break;
case F_SETOWN: case F_DUPFD:
tprintf(", %ld", tcp->u_arg[2]);
break;
case F_SETFL:
tprintf(", ");
- if (printflags(openmodes, tcp->u_arg[2] + 1) == 0)
- tprintf("0");
+ printflags(openmodes, tcp->u_arg[2] + 1, "O_???");
break;
case F_SETLK: case F_SETLKW:
#ifdef F_FREESP
{
if (entering(tcp)) {
tprintf("%ld, ", tcp->u_arg[0]);
- if (!printflags(flockcmds, tcp->u_arg[1]))
- tprintf("LOCK_???");
+ printflags(flockcmds, tcp->u_arg[1], "LOCK_???");
}
return 0;
}
struct epoll_event *ev;
{
tprintf("{");
- if (printflags(epollevents, ev->events) == 0)
- tprintf("0");
+ printflags(epollevents, ev->events, "EPOLL???");
/* We cannot know what format the program uses, so print u32 and u64
which will cover every value. */
tprintf(", {u32=%" PRIu32 ", u64=%" PRIu64 "}}",
printpath(tcp, tcp->u_arg[0]);
tprintf(", ");
/* flags */
- printflags(openmodes, tcp->u_arg[1] + 1);
+ printflags(openmodes, tcp->u_arg[1] + 1, "O_???");
if (tcp->u_arg[1] & O_CREAT) {
/* mode */
tprintf(", %#lo", tcp->u_arg[2]);
printpath(tcp, tcp->u_arg[0]);
tprintf(", ");
/* flags */
- printflags(openmodessol, tcp->u_arg[1] + 1);
+ printflags(openmodessol, tcp->u_arg[1] + 1, "O_???");
if (tcp->u_arg[1] & 0x100) {
/* mode */
tprintf(", %#lo", tcp->u_arg[2]);
if (entering(tcp)) {
printpath(tcp, tcp->u_arg[0]);
tprintf(", ");
- printflags(access_flags, tcp->u_arg[1]);
+ printflags(access_flags, tcp->u_arg[1], "?_OK");
}
return 0;
}
if (entering(tcp)) {
printpath(tcp, tcp->u_arg[0]);
tprintf(", ");
- if (tcp->u_arg[1])
- printflags(fileflags, tcp->u_arg[1]);
- else
- tprintf("0");
+ printflags(fileflags, tcp->u_arg[1], "UF_???");
}
return 0;
}
{
if (entering(tcp)) {
tprintf("%ld, ", tcp->u_arg[0]);
- if (tcp->u_arg[1])
- printflags(fileflags, tcp->u_arg[1]);
- else
- tprintf("0");
+ printflags(fileflags, tcp->u_arg[1], "UF_???");
}
return 0;
}
tprintf("st_ctime=%s", sprinttime(statbuf->st_ctime));
#if HAVE_STRUCT_STAT_ST_FLAGS
tprintf(", st_flags=");
- if (statbuf->st_flags) {
- printflags(fileflags, statbuf->st_flags);
- } else
- tprintf("0");
+ printflags(fileflags, statbuf->st_flags, "UF_???");
#endif
#if HAVE_STRUCT_STAT_ST_ACLCNT
tprintf(", st_aclcnt=%d", statbuf->st_aclcnt);
tprintf("st_ctime=%s", sprinttime(statbuf.st_ctime));
#if HAVE_STRUCT_STAT_ST_FLAGS
tprintf(", st_flags=");
- if (statbuf.st_flags) {
- printflags(fileflags, statbuf.st_flags);
- } else
- tprintf("0");
+ printflags(fileflags, statbuf.st_flags, "UF_???");
#endif
#if HAVE_STRUCT_STAT_ST_ACLCNT
tprintf(", st_aclcnt=%d", statbuf.st_aclcnt);
printstr(tcp, tcp->u_arg[1], -1);
print_xattr_val(tcp, 0, tcp->u_arg[2], tcp->u_arg[3], tcp->u_arg[3]);
tprintf(", ");
- printflags(xattrflags, tcp->u_arg[4]);
+ printflags(xattrflags, tcp->u_arg[4], "XATTR_???");
}
return 0;
}
printstr(tcp, tcp->u_arg[1], -1);
print_xattr_val(tcp, 0, tcp->u_arg[2], tcp->u_arg[3], tcp->u_arg[3]);
tprintf(", ");
- printflags(xattrflags, tcp->u_arg[4]);
+ printflags(xattrflags, tcp->u_arg[4], "XATTR_???");
}
return 0;
}
else
tprintf("IPC_PRIVATE");
tprintf(", ");
- if (printflags(resource_flags, tcp->u_arg[1] & ~0777) != 0)
+ if (printflags(resource_flags, tcp->u_arg[1] & ~0777, NULL) != 0)
tprintf("|");
tprintf("%#lo", tcp->u_arg[1] & 0777);
}
tcp->u_arg[1]);
tprintf("}, %lu", tcp->u_arg[1]);
tprintf(", ");
- if (printflags(msg_flags, tcp->u_arg[2]) == 0)
- tprintf("0");
+ printflags(msg_flags, tcp->u_arg[2], "MSG_???");
#else /* !LINUX */
umove(tcp, tcp->u_arg[1], &mtype);
tprintf(", {%lu, ", mtype);
tcp->u_arg[2]);
tprintf("}, %lu", tcp->u_arg[2]);
tprintf(", ");
- if (printflags(msg_flags, tcp->u_arg[3]) == 0)
- tprintf("0");
+ printflags(msg_flags, tcp->u_arg[3], "MSG_???");
#endif /* !LINUX */
}
return 0;
tprintf("}, %lu", tcp->u_arg[1]);
tprintf(", %ld", tmp.msgtyp);
tprintf(", ");
- if (printflags(msg_flags, tcp->u_arg[2]) == 0)
- tprintf("0");
+ printflags(msg_flags, tcp->u_arg[2], "MSG_???");
#else /* !LINUX */
umove(tcp, tcp->u_arg[1], &mtype);
tprintf(", {%lu, ", mtype);
tprintf("}, %lu", tcp->u_arg[2]);
tprintf(", %ld", tcp->u_arg[3]);
tprintf(", ");
- if (printflags(msg_flags, tcp->u_arg[4]) == 0)
- tprintf("0");
+ printflags(msg_flags, tcp->u_arg[4], "MSG_???");
#endif /* !LINUX */
}
return 0;
tprintf("IPC_PRIVATE");
tprintf(", %lu", tcp->u_arg[1]);
tprintf(", ");
- if (printflags(resource_flags, tcp->u_arg[2] & ~0777) != 0)
+ if (printflags(resource_flags, tcp->u_arg[2] & ~0777, NULL) != 0)
tprintf("|");
tprintf("%#lo", tcp->u_arg[2] & 0777);
}
tprintf("IPC_PRIVATE");
tprintf(", %lu", tcp->u_arg[1]);
tprintf(", ");
- if (printflags(shm_resource_flags, tcp->u_arg[2] & ~0777) != 0)
+ if (printflags(shm_resource_flags, tcp->u_arg[2] & ~0777, NULL) != 0)
tprintf("|");
tprintf("%#lo", tcp->u_arg[2] & 0777);
}
#ifdef LINUX
tprintf(", %#lx", tcp->u_arg[3]);
tprintf(", ");
- if (printflags(shm_flags, tcp->u_arg[1]) == 0)
- tprintf("0");
+ printflags(shm_flags, tcp->u_arg[1], "SHM_???");
#else /* !LINUX */
tprintf(", %#lx", tcp->u_arg[1]);
tprintf(", ");
- if (printflags(shm_flags, tcp->u_arg[2]) == 0)
- tprintf("0");
+ printflags(shm_flags, tcp->u_arg[2], "SHM_???");
#endif /* !LINUX */
if (syserror(tcp))
return 0;
printpath(tcp, tcp->u_arg[0]);
tprintf(", ");
/* flags */
- printflags(openmodes, tcp->u_arg[1] + 1);
+ printflags(openmodes, tcp->u_arg[1] + 1, "O_???");
if (tcp->u_arg[1] & O_CREAT) {
# ifndef HAVE_MQUEUE_H
tprintf(", %lx", tcp->u_arg[2]);
return;
}
tprintf("{mq_flags=");
- printflags(openmodes, attr.mq_flags + 1);
+ printflags(openmodes, attr.mq_flags + 1, "O_???");
tprintf(", mq_maxmsg=%ld, mq_msgsize=%ld, mq_curmsg=%ld}",
attr.mq_maxmsg, attr.mq_msgsize, attr.mq_curmsgs);
# endif
/* len */
tprintf("%lu, ", u_arg[1]);
/* prot */
- printflags(mmap_prot, u_arg[2]);
+ printflags(mmap_prot, u_arg[2], "PROT_???");
tprintf(", ");
/* flags */
#ifdef MAP_TYPE
printxval(mmap_flags, u_arg[3] & MAP_TYPE, "MAP_???");
addflags(mmap_flags, u_arg[3] & ~MAP_TYPE);
#else
- printflags(mmap_flags, u_arg[3]);
+ printflags(mmap_flags, u_arg[3], "MAP_???");
#endif
/* fd (is always int, not long) */
tprintf(", %d, ", (int)u_arg[4]);
/* len */
tprintf("%lu, ", u_arg[1]);
/* prot */
- printflags(mmap_prot, u_arg[2]);
+ printflags(mmap_prot, u_arg[2], "PROT_???");
tprintf(", ");
/* flags */
#ifdef MAP_TYPE
printxval(mmap_flags, u_arg[3] & MAP_TYPE, "MAP_???");
addflags(mmap_flags, u_arg[3] & ~MAP_TYPE);
#else
- printflags(mmap_flags, u_arg[3]);
+ printflags(mmap_flags, u_arg[3], "MAP_???");
#endif
/* fd */
tprintf(", %ld, ", u_arg[4]);
if (entering(tcp)) {
tprintf("%#lx, %lu, ",
tcp->u_arg[0], tcp->u_arg[1]);
- if (!printflags(mmap_prot, tcp->u_arg[2]))
- tprintf("PROT_???");
+ printflags(mmap_prot, tcp->u_arg[2], "PROT_???");
}
return 0;
}
if (entering(tcp)) {
tprintf("%#lx, %lu, %lu, ", tcp->u_arg[0], tcp->u_arg[1],
tcp->u_arg[2]);
- printflags(mremap_flags, tcp->u_arg[3]);
+ printflags(mremap_flags, tcp->u_arg[3], "MREMAP_???");
}
return RVAL_HEX;
}
{
if (entering(tcp)) {
tprintf("%#lx, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
- printflags(madvise_flags, tcp->u_arg[2]);
+ printflags(madvise_flags, tcp->u_arg[2], "MADV_???");
}
return 0;
}
struct tcb *tcp;
{
if (entering(tcp)) {
- printflags(mlockall_flags, tcp->u_arg[0]);
+ printflags(mlockall_flags, tcp->u_arg[0], "MCL_???");
}
return 0;
}
/* len */
tprintf(", %lu, ", tcp->u_arg[1]);
/* flags */
- if (!printflags(mctl_sync, tcp->u_arg[2]))
- tprintf("MS_???");
+ printflags(mctl_sync, tcp->u_arg[2], "MS_???");
}
return 0;
}
tprintf(", %lu, ", tcp->u_arg[1]);
/* function */
function = tcp->u_arg[2];
- if (!printflags(mctl_funcs, function))
- tprintf("MC_???");
+ printflags(mctl_funcs, function, "MC_???");
/* arg */
arg = tcp->u_arg[3];
tprintf(", ");
switch (function) {
case MC_SYNC:
- if (!printflags(mctl_sync, arg))
- tprintf("MS_???");
+ printflags(mctl_sync, arg, "MS_???");
break;
case MC_LOCKAS:
- if (!printflags(mctl_lockas, arg))
- tprintf("MCL_???");
+ printflags(mctl_lockas, arg, "MCL_???");
break;
default:
tprintf("%#x", arg);
{
if (entering(tcp)) {
tprintf("%#lx, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
- printflags(mmap_prot, tcp->u_arg[2]);
+ printflags(mmap_prot, tcp->u_arg[2], "PROT_???");
tprintf(", %lu, ", tcp->u_arg[3]);
#ifdef MAP_TYPE
printxval(mmap_flags, tcp->u_arg[4] & MAP_TYPE, "MAP_???");
addflags(mmap_flags, tcp->u_arg[4] & ~MAP_TYPE);
#else
- printflags(mmap_flags, tcp->u_arg[4]);
+ printflags(mmap_flags, tcp->u_arg[4], "MAP_???");
#endif
}
return 0;
printxval(policies, tcp->u_arg[2], "MPOL_???");
get_nodes(tcp, tcp->u_arg[3], tcp->u_arg[4], 0);
tprintf(", ");
- if (printflags(mbindflags, tcp->u_arg[5]) == 0)
- tprintf("0");
+ printflags(mbindflags, tcp->u_arg[5], "MPOL_???");
}
return 0;
}
printxval(policies, pol, "MPOL_???");
get_nodes(tcp, tcp->u_arg[1], tcp->u_arg[2], syserror(tcp));
tprintf(", %#lx, ", tcp->u_arg[3]);
- if (printflags(mempolicyflags, tcp->u_arg[4]) == 0)
- tprintf("0");
+ printflags(mempolicyflags, tcp->u_arg[4], "MPOL_???");
}
return 0;
}
printcmsghdr(tcp, (unsigned long) msg.msg_control,
msg.msg_controllen);
tprintf(", msg_flags=");
- if (printflags(msg_flags, msg.msg_flags)==0)
- tprintf("0");
+ printflags(msg_flags, msg.msg_flags, "MSG_???");
#else /* !HAVE_STRUCT_MSGHDR_MSG_CONTROL */
tprintf("msg_accrights=%#lx, msg_accrightslen=%u",
(unsigned long) msg.msg_accrights, msg.msg_accrightslen);
printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
tprintf(", %lu, ", tcp->u_arg[2]);
/* flags */
- if (printflags(msg_flags, tcp->u_arg[3]) == 0)
- tprintf("0");
+ printflags(msg_flags, tcp->u_arg[3], "MSG_???");
}
return 0;
}
printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
tprintf(", %lu, ", tcp->u_arg[2]);
/* flags */
- if (printflags(msg_flags, tcp->u_arg[3]) == 0)
- tprintf("0");
+ printflags(msg_flags, tcp->u_arg[3], "MSG_???");
/* to address */
tprintf(", ");
printsock(tcp, tcp->u_arg[4], tcp->u_arg[5]);
printmsghdr(tcp, tcp->u_arg[1]);
/* flags */
tprintf(", ");
- if (printflags(msg_flags, tcp->u_arg[2]) == 0)
- tprintf("0");
+ printflags(msg_flags, tcp->u_arg[2], "MSG_???");
}
return 0;
}
printstr(tcp, tcp->u_arg[1], tcp->u_rval);
tprintf(", %lu, ", tcp->u_arg[2]);
- if (printflags(msg_flags, tcp->u_arg[3]) == 0)
- tprintf("0");
+ printflags(msg_flags, tcp->u_arg[3], "MSG_???");
}
return 0;
}
/* len */
tprintf(", %lu, ", tcp->u_arg[2]);
/* flags */
- if (printflags(msg_flags, tcp->u_arg[3]) == 0)
- tprintf("0");
+ printflags(msg_flags, tcp->u_arg[3], "MSG_???");
/* from address, len */
if (!tcp->u_arg[4] || !tcp->u_arg[5]) {
if (tcp->u_arg[4] == 0)
printmsghdr(tcp, tcp->u_arg[1]);
/* flags */
tprintf(", ");
- if (printflags(msg_flags, tcp->u_arg[2]) == 0)
- tprintf("0");
+ printflags(msg_flags, tcp->u_arg[2], "MSG_???");
}
return 0;
}
}
tprintf("~(");
- if (printflags(icmpfilterflags, ~filter.data) == 0)
- tprintf("0");
+ printflags(icmpfilterflags, ~filter.data, "ICMP_???");
tprintf(")");
}
#endif /* ICMP_FILTER */
tprintf(", {...}");
else {
tprintf(", {pr_flags=");
- if (!printflags(proc_status_flags, status.pr_flags))
- tprintf("0");
+ printflags(proc_status_flags, status.pr_flags, "PR_???");
if (status.pr_why) {
tprintf(", pr_why=");
printxval(proc_status_why, status.pr_why,
tprintf(", {...}");
else {
tprintf(", {pr_flags=");
- if (!printflags(proc_run_flags, run.pr_flags))
- tprintf("0");
+ printflags(proc_run_flags, run.pr_flags, "PR???");
tprintf(", ...}");
}
return 1;
tprintf(", [?]");
else {
tprintf(", [");
- if (!printflags(proc_status_flags, val))
- tprintf("0");
+ printflags(proc_status_flags, val, "PR_???");
tprintf("]");
}
return 1;
tprintf(", {...}");
else {
tprintf(", {state=%d, flags=", status.state);
- if (!printflags(proc_status_flags, status.flags))
- tprintf("0");
+ printflags(proc_status_flags, status.flags, "PF_???");
tprintf(", events=");
- printflags(proc_status_why, status.events);
+ printflags(proc_status_why, status.events, "S_???");
tprintf(", why=");
printxval(proc_status_why, status.why, "S_???");
tprintf(", val=%lu}", status.val);
}
return 1;
case PIOCBIS:
- if (arg) {
- tprintf(", ");
- printflags(proc_status_why, arg);
- } else
- tprintf(", 0");
+ tprintf(", ");
+ printflags(proc_status_why, arg, "S_???");
return 1;
return 1;
case PIOCSFL:
- if (arg) {
- tprintf(", ");
- printflags(proc_status_flags, arg);
- } else
- tprintf(", 0");
+ tprintf(", ");
+ printflags(proc_status_flags, arg, "PF_???");
return 1;
case PIOCGFL:
if (syserror(tcp))
tprintf(", {...}");
else {
tprintf(", [");
- if (val)
- printflags(proc_status_flags, val);
- else
- tprintf("0");
+ printflags(proc_status_flags, val, "PF_???");
tprintf("]");
}
return 1;
tcp->u_arg[ARG_STACKSIZE]);
# endif
tprintf("flags=");
- if (printflags(clone_flags, flags &~ CSIGNAL) == 0)
- tprintf("0");
+ printflags(clone_flags, flags &~ CSIGNAL, NULL);
if ((flags & CSIGNAL) != 0)
tprintf("|%s", signame(flags & CSIGNAL));
if ((flags & (CLONE_PARENT_SETTID|CLONE_CHILD_SETTID
exited = printstatus(status);
/* options */
tprintf(", ");
- if (!printflags(wait4_options, tcp->u_arg[2]))
- tprintf("0");
+ printflags(wait4_options, tcp->u_arg[2], "W???");
if (n == 4) {
tprintf(", ");
/* usage */
printsiginfo(&si, verbose (tcp));
/* options */
tprintf(", ");
- if (!printflags(wait4_options, tcp->u_arg[3]))
- tprintf("0");
+ printflags(wait4_options, tcp->u_arg[3], "W???");
if (tcp->u_nargs > 4) {
/* usage */
tprintf(", ");
tprintf("{%#lx, ", (unsigned long) sv.sv_handler);
printsigmask(&sv.sv_mask, 0);
tprintf(", ");
- if (!printflags(sigvec_flags, sv.sv_flags))
- tprintf("0");
+ printflags(sigvec_flags, sv.sv_flags, "SV_???");
tprintf("}");
}
}
printsigmask(&sigset, 0);
#endif
tprintf(", ");
- if (!printflags(sigact_flags, sa.sa_flags))
- tprintf("0");
+ printflags(sigact_flags, sa.sa_flags, "SA_???");
#ifdef SA_RESTORER
if (sa.sa_flags & SA_RESTORER)
tprintf(", %p", sa.sa_restorer);
tprintf("{");
if (!abbrev(tcp)) {
tprintf("uc_flags=");
- if (!printflags(ucontext_flags, ucp->uc_flags))
- tprintf("0");
+ printflags(ucontext_flags, ucp->uc_flags, "UC_???");
tprintf(", uc_link=%#lx, ", (unsigned long) ucp->uc_link);
}
tprintf("uc_sigmask=");
tprintf(", uc_stack={ss_sp=%#lx, ss_size=%d, ss_flags=",
(unsigned long) ucp->uc_stack.ss_sp,
ucp->uc_stack.ss_size);
- if (!printflags(sigaltstack_flags, ucp->uc_stack.ss_flags))
- tprintf("0");
+ printflags(sigaltstack_flags, ucp->uc_stack.ss_flags, "SS_???");
tprintf("}");
}
tprintf(", ...}");
if (umove(tcp, addr, &ss) < 0)
return -1;
tprintf("{ss_sp=%#lx, ss_flags=", (unsigned long) ss.ss_sp);
- if (!printflags(sigaltstack_flags, ss.ss_flags))
- tprintf("0");
+ printflags(sigaltstack_flags, ss.ss_flags, "SS_???");
tprintf(", ss_size=%lu}", (unsigned long) ss.ss_size);
return 0;
}
memcpy(&sigset, &sa.sa_mask, sizeof(sigset));
printsigmask(&sigset, 1);
tprintf(", ");
- if (!printflags(sigact_flags, sa.sa_flags))
- tprintf("0");
+ printflags(sigact_flags, sa.sa_flags, "SA_???");
#ifdef SA_RESTORER
if (sa.sa_flags & SA_RESTORER)
tprintf(", %p", sa.sa_restorer);
break;
case SIOCGIFFLAGS:
tprintf("ifr_flags=");
- printflags(iffflags, ifr.ifr_flags);
+ printflags(iffflags, ifr.ifr_flags, "IFF_???");
break;
case SIOCGIFMETRIC:
tprintf("ifr_metric=%d", ifr.ifr_metric);
for (i = 1; i < 3; i++)
printstrbufarg(tcp, tcp->u_arg[i], 0);
/* flags */
- if (!printflags(msgflags, tcp->u_arg[3]))
- tprintf("0");
+ printflags(msgflags, tcp->u_arg[3], "RS_???");
}
return 0;
}
tprintf("[?]");
else {
tprintf("[");
- if (!printflags(msgflags, flags))
- tprintf("0");
+ printflags(msgflags, flags, "RS_???");
tprintf("]");
}
/* decode return value */
/* band */
tprintf("%ld, ", tcp->u_arg[3]);
/* flags */
- if (!printflags(pmsgflags, tcp->u_arg[4]))
- tprintf("0");
+ printflags(pmsgflags, tcp->u_arg[4], "MSG_???");
}
return 0;
}
tprintf("[?]");
else {
tprintf("[");
- if (!printflags(pmsgflags, flags))
- tprintf("0");
+ printflags(pmsgflags, flags, "MSG_???");
tprintf("]");
}
/* decode return value */
continue;
}
tprintf("{fd=%d, events=", pollp[i].fd);
- if (!printflags(pollflags, pollp[i].events))
- tprintf("0");
+ printflags(pollflags, pollp[i].events,
+ "POLL???");
if (!syserror(tcp) && pollp[i].revents) {
tprintf(", revents=");
- if (!printflags(pollflags,
- pollp[i].revents))
- tprintf("0");
+ printflags(pollflags, pollp[i].revents,
+ "POLL???");
}
tprintf("}");
}
GET (T_OPTMGMT_REQ, optmgmt_req);
COMMA ();
tprintf ("MGMT=");
- printflags (transport_user_flags, m.optmgmt_req.MGMT_flags);
+ printflags (transport_user_flags, m.optmgmt_req.MGMT_flags,
+ "T_???");
STRUCT (optmgmt_req, OPT, print_optmgmt);
break;
#endif
tprintf (", CURRENT=");
printxval (ts_state, m.info_ack.CURRENT_state, "TS_???");
tprintf (", PROVIDER=");
- printflags (provider_flags, m.info_ack.PROVIDER_flag);
+ printflags (provider_flags, m.info_ack.PROVIDER_flag, "???");
break;
#endif
#ifdef T_BIND_ACK
GET (T_OPTMGMT_ACK, optmgmt_ack);
COMMA ();
tprintf ("MGMT=");
- printflags (transport_user_flags, m.optmgmt_ack.MGMT_flags);
+ printflags (transport_user_flags, m.optmgmt_ack.MGMT_flags,
+ "T_???");
STRUCT (optmgmt_ack, OPT, print_optmgmt);
break;
#endif
tprintf(", {...}");
else {
tprintf(", {bi_pri=%d, bi_flag=", bi.bi_pri);
- if (!printflags(stream_flush_options, bi.bi_flag))
- tprintf("0");
+ printflags(stream_flush_options, bi.bi_flag, "FLUSH???");
tprintf("}");
}
return 1;
case I_SETSIG:
/* argument is a set of flags */
tprintf(", ");
- if (!printflags(stream_setsig_flags, arg))
- tprintf("0");
+ printflags(stream_setsig_flags, arg, "S_???");
return 1;
case I_GETSIG:
/* argument is a pointer to a set of flags */
tprintf(", [");
if (umove(tcp, arg, &val) < 0)
tprintf("?");
- else if (!printflags(stream_setsig_flags, val))
- tprintf("0");
+ else
+ printflags(stream_setsig_flags, val, "S_???");
tprintf("]");
return 1;
case I_PEEK:
tprintf(", databuf=");
printstrbuf(tcp, &sp.databuf, 1);
tprintf(", flags=");
- if (!printflags(msgflags, sp.flags))
- tprintf("0");
+ printflags(msgflags, sp.flags, "RS_???");
tprintf("}");
return 1;
case I_SRDOPT:
tprintf(", databuf=");
printstrbuf(tcp, &sfi.databuf, 1);
tprintf(", flags=");
- if (!printflags(msgflags, sfi.flags))
- tprintf("0");
+ printflags(msgflags, sfi.flags, "RS_???");
tprintf(", filedes=%d, offset=%d}", sfi.fildes, sfi.offset);
return 1;
#ifdef I_SWROPT
case I_SWROPT:
/* argument is a set of flags */
tprintf(", ");
- if (!printflags(stream_write_flags, arg))
- tprintf("0");
+ printflags(stream_write_flags, arg, "SND???");
return 1;
#endif /* I_SWROPT */
#ifdef I_GWROPT
tprintf(", [");
if (umove(tcp, arg, &val) < 0)
tprintf("?");
- else if (!printflags(stream_write_flags, arg))
- tprintf("0");
+ else
+ printflags(stream_write_flags, arg, "SND???");
tprintf("]");
return 1;
#endif /* I_GWROPT */
else
tprintf("%#lx", tcp->u_arg[2]);
tprintf(", ");
- printflags(mount_flags, tcp->u_arg[3]);
+ printflags(mount_flags, tcp->u_arg[3], "MS_???");
tprintf(", %#lx", tcp->u_arg[4]);
}
return 0;
struct tcb *tcp;
{
if (entering(tcp)) {
- if (!printflags(bootflags1, tcp->u_arg[0]))
- tprintf("LINUX_REBOOT_MAGIC???");
+ printflags(bootflags1, tcp->u_arg[0], "LINUX_REBOOT_MAGIC_???");
tprintf(", ");
- if (!printflags(bootflags2, tcp->u_arg[1]))
- tprintf("LINUX_REBOOT_MAGIC???");
+ printflags(bootflags2, tcp->u_arg[1], "LINUX_REBOOT_MAGIC_???");
tprintf(", ");
- if (!printflags(bootflags3, tcp->u_arg[2]))
- tprintf("LINUX_REBOOT_CMD_???");
+ printflags(bootflags3, tcp->u_arg[2], "LINUX_REBOOT_CMD_???");
if (tcp->u_arg[2] == LINUX_REBOOT_CMD_RESTART2) {
tprintf(", ");
printstr(tcp, tcp->u_arg[3], -1);
printxval(cacheflush_scope, tcp->u_arg[1], "FLUSH_SCOPE_???");
tprintf(", ");
/* flags */
- printflags(cacheflush_flags, tcp->u_arg[2]);
+ printflags(cacheflush_flags, tcp->u_arg[2], "FLUSH_CACHE_???");
/* len */
tprintf(", %lu", tcp->u_arg[3]);
}
struct tcb *tcp;
{
if (entering(tcp)) {
- if (!printflags(bootflags, tcp->u_arg[0]))
- tprintf("RB_???");
+ printflags(bootflags, tcp->u_arg[0], "RB_???");
if (tcp->u_arg[0] & RB_STRING) {
printstr(tcp, tcp->u_arg[1], -1);
}
}
printstr(tcp, tcp->u_arg[1], -1);
tprintf(", ");
- if (!printflags(mountflags, tcp->u_arg[2] & ~M_NEWTYPE))
- tprintf("0");
+ printflags(mountflags, tcp->u_arg[2] & ~M_NEWTYPE, "M_???");
tprintf(", ");
if (strcmp(type, "4.2") == 0) {
tprintf("[");
printsock(tcp, (int) a.addr);
tprintf(", ");
- if (!printflags(nfsflags, a.flags))
- tprintf("NFSMNT_???");
+ printflags(nfsflags, a.flags, "NFSMNT_???");
tprintf(", ws:%u,rs:%u,to:%u,re:%u,",
a.wsize, a.rsize, a.timeo, a.retrans);
if (a.flags & NFSMNT_HOSTNAME && a.hostname)
tprintf(", ");
printpath(tcp, tcp->u_arg[1]);
tprintf(", ");
- printflags(mount_flags, tcp->u_arg[2]);
+ printflags(mount_flags, tcp->u_arg[2], "MS_???");
if (tcp->u_arg[2] & (MS_FSS | MS_DATA)) {
tprintf(", ");
tprintf("%ld", tcp->u_arg[3]);
tprintf("addr=");
printsock(tcp, (int) args.addr);
tprintf(", flags=");
- if (!printflags(nfs_flags, args.flags))
- tprintf("NFSMNT_???");
+ printflags(nfs_flags, args.flags, "NFSMNT_???");
tprintf(", hostname=");
printstr(tcp, (int) args.hostname, -1);
tprintf(", ...}");
tprintf(", ");
printpath(tcp, tcp->u_arg[1]);
tprintf(", ");
- printflags(mount_flags, tcp->u_arg[2]);
+ printflags(mount_flags, tcp->u_arg[2], "MS_???");
/* The doc sez that the file system type is given as a
fsindex, and we should use sysfs to work out the name.
This appears to be untrue for UW. Maybe it's untrue
tprintf("%#lx", tcp->u_arg[4]);
else {
tprintf("{ flags=");
- if (!printflags(vxfs_flags, args.mflags))
- tprintf("0x%08x", args.mflags);
+ printflags(vxfs_flags, args.mflags, "VX_MS_???");
if (args.mflags & VX_MS_SNAPSHOT) {
tprintf (", snapof=");
printstr (tcp,
printsock(tcp, (int) addr.buf, addr.len);
}
tprintf(", flags=");
- if (!printflags(nfs_flags, args.flags))
- tprintf("NFSMNT_???");
+ printflags(nfs_flags, args.flags, "NFSMNT_???");
tprintf(", hostname=");
printstr(tcp, (int) args.hostname, -1);
tprintf(", ...}");
tprintf("???");
else {
tprintf("{");
- printflags(capabilities, arg1->effective);
+ printflags(capabilities, arg1->effective, "CAP_???");
tprintf(", ");
- printflags(capabilities, arg1->permitted);
+ printflags(capabilities, arg1->permitted, "CAP_???");
tprintf(", ");
- printflags(capabilities, arg1->inheritable);
+ printflags(capabilities, arg1->inheritable, "CAP_???");
tprintf("}");
}
}
tprintf("???");
else {
tprintf("{");
- printflags(capabilities, arg1->effective);
+ printflags(capabilities, arg1->effective, "CAP_???");
tprintf(", ");
- printflags(capabilities, arg1->permitted);
+ printflags(capabilities, arg1->permitted, "CAP_???");
tprintf(", ");
- printflags(capabilities, arg1->inheritable);
+ printflags(capabilities, arg1->inheritable, "CAP_???");
tprintf("}");
}
}
if (umove(tcp, arg, &arg) < 0)
return 0;
tprintf(", [");
- if (!printflags(modem_flags, arg))
- tprintf("0");
+ printflags(modem_flags, arg, "TIOCM_???");
tprintf("]");
return 1;
#endif /* TIOCMGET */
if (entering(tcp)) {
printxval(clocknames, tcp->u_arg[0], "CLOCK_???");
tprintf(", ");
- if (printflags(clockflags, tcp->u_arg[1]) == 0)
- tprintf("0");
+ printflags(clockflags, tcp->u_arg[1], "TIMER_???");
tprintf(", ");
printtv(tcp, tcp->u_arg[2]);
tprintf(", ");
{
if (entering(tcp)) {
tprintf("%#lx, ", tcp->u_arg[0]);
- if (printflags(clockflags, tcp->u_arg[1]) == 0)
- tprintf("0");
+ printflags(clockflags, tcp->u_arg[1], "TIMER_???");
tprintf(", ");
printitv(tcp, tcp->u_arg[2]);
tprintf(", ");
printxval(xlat, val, dflt)
const struct xlat *xlat;
int val;
-char *dflt;
+const char *dflt;
{
char *str = xlookup(xlat, val);
}
int
-printflags(xlat, flags)
+printflags(xlat, flags, dflt)
const struct xlat *xlat;
int flags;
+const char *dflt;
{
int n;
char *sep;
n++;
}
}
- if (flags) {
- tprintf("%s%#x", sep, flags);
- n++;
+
+ if (n) {
+ if (flags) {
+ tprintf("%s%#x", sep, flags);
+ n++;
+ }
+ } else {
+ if (flags) {
+ tprintf("%#x", flags);
+ if (dflt)
+ tprintf(" /* %s */", dflt);
+ } else {
+ if (dflt)
+ tprintf("0");
+ }
}
+
return n;
}