Changed Makefile.am to enable 'make dist' of files in hlos_common for Linux
[ipc/ipcdev.git] / qnx / src / ipc3x_dev / perfutils / PerfUtils.h
1 /**
2  *  @file   PerfUtils.h
3  *
4  *  @brief      Performance functions
5  *
6  *              This will have the definitions for the performance measurement
7  *              functions.
8  *
9  *  ============================================================================
10  *
11  *  Copyright (c) 2009-2012, Texas Instruments Incorporated
12  *
13  *  Redistribution and use in source and binary forms, with or without
14  *  modification, are permitted provided that the following conditions
15  *  are met:
16  *
17  *  *  Redistributions of source code must retain the above copyright
18  *     notice, this list of conditions and the following disclaimer.
19  *
20  *  *  Redistributions in binary form must reproduce the above copyright
21  *     notice, this list of conditions and the following disclaimer in the
22  *     documentation and/or other materials provided with the distribution.
23  *
24  *  *  Neither the name of Texas Instruments Incorporated nor the names of
25  *     its contributors may be used to endorse or promote products derived
26  *     from this software without specific prior written permission.
27  *
28  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
29  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
30  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
31  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
32  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
33  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
34  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
35  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
36  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
37  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
38  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39  *  Contact information for paper mail:
40  *  Texas Instruments
41  *  Post Office Box 655303
42  *  Dallas, Texas 75265
43  *  Contact information:
44  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
45  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
46  *  ============================================================================
47  *
48  */
51 #ifndef PERFUTILS_H
52 #define PERFUTILS_H
54 /* Linux specific header files */
55 #include <sys/time.h>
57 /* Standard headers */
58 #include <stdio.h>
61 #if defined (__cplusplus)
62 extern "C" {
63 #endif
66 #define SYSM3_PROC 2
67 #define APPM3_PROC 3
70 /* USING MEM_IPC_HEAP2 make sure that,not using the
71  * this address
72  */
74 #define PERF_UTILS_GPTIMER_TEN         (10)
75 #define TOTAL_PERF_BUFFER_SIZE         (SYSM3_PERF_BUFFER_SIZE \
76                                             + APPM3_PERF_BUFFER_SIZE)
78 // Must match struct definition on Ducati side
79 #define MAX_ENTRIES_PER_FUNCTION    200
80 #define MAX_ENTRIES_PER_KERNEL_FUNC 64
81 #define MAX_NUM_RECORDS             64
82 #define GPTIMER10 10
85 /* =============================================================================
86  *  APIs
87  * =============================================================================
88  */
89 int PerfUtils_init(void);
90 int PerfUtils_destroy (void);
91 void PerfUtils_addFxn(unsigned int fxnIndex, char * fxnName, unsigned int clientproc, unsigned int serverproc, unsigned int msgsize);
92 int PerfUtils_enter (unsigned int fxnIndex);
93 int PerfUtils_exit (unsigned int fxnIndex);
94 void PerfUtils_printReport (int printLevel);
95 void PerfUtils_startGpTimer (int gpTimerNo);
96 void PerfUtils_stopGpTimer (int gpTimerNo);
97 #if defined (__cplusplus)
98 }
99 #endif /* defined (__cplusplus) */
101 #endif /* ifndef PERFUTILS_H */