aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/pvr/ttrace.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/pvr/ttrace.h')
-rw-r--r--drivers/gpu/pvr/ttrace.h184
1 files changed, 184 insertions, 0 deletions
diff --git a/drivers/gpu/pvr/ttrace.h b/drivers/gpu/pvr/ttrace.h
new file mode 100644
index 00000000000..159cbcaeb52
--- /dev/null
+++ b/drivers/gpu/pvr/ttrace.h
@@ -0,0 +1,184 @@
1/**********************************************************************
2 *
3 * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope it will be useful but, except
10 * as otherwise stated in writing, without any warranty; without even the
11 * implied warranty of merchantability or fitness for a particular purpose.
12 * See the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License along with
15 * this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
17 *
18 * The full GNU General Public License is included in this distribution in
19 * the file called "COPYING".
20 *
21 * Contact Information:
22 * Imagination Technologies Ltd. <gpl-support@imgtec.com>
23 * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK
24 *
25 ******************************************************************************/
26
27#include "services_headers.h"
28#include "ttrace_common.h"
29#include "ttrace_tokens.h"
30
31#ifndef __TTRACE_H__
32#define __TTRACE_H__
33
34#if defined(TTRACE)
35
36 #define PVR_TTRACE(group, class, token) \
37 PVRSRVTimeTrace(group, class, token)
38 #define PVR_TTRACE_UI8(group, class, token, val) \
39 PVRSRVTimeTraceUI8(group, class, token, val)
40 #define PVR_TTRACE_UI16(group, class, token, val) \
41 PVRSRVTimeTraceUI16(group, class, token, val)
42 #define PVR_TTRACE_UI32(group, class, token, val) \
43 PVRSRVTimeTraceUI32(group, class, token, val)
44 #define PVR_TTRACE_UI64(group, class, token, val) \
45 PVRSRVTimeTraceUI64(group, class, token, val)
46 #define PVR_TTRACE_DEV_VIRTADDR(group, class, token, val) \
47 PVRSRVTimeTraceDevVirtAddr(group, class, token, val)
48 #define PVR_TTRACE_CPU_PHYADDR(group, class, token, val) \
49 PVRSRVTimeTraceCpuPhyAddr(group, class, token, val)
50 #define PVR_TTRACE_DEV_PHYADDR(group, class, token, val) \
51 PVRSRVTimeTraceDevPhysAddr(group, class, token, val)
52 #define PVR_TTRACE_SYS_PHYADDR(group, class, token, val) \
53 PVRSRVTimeTraceSysPhysAddr(group, class, token, val)
54 #define PVR_TTRACE_SYNC_OBJECT(group, token, syncobj, op) \
55 PVRSRVTimeTraceSyncObject(group, token, syncobj, op)
56
57IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVTimeTraceArray(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
58 IMG_UINT32 ui32Token, IMG_UINT32 ui32TypeSize,
59 IMG_UINT32 ui32Count, IMG_UINT8 *ui8Data);
60
61#ifdef INLINE_IS_PRAGMA
62#pragma inline(PVRSRVTimeTrace)
63#endif
64static INLINE IMG_VOID PVRSRVTimeTrace(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
65 IMG_UINT32 ui32Token)
66{
67 PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, 0, 0, NULL);
68}
69
70#ifdef INLINE_IS_PRAGMA
71#pragma inline(PVRSRVTimeTraceUI8)
72#endif
73static INLINE IMG_VOID PVRSRVTimeTraceUI8(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
74 IMG_UINT32 ui32Token, IMG_UINT8 ui8Value)
75{
76 PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI8,
77 1, &ui8Value);
78}
79
80#ifdef INLINE_IS_PRAGMA
81#pragma inline(PVRSRVTimeTraceUI16)
82#endif
83static INLINE IMG_VOID PVRSRVTimeTraceUI16(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
84 IMG_UINT32 ui32Token, IMG_UINT16 ui16Value)
85{
86 PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI16,
87 1, (IMG_UINT8 *) &ui16Value);
88}
89
90#ifdef INLINE_IS_PRAGMA
91#pragma inline(PVRSRVTimeTraceUI32)
92#endif
93static INLINE IMG_VOID PVRSRVTimeTraceUI32(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
94 IMG_UINT32 ui32Token, IMG_UINT32 ui32Value)
95{
96 PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI32,
97 1, (IMG_UINT8 *) &ui32Value);
98}
99
100#ifdef INLINE_IS_PRAGMA
101#pragma inline(PVRSRVTimeTraceUI64)
102#endif
103static INLINE IMG_VOID PVRSRVTimeTraceUI64(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
104 IMG_UINT32 ui32Token, IMG_UINT64 ui64Value)
105{
106 PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI64,
107 1, (IMG_UINT8 *) &ui64Value);
108}
109
110#ifdef INLINE_IS_PRAGMA
111#pragma inline(PVRSRVTimeTraceDevVirtAddr)
112#endif
113static INLINE IMG_VOID PVRSRVTimeTraceDevVirtAddr(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
114 IMG_UINT32 ui32Token, IMG_DEV_VIRTADDR psVAddr)
115{
116 PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI32,
117 1, (IMG_UINT8 *) &psVAddr.uiAddr);
118}
119
120#ifdef INLINE_IS_PRAGMA
121#pragma inline(PVRSRVTimeTraceCpuPhyAddr)
122#endif
123static INLINE IMG_VOID PVRSRVTimeTraceCpuPhyAddr(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
124 IMG_UINT32 ui32Token, IMG_CPU_PHYADDR psPAddr)
125{
126 PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI32,
127 1, (IMG_UINT8 *) &psPAddr.uiAddr);
128}
129
130#ifdef INLINE_IS_PRAGMA
131#pragma inline(PVRSRVTimeTraceDevPhysAddr)
132#endif
133static INLINE IMG_VOID PVRSRVTimeTraceDevPhysAddr(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
134 IMG_UINT32 ui32Token, IMG_DEV_PHYADDR psPAddr)
135{
136 PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI32,
137 1, (IMG_UINT8 *) &psPAddr.uiAddr);
138}
139
140#ifdef INLINE_IS_PRAGMA
141#pragma inline(PVRSRVTimeTraceSysPhysAddr)
142#endif
143static INLINE IMG_VOID PVRSRVTimeTraceSysPhysAddr(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
144 IMG_UINT32 ui32Token, IMG_SYS_PHYADDR psPAddr)
145{
146 PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, sizeof(psPAddr.uiAddr),
147 1, (IMG_UINT8 *) &psPAddr.uiAddr);
148}
149
150#else
151
152 #define PVR_TTRACE(group, class, token) \
153 ((void) 0)
154 #define PVR_TTRACE_UI8(group, class, token, val) \
155 ((void) 0)
156 #define PVR_TTRACE_UI16(group, class, token, val) \
157 ((void) 0)
158 #define PVR_TTRACE_UI32(group, class, token, val) \
159 ((void) 0)
160 #define PVR_TTRACE_UI64(group, class, token, val) \
161 ((void) 0)
162 #define PVR_TTRACE_DEV_VIRTADDR(group, class, token, val) \
163 ((void) 0)
164 #define PVR_TTRACE_CPU_PHYADDR(group, class, token, val) \
165 ((void) 0)
166 #define PVR_TTRACE_DEV_PHYADDR(group, class, token, val) \
167 ((void) 0)
168 #define PVR_TTRACE_SYS_PHYADDR(group, class, token, val) \
169 ((void) 0)
170 #define PVR_TTRACE_SYNC_OBJECT(group, token, syncobj, op) \
171 ((void) 0)
172
173#endif
174
175IMG_IMPORT PVRSRV_ERROR PVRSRVTimeTraceInit(IMG_VOID);
176IMG_IMPORT IMG_VOID PVRSRVTimeTraceDeinit(IMG_VOID);
177
178IMG_IMPORT IMG_VOID PVRSRVTimeTraceSyncObject(IMG_UINT32 ui32Group, IMG_UINT32 ui32Token,
179 PVRSRV_KERNEL_SYNC_INFO *psSync, IMG_UINT8 ui8SyncOp);
180IMG_IMPORT PVRSRV_ERROR PVRSRVTimeTraceBufferCreate(IMG_UINT32 ui32PID);
181IMG_IMPORT PVRSRV_ERROR PVRSRVTimeTraceBufferDestroy(IMG_UINT32 ui32PID);
182
183IMG_IMPORT IMG_VOID PVRSRVDumpTimeTraceBuffers(IMG_VOID);
184#endif