381 lines
16 KiB
C
381 lines
16 KiB
C
/*************************************************************************/ /*!
|
|
@Title Debug driver
|
|
@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved
|
|
@Description Debug Driver Interface
|
|
@License Dual MIT/GPLv2
|
|
|
|
The contents of this file are subject to the MIT license as set out below.
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
in the Software without restriction, including without limitation the rights
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
all copies or substantial portions of the Software.
|
|
|
|
Alternatively, the contents of this file may be used under the terms of
|
|
the GNU General Public License Version 2 ("GPL") in which case the provisions
|
|
of GPL are applicable instead of those above.
|
|
|
|
If you wish to allow use of your version of this file only under the terms of
|
|
GPL, and not to allow others to use your version of this file under the terms
|
|
of the MIT license, indicate your decision by deleting the provisions above
|
|
and replace them with the notice and other provisions required by GPL as set
|
|
out in the file called "GPL-COPYING" included in this distribution. If you do
|
|
not delete the provisions above, a recipient may use your version of this file
|
|
under the terms of either the MIT license or GPL.
|
|
|
|
This License is also included in this distribution in the file called
|
|
"MIT-COPYING".
|
|
|
|
EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
|
|
PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
|
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
|
PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
|
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
*/ /**************************************************************************/
|
|
|
|
#ifndef _DBGDRVIF_
|
|
#define _DBGDRVIF_
|
|
|
|
|
|
#if defined(__linux__)
|
|
|
|
#define FILE_DEVICE_UNKNOWN 0
|
|
#define METHOD_BUFFERED 0
|
|
#define FILE_ANY_ACCESS 0
|
|
|
|
#define CTL_CODE( DeviceType, Function, Method, Access ) (Function)
|
|
#define MAKEIOCTLINDEX(i) ((i) & 0xFFF)
|
|
|
|
#else
|
|
|
|
#include "ioctldef.h"
|
|
|
|
#endif
|
|
|
|
/*****************************************************************************
|
|
Stream mode stuff.
|
|
*****************************************************************************/
|
|
#define DEBUG_CAPMODE_FRAMED 0x00000001UL
|
|
#define DEBUG_CAPMODE_CONTINUOUS 0x00000002UL
|
|
#define DEBUG_CAPMODE_HOTKEY 0x00000004UL
|
|
|
|
#define DEBUG_OUTMODE_STANDARDDBG 0x00000001UL
|
|
#define DEBUG_OUTMODE_MONO 0x00000002UL
|
|
#define DEBUG_OUTMODE_STREAMENABLE 0x00000004UL
|
|
#define DEBUG_OUTMODE_ASYNC 0x00000008UL
|
|
#define DEBUG_OUTMODE_SGXVGA 0x00000010UL
|
|
|
|
#define DEBUG_FLAGS_USE_NONPAGED_MEM 0x00000001UL
|
|
#define DEBUG_FLAGS_NO_BUF_EXPANDSION 0x00000002UL
|
|
#define DEBUG_FLAGS_ENABLESAMPLE 0x00000004UL
|
|
#define DEBUG_FLAGS_READONLY 0x00000008UL
|
|
#define DEBUG_FLAGS_WRITEONLY 0x00000010UL
|
|
|
|
#define DEBUG_FLAGS_TEXTSTREAM 0x80000000UL
|
|
|
|
/*****************************************************************************
|
|
Debug level control. Only bothered with the first 12 levels, I suspect you
|
|
get the idea...
|
|
*****************************************************************************/
|
|
#define DEBUG_LEVEL_0 0x00000001UL
|
|
#define DEBUG_LEVEL_1 0x00000003UL
|
|
#define DEBUG_LEVEL_2 0x00000007UL
|
|
#define DEBUG_LEVEL_3 0x0000000FUL
|
|
#define DEBUG_LEVEL_4 0x0000001FUL
|
|
#define DEBUG_LEVEL_5 0x0000003FUL
|
|
#define DEBUG_LEVEL_6 0x0000007FUL
|
|
#define DEBUG_LEVEL_7 0x000000FFUL
|
|
#define DEBUG_LEVEL_8 0x000001FFUL
|
|
#define DEBUG_LEVEL_9 0x000003FFUL
|
|
#define DEBUG_LEVEL_10 0x000007FFUL
|
|
#define DEBUG_LEVEL_11 0x00000FFFUL
|
|
|
|
#define DEBUG_LEVEL_SEL0 0x00000001UL
|
|
#define DEBUG_LEVEL_SEL1 0x00000002UL
|
|
#define DEBUG_LEVEL_SEL2 0x00000004UL
|
|
#define DEBUG_LEVEL_SEL3 0x00000008UL
|
|
#define DEBUG_LEVEL_SEL4 0x00000010UL
|
|
#define DEBUG_LEVEL_SEL5 0x00000020UL
|
|
#define DEBUG_LEVEL_SEL6 0x00000040UL
|
|
#define DEBUG_LEVEL_SEL7 0x00000080UL
|
|
#define DEBUG_LEVEL_SEL8 0x00000100UL
|
|
#define DEBUG_LEVEL_SEL9 0x00000200UL
|
|
#define DEBUG_LEVEL_SEL10 0x00000400UL
|
|
#define DEBUG_LEVEL_SEL11 0x00000800UL
|
|
|
|
/*****************************************************************************
|
|
IOCTL values.
|
|
*****************************************************************************/
|
|
#define DEBUG_SERVICE_IOCTL_BASE 0x800UL
|
|
#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)
|
|
#define DEBUG_SERVICE_WAITFOREVENT CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x18, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
#define DEBUG_SERVICE_SETCONNNOTIFY CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x19, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
|
|
|
|
typedef enum _DBG_EVENT_
|
|
{
|
|
DBG_EVENT_STREAM_DATA = 1
|
|
} DBG_EVENT;
|
|
|
|
|
|
/*****************************************************************************
|
|
In/Out Structures
|
|
*****************************************************************************/
|
|
typedef struct _DBG_IN_CREATESTREAM_
|
|
{
|
|
union
|
|
{
|
|
IMG_CHAR *pszName;
|
|
IMG_UINT64 ui64Name;
|
|
} u;
|
|
IMG_UINT32 ui32Pages;
|
|
IMG_UINT32 ui32CapMode;
|
|
IMG_UINT32 ui32OutMode;
|
|
}DBG_IN_CREATESTREAM, *PDBG_IN_CREATESTREAM;
|
|
|
|
typedef struct _DBG_IN_FINDSTREAM_
|
|
{
|
|
union
|
|
{
|
|
IMG_CHAR *pszName;
|
|
IMG_UINT64 ui64Name;
|
|
}u;
|
|
IMG_BOOL bResetStream;
|
|
}DBG_IN_FINDSTREAM, *PDBG_IN_FINDSTREAM;
|
|
|
|
typedef struct _DBG_IN_WRITESTRING_
|
|
{
|
|
union
|
|
{
|
|
IMG_CHAR *pszString;
|
|
IMG_UINT64 ui64String;
|
|
} u;
|
|
IMG_SID hStream;
|
|
IMG_UINT32 ui32Level;
|
|
}DBG_IN_WRITESTRING, *PDBG_IN_WRITESTRING;
|
|
|
|
typedef struct _DBG_IN_READSTRING_
|
|
{
|
|
union
|
|
{
|
|
IMG_CHAR *pszString;
|
|
IMG_UINT64 ui64String;
|
|
} u;
|
|
IMG_SID hStream;
|
|
IMG_UINT32 ui32StringLen;
|
|
} DBG_IN_READSTRING, *PDBG_IN_READSTRING;
|
|
|
|
typedef struct _DBG_IN_SETDEBUGMODE_
|
|
{
|
|
IMG_SID hStream;
|
|
IMG_UINT32 ui32Mode;
|
|
IMG_UINT32 ui32Start;
|
|
IMG_UINT32 ui32End;
|
|
IMG_UINT32 ui32SampleRate;
|
|
} DBG_IN_SETDEBUGMODE, *PDBG_IN_SETDEBUGMODE;
|
|
|
|
typedef struct _DBG_IN_SETDEBUGOUTMODE_
|
|
{
|
|
IMG_SID hStream;
|
|
IMG_UINT32 ui32Mode;
|
|
} DBG_IN_SETDEBUGOUTMODE, *PDBG_IN_SETDEBUGOUTMODE;
|
|
|
|
typedef struct _DBG_IN_SETDEBUGLEVEL_
|
|
{
|
|
IMG_SID hStream;
|
|
IMG_UINT32 ui32Level;
|
|
} DBG_IN_SETDEBUGLEVEL, *PDBG_IN_SETDEBUGLEVEL;
|
|
|
|
typedef struct _DBG_IN_SETFRAME_
|
|
{
|
|
IMG_SID hStream;
|
|
IMG_UINT32 ui32Frame;
|
|
} DBG_IN_SETFRAME, *PDBG_IN_SETFRAME;
|
|
|
|
typedef struct _DBG_IN_WRITE_
|
|
{
|
|
union
|
|
{
|
|
IMG_UINT8 *pui8InBuffer;
|
|
IMG_UINT64 ui64InBuffer;
|
|
} u;
|
|
IMG_SID hStream;
|
|
IMG_UINT32 ui32Level;
|
|
IMG_UINT32 ui32TransferSize;
|
|
} DBG_IN_WRITE, *PDBG_IN_WRITE;
|
|
|
|
typedef struct _DBG_IN_READ_
|
|
{
|
|
union
|
|
{
|
|
IMG_UINT8 *pui8OutBuffer;
|
|
IMG_UINT64 ui64OutBuffer;
|
|
} u;
|
|
IMG_SID hStream;
|
|
IMG_BOOL bReadInitBuffer;
|
|
IMG_UINT32 ui32OutBufferSize;
|
|
} DBG_IN_READ, *PDBG_IN_READ;
|
|
|
|
typedef struct _DBG_IN_OVERRIDEMODE_
|
|
{
|
|
IMG_SID hStream;
|
|
IMG_UINT32 ui32Mode;
|
|
} DBG_IN_OVERRIDEMODE, *PDBG_IN_OVERRIDEMODE;
|
|
|
|
typedef struct _DBG_IN_ISCAPTUREFRAME_
|
|
{
|
|
IMG_SID hStream;
|
|
IMG_BOOL bCheckPreviousFrame;
|
|
} DBG_IN_ISCAPTUREFRAME, *PDBG_IN_ISCAPTUREFRAME;
|
|
|
|
typedef struct _DBG_IN_SETMARKER_
|
|
{
|
|
IMG_SID hStream;
|
|
IMG_UINT32 ui32Marker;
|
|
} DBG_IN_SETMARKER, *PDBG_IN_SETMARKER;
|
|
|
|
typedef struct _DBG_IN_WRITE_LF_
|
|
{
|
|
union
|
|
{
|
|
IMG_UINT8 *pui8InBuffer;
|
|
IMG_UINT64 ui64InBuffer;
|
|
} u;
|
|
IMG_UINT32 ui32Flags;
|
|
IMG_SID hStream;
|
|
IMG_UINT32 ui32Level;
|
|
IMG_UINT32 ui32BufferSize;
|
|
} DBG_IN_WRITE_LF, *PDBG_IN_WRITE_LF;
|
|
|
|
/*
|
|
Flags for above struct
|
|
*/
|
|
#define WRITELF_FLAGS_RESETBUF 0x00000001UL
|
|
|
|
/*
|
|
Common control structure (don't duplicate control in main stream
|
|
and init phase stream).
|
|
*/
|
|
typedef struct _DBG_STREAM_CONTROL_
|
|
{
|
|
IMG_BOOL bInitPhaseComplete; /*!< init phase has finished */
|
|
IMG_UINT32 ui32Flags; /*!< flags (see DEBUG_FLAGS above) */
|
|
|
|
IMG_UINT32 ui32CapMode; /*!< capturing mode framed/hot key */
|
|
IMG_UINT32 ui32OutMode; /*!< output mode, e.g. files */
|
|
IMG_UINT32 ui32DebugLevel;
|
|
IMG_UINT32 ui32DefaultMode;
|
|
IMG_UINT32 ui32Start; /*!< first capture frame */
|
|
IMG_UINT32 ui32End; /*!< last frame */
|
|
IMG_UINT32 ui32Current; /*!< current frame */
|
|
IMG_UINT32 ui32SampleRate; /*!< capture frequency */
|
|
IMG_UINT32 ui32Reserved;
|
|
} DBG_STREAM_CONTROL, *PDBG_STREAM_CONTROL;
|
|
/*
|
|
Per-buffer control structure.
|
|
*/
|
|
typedef struct _DBG_STREAM_
|
|
{
|
|
struct _DBG_STREAM_ *psNext;
|
|
struct _DBG_STREAM_ *psInitStream;
|
|
DBG_STREAM_CONTROL *psCtrl;
|
|
IMG_BOOL bCircularAllowed;
|
|
IMG_PVOID pvBase;
|
|
IMG_UINT32 ui32Size;
|
|
IMG_UINT32 ui32RPtr;
|
|
IMG_UINT32 ui32WPtr;
|
|
IMG_UINT32 ui32DataWritten;
|
|
IMG_UINT32 ui32Marker; /*!< marker for file splitting */
|
|
IMG_UINT32 ui32InitPhaseWOff; /*!< snapshot offset for init phase end for follow-on pdump */
|
|
IMG_CHAR szName[30]; /* Give this a size, some compilers don't like [] */
|
|
} DBG_STREAM,*PDBG_STREAM;
|
|
|
|
/*
|
|
* Allows dbgdrv to notify services when events happen, e.g. pdump.exe starts.
|
|
* (better than resetting psDevInfo->psKernelCCBInfo->ui32CCBDumpWOff = 0
|
|
* in SGXGetClientInfoKM.)
|
|
*/
|
|
typedef struct _DBGKM_CONNECT_NOTIFIER_
|
|
{
|
|
IMG_VOID (IMG_CALLCONV *pfnConnectNotifier) (IMG_VOID);
|
|
} DBGKM_CONNECT_NOTIFIER, *PDBGKM_CONNECT_NOTIFIER;
|
|
|
|
/*****************************************************************************
|
|
Kernel mode service table
|
|
*****************************************************************************/
|
|
typedef struct _DBGKM_SERVICE_TABLE_
|
|
{
|
|
IMG_UINT32 ui32Size;
|
|
IMG_VOID * (IMG_CALLCONV *pfnCreateStream) (IMG_CHAR * pszName,IMG_UINT32 ui32CapMode,IMG_UINT32 ui32OutMode,IMG_UINT32 ui32Flags,IMG_UINT32 ui32Pages);
|
|
IMG_VOID (IMG_CALLCONV *pfnDestroyStream) (PDBG_STREAM psStream);
|
|
IMG_VOID * (IMG_CALLCONV *pfnFindStream) (IMG_CHAR * pszName, IMG_BOOL bResetInitBuffer);
|
|
IMG_UINT32 (IMG_CALLCONV *pfnWriteString) (PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Level);
|
|
IMG_UINT32 (IMG_CALLCONV *pfnReadString) (PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Limit);
|
|
IMG_UINT32 (IMG_CALLCONV *pfnWriteBIN) (PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
|
|
IMG_UINT32 (IMG_CALLCONV *pfnReadBIN) (PDBG_STREAM psStream,IMG_BOOL bReadInitBuffer, IMG_UINT32 ui32OutBufferSize,IMG_UINT8 *pui8OutBuf);
|
|
IMG_VOID (IMG_CALLCONV *pfnSetCaptureMode) (PDBG_STREAM psStream,IMG_UINT32 ui32CapMode,IMG_UINT32 ui32Start,IMG_UINT32 ui32Stop,IMG_UINT32 ui32SampleRate);
|
|
IMG_VOID (IMG_CALLCONV *pfnSetOutputMode) (PDBG_STREAM psStream,IMG_UINT32 ui32OutMode);
|
|
IMG_VOID (IMG_CALLCONV *pfnSetDebugLevel) (PDBG_STREAM psStream,IMG_UINT32 ui32DebugLevel);
|
|
IMG_VOID (IMG_CALLCONV *pfnSetFrame) (PDBG_STREAM psStream,IMG_UINT32 ui32Frame);
|
|
IMG_UINT32 (IMG_CALLCONV *pfnGetFrame) (PDBG_STREAM psStream);
|
|
IMG_VOID (IMG_CALLCONV *pfnOverrideMode) (PDBG_STREAM psStream,IMG_UINT32 ui32Mode);
|
|
IMG_VOID (IMG_CALLCONV *pfnDefaultMode) (PDBG_STREAM psStream);
|
|
IMG_UINT32 (IMG_CALLCONV *pfnDBGDrivWrite2) (PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
|
|
IMG_UINT32 (IMG_CALLCONV *pfnWriteStringCM) (PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Level);
|
|
IMG_UINT32 (IMG_CALLCONV *pfnWriteBINCM) (PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
|
|
IMG_VOID (IMG_CALLCONV *pfnSetMarker) (PDBG_STREAM psStream,IMG_UINT32 ui32Marker);
|
|
IMG_UINT32 (IMG_CALLCONV *pfnGetMarker) (PDBG_STREAM psStream);
|
|
IMG_VOID (IMG_CALLCONV *pfnStartInitPhase) (PDBG_STREAM psStream);
|
|
IMG_VOID (IMG_CALLCONV *pfnStopInitPhase) (PDBG_STREAM psStream);
|
|
IMG_BOOL (IMG_CALLCONV *pfnIsCaptureFrame) (PDBG_STREAM psStream, IMG_BOOL bCheckPreviousFrame);
|
|
IMG_UINT32 (IMG_CALLCONV *pfnWriteLF) (PDBG_STREAM psStream, IMG_UINT8 *pui8InBuf, IMG_UINT32 ui32InBuffSize, IMG_UINT32 ui32Level, IMG_UINT32 ui32Flags);
|
|
IMG_UINT32 (IMG_CALLCONV *pfnReadLF) (PDBG_STREAM psStream, IMG_UINT32 ui32OutBuffSize, IMG_UINT8 *pui8OutBuf);
|
|
IMG_UINT32 (IMG_CALLCONV *pfnGetStreamOffset) (PDBG_STREAM psStream);
|
|
IMG_VOID (IMG_CALLCONV *pfnSetStreamOffset) (PDBG_STREAM psStream, IMG_UINT32 ui32StreamOffset);
|
|
IMG_BOOL (IMG_CALLCONV *pfnIsLastCaptureFrame) (PDBG_STREAM psStream);
|
|
IMG_VOID (IMG_CALLCONV *pfnWaitForEvent) (DBG_EVENT eEvent);
|
|
IMG_VOID (IMG_CALLCONV *pfnSetConnectNotifier) (DBGKM_CONNECT_NOTIFIER fn_notifier);
|
|
IMG_UINT32 (IMG_CALLCONV *pfnWritePersist) (PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
|
|
} DBGKM_SERVICE_TABLE, *PDBGKM_SERVICE_TABLE;
|
|
|
|
#if defined(__linux__)
|
|
/*****************************************************************************
|
|
Function to export service table from debug driver to the PDUMP component.
|
|
*****************************************************************************/
|
|
IMG_VOID DBGDrvGetServiceTable(DBGKM_SERVICE_TABLE **fn_table);
|
|
#endif
|
|
|
|
|
|
#endif
|
|
/*****************************************************************************
|
|
End of file (DBGDRVIF.H)
|
|
*****************************************************************************/
|