本文整理汇总了C++中PDBGKM_SERVICE_TABLE类的典型用法代码示例。如果您正苦于以下问题:C++ PDBGKM_SERVICE_TABLE类的具体用法?C++ PDBGKM_SERVICE_TABLE怎么用?C++ PDBGKM_SERVICE_TABLE使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了PDBGKM_SERVICE_TABLE类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PDumpOSDebugDriverWrite
/*!
* \name PDumpOSDebugDriverWrite
*/
IMG_UINT32 PDumpOSDebugDriverWrite( PDBG_STREAM psStream,
PDUMP_DDWMODE eDbgDrvWriteMode,
IMG_UINT8 *pui8Data,
IMG_UINT32 ui32BCount,
IMG_UINT32 ui32Level,
IMG_UINT32 ui32DbgDrvFlags)
{
switch(eDbgDrvWriteMode)
{
case PDUMP_WRITE_MODE_CONTINUOUS:
PVR_UNREFERENCED_PARAMETER(ui32DbgDrvFlags);
return gpfnDbgDrv->pfnDBGDrivWrite2(psStream, pui8Data, ui32BCount, ui32Level);
case PDUMP_WRITE_MODE_LASTFRAME:
return gpfnDbgDrv->pfnWriteLF(psStream, pui8Data, ui32BCount, ui32Level, ui32DbgDrvFlags);
case PDUMP_WRITE_MODE_BINCM:
PVR_UNREFERENCED_PARAMETER(ui32DbgDrvFlags);
return gpfnDbgDrv->pfnWriteBINCM(psStream, pui8Data, ui32BCount, ui32Level);
case PDUMP_WRITE_MODE_PERSISTENT:
PVR_UNREFERENCED_PARAMETER(ui32DbgDrvFlags);
return gpfnDbgDrv->pfnWritePersist(psStream, pui8Data, ui32BCount, ui32Level);
default:
PVR_UNREFERENCED_PARAMETER(ui32DbgDrvFlags);
break;
}
return 0xFFFFFFFFU;
}
示例2: PDumpDeInit
IMG_VOID PDumpDeInit(IMG_VOID)
{
IMG_UINT32 i;
for(i=0; i < PDUMP_NUM_STREAMS; i++)
{
gpfnDbgDrv->pfnDestroyStream(gsDBGPdumpState.psStream[i]);
}
if(gsDBGPdumpState.pszFile)
{
OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, SZ_FILENAME_SIZE_MAX, (IMG_PVOID) gsDBGPdumpState.pszFile, 0);
gsDBGPdumpState.pszFile = IMG_NULL;
}
if(gsDBGPdumpState.pszScript)
{
OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, SZ_SCRIPT_SIZE_MAX, (IMG_PVOID) gsDBGPdumpState.pszScript, 0);
gsDBGPdumpState.pszScript = IMG_NULL;
}
if(gsDBGPdumpState.pszMsg)
{
OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, SZ_MSG_SIZE_MAX, (IMG_PVOID) gsDBGPdumpState.pszMsg, 0);
gsDBGPdumpState.pszMsg = IMG_NULL;
}
gpfnDbgDrv = IMG_NULL;
}
示例3: PDumpOSIsCaptureFrameKM
/**************************************************************************
* Function Name : PDumpIsCaptureFrameKM
* Inputs : None
* Outputs : None
* Returns : True or false
* Description : Tests whether the current frame is being pdumped
**************************************************************************/
IMG_BOOL PDumpOSIsCaptureFrameKM(IMG_VOID)
{
if (PDumpSuspended())
{
return IMG_FALSE;
}
return gpfnDbgDrv->pfnIsCaptureFrame(gsDBGPdumpState.psStream[PDUMP_STREAM_SCRIPT2], IMG_FALSE);
}
示例4: DbgWrite
static IMG_UINT32 DbgWrite(PDBG_STREAM psStream, IMG_UINT8 *pui8Data, IMG_UINT32 ui32BCount, IMG_UINT32 ui32Flags)
{
IMG_UINT32 ui32BytesWritten;
if ((ui32Flags & PDUMP_FLAGS_CONTINUOUS) != 0)
{
if (((psStream->ui32CapMode & DEBUG_CAPMODE_FRAMED) != 0) &&
(psStream->ui32Start == 0xFFFFFFFFUL) &&
(psStream->ui32End == 0xFFFFFFFFUL) &&
psStream->bInitPhaseComplete)
{
ui32BytesWritten = ui32BCount;
}
else
{
ui32BytesWritten = gpfnDbgDrv->pfnDBGDrivWrite2(psStream, pui8Data, ui32BCount, 1);
}
}
else
{
if (ui32Flags & PDUMP_FLAGS_LASTFRAME)
{
IMG_UINT32 ui32DbgFlags;
ui32DbgFlags = 0;
if (ui32Flags & PDUMP_FLAGS_RESETLFBUFFER)
{
ui32DbgFlags |= WRITELF_FLAGS_RESETBUF;
}
ui32BytesWritten = gpfnDbgDrv->pfnWriteLF(psStream, pui8Data, ui32BCount, 1, ui32DbgFlags);
}
else
{
ui32BytesWritten = gpfnDbgDrv->pfnWriteBINCM(psStream, pui8Data, ui32BCount, 1);
}
}
return ui32BytesWritten;
}
示例5: PDumpWriteILock
static IMG_BOOL PDumpWriteILock(PDBG_STREAM psStream, IMG_UINT8 *pui8Data, IMG_UINT32 ui32Count, IMG_UINT32 ui32Flags)
{
IMG_UINT32 ui32Written = 0;
IMG_UINT32 ui32Off = 0;
if ((psStream == IMG_NULL) || PDumpSuspended() || ((ui32Flags & PDUMP_FLAGS_NEVER) != 0))
{
return IMG_TRUE;
}
if (psStream == gsDBGPdumpState.psStream[PDUMP_STREAM_PARAM2])
{
IMG_UINT32 ui32ParamOutPos = gpfnDbgDrv->pfnGetStreamOffset(gsDBGPdumpState.psStream[PDUMP_STREAM_PARAM2]);
if (ui32ParamOutPos + ui32Count > MAX_FILE_SIZE)
{
if ((gsDBGPdumpState.psStream[PDUMP_STREAM_SCRIPT2] && PDumpWriteString2("\r\n-- Splitting pdump output file\r\n\r\n", ui32Flags)))
{
DbgSetMarker(gsDBGPdumpState.psStream[PDUMP_STREAM_PARAM2], ui32ParamOutPos);
gsDBGPdumpState.ui32ParamFileNum++;
}
}
}
while (((IMG_UINT32) ui32Count > 0) && (ui32Written != 0xFFFFFFFF))
{
ui32Written = DbgWrite(psStream, &pui8Data[ui32Off], ui32Count, ui32Flags);
if (ui32Written == 0)
{
OSReleaseThreadQuanta();
}
if (ui32Written != 0xFFFFFFFF)
{
ui32Off += ui32Written;
ui32Count -= ui32Written;
}
}
if (ui32Written == 0xFFFFFFFF)
{
return IMG_FALSE;
}
return IMG_TRUE;
}
示例6: PDumpStartInitPhaseKM
/**************************************************************************
* Function Name : PDumpStartInitPhaseKM
* Inputs : None
* Outputs : None
* Returns : None
* Description : Resume init phase state
**************************************************************************/
PVRSRV_ERROR PDumpStartInitPhaseKM(IMG_VOID)
{
IMG_UINT32 i;
if (gpfnDbgDrv)
{
PDUMPCOMMENT("Start Init Phase");
for(i=0; i < PDUMP_NUM_STREAMS; i++)
{
gpfnDbgDrv->pfnStartInitPhase(gsDBGPdumpState.psStream[i]);
}
}
return PVRSRV_OK;
}
示例7: DbgSetMarker
/*****************************************************************************
FUNCTION : DbgSetMarker
PURPOSE : Sets the marker of the stream to split output files
PARAMETERS : psStream - Stream pointer
ui32Marker - Marker number to set
RETURNS : None
*****************************************************************************/
static IMG_VOID DbgSetMarker(PDBG_STREAM psStream, IMG_UINT32 ui32Marker)
{
gpfnDbgDrv->pfnSetMarker(psStream, ui32Marker);
}
示例8: DbgSetFrame
/*****************************************************************************
FUNCTION : DbgSetFrame
PURPOSE : Sets the frame in the stream
PARAMETERS : psStream - Stream pointer
ui32Frame - Frame number to set
RETURNS : None
*****************************************************************************/
static IMG_VOID DbgSetFrame(PDBG_STREAM psStream, IMG_UINT32 ui32Frame)
{
gpfnDbgDrv->pfnSetFrame(psStream, ui32Frame);
}
示例9: PDumpIsLastCaptureFrameKM
/**************************************************************************
* Function Name : PDumpIsLastCaptureFrameKM
* Inputs : None
* Outputs : None
* Returns : True or false
* Description : Tests whether the current frame is being pdumped
**************************************************************************/
IMG_BOOL PDumpIsLastCaptureFrameKM(IMG_VOID)
{
return gpfnDbgDrv->pfnIsLastCaptureFrame(gsDBGPdumpState.psStream[PDUMP_STREAM_SCRIPT2]);
}
示例10: PDumpInit
/**************************************************************************
* Function Name : PDumpInit
* Outputs : None
* Returns :
* Description : Reset connection to vldbgdrv
* Then try to connect to PDUMP streams
**************************************************************************/
IMG_VOID PDumpInit(IMG_VOID)
{
IMG_UINT32 i;
DBGKM_CONNECT_NOTIFIER sConnectNotifier;
/* If we tried this earlier, then we might have connected to the driver
* But if pdump.exe was running then the stream connected would fail
*/
if (!gpfnDbgDrv)
{
DBGDrvGetServiceTable(&gpfnDbgDrv);
// If something failed then no point in trying to connect streams
if (gpfnDbgDrv == IMG_NULL)
{
return;
}
/*
* Pass the connection notify callback
*/
sConnectNotifier.pfnConnectNotifier = &PDumpConnectionNotify;
gpfnDbgDrv->pfnSetConnectNotifier(sConnectNotifier);
if(!gsDBGPdumpState.pszFile)
{
if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, SZ_FILENAME_SIZE_MAX, (IMG_PVOID *)&gsDBGPdumpState.pszFile, 0,
"Filename string") != PVRSRV_OK)
{
goto init_failed;
}
}
if(!gsDBGPdumpState.pszMsg)
{
if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, SZ_MSG_SIZE_MAX, (IMG_PVOID *)&gsDBGPdumpState.pszMsg, 0,
"Message string") != PVRSRV_OK)
{
goto init_failed;
}
}
if(!gsDBGPdumpState.pszScript)
{
if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, SZ_SCRIPT_SIZE_MAX, (IMG_PVOID *)&gsDBGPdumpState.pszScript, 0,
"Script string") != PVRSRV_OK)
{
goto init_failed;
}
}
for(i=0; i < PDUMP_NUM_STREAMS; i++)
{
gsDBGPdumpState.psStream[i] = gpfnDbgDrv->pfnCreateStream(pszStreamName[i],
DEBUG_CAPMODE_FRAMED,
DEBUG_OUTMODE_STREAMENABLE,
0,
10);
gpfnDbgDrv->pfnSetCaptureMode(gsDBGPdumpState.psStream[i],DEBUG_CAPMODE_FRAMED,0xFFFFFFFF, 0xFFFFFFFF, 1);
gpfnDbgDrv->pfnSetFrame(gsDBGPdumpState.psStream[i],0);
}
PDUMPCOMMENT("Driver Product Name: %s", VS_PRODUCT_NAME);
PDUMPCOMMENT("Driver Product Version: %s (%s)", PVRVERSION_STRING, PVRVERSION_FAMILY);
PDUMPCOMMENT("Start of Init Phase");
}
return;
init_failed:
if(gsDBGPdumpState.pszFile)
{
OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, SZ_FILENAME_SIZE_MAX, (IMG_PVOID) gsDBGPdumpState.pszFile, 0);
gsDBGPdumpState.pszFile = IMG_NULL;
}
if(gsDBGPdumpState.pszScript)
{
OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, SZ_SCRIPT_SIZE_MAX, (IMG_PVOID) gsDBGPdumpState.pszScript, 0);
gsDBGPdumpState.pszScript = IMG_NULL;
}
if(gsDBGPdumpState.pszMsg)
{
OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, SZ_MSG_SIZE_MAX, (IMG_PVOID) gsDBGPdumpState.pszMsg, 0);
gsDBGPdumpState.pszMsg = IMG_NULL;
}
/*
* Remove the connection notify callback
//.........这里部分代码省略.........
示例11: PDumpOSGetStreamOffset
/*!
* \name PDumpOSGetStreamOffset
*/
IMG_UINT32 PDumpOSGetStreamOffset(IMG_UINT32 ePDumpStream)
{
PDBG_STREAM psStream = gsDBGPdumpState.psStream[ePDumpStream];
return gpfnDbgDrv->pfnGetStreamOffset(psStream);
}
示例12: DbgGetFrame
static IMG_UINT32 DbgGetFrame(PDBG_STREAM psStream)
{
return gpfnDbgDrv->pfnGetFrame(psStream);
}