| /*************************************************************************/ /*! |
| @File |
| @Title pdump functions |
| @Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved |
| @Description Main APIs for pdump functions |
| @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 _PDUMP_KM_H_ |
| #define _PDUMP_KM_H_ |
| |
| #if defined(PDUMP) |
| #include <stdarg.h> |
| #endif |
| |
| /* services/srvkm/include/ */ |
| #include "device.h" |
| |
| /* include/ */ |
| #include "pvrsrv_error.h" |
| |
| |
| #if defined(__KERNEL__) && defined(LINUX) && !defined(__GENKSYMS__) |
| #define __pvrsrv_defined_struct_enum__ |
| #include <services_kernel_client.h> |
| #endif |
| |
| #include "connection_server.h" |
| #include "sync_server.h" |
| /* |
| * Pull in pdump flags from services include |
| */ |
| #include "pdump.h" |
| #include "pdumpdefs.h" |
| |
| /* Define this to enable the PDUMP_HERE trace in the server */ |
| #undef PDUMP_TRACE |
| |
| #if defined(PDUMP_TRACE) |
| #define PDUMP_HERE(a) if (ui32Flags & PDUMP_FLAGS_DEBUG) PVR_DPF((PVR_DBG_WARNING, "HERE %d", (a))) |
| #define PDUMP_HEREA(a) PVR_DPF((PVR_DBG_WARNING, "HERE ALWAYS %d", (a))) |
| #else |
| #define PDUMP_HERE(a) (void)(a); |
| #define PDUMP_HEREA(a) (void)(a); |
| #endif |
| |
| #define PDUMP_PD_UNIQUETAG (IMG_HANDLE)0 |
| #define PDUMP_PT_UNIQUETAG (IMG_HANDLE)0 |
| |
| |
| #if defined(PDUMP_DEBUG_OUTFILES) |
| /* counter increments each time debug write is called */ |
| extern IMG_UINT32 g_ui32EveryLineCounter; |
| #endif |
| |
| typedef struct _PDUMP_CONNECTION_DATA_ PDUMP_CONNECTION_DATA; |
| typedef PVRSRV_ERROR (*PFN_PDUMP_TRANSITION)(void **pvData, IMG_BOOL bInto, IMG_UINT32 ui32PDumpFlags); |
| |
| #ifdef PDUMP |
| |
| /*! Macro used to record a panic in the PDump script stream */ |
| #define PDUMP_PANIC(_id, _msg) do \ |
| { PVRSRV_ERROR _eE;\ |
| _eE = PDumpPanic(((RGX_PDUMP_PANIC_ ## _id) & 0xFFFF), _msg, __FUNCTION__, __LINE__); \ |
| PVR_LOG_IF_ERROR(_eE, "PDumpPanic");\ |
| MSC_SUPPRESS_4127\ |
| } while (0) |
| |
| /*! Macro used to record a driver error in the PDump script stream to invalidate the capture */ |
| #define PDUMP_ERROR(_err, _msg) do \ |
| { (void) PDumpCaptureError((_err), (_msg), __FUNCTION__, __LINE__);\ |
| MSC_SUPPRESS_4127\ |
| } while (0) |
| |
| /* Shared across pdump_x files */ |
| PVRSRV_ERROR PDumpInitCommon(void); |
| void PDumpDeInitCommon(void); |
| IMG_BOOL PDumpReady(void); |
| void PDumpGetParameterZeroPageInfo(PDUMP_FILEOFFSET_T *puiZeroPageOffset, |
| size_t *puiZeroPageSize, |
| const IMG_CHAR **ppszZeroPageFilename); |
| |
| void PDumpConnectionNotify(void); |
| void PDumpDisconnectionNotify(void); |
| |
| void PDumpStopInitPhase(IMG_BOOL bPDumpClient, IMG_BOOL bInitClient); |
| PVRSRV_ERROR PDumpSetFrameKM(CONNECTION_DATA *psConnection, |
| PVRSRV_DEVICE_NODE * psDeviceNode, |
| IMG_UINT32 ui32Frame); |
| PVRSRV_ERROR PDumpGetFrameKM(CONNECTION_DATA *psConnection, |
| PVRSRV_DEVICE_NODE * psDeviceNode, |
| IMG_UINT32* pui32Frame); |
| PVRSRV_ERROR PDumpCommentKM(IMG_CHAR *pszComment, IMG_UINT32 ui32Flags); |
| |
| PVRSRV_ERROR PDumpSetDefaultCaptureParamsKM(IMG_UINT32 ui32Mode, |
| IMG_UINT32 ui32Start, |
| IMG_UINT32 ui32End, |
| IMG_UINT32 ui32Interval, |
| IMG_UINT32 ui32MaxParamFileSize); |
| |
| |
| PVRSRV_ERROR PDumpReg32(IMG_CHAR *pszPDumpRegName, |
| IMG_UINT32 ui32RegAddr, |
| IMG_UINT32 ui32RegValue, |
| IMG_UINT32 ui32Flags); |
| |
| PVRSRV_ERROR PDumpReg64(IMG_CHAR *pszPDumpRegName, |
| IMG_UINT32 ui32RegAddr, |
| IMG_UINT64 ui64RegValue, |
| IMG_UINT32 ui32Flags); |
| |
| PVRSRV_ERROR PDumpRegLabelToReg64(IMG_CHAR *pszPDumpRegName, |
| IMG_UINT32 ui32RegDst, |
| IMG_UINT32 ui32RegSrc, |
| IMG_UINT32 ui32Flags); |
| |
| PVRSRV_ERROR PDumpPhysHandleToInternalVar64(IMG_CHAR *pszInternalVar, |
| IMG_HANDLE hPdumpPages, |
| IMG_UINT32 ui32Flags); |
| |
| PVRSRV_ERROR PDumpMemLabelToInternalVar64(IMG_CHAR *pszInternalVar, |
| PMR *psPMR, |
| IMG_DEVMEM_OFFSET_T uiLogicalOffset, |
| IMG_UINT32 ui32Flags); |
| |
| PVRSRV_ERROR PDumpWriteVarORValueOp (const IMG_CHAR *pszInternalVariable, |
| const IMG_UINT64 ui64Value, |
| const IMG_UINT32 ui32PDumpFlags); |
| |
| PVRSRV_ERROR PDumpWriteVarANDValueOp (const IMG_CHAR *pszInternalVariable, |
| const IMG_UINT64 ui64Value, |
| const IMG_UINT32 ui32PDumpFlags); |
| |
| PVRSRV_ERROR PDumpWriteVarSHRValueOp (const IMG_CHAR *pszInternalVariable, |
| const IMG_UINT64 ui64Value, |
| const IMG_UINT32 ui32PDumpFlags); |
| |
| PVRSRV_ERROR PDumpInternalVarToReg32(IMG_CHAR *pszPDumpRegName, |
| IMG_UINT32 ui32Reg, |
| IMG_CHAR *pszInternalVar, |
| IMG_UINT32 ui32Flags); |
| |
| PVRSRV_ERROR PDumpInternalVarToReg64(IMG_CHAR *pszPDumpRegName, |
| IMG_UINT32 ui32Reg, |
| IMG_CHAR *pszInternalVar, |
| IMG_UINT32 ui32Flags); |
| |
| PVRSRV_ERROR PDumpMemLabelToMem32(PMR *psPMRSource, |
| PMR *psPMRDest, |
| IMG_DEVMEM_OFFSET_T uiLogicalOffsetSource, |
| IMG_DEVMEM_OFFSET_T uiLogicalOffsetDest, |
| IMG_UINT32 ui32Flags); |
| |
| PVRSRV_ERROR PDumpMemLabelToMem64(PMR *psPMRSource, |
| PMR *psPMRDest, |
| IMG_DEVMEM_OFFSET_T uiLogicalOffsetSource, |
| IMG_DEVMEM_OFFSET_T uiLogicalOffsetDest, |
| IMG_UINT32 ui32Flags); |
| |
| PVRSRV_ERROR PDumpRegLabelToMem32(IMG_CHAR *pszPDumpRegName, |
| IMG_UINT32 ui32Reg, |
| PMR *psPMR, |
| IMG_DEVMEM_OFFSET_T uiLogicalOffset, |
| IMG_UINT32 ui32Flags); |
| |
| PVRSRV_ERROR PDumpRegLabelToMem64(IMG_CHAR *pszPDumpRegName, |
| IMG_UINT32 ui32Reg, |
| PMR *psPMR, |
| IMG_DEVMEM_OFFSET_T uiLogicalOffset, |
| IMG_UINT32 ui32Flags); |
| |
| PVRSRV_ERROR PDumpRegLabelToInternalVar(IMG_CHAR *pszPDumpRegName, |
| IMG_UINT32 ui32Reg, |
| IMG_CHAR *pszInternalVar, |
| IMG_UINT32 ui32Flags); |
| |
| PVRSRV_ERROR PDumpSAW(IMG_CHAR *pszDevSpaceName, |
| IMG_UINT32 ui32HPOffsetBytes, |
| IMG_UINT32 ui32NumSaveBytes, |
| IMG_CHAR *pszOutfileName, |
| IMG_UINT32 ui32OutfileOffsetByte, |
| PDUMP_FLAGS_T uiPDumpFlags); |
| |
| PVRSRV_ERROR PDumpRegPolKM(IMG_CHAR *pszPDumpRegName, |
| IMG_UINT32 ui32RegAddr, |
| IMG_UINT32 ui32RegValue, |
| IMG_UINT32 ui32Mask, |
| IMG_UINT32 ui32Flags, |
| PDUMP_POLL_OPERATOR eOperator); |
| |
| IMG_IMPORT PVRSRV_ERROR PDumpBitmapKM(PVRSRV_DEVICE_NODE *psDeviceNode, |
| IMG_CHAR *pszFileName, |
| IMG_UINT32 ui32FileOffset, |
| IMG_UINT32 ui32Width, |
| IMG_UINT32 ui32Height, |
| IMG_UINT32 ui32StrideInBytes, |
| IMG_DEV_VIRTADDR sDevBaseAddr, |
| IMG_UINT32 ui32MMUContextID, |
| IMG_UINT32 ui32Size, |
| PDUMP_PIXEL_FORMAT ePixelFormat, |
| IMG_UINT32 ui32AddrMode, |
| IMG_UINT32 ui32PDumpFlags); |
| |
| IMG_IMPORT PVRSRV_ERROR PDumpReadRegKM(IMG_CHAR *pszPDumpRegName, |
| IMG_CHAR *pszFileName, |
| IMG_UINT32 ui32FileOffset, |
| IMG_UINT32 ui32Address, |
| IMG_UINT32 ui32Size, |
| IMG_UINT32 ui32PDumpFlags); |
| |
| PVRSRV_ERROR PDumpCommentWithFlags(IMG_UINT32 ui32Flags, |
| IMG_CHAR* pszFormat, |
| ...) __printf(2, 3); |
| |
| PVRSRV_ERROR PDumpCommentWithFlagsVA(IMG_UINT32 ui32Flags, |
| const IMG_CHAR * pszFormat, |
| va_list args); |
| |
| PVRSRV_ERROR PDumpPanic(IMG_UINT32 ui32PanicNo, |
| IMG_CHAR* pszPanicMsg, |
| const IMG_CHAR* pszPPFunc, |
| IMG_UINT32 ui32PPline); |
| |
| PVRSRV_ERROR PDumpCaptureError(PVRSRV_ERROR ui32ErrorNo, |
| IMG_CHAR* pszErrorMsg, |
| const IMG_CHAR* pszPPFunc, |
| IMG_UINT32 ui32PPline); |
| |
| PVRSRV_ERROR PDumpPDReg(PDUMP_MMU_ATTRIB *psMMUAttrib, |
| IMG_UINT32 ui32Reg, |
| IMG_UINT32 ui32dwData, |
| IMG_HANDLE hUniqueTag); |
| PVRSRV_ERROR PDumpPDRegWithFlags(PDUMP_MMU_ATTRIB *psMMUAttrib, |
| IMG_UINT32 ui32Reg, |
| IMG_UINT32 ui32Data, |
| IMG_UINT32 ui32Flags, |
| IMG_HANDLE hUniqueTag); |
| |
| PVRSRV_ERROR PDumpIsLastCaptureFrameKM(IMG_BOOL *pbIsLastCaptureFrame); |
| |
| PVRSRV_ERROR PDumpIsCaptureFrameKM(IMG_BOOL *bIsCapturing); |
| |
| PVRSRV_ERROR PDumpRegRead32(IMG_CHAR *pszPDumpRegName, |
| const IMG_UINT32 dwRegOffset, |
| IMG_UINT32 ui32Flags); |
| PVRSRV_ERROR PDumpRegRead64(IMG_CHAR *pszPDumpRegName, |
| const IMG_UINT32 dwRegOffset, |
| IMG_UINT32 ui32Flags); |
| |
| PVRSRV_ERROR PDumpIDLWithFlags(IMG_UINT32 ui32Clocks, IMG_UINT32 ui32Flags); |
| PVRSRV_ERROR PDumpIDL(IMG_UINT32 ui32Clocks); |
| |
| PVRSRV_ERROR PDumpRegBasedCBP(IMG_CHAR *pszPDumpRegName, |
| IMG_UINT32 ui32RegOffset, |
| IMG_UINT32 ui32WPosVal, |
| IMG_UINT32 ui32PacketSize, |
| IMG_UINT32 ui32BufferSize, |
| IMG_UINT32 ui32Flags); |
| |
| PVRSRV_ERROR PDumpTRG(IMG_CHAR *pszMemSpace, |
| IMG_UINT32 ui32MMUCtxID, |
| IMG_UINT32 ui32RegionID, |
| IMG_BOOL bEnable, |
| IMG_UINT64 ui64VAddr, |
| IMG_UINT64 ui64LenBytes, |
| IMG_UINT32 ui32XStride, |
| IMG_UINT32 ui32Flags); |
| |
| PVRSRV_ERROR PDumpCreateLockKM(void); |
| void PDumpDestroyLockKM(void); |
| void PDumpLock(void); |
| void PDumpUnlock(void); |
| |
| PVRSRV_ERROR PDumpIfKM(IMG_CHAR *pszPDumpCond); |
| PVRSRV_ERROR PDumpElseKM(IMG_CHAR *pszPDumpCond); |
| PVRSRV_ERROR PDumpFiKM(IMG_CHAR *pszPDumpCond); |
| |
| void PDumpPowerTransitionStart(void); |
| void PDumpPowerTransitionEnd(void); |
| IMG_BOOL PDumpInPowerTransition(void); |
| IMG_BOOL PDumpIsDumpSuspended(void); |
| |
| /*! |
| * @name PDumpWriteParameter |
| * @brief General function for writing to PDump stream. Used |
| * mainly for memory dumps to parameter stream. |
| * Usually more convenient to use PDumpWriteScript below |
| * for the script stream. |
| * @param psui8Data - data to write |
| * @param ui32Size - size of write |
| * @param ui32Flags - PDump flags |
| * @param pui32FileOffset - on return contains the file offset to |
| * the start of the parameter data |
| * @param aszFilenameStr - pointer to at least a 20 char buffer to |
| * return the parameter filename |
| * @return error |
| */ |
| PVRSRV_ERROR PDumpWriteParameter(IMG_UINT8 *psui8Data, IMG_UINT32 ui32Size, |
| IMG_UINT32 ui32Flags, IMG_UINT32* pui32FileOffset, |
| IMG_CHAR* aszFilenameStr); |
| |
| /*! |
| * @name PDumpWriteScript |
| * @brief Write an PDumpOS created string to the "script" output stream |
| * @param hString - PDump OS layer handle of string buffer to write |
| * @param ui32Flags - PDump flags |
| * @return IMG_TRUE on success. |
| */ |
| IMG_BOOL PDumpWriteScript(IMG_HANDLE hString, IMG_UINT32 ui32Flags); |
| |
| /* |
| PDumpWriteShiftedMaskedValue(): |
| |
| loads the "reference" address into an internal PDump register, |
| optionally shifts it right, |
| optionally shifts it left, |
| optionally masks it |
| then finally writes the computed value to the given destination address |
| |
| i.e. it emits pdump language equivalent to this expression: |
| |
| dest = ((&ref) >> SHRamount << SHLamount) & MASK |
| */ |
| extern PVRSRV_ERROR |
| PDumpWriteShiftedMaskedValue(const IMG_CHAR *pszDestRegspaceName, |
| const IMG_CHAR *pszDestSymbolicName, |
| IMG_DEVMEM_OFFSET_T uiDestOffset, |
| const IMG_CHAR *pszRefRegspaceName, |
| const IMG_CHAR *pszRefSymbolicName, |
| IMG_DEVMEM_OFFSET_T uiRefOffset, |
| IMG_UINT32 uiSHRAmount, |
| IMG_UINT32 uiSHLAmount, |
| IMG_UINT32 uiMask, |
| IMG_DEVMEM_SIZE_T uiWordSize, |
| IMG_UINT32 uiPDumpFlags); |
| |
| /* |
| PDumpWriteSymbAddress(): |
| |
| writes the address of the "reference" to the offset given |
| */ |
| extern PVRSRV_ERROR |
| PDumpWriteSymbAddress(const IMG_CHAR *pszDestSpaceName, |
| IMG_DEVMEM_OFFSET_T uiDestOffset, |
| const IMG_CHAR *pszRefSymbolicName, |
| IMG_DEVMEM_OFFSET_T uiRefOffset, |
| const IMG_CHAR *pszPDumpDevName, |
| IMG_UINT32 ui32WordSize, |
| IMG_UINT32 ui32AlignShift, |
| IMG_UINT32 ui32Shift, |
| IMG_UINT32 uiPDumpFlags); |
| |
| /* Register the connection with the PDump subsystem */ |
| extern PVRSRV_ERROR PDumpRegisterConnection(SYNC_CONNECTION_DATA *psSyncConnectionData, |
| PDUMP_CONNECTION_DATA **ppsPDumpConnectionData); |
| |
| /* Unregister the connection with the PDump subsystem */ |
| extern void PDumpUnregisterConnection(PDUMP_CONNECTION_DATA *psPDumpConnectionData); |
| |
| /* Register for notification of PDump Transition into/out of capture range */ |
| extern PVRSRV_ERROR PDumpRegisterTransitionCallback(PDUMP_CONNECTION_DATA *psPDumpConnectionData, |
| PFN_PDUMP_TRANSITION pfnCallback, |
| void *hPrivData, |
| void **ppvHandle); |
| |
| /* Unregister notification of PDump Transition */ |
| extern void PDumpUnregisterTransitionCallback(void *pvHandle); |
| |
| /* Notify PDump of a Transition into/out of capture range */ |
| extern PVRSRV_ERROR PDumpTransition(PDUMP_CONNECTION_DATA *psPDumpConnectionData, IMG_BOOL bInto, IMG_UINT32 ui32PDumpFlags); |
| |
| /* Wires-up a MIPS TLB in the page table*/ |
| extern PVRSRV_ERROR PdumpWireUpMipsTLB(PMR *psPMRSource, |
| PMR *psPMRDest, |
| IMG_DEVMEM_OFFSET_T uiLogicalOffsetSource, |
| IMG_DEVMEM_OFFSET_T uiLogicalOffsetDest, |
| IMG_UINT32 ui32AllocationFlags, |
| IMG_UINT32 ui32Flags); |
| |
| /*Invalidate a MIPS TLB in the page table */ |
| PVRSRV_ERROR PdumpInvalidateMipsTLB(PMR *psPMRDest, |
| IMG_DEVMEM_OFFSET_T uiLogicalOffsetDest, |
| IMG_UINT32 ui32MipsTLBValidClearMask, |
| IMG_UINT32 ui32Flags); |
| |
| |
| |
| #define PDUMP_LOCK PDumpLock |
| #define PDUMP_UNLOCK PDumpUnlock |
| |
| #define PDUMPINIT PDumpInitCommon |
| #define PDUMPDEINIT PDumpDeInitCommon |
| #define PDUMPREG32 PDumpReg32 |
| #define PDUMPREG64 PDumpReg64 |
| #define PDUMPREGREAD32 PDumpRegRead32 |
| #define PDUMPREGREAD64 PDumpRegRead64 |
| #define PDUMPCOMMENT(...) PDumpCommentWithFlags(PDUMP_FLAGS_CONTINUOUS, __VA_ARGS__) |
| #define PDUMPCOMMENTWITHFLAGS PDumpCommentWithFlags |
| #define PDUMPREGPOL PDumpRegPolKM |
| #define PDUMPPDREG PDumpPDReg |
| #define PDUMPPDREGWITHFLAGS PDumpPDRegWithFlags |
| #define PDUMPREGBASEDCBP PDumpRegBasedCBP |
| #define PDUMPENDINITPHASE PDumpStopInitPhase |
| #define PDUMPIDLWITHFLAGS PDumpIDLWithFlags |
| #define PDUMPIDL PDumpIDL |
| #define PDUMPPOWCMDSTART PDumpPowerTransitionStart |
| #define PDUMPPOWCMDEND PDumpPowerTransitionEnd |
| #define PDUMPPOWCMDINTRANS PDumpInPowerTransition |
| #define PDUMPIF PDumpIfKM |
| #define PDUMPELSE PDumpElseKM |
| #define PDUMPFI PDumpFiKM |
| #else |
| /* |
| We should be clearer about which functions can be called |
| across the bridge as this looks rather unbalanced |
| */ |
| |
| /*! Macro used to record a panic in the PDump script stream */ |
| #define PDUMP_PANIC(_id, _msg) ((void)0); |
| |
| /*! Macro used to record a driver error in the PDump script stream to invalidate the capture */ |
| #define PDUMP_ERROR(_err, _msg) ((void)0); |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpInitCommon) |
| #endif |
| static INLINE PVRSRV_ERROR |
| PDumpInitCommon(void) |
| { |
| return PVRSRV_OK; |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpConnectionNotify) |
| #endif |
| static INLINE void |
| PDumpConnectionNotify(void) |
| { |
| return; |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpDisconnectionNotify) |
| #endif |
| static INLINE void |
| PDumpDisconnectionNotify(void) |
| { |
| return; |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpCreateLockKM) |
| #endif |
| static INLINE PVRSRV_ERROR |
| PDumpCreateLockKM(void) |
| { |
| return PVRSRV_OK; |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpDestroyLockKM) |
| #endif |
| static INLINE void |
| PDumpDestroyLockKM(void) |
| { |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpLock) |
| #endif |
| static INLINE void |
| PDumpLock(void) |
| { |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpUnlock) |
| #endif |
| static INLINE void |
| PDumpUnlock(void) |
| { |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpStopInitPhase) |
| #endif |
| static INLINE void |
| PDumpStopInitPhase(IMG_BOOL bPDumpClient, IMG_BOOL bInitClient) |
| { |
| PVR_UNREFERENCED_PARAMETER(bPDumpClient); |
| PVR_UNREFERENCED_PARAMETER(bInitClient); |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpSetFrameKM) |
| #endif |
| static INLINE PVRSRV_ERROR |
| PDumpSetFrameKM(CONNECTION_DATA *psConnection, |
| PVRSRV_DEVICE_NODE *psDevNode, |
| IMG_UINT32 ui32Frame) |
| { |
| PVR_UNREFERENCED_PARAMETER(psConnection); |
| PVR_UNREFERENCED_PARAMETER(ui32Frame); |
| return PVRSRV_OK; |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpGetFrameKM) |
| #endif |
| static INLINE PVRSRV_ERROR |
| PDumpGetFrameKM(CONNECTION_DATA *psConnection, |
| PVRSRV_DEVICE_NODE *psDeviceNode, |
| IMG_UINT32* pui32Frame) |
| { |
| PVR_UNREFERENCED_PARAMETER(psConnection); |
| PVR_UNREFERENCED_PARAMETER(pui32Frame); |
| return PVRSRV_OK; |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpCommentKM) |
| #endif |
| static INLINE PVRSRV_ERROR |
| PDumpCommentKM(IMG_CHAR *pszComment, IMG_UINT32 ui32Flags) |
| { |
| PVR_UNREFERENCED_PARAMETER(pszComment); |
| PVR_UNREFERENCED_PARAMETER(ui32Flags); |
| return PVRSRV_OK; |
| } |
| |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpCommentKM) |
| #endif |
| static INLINE PVRSRV_ERROR |
| PDumpSetDefaultCaptureParamsKM(IMG_UINT32 ui32Mode, |
| IMG_UINT32 ui32Start, |
| IMG_UINT32 ui32End, |
| IMG_UINT32 ui32Interval, |
| IMG_UINT32 ui32MaxParamFileSize) |
| { |
| PVR_UNREFERENCED_PARAMETER(ui32Mode); |
| PVR_UNREFERENCED_PARAMETER(ui32Start); |
| PVR_UNREFERENCED_PARAMETER(ui32End); |
| PVR_UNREFERENCED_PARAMETER(ui32Interval); |
| PVR_UNREFERENCED_PARAMETER(ui32MaxParamFileSize); |
| |
| return PVRSRV_OK; |
| } |
| |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpPanic) |
| #endif |
| static INLINE PVRSRV_ERROR |
| PDumpPanic(IMG_UINT32 ui32PanicNo, |
| IMG_CHAR* pszPanicMsg, |
| const IMG_CHAR* pszPPFunc, |
| IMG_UINT32 ui32PPline) |
| { |
| PVR_UNREFERENCED_PARAMETER(ui32PanicNo); |
| PVR_UNREFERENCED_PARAMETER(pszPanicMsg); |
| PVR_UNREFERENCED_PARAMETER(pszPPFunc); |
| PVR_UNREFERENCED_PARAMETER(ui32PPline); |
| return PVRSRV_OK; |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpCaptureError) |
| #endif |
| static INLINE PVRSRV_ERROR |
| PDumpCaptureError(PVRSRV_ERROR ui32ErrorNo, |
| IMG_CHAR* pszErrorMsg, |
| const IMG_CHAR* pszPPFunc, |
| IMG_UINT32 ui32PPline) |
| { |
| PVR_UNREFERENCED_PARAMETER(ui32ErrorNo); |
| PVR_UNREFERENCED_PARAMETER(pszErrorMsg); |
| PVR_UNREFERENCED_PARAMETER(pszPPFunc); |
| PVR_UNREFERENCED_PARAMETER(ui32PPline); |
| return PVRSRV_OK; |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpIsLastCaptureFrameKM) |
| #endif |
| static INLINE PVRSRV_ERROR |
| PDumpIsLastCaptureFrameKM(IMG_BOOL *pbIsLastCaptureFrame) |
| { |
| *pbIsLastCaptureFrame = IMG_FALSE; |
| return PVRSRV_OK; |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpIsCaptureFrameKM) |
| #endif |
| static INLINE PVRSRV_ERROR |
| PDumpIsCaptureFrameKM(IMG_BOOL *bIsCapturing) |
| { |
| *bIsCapturing = IMG_FALSE; |
| return PVRSRV_OK; |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpBitmapKM) |
| #endif |
| static INLINE PVRSRV_ERROR |
| PDumpBitmapKM(PVRSRV_DEVICE_NODE *psDeviceNode, |
| IMG_CHAR *pszFileName, |
| IMG_UINT32 ui32FileOffset, |
| IMG_UINT32 ui32Width, |
| IMG_UINT32 ui32Height, |
| IMG_UINT32 ui32StrideInBytes, |
| IMG_DEV_VIRTADDR sDevBaseAddr, |
| IMG_UINT32 ui32MMUContextID, |
| IMG_UINT32 ui32Size, |
| PDUMP_PIXEL_FORMAT ePixelFormat, |
| IMG_UINT32 ui32AddrMode, |
| IMG_UINT32 ui32PDumpFlags) |
| { |
| PVR_UNREFERENCED_PARAMETER(psDeviceNode); |
| PVR_UNREFERENCED_PARAMETER(pszFileName); |
| PVR_UNREFERENCED_PARAMETER(ui32FileOffset); |
| PVR_UNREFERENCED_PARAMETER(ui32Width); |
| PVR_UNREFERENCED_PARAMETER(ui32Height); |
| PVR_UNREFERENCED_PARAMETER(ui32StrideInBytes); |
| PVR_UNREFERENCED_PARAMETER(sDevBaseAddr); |
| PVR_UNREFERENCED_PARAMETER(ui32MMUContextID); |
| PVR_UNREFERENCED_PARAMETER(ui32Size); |
| PVR_UNREFERENCED_PARAMETER(ePixelFormat); |
| PVR_UNREFERENCED_PARAMETER(ui32AddrMode); |
| PVR_UNREFERENCED_PARAMETER(ui32PDumpFlags); |
| return PVRSRV_OK; |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpRegisterConnection) |
| #endif |
| static INLINE PVRSRV_ERROR |
| PDumpRegisterConnection(SYNC_CONNECTION_DATA *psSyncConnectionData, |
| PDUMP_CONNECTION_DATA **ppsPDumpConnectionData) |
| { |
| PVR_UNREFERENCED_PARAMETER(psSyncConnectionData); |
| PVR_UNREFERENCED_PARAMETER(ppsPDumpConnectionData); |
| |
| return PVRSRV_OK; |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpUnregisterConnection) |
| #endif |
| static INLINE |
| void PDumpUnregisterConnection(PDUMP_CONNECTION_DATA *psPDumpConnectionData) |
| { |
| PVR_UNREFERENCED_PARAMETER(psPDumpConnectionData); |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpRegisterTransitionCallback) |
| #endif |
| static INLINE |
| PVRSRV_ERROR PDumpRegisterTransitionCallback(PDUMP_CONNECTION_DATA *psPDumpConnectionData, |
| PFN_PDUMP_TRANSITION pfnCallback, |
| void *hPrivData, |
| void **ppvHandle) |
| { |
| PVR_UNREFERENCED_PARAMETER(psPDumpConnectionData); |
| PVR_UNREFERENCED_PARAMETER(pfnCallback); |
| PVR_UNREFERENCED_PARAMETER(hPrivData); |
| PVR_UNREFERENCED_PARAMETER(ppvHandle); |
| |
| return PVRSRV_OK; |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpUnregisterTransitionCallback) |
| #endif |
| static INLINE |
| void PDumpUnregisterTransitionCallback(void *pvHandle) |
| { |
| PVR_UNREFERENCED_PARAMETER(pvHandle); |
| } |
| |
| #ifdef INLINE_IS_PRAGMA |
| #pragma inline(PDumpTransition) |
| #endif |
| static INLINE |
| PVRSRV_ERROR PDumpTransition(PDUMP_CONNECTION_DATA *psPDumpConnectionData, IMG_BOOL bInto, IMG_UINT32 ui32PDumpFlags) |
| { |
| PVR_UNREFERENCED_PARAMETER(psPDumpConnectionData); |
| PVR_UNREFERENCED_PARAMETER(bInto); |
| PVR_UNREFERENCED_PARAMETER(ui32PDumpFlags); |
| return PVRSRV_OK; |
| } |
| |
| #if defined WIN32 |
| #define PDUMPINIT PDumpInitCommon |
| #define PDUMPDEINIT(...) / ## * PDUMPDEINIT(__VA_ARGS__) * ## / |
| #define PDUMPREG32(...) / ## * PDUMPREG32(__VA_ARGS__) * ## / |
| #define PDUMPREG64(...) / ## * PDUMPREG64(__VA_ARGS__) * ## / |
| #define PDUMPREGREAD32(...) / ## * PDUMPREGREAD32(__VA_ARGS__) * ## / |
| #define PDUMPREGREAD64(...) / ## * PDUMPREGREAD64(__VA_ARGS__) * ## / |
| #define PDUMPCOMMENT(...) / ## * PDUMPCOMMENT(__VA_ARGS__) * ## / |
| #define PDUMPREGPOL(...) / ## * PDUMPREGPOL(__VA_ARGS__) * ## / |
| #define PDUMPPDREG(...) / ## * PDUMPPDREG(__VA_ARGS__) * ## / |
| #define PDUMPPDREGWITHFLAGS(...) / ## * PDUMPPDREGWITHFLAGS(__VA_ARGS__) * ## / |
| #define PDUMPSYNC(...) / ## * PDUMPSYNC(__VA_ARGS__) * ## / |
| #define PDUMPCOPYTOMEM(...) / ## * PDUMPCOPYTOMEM(__VA_ARGS__) * ## / |
| #define PDUMPWRITE(...) / ## * PDUMPWRITE(__VA_ARGS__) * ## / |
| #define PDUMPCBP(...) / ## * PDUMPCBP(__VA_ARGS__) * ## / |
| #define PDUMPREGBASEDCBP(...) / ## * PDUMPREGBASEDCBP(__VA_ARGS__) * ## / |
| #define PDUMPCOMMENTWITHFLAGS(...) / ## * PDUMPCOMMENTWITHFLAGS(__VA_ARGS__) * ## / |
| #define PDUMPMALLOCPAGESPHYS(...) / ## * PDUMPMALLOCPAGESPHYS(__VA_ARGS__) * ## / |
| #define PDUMPENDINITPHASE(...) / ## * PDUMPENDINITPHASE(__VA_ARGS__) * ## / |
| #define PDUMPMSVDXREG(...) / ## * PDUMPMSVDXREG(__VA_ARGS__) * ## / |
| #define PDUMPMSVDXREGWRITE(...) / ## * PDUMPMSVDXREGWRITE(__VA_ARGS__) * ## / |
| #define PDUMPMSVDXREGREAD(...) / ## * PDUMPMSVDXREGREAD(__VA_ARGS__) * ## / |
| #define PDUMPMSVDXPOLEQ(...) / ## * PDUMPMSVDXPOLEQ(__VA_ARGS__) * ## / |
| #define PDUMPMSVDXPOL(...) / ## * PDUMPMSVDXPOL(__VA_ARGS__) * ## / |
| #define PDUMPIDLWITHFLAGS(...) / ## * PDUMPIDLWITHFLAGS(__VA_ARGS__) * ## / |
| #define PDUMPIDL(...) / ## * PDUMPIDL(__VA_ARGS__) * ## / |
| #define PDUMPPOWCMDSTART(...) / ## * PDUMPPOWCMDSTART(__VA_ARGS__) * ## / |
| #define PDUMPPOWCMDEND(...) / ## * PDUMPPOWCMDEND(__VA_ARGS__) * ## / |
| #define PDUMP_LOCK / ## * PDUMP_LOCK(__VA_ARGS__) * ## / |
| #define PDUMP_UNLOCK / ## * PDUMP_UNLOCK(__VA_ARGS__) * ## / |
| #else |
| #if defined LINUX || defined GCC_IA32 || defined GCC_ARM || defined __QNXNTO__ || defined(INTEGRITY_OS) |
| #define PDUMPINIT PDumpInitCommon |
| #define PDUMPDEINIT(args...) |
| #define PDUMPREG32(args...) |
| #define PDUMPREG64(args...) |
| #define PDUMPREGREAD32(args...) |
| #define PDUMPREGREAD64(args...) |
| #define PDUMPCOMMENT(args...) |
| #define PDUMPREGPOL(args...) |
| #define PDUMPPDREG(args...) |
| #define PDUMPPDREGWITHFLAGS(args...) |
| #define PDUMPSYNC(args...) |
| #define PDUMPCOPYTOMEM(args...) |
| #define PDUMPWRITE(args...) |
| #define PDUMPREGBASEDCBP(args...) |
| #define PDUMPCOMMENTWITHFLAGS(args...) |
| #define PDUMPENDINITPHASE(args...) |
| #define PDUMPIDLWITHFLAGS(args...) |
| #define PDUMPIDL(args...) |
| #define PDUMPPOWCMDSTART(args...) |
| #define PDUMPPOWCMDEND(args...) |
| #define PDUMP_LOCK(args...) |
| #define PDUMP_UNLOCK(args...) |
| |
| #else |
| #error Compiler not specified |
| #endif |
| #endif |
| #endif |
| |
| |
| #endif /* _PDUMP_KM_H_ */ |
| |
| /****************************************************************************** |
| End of file (pdump_km.h) |
| ******************************************************************************/ |