source: svn/newcon3bcm2_21bu/magnum/commonutils/xdm/bxdm_pp_timer.h @ 74

Last change on this file since 74 was 74, checked in by phkim, 10 years ago
  1. phkim
  2. zasc
  3. 변경 내용
    • CT_ChMapUpdatePMTAC3AudioDescriptor 메모리 leak 버그 수정
  • Property svn:executable set to *
File size: 4.2 KB
Line 
1/***************************************************************************
2 *     Copyright (c) 2003-2010, Broadcom Corporation
3 *     All Rights Reserved
4 *     Confidential Property of Broadcom Corporation
5 *
6 *  THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE
7 *  AGREEMENT  BETWEEN THE USER AND BROADCOM.  YOU HAVE NO RIGHT TO USE OR
8 *  EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT.
9 *
10 * $brcm_Workfile: bxdm_pp_timer.h $
11 * $brcm_Revision: Hydra_Software_Devel/2 $
12 * $brcm_Date: 6/29/10 11:25a $
13 *
14 * [File Description:]
15 *
16 * Revision History:
17 *
18 * $brcm_Log: /magnum/commonutils/xdm/bxdm_pp_timer.h $
19 *
20 * Hydra_Software_Devel/2   6/29/10 11:25a btosi
21 * SW7405-4365: revamped the timer code to selectively enable the function
22 * and callback timing
23 *
24 * Hydra_Software_Devel/1   2/16/10 10:51a nilesh
25 * SW7405-2993: Initial XDM version
26 *
27 ***************************************************************************/
28
29#ifndef bxdm_pp_TIMER_H__
30#define bxdm_pp_TIMER_H__
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
36/*
37 * Set to a non zero value to compile in the function timing code.
38 * To reduce overhead, only enable this code when profiling the DM.
39 */
40#define BXDM_PPTMR_P_ENABLE_FUNCTION_TIMING   0
41
42/*
43 * Set to a non zero value to compile in the callback timing code.
44 */
45#define BXDM_PPTMR_P_ENABLE_CALLBACK_TIMING   1
46
47
48#define BXDM_PP_TIMER_P_MAX_STR_LEN 512
49
50typedef struct BXDM_PPTIMER_P_Sample
51{
52   uint32_t    uiNumSamples;
53   uint32_t    uiStartTimeUsecs;
54   uint32_t    uiEndTimeUsecs;
55   uint32_t    uiElapseTimeUsecs;
56   uint32_t    uiTotalTimeUsecs;
57
58   uint32_t    uiAverageTimeUsecs;
59   uint32_t    uiMinTimeUsecs;
60   uint32_t    uiMaxTimeUsecs;
61
62} BXDM_PPTIMER_P_Sample;
63
64typedef enum BXDM_PPTIMER_P_Function
65{
66      BXDM_PPTIMER_P_Function_eMainIsr,
67      BXDM_PPTIMER_P_Function_eMainInitPerVsync,
68      BXDM_PPTIMER_P_Function_eDecoderDisplayInterruptEventIsr,
69      BXDM_PPTIMER_P_Function_eMainSelectElement,
70      BXDM_PPTIMER_P_Function_eSelPic1,
71      BXDM_PPTIMER_P_Function_eSelPic2,
72      BXDM_PPTIMER_P_Function_eSelPic3,
73      BXDM_PPTIMER_P_Function_eValidatePictureHead,
74      BXDM_PPTIMER_P_Function_eValidatePictureTail,
75      BXDM_PPTIMER_P_Function_eEvaluateTsmState,
76      BXDM_PPTIMER_P_Function_eMainCalculateVDC,
77      BXDM_PPTIMER_P_Function_eMainUpdatePublic,
78      BXDM_PPTIMER_P_Function_eMainCallbacks,     
79      BXDM_PPTIMER_P_Function_eMainPostIsr,
80      BXDM_PPTIMER_P_Function_eDecoderGetPictureCountIsr,
81      BXDM_PPTIMER_P_Function_eDecoderPeekAtPictureIsr,
82      BXDM_PPTIMER_P_Function_eDecoderGetNextPictureIsr,
83      BXDM_PPTIMER_P_Function_eDecoderReleasePictureIsr,
84      BXDM_PPTIMER_P_Function_eDecoderGetPictureDropPendingCountIsr,
85      BXDM_PPTIMER_P_Function_eDecoderRequestPictureDropIsr,
86
87      BXDM_PPTIMER_P_Function_eMax
88} BXDM_PPTIMER_P_Function;
89
90typedef struct BXDM_PPTIMER_P_Data
91{
92
93   uint32_t    uiVsyncCnt;
94
95#if BXDM_PPTMR_P_ENABLE_FUNCTION_TIMING
96   /* XDM Function Times */
97   BXDM_PPTIMER_P_Sample   astFunctions[BXDM_PPTIMER_P_Function_eMax];
98#endif
99
100   /* XDM Callback Times */
101   BXDM_PPTIMER_P_Sample   astCallbacks[BXDM_PictureProvider_Callback_eMax];
102
103}  BXDM_PPTIMER_P_Data;
104
105#if BDBG_DEBUG_BUILD
106
107void BXDM_PPTMR_P_SnapshotFunctionStartTime(
108   BXDM_PictureProvider_Handle hXdmPP,
109   BXDM_PPTIMER_P_Function eFunctionIndex
110   );
111
112void BXDM_PPTMR_P_SnapshotFunctionEndTime(
113   BXDM_PictureProvider_Handle hXdmPP,
114   BXDM_PPTIMER_P_Function eFunctionIndex
115   );
116
117void BXDM_PPTMR_P_SnapshotCallbackStartTime(
118   BXDM_PictureProvider_Handle hXdmPP,
119   BXDM_PictureProvider_Callback eCallbackIndex
120   );
121
122void BXDM_PPTMR_P_SnapshotCallbackEndTime(
123   BXDM_PictureProvider_Handle hXdmPP,
124   BXDM_PictureProvider_Callback eCallbackIndex
125   );
126
127void BXDM_PPTMR_P_PrintResults(
128   BXDM_PictureProvider_Handle hXdmPP
129   );
130
131#else
132
133/* non debug build */
134
135#define BXDM_PPTMR_P_SnapshotFunctionStartTime( hXdmPP, eFunctionIndex )
136#define BXDM_PPTMR_P_SnapshotFunctionEndTime( hXdmPP, eFunctionIndex )
137#define BXDM_PPTMR_P_SnapshotCallbackStartTime( hXdmPP, eCallbackIndex )
138#define BXDM_PPTMR_P_SnapshotCallbackEndTime( hXdmPP, eCallbackIndex )
139#define BXDM_PPTMR_P_PrintResults( hXdmPP )
140
141#endif
142
143#ifdef __cplusplus
144}
145#endif
146
147#endif /* #ifndef bxdm_pp_TIMER_H__ */
Note: See TracBrowser for help on using the repository browser.