Maemo patchset 20101501+0m5
[h-e-n] / drivers / gpu / pvr / dbgdrvif.h
diff --git a/drivers/gpu/pvr/dbgdrvif.h b/drivers/gpu/pvr/dbgdrvif.h
new file mode 100644 (file)
index 0000000..325c23e
--- /dev/null
@@ -0,0 +1,309 @@
+/**********************************************************************
+ *
+ * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful but, except
+ * as otherwise stated in writing, without any warranty; without even the
+ * implied warranty of merchantability or fitness for a particular purpose.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * The full GNU General Public License is included in this distribution in
+ * the file called "COPYING".
+ *
+ * Contact Information:
+ * Imagination Technologies Ltd. <gpl-support@imgtec.com>
+ * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK
+ *
+ ******************************************************************************/
+
+#ifndef _DBGDRVIF_
+#define _DBGDRVIF_
+
+#include "ioctldef.h"
+
+#define DEBUG_CAPMODE_FRAMED                   0x00000001
+#define DEBUG_CAPMODE_CONTINUOUS               0x00000002
+#define DEBUG_CAPMODE_HOTKEY                   0x00000004
+
+#define DEBUG_OUTMODE_STANDARDDBG              0x00000001
+#define DEBUG_OUTMODE_MONO                     0x00000002
+#define DEBUG_OUTMODE_STREAMENABLE             0x00000004
+#define DEBUG_OUTMODE_ASYNC                    0x00000008
+#define DEBUG_OUTMODE_SGXVGA                   0x00000010
+
+#define DEBUG_FLAGS_USE_NONPAGED_MEM           0x00000001
+#define DEBUG_FLAGS_NO_BUF_EXPANDSION          0x00000002
+#define DEBUG_FLAGS_ENABLESAMPLE               0x00000004
+
+#define DEBUG_FLAGS_TEXTSTREAM                 0x80000000
+
+#define DEBUG_LEVEL_0                          0x00000001
+#define DEBUG_LEVEL_1                          0x00000003
+#define DEBUG_LEVEL_2                          0x00000007
+#define DEBUG_LEVEL_3                          0x0000000F
+#define DEBUG_LEVEL_4                          0x0000001F
+#define DEBUG_LEVEL_5                          0x0000003F
+#define DEBUG_LEVEL_6                          0x0000007F
+#define DEBUG_LEVEL_7                          0x000000FF
+#define DEBUG_LEVEL_8                          0x000001FF
+#define DEBUG_LEVEL_9                          0x000003FF
+#define DEBUG_LEVEL_10                         0x000007FF
+#define DEBUG_LEVEL_11                         0x00000FFF
+
+#define DEBUG_LEVEL_SEL0                       0x00000001
+#define DEBUG_LEVEL_SEL1                       0x00000002
+#define DEBUG_LEVEL_SEL2                       0x00000004
+#define DEBUG_LEVEL_SEL3                       0x00000008
+#define DEBUG_LEVEL_SEL4                       0x00000010
+#define DEBUG_LEVEL_SEL5                       0x00000020
+#define DEBUG_LEVEL_SEL6                       0x00000040
+#define DEBUG_LEVEL_SEL7                       0x00000080
+#define DEBUG_LEVEL_SEL8                       0x00000100
+#define DEBUG_LEVEL_SEL9                       0x00000200
+#define DEBUG_LEVEL_SEL10                      0x00000400
+#define DEBUG_LEVEL_SEL11                      0x00000800
+
+#define DEBUG_SERVICE_IOCTL_BASE               0x800
+#define DEBUG_SERVICE_CREATESTREAM                                     \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x01,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_DESTROYSTREAM                                    \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x02,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_GETSTREAM                                                \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x03,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_WRITESTRING                                      \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x04,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_READSTRING                                       \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x05,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_WRITE                                            \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x06,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_READ                                             \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x07,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_SETDEBUGMODE                                     \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x08,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_SETDEBUGOUTMODE                                  \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x09,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_SETDEBUGLEVEL                                    \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0A,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_SETFRAME                                         \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0B,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_GETFRAME                                         \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0C,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_OVERRIDEMODE                                     \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0D,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_DEFAULTMODE                                      \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0E,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_GETSERVICETABLE                                  \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0F,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_WRITE2                                           \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x10,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_WRITESTRINGCM                                    \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x11,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_WRITECM                                          \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x12,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_SETMARKER                                                \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x13,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_GETMARKER                                                \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x14,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_ISCAPTUREFRAME                                   \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x15,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_WRITELF                                          \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x16,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_READLF                                           \
+       CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x17,  \
+                                       METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+struct DBG_IN_CREATESTREAM {
+       u32 ui32Pages;
+       u32 ui32CapMode;
+       u32 ui32OutMode;
+       char *pszName;
+};
+
+struct DBG_IN_FINDSTREAM {
+       IMG_BOOL bResetStream;
+       char *pszName;
+};
+
+struct DBG_IN_WRITESTRING {
+       void *pvStream;
+       u32 ui32Level;
+       char *pszString;
+};
+
+struct DBG_IN_READSTRING {
+       void *pvStream;
+       u32 ui32StringLen;
+       char *pszString;
+};
+
+struct DBG_IN_SETDEBUGMODE {
+       void *pvStream;
+       u32 ui32Mode;
+       u32 ui32Start;
+       u32 ui32End;
+       u32 ui32SampleRate;
+};
+
+struct DBG_IN_SETDEBUGOUTMODE {
+       void *pvStream;
+       u32 ui32Mode;
+};
+
+struct DBG_IN_SETDEBUGLEVEL {
+       void *pvStream;
+       u32 ui32Level;
+};
+
+struct DBG_IN_SETFRAME {
+       void *pvStream;
+       u32 ui32Frame;
+};
+
+struct DBG_IN_WRITE {
+       void *pvStream;
+       u32 ui32Level;
+       u32 ui32TransferSize;
+       u8 *pui8InBuffer;
+};
+
+struct DBG_IN_READ {
+       void *pvStream;
+       IMG_BOOL bReadInitBuffer;
+       u32 ui32OutBufferSize;
+       u8 *pui8OutBuffer;
+};
+
+struct DBG_IN_OVERRIDEMODE {
+       void *pvStream;
+       u32 ui32Mode;
+};
+
+struct DBG_IN_ISCAPTUREFRAME {
+       void *pvStream;
+       IMG_BOOL bCheckPreviousFrame;
+};
+
+struct DBG_IN_SETMARKER {
+       void *pvStream;
+       u32 ui32Marker;
+};
+
+struct DBG_IN_WRITE_LF {
+       u32 ui32Flags;
+       void *pvStream;
+       u32 ui32Level;
+       u32 ui32BufferSize;
+       u8 *pui8InBuffer;
+};
+
+#define WRITELF_FLAGS_RESETBUF         0x00000001
+
+struct DBG_STREAM {
+       struct DBG_STREAM *psNext;
+       struct DBG_STREAM *psInitStream;
+       IMG_BOOL bInitPhaseComplete;
+       u32 ui32Flags;
+       u32 ui32Base;
+       u32 ui32Size;
+       u32 ui32RPtr;
+       u32 ui32WPtr;
+       u32 ui32DataWritten;
+       u32 ui32CapMode;
+       u32 ui32OutMode;
+       u32 ui32DebugLevel;
+       u32 ui32DefaultMode;
+       u32 ui32Start;
+       u32 ui32End;
+       u32 ui32Current;
+       u32 ui32Access;
+       u32 ui32SampleRate;
+       u32 ui32Reserved;
+       u32 ui32Timeout;
+       u32 ui32Marker;
+       char szName[30];
+};
+
+struct DBGKM_SERVICE_TABLE {
+       u32 ui32Size;
+       void *(*pfnCreateStream)(char *pszName, u32 ui32CapMode,
+                       u32 ui32OutMode, u32 ui32Flags, u32 ui32Pages);
+       void  (*pfnDestroyStream)(struct DBG_STREAM *psStream);
+       void *(*pfnFindStream)(char *pszName, IMG_BOOL bResetInitBuffer);
+       u32   (*pfnWriteString)(struct DBG_STREAM *psStream, char *pszString,
+                       u32 ui32Level);
+       u32   (*pfnReadString)(struct DBG_STREAM *psStream, char *pszString,
+                       u32 ui32Limit);
+       u32   (*pfnWriteBIN)(struct DBG_STREAM *psStream, u8 *pui8InBuf,
+                       u32 ui32InBuffSize, u32 ui32Level);
+       u32   (*pfnReadBIN)(struct DBG_STREAM *psStream,
+                       IMG_BOOL bReadInitBuffer, u32 ui32OutBufferSize,
+                       u8 *pui8OutBuf);
+       void  (*pfnSetCaptureMode)(struct DBG_STREAM *psStream,
+                       u32 ui32CapMode, u32 ui32Start, u32 ui32Stop,
+                       u32 ui32SampleRate);
+       void  (*pfnSetOutputMode)(struct DBG_STREAM *psStream,
+                       u32 ui32OutMode);
+       void  (*pfnSetDebugLevel)(struct DBG_STREAM *psStream,
+                       u32 ui32DebugLevel);
+       void  (*pfnSetFrame)(struct DBG_STREAM *psStream,
+                       u32 ui32Frame);
+       u32   (*pfnGetFrame)(struct DBG_STREAM *psStream);
+       void  (*pfnOverrideMode)(struct DBG_STREAM *psStream,
+                       u32 ui32Mode);
+       void  (*pfnDefaultMode)(struct DBG_STREAM *psStream);
+       u32   (*pfnDBGDrivWrite2)(struct DBG_STREAM *psStream,
+                       u8 *pui8InBuf, u32 ui32InBuffSize, u32 ui32Level);
+       u32   (*pfnWriteStringCM)(struct DBG_STREAM *psStream, char *pszString,
+                       u32 ui32Level);
+       u32   (*pfnWriteBINCM)(struct DBG_STREAM *psStream, u8 *pui8InBuf,
+                       u32 ui32InBuffSize, u32 ui32Level);
+       void  (*pfnSetMarker)(struct DBG_STREAM *psStream, u32 ui32Marker);
+       u32   (*pfnGetMarker)(struct DBG_STREAM *psStream);
+       void  (*pfnEndInitPhase)(struct DBG_STREAM *psStream);
+       u32   (*pfnIsCaptureFrame)(struct DBG_STREAM *psStream,
+                       IMG_BOOL bCheckPreviousFrame);
+       u32   (*pfnWriteLF)(struct DBG_STREAM *psStream, u8 *pui8InBuf,
+                       u32 ui32InBuffSize, u32 ui32Level, u32 ui32Flags);
+       u32   (*pfnReadLF)(struct DBG_STREAM *psStream, u32 ui32OutBuffSize,
+                       u8 *pui8OutBuf);
+       u32   (*pfnGetStreamOffset)(struct DBG_STREAM *psStream);
+       void  (*pfnSetStreamOffset)(struct DBG_STREAM *psStream,
+                       u32 ui32StreamOffset);
+       u32   (*pfnIsLastCaptureFrame)(struct DBG_STREAM *psStream);
+};
+
+extern struct DBGKM_SERVICE_TABLE g_sDBGKMServices;
+
+void DBGDrvGetServiceTable(void **fn_table);
+
+#endif