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
49typedef 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
83void PERF_Config_Init(PERF_Config *sConfig);
84void PERF_Config_Read(PERF_Config *sConfig, char const *tag);
85void PERF_Config_Release(PERF_Config *sConfig);
86
87#endif
88
89