1 
2 /*
3  * Copyright (C) Texas Instruments - http://www.ti.com/
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
20  */
21 #ifndef __PERF_CONFIG_H__
22 #define __PERF_CONFIG_H__
23 
24 /******************************************************************************
25     CONFIGURATION
26 ******************************************************************************/
27 
28 #define TRUE (1)
29 #define FALSE (0)
30 
31 #ifdef _WIN32
32     #define PERF_CONFIG_FILE "C:\\perf.ini"
33     #define strcasecmp stricmp
34     #define strncasecmp strnicmp
35 #else
36     #define PERF_CONFIG_FILE "./perf.ini"
37 #endif
38 
39 #define PERF_CONFIG_LINELENGTH 1024
40 
41 /** in order to prevent writing into the same log files during
42 *   operations, each component writes its log or debug into the
43 *   following files:
44 *
45 *   base_PID_handle.pref - for binary logs
46 *   base_PID_handle.log  - for text logs
47 *  */
48 
49 typedef struct PERF_Config
50 {
51     /* logging interface */
52     unsigned long  mask;           /* bitmask for enabled components */
53     unsigned long  buffer_size;    /* log buffer size */
54     unsigned long  delayed_open;   /* open trace file only when first block
55                                       is written */
56     char          *trace_file;     /* file base to save trace */
57 
58     /* debug interface */
59     unsigned long  csv;            /* comma-separated value output */
60     unsigned long  debug;          /* debug flag - will print some events,
61                                       but not all */
62     unsigned long  detailed_debug; /* debug flag - will print ALL events */
63 
64     char          *log_file;       /* file to save all event logs */
65 
66     /* replay interface */
67     char          *replay_file;    /* file to print replayed event logs */
68 
69     /* real-time interface */
70     unsigned long  realtime;       /* real-time enabled flag */
71     unsigned long  rt_granularity; /* real-time granularity in seconds
72                                       valid range 1 - 15 */
73     unsigned long  rt_detailed;    /* real-time detailed flag:
74                                       0: will only report preferred rates
75                                       1: will report all rates to/from Hardware,
76                                          LLMM, HLMM
77                                       2: will report all rates measured */
78     unsigned long  rt_debug;       /* print current statistics on every update */
79     unsigned long  rt_summary;     /* print summary on close */
80     char          *rt_file;        /* file to save all real-time logs */
81 } PERF_Config;
82 
83 void PERF_Config_Init(PERF_Config *sConfig);
84 void PERF_Config_Read(PERF_Config *sConfig, char const *tag);
85 void PERF_Config_Release(PERF_Config *sConfig);
86 
87 #endif
88 
89