static IMG_BOOL PDumpWriteILock(struct DBG_STREAM *psStream, u8 *pui8Data,
u32 ui32Count, u32 ui32Flags);
static void DbgSetFrame(struct DBG_STREAM *psStream, u32 ui32Frame);
-static u32 DbgGetFrame(struct DBG_STREAM *psStream);
static void DbgSetMarker(struct DBG_STREAM *psStream, u32 ui32Marker);
static u32 DbgWrite(struct DBG_STREAM *psStream, u8 *pui8Data,
u32 ui32BCount, u32 ui32Flags);
-#define PDUMP_DATAMASTER_PIXEL 1
-
#define MIN(a, b) (a > b ? b : a)
#define MAX_FILE_SIZE 0x40000000
PDumpCommentKM(pszMsg, ui32Flags);
}
-IMG_BOOL PDumpIsLastCaptureFrameKM(void)
-{
- return gpfnDbgDrv->pfnIsLastCaptureFrame(
- gsDBGPdumpState.psStream[PDUMP_STREAM_SCRIPT2]);
-}
-
IMG_BOOL PDumpIsCaptureFrameKM(void)
{
if (PDumpSuspended())
return PVRSRV_OK;
}
-static enum PVRSRV_ERROR PDumpGetFrameKM(u32 *pui32Frame)
-{
- *pui32Frame =
- DbgGetFrame(gsDBGPdumpState.psStream[PDUMP_STREAM_SCRIPT2]);
-
- return PVRSRV_OK;
-}
-
enum PVRSRV_ERROR PDumpCommentKM(char *pszComment, u32 ui32Flags)
{
u32 ui32Count = 0;
gpfnDbgDrv->pfnSetFrame(psStream, ui32Frame);
}
-static u32 DbgGetFrame(struct DBG_STREAM *psStream)
-{
- return gpfnDbgDrv->pfnGetFrame(psStream);
-}
-
static void DbgSetMarker(struct DBG_STREAM *psStream, u32 ui32Marker)
{
gpfnDbgDrv->pfnSetMarker(psStream, ui32Marker);
return ui32BytesWritten;
}
-IMG_BOOL PDumpTestNextFrame(u32 ui32CurrentFrame)
-{
- IMG_BOOL bFrameDumped;
-
- bFrameDumped = IMG_FALSE;
- PDumpSetFrameKM(ui32CurrentFrame + 1);
- bFrameDumped = PDumpIsCaptureFrameKM();
- PDumpSetFrameKM(ui32CurrentFrame);
-
- return bFrameDumped;
-}
-
void PDump3DSignatureRegisters(u32 ui32DumpFrameNum, IMG_BOOL bLastFrame,
u32 *pui32Registers, u32 ui32NumRegisters)
{
PDumpWriteString2(pszScript, ui32Flags);
}
-void PDumpIDL(u32 ui32Clocks)
-{
- PDumpIDLWithFlags(ui32Clocks, PDUMP_FLAGS_CONTINUOUS);
-}
-
void PDumpSuspendKM(void)
{
atomic_inc(&gsPDumpSuspended);
#define PTR_PLUS(t, p, x) ((t *)(((char *)(p)) + (x)))
#define VPTR_PLUS(p, x) PTR_PLUS(void, p, x)
#define VPTR_INC(p, x) (p = VPTR_PLUS(p, x))
-#define MAX_PDUMP_MMU_CONTEXTS 10
+
static void *gpvTempBuffer;
static void *ghTempBufferBlockAlloc;
-static u16 gui16MMUContextUsage;
static void *GetTempBuffer(void)
{
return PVRSRV_OK;
}
-static enum PVRSRV_ERROR _PdumpAllocMMUContext(u32 *pui32MMUContextID)
-{
- u32 i;
-
- for (i = 0; i < MAX_PDUMP_MMU_CONTEXTS; i++)
- if ((gui16MMUContextUsage & (1UL << i)) == 0) {
- gui16MMUContextUsage |= 1UL << i;
- *pui32MMUContextID = i;
- return PVRSRV_OK;
- }
-
- PVR_DPF(PVR_DBG_ERROR,
- "_PdumpAllocMMUContext: no free MMU context ids");
-
- return PVRSRV_ERROR_GENERIC;
-}
-
-static enum PVRSRV_ERROR _PdumpFreeMMUContext(u32 ui32MMUContextID)
-{
- if (ui32MMUContextID < MAX_PDUMP_MMU_CONTEXTS) {
-
- gui16MMUContextUsage &= ~(1UL << ui32MMUContextID);
- return PVRSRV_OK;
- }
-
- PVR_DPF(PVR_DBG_ERROR,
- "_PdumpFreeMMUContext: MMU context ids invalid");
-
- return PVRSRV_ERROR_GENERIC;
-}
-
-enum PVRSRV_ERROR PDumpSetMMUContext(enum PVRSRV_DEVICE_TYPE eDeviceType,
- char *pszMemSpace, u32 *pui32MMUContextID,
- u32 ui32MMUType, void *hUniqueTag1,
- void *pvPDCPUAddr)
-{
- u8 *pui8LinAddr = (u8 *) pvPDCPUAddr;
- struct IMG_CPU_PHYADDR sCpuPAddr;
- struct IMG_DEV_PHYADDR sDevPAddr;
- u32 ui32MMUContextID;
- enum PVRSRV_ERROR eError;
-
- eError = _PdumpAllocMMUContext(&ui32MMUContextID);
- if (eError != PVRSRV_OK) {
- PVR_DPF(PVR_DBG_ERROR,
- "PDumpSetMMUContext: _PdumpAllocMMUContext failed: %d",
- eError);
- return eError;
- }
-
- sCpuPAddr = OSMapLinToCPUPhys(pui8LinAddr);
- sDevPAddr = SysCpuPAddrToDevPAddr(eDeviceType, sCpuPAddr);
-
- sDevPAddr.uiAddr &= ~PVRSRV_4K_PAGE_SIZE;
-
- PDumpComment("Set MMU Context\r\n");
-
- PDumpComment("MMU :%s:v%d %d :%s:PA_%8.8lX%8.8lX\r\n",
- pszMemSpace, ui32MMUContextID, ui32MMUType, pszMemSpace,
- hUniqueTag1, sDevPAddr.uiAddr);
-
- *pui32MMUContextID = ui32MMUContextID;
-
- return PVRSRV_OK;
-}
-
-enum PVRSRV_ERROR PDumpClearMMUContext(enum PVRSRV_DEVICE_TYPE eDeviceType,
- char *pszMemSpace,
- u32 ui32MMUContextID, u32 ui32MMUType)
-{
- enum PVRSRV_ERROR eError;
-
- PVR_UNREFERENCED_PARAMETER(eDeviceType);
-
- PDumpComment("Clear MMU Context\r\n");
-
- PDumpComment("MMU :%s:v%d %d\r\n",
- pszMemSpace, ui32MMUContextID, ui32MMUType);
-
- eError = _PdumpFreeMMUContext(ui32MMUContextID);
- if (eError != PVRSRV_OK) {
- PVR_DPF(PVR_DBG_ERROR,
- "PDumpClearMMUContext: _PdumpFreeMMUContext failed: %d",
- eError);
- return eError;
- }
-
- return PVRSRV_OK;
-}
-
#endif
(((struct BM_BUF *)(((struct PVRSRV_KERNEL_MEM_INFO *) \
hMemInfo)->sMemBlk.hBuffer))->pMapping)
-#define PDUMP_REG_FUNC_NAME PDumpReg
-
enum PVRSRV_ERROR PDumpMemPolKM(struct PVRSRV_KERNEL_MEM_INFO
*psMemInfo, u32 ui32Offset,
u32 ui32Value, u32 ui32Mask,
struct PVRSRV_KERNEL_MEM_INFO *psMemInfo, u32 ui32Offset,
u32 ui32Bytes, u32 ui32Flags, void *hUniqueTag);
-enum PVRSRV_ERROR PDumpMemPagesKM(enum PVRSRV_DEVICE_TYPE eDeviceType,
- struct IMG_DEV_PHYADDR *pPages, u32 ui32NumPages,
- struct IMG_DEV_VIRTADDR sDevAddr, u32 ui32Start,
- u32 ui32Length, u32 ui32Flags, void *hUniqueTag);
-
enum PVRSRV_ERROR PDumpMem2KM(enum PVRSRV_DEVICE_TYPE eDeviceType,
void *pvLinAddr,
u32 ui32Bytes,
void PDumpHWPerfCBKM(char *pszFileName, u32 ui32FileOffset,
struct IMG_DEV_VIRTADDR sDevBaseAddr,
u32 ui32Size, u32 ui32PDumpFlags);
-void PDUMP_REG_FUNC_NAME(u32 dwReg, u32 dwData);
-
-void PDumpMsvdxRegRead(const char *const pRegRegion, const u32 dwRegOffset);
-
-void PDumpMsvdxRegWrite(const char *const pRegRegion, const u32 dwRegOffset,
- const u32 dwData);
-
-enum PVRSRV_ERROR PDumpMsvdxRegPol(const char *const pRegRegion,
- const u32 ui32Offset, const u32 ui32CheckFuncIdExt,
- const u32 ui32RequValue, const u32 ui32Enable,
- const u32 ui32PollCount, const u32 ui32TimeOut);
-
-enum PVRSRV_ERROR PDumpMsvdxWriteRef(const char *const pRegRegion,
- const u32 ui32VLROffset, const u32 ui32Physical);
+void PDumpReg(u32 dwReg, u32 dwData);
void PDumpComment(char *pszFormat, ...);
enum PVRSRV_ERROR PDumpRegPolWithFlagsKM(u32 ui32RegAddr, u32 ui32RegValue,
u32 ui32Mask, u32 ui32Flags);
-IMG_BOOL PDumpIsLastCaptureFrameKM(void);
IMG_BOOL PDumpIsCaptureFrameKM(void);
void PDumpMallocPages(enum PVRSRV_DEVICE_TYPE eDeviceType,
u32 ui32DevVAddr, void *pvLinAddr, void *hOSMemHandle,
u32 ui32NumBytes, u32 ui32PageSize, void *hUniqueTag);
-void PDumpMallocPagesPhys(enum PVRSRV_DEVICE_TYPE eDeviceType,
- u32 ui32DevVAddr, u32 *pui32PhysPages, u32 ui32NumPages,
- void *hUniqueTag);
void PDumpMallocPageTable(enum PVRSRV_DEVICE_TYPE eDeviceType,
void *pvLinAddr, u32 ui32NumBytes, void *hUniqueTag);
-enum PVRSRV_ERROR PDumpSetMMUContext(enum PVRSRV_DEVICE_TYPE eDeviceType,
- char *pszMemSpace, u32 *pui32MMUContextID,
- u32 ui32MMUType, void *hUniqueTag1,
- void *pvPDCPUAddr);
-enum PVRSRV_ERROR PDumpClearMMUContext(enum PVRSRV_DEVICE_TYPE eDeviceType,
- char *pszMemSpace,
- u32 ui32MMUContextID, u32 ui32MMUType);
void PDumpFreePages(struct BM_HEAP *psBMHeap,
struct IMG_DEV_VIRTADDR sDevVAddr, u32 ui32NumBytes,
u32 ui32PageSize, void *hUniqueTag, IMG_BOOL bInterleaved);
u32 ui32Offset, struct IMG_DEV_PHYADDR sPDDevPAddr,
void *hUniqueTag1, void *hUniqueTag2);
-IMG_BOOL PDumpTestNextFrame(u32 ui32CurrentFrame);
-
void PDumpTASignatureRegisters(u32 ui32DumpFrameNum,
u32 ui32TAKickCount, IMG_BOOL bLastFrame,
u32 *pui32Registers, u32 ui32NumRegisters);
u32 ui32BufferSize, u32 ui32Flags, void *hUniqueTag);
void PDumpIDLWithFlags(u32 ui32Clocks, u32 ui32Flags);
-void PDumpIDL(u32 ui32Clocks);
void PDumpSuspendKM(void);
void PDumpResumeKM(void);
#define PDUMPMEMUM PDumpMemUM
#define PDUMPINIT PDumpInitCommon
#define PDUMPDEINIT PDumpDeInitCommon
-#define PDUMPISLASTFRAME PDumpIsLastCaptureFrameKM
-#define PDUMPTESTFRAME PDumpIsCaptureFrameKM
-#define PDUMPTESTNEXTFRAME PDumpTestNextFrame
#define PDUMPREGWITHFLAGS PDumpRegWithFlagsKM
-#define PDUMPREG PDUMP_REG_FUNC_NAME
+#define PDUMPREG PDumpReg
#define PDUMPCOMMENT PDumpComment
#define PDUMPCOMMENTWITHFLAGS PDumpCommentWithFlags
#define PDUMPREGPOL PDumpRegPolKM
#define PDUMPREGPOLWITHFLAGS PDumpRegPolWithFlagsKM
#define PDUMPMALLOCPAGES PDumpMallocPages
#define PDUMPMALLOCPAGETABLE PDumpMallocPageTable
-#define PDUMPSETMMUCONTEXT PDumpSetMMUContext
-#define PDUMPCLEARMMUCONTEXT PDumpClearMMUContext
#define PDUMPFREEPAGES PDumpFreePages
#define PDUMPFREEPAGETABLE PDumpFreePageTable
-#define PDUMPPDREG PDumpPDReg
#define PDUMPPDREGWITHFLAGS PDumpPDRegWithFlags
#define PDUMPCBP PDumpCBP
-#define PDUMPMALLOCPAGESPHYS PDumpMallocPagesPhys
-#define PDUMPMSVDXREGWRITE PDumpMsvdxRegWrite
-#define PDUMPMSVDXREGREAD PDumpMsvdxRegRead
-#define PDUMPMSVDXPOL PDumpMsvdxRegPol
-#define PDUMPMSVDXWRITEREF PDumpMsvdxWriteRef
-#define PDUMPBITMAPKM PDumpBitmapKM
#define PDUMPIDLWITHFLAGS PDumpIDLWithFlags
-#define PDUMPIDL PDumpIDL
#define PDUMPSUSPEND PDumpSuspendKM
#define PDUMPRESUME PDumpResumeKM
#define PDUMPMEMUM(args...)
#define PDUMPINIT(args...)
#define PDUMPDEINIT(args...)
-#define PDUMPISLASTFRAME(args...)
-#define PDUMPTESTFRAME(args...)
-#define PDUMPTESTNEXTFRAME(args...)
#define PDUMPREGWITHFLAGS(args...)
#define PDUMPREG(args...)
#define PDUMPCOMMENT(args...)
+#define PDUMPCOMMENTWITHFLAGS(args...)
#define PDUMPREGPOL(args...)
#define PDUMPREGPOLWITHFLAGS(args...)
#define PDUMPMALLOCPAGES(args...)
#define PDUMPMALLOCPAGETABLE(args...)
-#define PDUMPSETMMUCONTEXT(args...)
-#define PDUMPCLEARMMUCONTEXT(args...)
#define PDUMPFREEPAGES(args...)
#define PDUMPFREEPAGETABLE(args...)
-#define PDUMPPDREG(args...)
#define PDUMPPDREGWITHFLAGS(args...)
-#define PDUMPSYNC(args...)
-#define PDUMPCOPYTOMEM(args...)
-#define PDUMPWRITE(args...)
#define PDUMPCBP(args...)
-#define PDUMPCOMMENTWITHFLAGS(args...)
-#define PDUMPMALLOCPAGESPHYS(args...)
-#define PDUMPMSVDXREG(args...)
-#define PDUMPMSVDXREGWRITE(args...)
-#define PDUMPMSVDXREGREAD(args...)
-#define PDUMPMSVDXPOLEQ(args...)
-#define PDUMPMSVDXPOL(args...)
-#define PDUMPBITMAPKM(args...)
#define PDUMPIDLWITHFLAGS(args...)
-#define PDUMPIDL(args...)
#define PDUMPSUSPEND(args...)
#define PDUMPRESUME(args...)
-#define PDUMPMSVDXWRITEREF(args...)
#endif
#endif