void __print_Command(FILE *fOut,
                     PERF_Private *perf,
                     unsigned long ulCommand,
					 unsigned long ulArgument,
                     PERF_MODULETYPE eModule)
{
    /* get debug private structure */
    PERF_PRINT_Private *me = perf->cip.pDebug;

    unsigned long module = ((unsigned long) eModule) & PERF_ModuleMask;
    int sendIx   = (PERF_GetSendRecv ((unsigned long) eModule) >> 28) & 3;
    int sending  = PERF_IsSending(((unsigned long) eModule) & ~PERF_ModuleMask);

    fprintf(fOut, "%s%ld.%06ld%sCommand%s%s%s%s%s0x%lx%s0x%lx%s%s%s" __LINE_END__,
            me->prompt, TIME_SECONDS(perf->time), TIME_MICROSECONDS(perf->time),
            me->info,
            me->csv ? "," : "(",
            sendRecvTxt[sendIx],
            me->csv ? "," : sending ? " to=" : " from=",
            module < PERF_ModuleMax ? PERF_ModuleTypes[module] : "INVALID",
            me->csv ? "," : " cmd=",
            ulCommand,
			me->csv ? "," : "(",
			ulArgument,
            me->csv ? "," : ") = ",
            (ulCommand < PERF_CommandMax ? PERF_CommandTypes[ulCommand] : "<unknown>" ),
            me->csv ? "" : ")");

    print_print_location(perf, fOut, 5);
}
void __print_Buffer(FILE *fOut,
                    PERF_Private *perf,
                    unsigned long ulAddress1,
                    unsigned long ulAddress2,
                    unsigned long ulSize,
                    PERF_MODULETYPE eModule)
{
    
    /* get debug private structure */
    PERF_PRINT_Private *me = perf->cip.pDebug;

    unsigned long module1 = ((unsigned long) eModule) & PERF_ModuleMask;
    unsigned long module2 = (((unsigned long) eModule) >> PERF_ModuleBits) & PERF_ModuleMask;
    int xfering  = PERF_IsXfering ((unsigned long) eModule);
    int sendIx   = (PERF_GetSendRecv ((unsigned long) eModule) >> 28) & 3;
    int sending  = PERF_IsSending ((unsigned long) eModule);
    int frame    = PERF_IsFrame   ((unsigned long) eModule);
    int multiple = PERF_IsMultiple((unsigned long) eModule);

    if (!xfering && sending) module2 = module1;

    fprintf(fOut, "%s%ld.%06ld%sBuffer%s%s%s%s%s%s%s%s%s0x%lx%s0x%lx",
            me->prompt, TIME_SECONDS(perf->time), TIME_MICROSECONDS(perf->time),
            me->info,
            me->csv ? "," : "(",           
            xfering ? "xfering" : sendRecvTxt[sendIx],
            me->csv ? "," : " ",
            frame ? "frame" : "buffer",
            me->csv ? "," : (xfering || !sending) ? " from=" : "",
            (xfering || !sending) ?
            (module1 < PERF_ModuleMax ? PERF_ModuleTypes[module1] : "INVALID") :
            "",
            me->csv ? "," : (xfering || sending) ? " to=" : "",
            (xfering || sending) ?
            (module2 < PERF_ModuleMax ? PERF_ModuleTypes[module2] : "INVALID") :
            "",
            me->csv ? "," : " size=",
            ulSize,
            me->csv ? "," : " addr=",
            ulAddress1);

    /* print second address if supplied */
    if (multiple)
    {
        fprintf(fOut, "%s0x%lx",
                me->csv ? "," : " addr=",
                ulAddress2);
    }

    fprintf(fOut, "%s" __LINE_END__,
            me->csv ? "" : ")");

    print_print_location(perf, fOut, 6 + (multiple ? 1 : 0));
}
Exemple #3
0
static void print_rate_info(FILE *fOut,
                            unsigned long ID, PERF_MODULETYPE modulesAndFlags,
                            unsigned long size, long n)
{
    unsigned long module1 = modulesAndFlags & PERF_ModuleMask;
    unsigned long module2 = (modulesAndFlags >> PERF_ModuleBits) & PERF_ModuleMask;
    int xfering  = PERF_IsXfering(modulesAndFlags);
    int sendIx   = (PERF_GetSendRecv(modulesAndFlags) >> 28) & 3;
    int sending  = PERF_IsSending(modulesAndFlags);
    int frame    = PERF_IsFrame  (modulesAndFlags);

    fprintf(fOut, "%c%c%c%c %s %ld+ %s[0x%lX]%s%s%s%s",
            PERF_FOUR_CHARS(ID),
            xfering ? "xfering" : sendRecvTxt[sendIx],
            n,
            frame ? "frames" : "buffers",
            size,
            (xfering || !sending) ? " from " : " to ",
            (module1 < PERF_ModuleMax ? PERF_ModuleTypes[module1] : "INVALID"),
            xfering ? " to " : "",
            xfering ? (module2 < PERF_ModuleMax ? PERF_ModuleTypes[module2] : "INVALID") : "");
}