1fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
2fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*
3fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Copyright (C) Texas Instruments - http://www.ti.com/
4fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
5fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * This library is free software; you can redistribute it and/or
6fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * modify it under the terms of the GNU Lesser General Public
7fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * License as published by the Free Software Foundation; either
8fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * version 2.1 of the License, or (at your option) any later version.
9fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
10fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
11fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * This library is distributed in the hope that it will be useful,
12fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * but WITHOUT ANY WARRANTY; without even the implied warranty of
13fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Lesser General Public License for more details.
15fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
16fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
17fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * You should have received a copy of the GNU Lesser General Public
18fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * License along with this library; if not, write to the Free Software
19fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
20fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
21fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef __PERF_PRINT_H
22fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define __PERF_PRINT_H
23fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
24fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include "stdio.h"
25fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include "perf_obj.h"
26fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ============================================================================
27fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   DEBUG STRUCTURES
28fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin============================================================================ */
29fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct PERF_PRINT_Private
30fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
31fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    char *info;                    /* PERF instance information text */
32fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    char *prompt;                  /* PERF prompt */
33fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    FILE *fDebug;                  /* file to event debugs */
34fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    FILE *fPrint;                  /* file to event prints (Buffer) */
35fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* NOTE: fPrint == fDebug or fPrint == NULL */
36fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    int   csv;                     /* CSV format */
37fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef __PERF_LOG_LOCATION__
38fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* location information to be printed */
39fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    const char *szFile;
40fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    const char *szFunc;
41fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    unsigned long ulLine;
42fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
43fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} PERF_PRINT_Private;
44fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
45fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinvoid
46fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinPERF_PRINT_done(PERF_Private *perf);
47fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
48fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinPERF_PRINT_Private *
49fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinPERF_PRINT_create(PERF_Private *perf, PERF_Config *config,
50fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                  PERF_MODULETYPE eModule);
51fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
52fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinvoid
53fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin__print_Boundary(FILE *fOut,
54fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                 PERF_Private *perf,PERF_BOUNDARYTYPE eBoundary);
55fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
56fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinvoid
57fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin__print_Buffer(FILE *fOut,
58fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin               PERF_Private *perf,unsigned long ulAddress1,
59fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin               unsigned long ulAddress2,
60fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin               unsigned long ulSize,
61fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin               PERF_MODULETYPE eModule);
62fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
63fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinvoid
64fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin__print_Command(FILE *fOut,
65fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                PERF_Private *perf,
66fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                unsigned long ulCommand,
67fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                unsigned long ulArgument,
68fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                PERF_MODULETYPE eModule);
69fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
70fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinvoid
71fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin__print_Create(FILE *fOut,
72fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin               PERF_Private *perf);
73fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
74fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinvoid
75fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin__print_Done(FILE *fOut,
76fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin             PERF_Private *perf);
77fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
78fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinvoid
79fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin__print_Log(FILE *fOut,
80fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            PERF_Private *perf,
81fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            unsigned long ulData1, unsigned long ulData2,
82fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            unsigned long ulData3);
83fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
84fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinvoid
85fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin__print_SyncAV(FILE *fOut,
86fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin               PERF_Private *perf,
87fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin               float pfTimeAudio,
88fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin               float pfTimeVideo,
89fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin               PERF_SYNCOPTYPE eSyncOperation);
90fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
91fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinvoid
92fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin__print_ThreadCreated(FILE *fOut,
93fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                      PERF_Private *perf,
94fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                      unsigned long ulThreadID,
95fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                      unsigned long ulThreadName);
96fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
97fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef __PERF_LOG_LOCATION__
98fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinvoid
99fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin__print_Location(PERF_Private *perf,
100fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                 char const *szFile,
101fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                 unsigned long ulLine,
102fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                 char const *szFunc);
103fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
104fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
105fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
106fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
107