diff options
Diffstat (limited to 'drivers/gpu/pvr/ttrace.h')
-rw-r--r-- | drivers/gpu/pvr/ttrace.h | 184 |
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 | |||
57 | IMG_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 | ||
64 | static 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 | ||
73 | static 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 | ||
83 | static 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 | ||
93 | static 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 | ||
103 | static 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 | ||
113 | static 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 | ||
123 | static 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 | ||
133 | static 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 | ||
143 | static 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 | |||
175 | IMG_IMPORT PVRSRV_ERROR PVRSRVTimeTraceInit(IMG_VOID); | ||
176 | IMG_IMPORT IMG_VOID PVRSRVTimeTraceDeinit(IMG_VOID); | ||
177 | |||
178 | IMG_IMPORT IMG_VOID PVRSRVTimeTraceSyncObject(IMG_UINT32 ui32Group, IMG_UINT32 ui32Token, | ||
179 | PVRSRV_KERNEL_SYNC_INFO *psSync, IMG_UINT8 ui8SyncOp); | ||
180 | IMG_IMPORT PVRSRV_ERROR PVRSRVTimeTraceBufferCreate(IMG_UINT32 ui32PID); | ||
181 | IMG_IMPORT PVRSRV_ERROR PVRSRVTimeTraceBufferDestroy(IMG_UINT32 ui32PID); | ||
182 | |||
183 | IMG_IMPORT IMG_VOID PVRSRVDumpTimeTraceBuffers(IMG_VOID); | ||
184 | #endif | ||