void printmsg(message *msg, struct proc *src, struct proc *dst, char operation, int printparams) { const char *name; int mtype = msg->m_type, mightbecall = 0; #ifdef DEBUG_DUMPIPC_NAMES { char *names[] = DEBUG_DUMPIPC_NAMES; int nnames = sizeof(names)/sizeof(names[0]); /* skip printing messages for messages neither to * or from DEBUG_DUMPIPC_EP if it is defined; either * can be NULL to indicate kernel */ if(!(src && namematch(names, nnames, src->p_name)) && !(dst && namematch(names, nnames, dst->p_name))) { return; } } #endif /* source, destination and message type */ printf("%c", operation); printproc(src); printproc(dst); name = mtypename(mtype, &mightbecall); if (name) { printf(" %s(%d/0x%x)", name, mtype, mtype); } else { printf(" %d/0x%x", mtype, mtype); } if (mightbecall && printparams) { #define IDENT(x, y) if (mtype == x) printparam(#y, &msg->y, sizeof(msg->y)); #include "kernel/extracted-mfield.h" #undef IDENT } printf("\n"); }
PRIVATE void printmsg(message *msg, struct proc *src, struct proc *dst, char operation, int iscall, int printparams) { const char *name; int mtype = msg->m_type; /* source, destination and message type */ printf("%c", operation); printproc(src); printproc(dst); name = mtypename(mtype, iscall); if (name) { printf(" %s(%d)", name, mtype); } else { printf(" %d", mtype); } if (iscall && printparams) { #define IDENT(x, y) if (mtype == x) printparam(#y, &msg->y, sizeof(msg->y)); #include "extracted-mfield.h" #undef IDENT } printf("\n"); }