packaging: update the changelog
[profile/ivi/intel-emgd-kmod.git] / pvr / include4 / dbgdrvif.h
1 /**********************************************************************
2  Copyright (c) Imagination Technologies Ltd.
3
4  Permission is hereby granted, free of charge, to any person obtaining a copy
5  of this software and associated documentation files (the "Software"), to deal
6  in the Software without restriction, including without limitation the rights
7  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8  copies of the Software, and to permit persons to whom the Software is
9  furnished to do so, subject to the following conditions:
10
11  The above copyright notice and this permission notice shall be included in
12  all copies or substantial portions of the Software.
13
14  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20  THE SOFTWARE.
21  ******************************************************************************/
22
23 #ifndef _DBGDRVIF_
24 #define _DBGDRVIF_
25
26
27 #include "ioctldef.h"
28
29 #define DEBUG_CAPMODE_FRAMED                    0x00000001UL
30 #define DEBUG_CAPMODE_CONTINUOUS                0x00000002UL
31 #define DEBUG_CAPMODE_HOTKEY                    0x00000004UL
32
33 #define DEBUG_OUTMODE_STANDARDDBG               0x00000001UL
34 #define DEBUG_OUTMODE_MONO                              0x00000002UL
35 #define DEBUG_OUTMODE_STREAMENABLE              0x00000004UL
36 #define DEBUG_OUTMODE_ASYNC                             0x00000008UL
37 #define DEBUG_OUTMODE_SGXVGA            0x00000010UL
38
39 #define DEBUG_FLAGS_USE_NONPAGED_MEM    0x00000001UL
40 #define DEBUG_FLAGS_NO_BUF_EXPANDSION   0x00000002UL
41 #define DEBUG_FLAGS_ENABLESAMPLE                0x00000004UL
42
43 #define DEBUG_FLAGS_TEXTSTREAM                  0x80000000UL
44
45 #define DEBUG_LEVEL_0                                   0x00000001UL
46 #define DEBUG_LEVEL_1                                   0x00000003UL
47 #define DEBUG_LEVEL_2                                   0x00000007UL
48 #define DEBUG_LEVEL_3                                   0x0000000FUL
49 #define DEBUG_LEVEL_4                                   0x0000001FUL
50 #define DEBUG_LEVEL_5                                   0x0000003FUL
51 #define DEBUG_LEVEL_6                                   0x0000007FUL
52 #define DEBUG_LEVEL_7                                   0x000000FFUL
53 #define DEBUG_LEVEL_8                                   0x000001FFUL
54 #define DEBUG_LEVEL_9                                   0x000003FFUL
55 #define DEBUG_LEVEL_10                                  0x000007FFUL
56 #define DEBUG_LEVEL_11                                  0x00000FFFUL
57
58 #define DEBUG_LEVEL_SEL0                                0x00000001UL
59 #define DEBUG_LEVEL_SEL1                                0x00000002UL
60 #define DEBUG_LEVEL_SEL2                                0x00000004UL
61 #define DEBUG_LEVEL_SEL3                                0x00000008UL
62 #define DEBUG_LEVEL_SEL4                                0x00000010UL
63 #define DEBUG_LEVEL_SEL5                                0x00000020UL
64 #define DEBUG_LEVEL_SEL6                                0x00000040UL
65 #define DEBUG_LEVEL_SEL7                                0x00000080UL
66 #define DEBUG_LEVEL_SEL8                                0x00000100UL
67 #define DEBUG_LEVEL_SEL9                                0x00000200UL
68 #define DEBUG_LEVEL_SEL10                               0x00000400UL
69 #define DEBUG_LEVEL_SEL11                               0x00000800UL
70
71 #define DEBUG_SERVICE_IOCTL_BASE                0x800UL
72 #define DEBUG_SERVICE_CREATESTREAM              CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x01, METHOD_BUFFERED, FILE_ANY_ACCESS)
73 #define DEBUG_SERVICE_DESTROYSTREAM             CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x02, METHOD_BUFFERED, FILE_ANY_ACCESS)
74 #define DEBUG_SERVICE_GETSTREAM                 CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x03, METHOD_BUFFERED, FILE_ANY_ACCESS)
75 #define DEBUG_SERVICE_WRITESTRING               CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x04, METHOD_BUFFERED, FILE_ANY_ACCESS)
76 #define DEBUG_SERVICE_READSTRING                CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x05, METHOD_BUFFERED, FILE_ANY_ACCESS)
77 #define DEBUG_SERVICE_WRITE                             CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x06, METHOD_BUFFERED, FILE_ANY_ACCESS)
78 #define DEBUG_SERVICE_READ                              CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x07, METHOD_BUFFERED, FILE_ANY_ACCESS)
79 #define DEBUG_SERVICE_SETDEBUGMODE              CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x08, METHOD_BUFFERED, FILE_ANY_ACCESS)
80 #define DEBUG_SERVICE_SETDEBUGOUTMODE   CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x09, METHOD_BUFFERED, FILE_ANY_ACCESS)
81 #define DEBUG_SERVICE_SETDEBUGLEVEL             CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0A, METHOD_BUFFERED, FILE_ANY_ACCESS)
82 #define DEBUG_SERVICE_SETFRAME                  CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0B, METHOD_BUFFERED, FILE_ANY_ACCESS)
83 #define DEBUG_SERVICE_GETFRAME                  CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0C, METHOD_BUFFERED, FILE_ANY_ACCESS)
84 #define DEBUG_SERVICE_OVERRIDEMODE              CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0D, METHOD_BUFFERED, FILE_ANY_ACCESS)
85 #define DEBUG_SERVICE_DEFAULTMODE               CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0E, METHOD_BUFFERED, FILE_ANY_ACCESS)
86 #define DEBUG_SERVICE_GETSERVICETABLE   CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0F, METHOD_BUFFERED, FILE_ANY_ACCESS)
87 #define DEBUG_SERVICE_WRITE2                    CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x10, METHOD_BUFFERED, FILE_ANY_ACCESS)
88 #define DEBUG_SERVICE_WRITESTRINGCM             CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x11, METHOD_BUFFERED, FILE_ANY_ACCESS)
89 #define DEBUG_SERVICE_WRITECM                   CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x12, METHOD_BUFFERED, FILE_ANY_ACCESS)
90 #define DEBUG_SERVICE_SETMARKER                 CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x13, METHOD_BUFFERED, FILE_ANY_ACCESS)
91 #define DEBUG_SERVICE_GETMARKER                 CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x14, METHOD_BUFFERED, FILE_ANY_ACCESS)
92 #define DEBUG_SERVICE_ISCAPTUREFRAME    CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x15, METHOD_BUFFERED, FILE_ANY_ACCESS)
93 #define DEBUG_SERVICE_WRITELF                   CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x16, METHOD_BUFFERED, FILE_ANY_ACCESS)
94 #define DEBUG_SERVICE_READLF                    CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x17, METHOD_BUFFERED, FILE_ANY_ACCESS)
95 #define DEBUG_SERVICE_WAITFOREVENT              CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x18, METHOD_BUFFERED, FILE_ANY_ACCESS)
96
97
98 typedef enum _DBG_EVENT_
99 {
100         DBG_EVENT_STREAM_DATA = 1
101 } DBG_EVENT;
102
103 typedef struct _DBG_IN_CREATESTREAM_
104 {
105         IMG_UINT32 ui32Pages;
106         IMG_UINT32 ui32CapMode;
107         IMG_UINT32 ui32OutMode;
108         IMG_CHAR *pszName;
109 }DBG_IN_CREATESTREAM, *PDBG_IN_CREATESTREAM;
110
111 typedef struct _DBG_IN_FINDSTREAM_
112 {
113         IMG_BOOL bResetStream;
114         IMG_CHAR *pszName;
115 }DBG_IN_FINDSTREAM, *PDBG_IN_FINDSTREAM;
116
117 typedef struct _DBG_IN_WRITESTRING_
118 {
119         IMG_VOID *pvStream;
120         IMG_UINT32 ui32Level;
121         IMG_CHAR *pszString;
122 }DBG_IN_WRITESTRING, *PDBG_IN_WRITESTRING;
123
124 typedef struct _DBG_IN_READSTRING_
125 {
126         IMG_VOID *pvStream;
127         IMG_UINT32 ui32StringLen;
128         IMG_CHAR *pszString;
129 } DBG_IN_READSTRING, *PDBG_IN_READSTRING;
130
131 typedef struct _DBG_IN_SETDEBUGMODE_
132 {
133         IMG_VOID *pvStream;
134         IMG_UINT32 ui32Mode;
135         IMG_UINT32 ui32Start;
136         IMG_UINT32 ui32End;
137         IMG_UINT32 ui32SampleRate;
138 } DBG_IN_SETDEBUGMODE, *PDBG_IN_SETDEBUGMODE;
139
140 typedef struct _DBG_IN_SETDEBUGOUTMODE_
141 {
142         IMG_VOID *pvStream;
143         IMG_UINT32 ui32Mode;
144 } DBG_IN_SETDEBUGOUTMODE, *PDBG_IN_SETDEBUGOUTMODE;
145
146 typedef struct _DBG_IN_SETDEBUGLEVEL_
147 {
148         IMG_VOID *pvStream;
149         IMG_UINT32 ui32Level;
150 } DBG_IN_SETDEBUGLEVEL, *PDBG_IN_SETDEBUGLEVEL;
151
152 typedef struct _DBG_IN_SETFRAME_
153 {
154         IMG_VOID *pvStream;
155         IMG_UINT32 ui32Frame;
156 } DBG_IN_SETFRAME, *PDBG_IN_SETFRAME;
157
158 typedef struct _DBG_IN_WRITE_
159 {
160         IMG_VOID *pvStream;
161         IMG_UINT32 ui32Level;
162         IMG_UINT32 ui32TransferSize;
163         IMG_UINT8 *pui8InBuffer;
164 } DBG_IN_WRITE, *PDBG_IN_WRITE;
165
166 typedef struct _DBG_IN_READ_
167 {
168         IMG_VOID *pvStream;
169         IMG_BOOL bReadInitBuffer;
170         IMG_UINT32 ui32OutBufferSize;
171         IMG_UINT8 *pui8OutBuffer;
172 } DBG_IN_READ, *PDBG_IN_READ;
173
174 typedef struct _DBG_IN_OVERRIDEMODE_
175 {
176         IMG_VOID *pvStream;
177         IMG_UINT32 ui32Mode;
178 } DBG_IN_OVERRIDEMODE, *PDBG_IN_OVERRIDEMODE;
179
180 typedef struct _DBG_IN_ISCAPTUREFRAME_
181 {
182         IMG_VOID *pvStream;
183         IMG_BOOL bCheckPreviousFrame;
184 } DBG_IN_ISCAPTUREFRAME, *PDBG_IN_ISCAPTUREFRAME;
185
186 typedef struct _DBG_IN_SETMARKER_
187 {
188         IMG_VOID *pvStream;
189         IMG_UINT32 ui32Marker;
190 } DBG_IN_SETMARKER, *PDBG_IN_SETMARKER;
191
192 typedef struct _DBG_IN_WRITE_LF_
193 {
194         IMG_UINT32 ui32Flags;
195         IMG_VOID *pvStream;
196         IMG_UINT32 ui32Level;
197         IMG_UINT32 ui32BufferSize;
198         IMG_UINT8 *pui8InBuffer;
199 } DBG_IN_WRITE_LF, *PDBG_IN_WRITE_LF;
200
201 #define WRITELF_FLAGS_RESETBUF          0x00000001UL
202
203 typedef struct _DBG_STREAM_
204 {
205         struct _DBG_STREAM_ *psNext;
206         struct _DBG_STREAM_ *psInitStream;
207         IMG_BOOL   bInitPhaseComplete;
208         IMG_UINT32 ui32Flags;
209         IMG_UINT32 ui32Base;
210         IMG_UINT32 ui32Size;
211         IMG_UINT32 ui32RPtr;
212         IMG_UINT32 ui32WPtr;
213         IMG_UINT32 ui32DataWritten;
214         IMG_UINT32 ui32CapMode;
215         IMG_UINT32 ui32OutMode;
216         IMG_UINT32 ui32DebugLevel;
217         IMG_UINT32 ui32DefaultMode;
218         IMG_UINT32 ui32Start;
219         IMG_UINT32 ui32End;
220         IMG_UINT32 ui32Current;
221         IMG_UINT32 ui32Access;
222         IMG_UINT32 ui32SampleRate;
223         IMG_UINT32 ui32Reserved;
224         IMG_UINT32 ui32Timeout;
225         IMG_UINT32 ui32Marker;
226         IMG_CHAR szName[30];
227 } DBG_STREAM,*PDBG_STREAM;
228
229 typedef struct _DBGKM_SERVICE_TABLE_
230 {
231         IMG_UINT32 ui32Size;
232         IMG_VOID *      (IMG_CALLCONV *pfnCreateStream)                 (IMG_CHAR * pszName,IMG_UINT32 ui32CapMode,IMG_UINT32 ui32OutMode,IMG_UINT32 ui32Flags,IMG_UINT32 ui32Pages);
233         IMG_VOID        (IMG_CALLCONV *pfnDestroyStream)                (PDBG_STREAM psStream);
234         IMG_VOID *      (IMG_CALLCONV *pfnFindStream)                   (IMG_CHAR * pszName, IMG_BOOL bResetInitBuffer);
235         IMG_UINT32      (IMG_CALLCONV *pfnWriteString)                  (PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Level);
236         IMG_UINT32      (IMG_CALLCONV *pfnReadString)                   (PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Limit);
237         IMG_UINT32      (IMG_CALLCONV *pfnWriteBIN)                             (PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
238         IMG_UINT32      (IMG_CALLCONV *pfnReadBIN)                              (PDBG_STREAM psStream,IMG_BOOL bReadInitBuffer, IMG_UINT32 ui32OutBufferSize,IMG_UINT8 *pui8OutBuf);
239         IMG_VOID        (IMG_CALLCONV *pfnSetCaptureMode)               (PDBG_STREAM psStream,IMG_UINT32 ui32CapMode,IMG_UINT32 ui32Start,IMG_UINT32 ui32Stop,IMG_UINT32 ui32SampleRate);
240         IMG_VOID        (IMG_CALLCONV *pfnSetOutputMode)                (PDBG_STREAM psStream,IMG_UINT32 ui32OutMode);
241         IMG_VOID        (IMG_CALLCONV *pfnSetDebugLevel)                (PDBG_STREAM psStream,IMG_UINT32 ui32DebugLevel);
242         IMG_VOID        (IMG_CALLCONV *pfnSetFrame)                             (PDBG_STREAM psStream,IMG_UINT32 ui32Frame);
243         IMG_UINT32      (IMG_CALLCONV *pfnGetFrame)                             (PDBG_STREAM psStream);
244         IMG_VOID        (IMG_CALLCONV *pfnOverrideMode)                 (PDBG_STREAM psStream,IMG_UINT32 ui32Mode);
245         IMG_VOID        (IMG_CALLCONV *pfnDefaultMode)                  (PDBG_STREAM psStream);
246         IMG_UINT32      (IMG_CALLCONV *pfnDBGDrivWrite2)                (PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
247         IMG_UINT32      (IMG_CALLCONV *pfnWriteStringCM)                (PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Level);
248         IMG_UINT32      (IMG_CALLCONV *pfnWriteBINCM)                   (PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
249         IMG_VOID        (IMG_CALLCONV *pfnSetMarker)                    (PDBG_STREAM psStream,IMG_UINT32 ui32Marker);
250         IMG_UINT32      (IMG_CALLCONV *pfnGetMarker)                    (PDBG_STREAM psStream);
251         IMG_VOID        (IMG_CALLCONV *pfnStartInitPhase)               (PDBG_STREAM psStream);
252         IMG_VOID        (IMG_CALLCONV *pfnStopInitPhase)                (PDBG_STREAM psStream);
253         IMG_BOOL        (IMG_CALLCONV *pfnIsCaptureFrame)               (PDBG_STREAM psStream, IMG_BOOL bCheckPreviousFrame);
254         IMG_UINT32      (IMG_CALLCONV *pfnWriteLF)                              (PDBG_STREAM psStream, IMG_UINT8 *pui8InBuf, IMG_UINT32 ui32InBuffSize, IMG_UINT32 ui32Level, IMG_UINT32 ui32Flags);
255         IMG_UINT32      (IMG_CALLCONV *pfnReadLF)                               (PDBG_STREAM psStream, IMG_UINT32 ui32OutBuffSize, IMG_UINT8 *pui8OutBuf);
256         IMG_UINT32      (IMG_CALLCONV *pfnGetStreamOffset)              (PDBG_STREAM psStream);
257         IMG_VOID        (IMG_CALLCONV *pfnSetStreamOffset)              (PDBG_STREAM psStream, IMG_UINT32 ui32StreamOffset);
258         IMG_BOOL        (IMG_CALLCONV *pfnIsLastCaptureFrame)   (PDBG_STREAM psStream);
259         IMG_VOID        (IMG_CALLCONV *pfnWaitForEvent) (DBG_EVENT eEvent);
260 } DBGKM_SERVICE_TABLE, *PDBGKM_SERVICE_TABLE;
261
262
263 #endif