diff options
Diffstat (limited to 'pvr-source/services4/srvkm/include')
23 files changed, 0 insertions, 5991 deletions
diff --git a/pvr-source/services4/srvkm/include/buffer_manager.h b/pvr-source/services4/srvkm/include/buffer_manager.h deleted file mode 100755 index c16efaa..0000000 --- a/pvr-source/services4/srvkm/include/buffer_manager.h +++ /dev/null @@ -1,674 +0,0 @@ -/*************************************************************************/ /*! -@Title Buffer Management. -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description Manages buffers mapped into two virtual memory spaces, host and - device and referenced by handles. -@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 _BUFFER_MANAGER_H_ -#define _BUFFER_MANAGER_H_ - -#include "img_types.h" -#include "ra.h" -#include "perproc.h" - -#if defined(__cplusplus) -extern "C"{ -#endif - -/* forward reference */ -typedef struct _BM_HEAP_ BM_HEAP; - -/* - * The mapping structure is used to record relations between CPU virtual, - * CPU physical and device virtual addresses for large chunks of memory - * from which we have resource-allocator draw our buffers. - * - * There is one per contiguous pool and one per import from the host OS. - */ -struct _BM_MAPPING_ -{ - enum - { - hm_wrapped = 1, /*!< wrapped user supplied contiguous*/ - hm_wrapped_scatter, /*!< wrapped user supplied scattered */ - hm_wrapped_virtaddr, /*!< wrapped user supplied contiguous with virtual address*/ - hm_wrapped_scatter_virtaddr, /*!< wrapped user supplied scattered with virtual address*/ - hm_env, /*!< obtained from environment */ - hm_contiguous /*!< contigous arena */ - } eCpuMemoryOrigin; - - BM_HEAP *pBMHeap; /* which BM heap */ - RA_ARENA *pArena; /* whence the memory comes */ - - IMG_CPU_VIRTADDR CpuVAddr; - IMG_CPU_PHYADDR CpuPAddr; - IMG_DEV_VIRTADDR DevVAddr; - IMG_SYS_PHYADDR *psSysAddr; - IMG_SIZE_T uSize; - IMG_SIZE_T uSizeVM; - IMG_HANDLE hOSMemHandle; - IMG_UINT32 ui32Flags; - - /* Sparse mapping data */ - IMG_UINT32 ui32ChunkSize; - IMG_UINT32 ui32NumVirtChunks; - IMG_UINT32 ui32NumPhysChunks; - IMG_BOOL *pabMapChunk; - - /* GPU mapping reference count - * When goes down to 0 GPU mapping - * gets removed */ - IMG_UINT32 ui32MappingCount; - - /* need to track the original required alignment to make sure - * that an unmapped buffer which is later remapped to device - * is remapped with the original alignment restrictions. - */ - IMG_UINT32 ui32DevVAddrAlignment; -}; - -/* - * The buffer structure handles individual allocations from the user; thus - * there is one allocated per call to BM_Alloc and one per call to BM_Wrap. - * We record a mapping reference so we know where to return allocated - * resources at BM_Free time. - */ -typedef struct _BM_BUF_ -{ - IMG_CPU_VIRTADDR *CpuVAddr; - IMG_VOID *hOSMemHandle; - IMG_CPU_PHYADDR CpuPAddr; - IMG_DEV_VIRTADDR DevVAddr; - - BM_MAPPING *pMapping; - IMG_UINT32 ui32RefCount; - IMG_UINT32 ui32ExportCount; -} BM_BUF; - -struct _BM_HEAP_ -{ - IMG_UINT32 ui32Attribs; - BM_CONTEXT *pBMContext; - RA_ARENA *pImportArena; - RA_ARENA *pLocalDevMemArena; - RA_ARENA *pVMArena; - DEV_ARENA_DESCRIPTOR sDevArena; - MMU_HEAP *pMMUHeap; - PDUMP_MMU_ATTRIB *psMMUAttrib; - - struct _BM_HEAP_ *psNext; - struct _BM_HEAP_ **ppsThis; - /* BIF tile stride for this heap */ - IMG_UINT32 ui32XTileStride; -}; - -/* - * The bm-context structure - */ -struct _BM_CONTEXT_ -{ - MMU_CONTEXT *psMMUContext; - - /* - * Resource allocation arena of dual mapped pages. For devices - * where the hardware imposes different constraints on the valid - * device virtual address range depending on the use of the buffer - * we maintain two allocation arenas, one low address range, the - * other high. For devices without such a constrain we do not - * create the high arena, instead all allocations come from the - * low arena. - */ - BM_HEAP *psBMHeap; - - /* - * The Shared Heaps - */ - BM_HEAP *psBMSharedHeap; - - PVRSRV_DEVICE_NODE *psDeviceNode; - - /* - * Hash table management. - */ - HASH_TABLE *pBufferHash; - - /* - * Resman item handle - */ - IMG_HANDLE hResItem; - - IMG_UINT32 ui32RefCount; - - /* - linked list next pointer - */ - struct _BM_CONTEXT_ *psNext; - struct _BM_CONTEXT_ **ppsThis; -}; - -/* refcount.c needs to know the internals of this structure */ -typedef struct _XPROC_DATA_{ - IMG_UINT32 ui32RefCount; - IMG_UINT32 ui32AllocFlags; - IMG_UINT32 ui32Size; - IMG_UINT32 ui32PageSize; - RA_ARENA *psArena; - IMG_SYS_PHYADDR sSysPAddr; - IMG_VOID *pvCpuVAddr; - IMG_HANDLE hOSMemHandle; -} XPROC_DATA; - -extern XPROC_DATA gXProcWorkaroundShareData[]; -/* - Buffer handle. -*/ -typedef IMG_VOID *BM_HANDLE; - -/** Buffer manager allocation flags. - * - * Flags passed to BM_Alloc to specify buffer capabilities. - * - * @defgroup BP Buffer Manager Allocation Flags - * @{ - */ - -/** Pool number mask. */ -#define BP_POOL_MASK 0x7 - -/* Request physically contiguous pages of memory */ -#define BP_CONTIGUOUS (1 << 3) -#define BP_PARAMBUFFER (1 << 4) - -#define BM_MAX_DEVMEM_ARENAS 2 - -/** @} */ - -/** - * @Function BM_CreateContext - * - * @Description - * - * @Input - - * @Return - */ - -IMG_HANDLE -BM_CreateContext(PVRSRV_DEVICE_NODE *psDeviceNode, - IMG_DEV_PHYADDR *psPDDevPAddr, - PVRSRV_PER_PROCESS_DATA *psPerProc, - IMG_BOOL *pbCreated); - - -/** - * @Function BM_DestroyContext - * - * @Description - * - * @Input - * - * @Return PVRSRV_ERROR - */ -PVRSRV_ERROR -BM_DestroyContext (IMG_HANDLE hBMContext, - IMG_BOOL *pbCreated); - - -/** - * @Function BM_CreateHeap - * - * @Description - * - * @Input - * - * @Return - */ -IMG_HANDLE -BM_CreateHeap (IMG_HANDLE hBMContext, - DEVICE_MEMORY_HEAP_INFO *psDevMemHeapInfo); - -/** - * @Function BM_DestroyHeap - * - * @Description - * - * @Input - * - * @Return - */ -IMG_VOID -BM_DestroyHeap (IMG_HANDLE hDevMemHeap); - - -/** - * @Function BM_Reinitialise - * - * @Description - * - * Reinitialises the buffer manager after a power event. Calling this - * function will reprogram MMU registers and renable the MMU. - * - * @Input None - * @Return None - */ - -IMG_BOOL -BM_Reinitialise (PVRSRV_DEVICE_NODE *psDeviceNode); - -/** - * @Function BM_Alloc - * - * @Description - * - * Allocate a buffer mapped into both host and device virtual memory - * maps. - * - * @Input uSize - require size in bytes of the buffer. - * @Input/Output pui32Flags - bit mask of buffer property flags + recieves heap flags. - * @Input uDevVAddrAlignment - required alignment in bytes, or 0. - * @Input pvPrivData - private data passed to OS allocator - * @Input ui32PrivDataLength - length of private data - * @Input ui32ChunkSize - Chunk size - * @Input ui32NumVirtChunks - Number of virtual chunks - * @Input ui32NumPhysChunks - Number of physical chunks - * @Input pabMapChunk - Chunk mapping array - * @Output phBuf - receives the buffer handle. - * @Return IMG_TRUE - Success, IMG_FALSE - Failed. - */ -IMG_BOOL -BM_Alloc (IMG_HANDLE hDevMemHeap, - IMG_DEV_VIRTADDR *psDevVAddr, - IMG_SIZE_T uSize, - IMG_UINT32 *pui32Flags, - IMG_UINT32 uDevVAddrAlignment, - IMG_PVOID pvPrivData, - IMG_UINT32 ui32PrivDataLength, - IMG_UINT32 ui32ChunkSize, - IMG_UINT32 ui32NumVirtChunks, - IMG_UINT32 ui32NumPhysChunks, - IMG_BOOL *pabMapChunk, - BM_HANDLE *phBuf); - -/** - * @Function BM_Wrap - * - * @Description - * - * Create a buffer which wraps user provided host physical memory. - * The wrapped memory must be page aligned. BM_Wrap will roundup the - * size to a multiple of host pages. - * - * @Input ui32Size - size of memory to wrap. - * @Input ui32Offset - Offset into page of memory to wrap. - * @Input bPhysContig - Is the wrap physically contiguous. - * @Input psSysAddr - list of system physical page addresses of memory to wrap. - * @Input pvCPUVAddr - optional CPU kernel virtual address (Page aligned) of memory to wrap. - * @Input uFlags - bit mask of buffer property flags. - * @Input phBuf - receives the buffer handle. - * @Return IMG_TRUE - Success, IMG_FALSE - Failed - */ -IMG_BOOL -BM_Wrap ( IMG_HANDLE hDevMemHeap, - IMG_SIZE_T ui32Size, - IMG_SIZE_T ui32Offset, - IMG_BOOL bPhysContig, - IMG_SYS_PHYADDR *psSysAddr, - IMG_VOID *pvCPUVAddr, - IMG_UINT32 *pui32Flags, - BM_HANDLE *phBuf); - -/** - * @Function BM_Free - * - * @Description - * - * Free a buffer previously allocated via BM_Alloc. - * - * @Input hBuf - buffer handle. - * @Return None. - */ -IMG_VOID -BM_Free (BM_HANDLE hBuf, - IMG_UINT32 ui32Flags); - - -/** - * @Function BM_HandleToCpuVaddr - * - * @Description - * - * Retrieve the host virtual address associated with a buffer. - * - * @Input hBuf - buffer handle. - * - * @Return buffers host virtual address. - */ -IMG_CPU_VIRTADDR -BM_HandleToCpuVaddr (BM_HANDLE hBuf); - -/** - * @Function BM_HandleToDevVaddr - * - * @Description - * - * Retrieve the device virtual address associated with a buffer. - * - * @Input hBuf - buffer handle. - * @Return buffers device virtual address. - */ -IMG_DEV_VIRTADDR -BM_HandleToDevVaddr (BM_HANDLE hBuf); - -/** - * @Function BM_HandleToSysPaddr - * - * @Description - * - * Retrieve the system physical address associated with a buffer. - * - * @Input hBuf - buffer handle. - * @Return buffers device virtual address. - */ -IMG_SYS_PHYADDR -BM_HandleToSysPaddr (BM_HANDLE hBuf); - -/** - * @Function BM_HandleToMemOSHandle - * - * @Description - * - * Retrieve the underlying memory handle associated with a buffer. - * - * @Input hBuf - buffer handle. - * @Return An OS Specific memory handle - */ -IMG_HANDLE -BM_HandleToOSMemHandle (BM_HANDLE hBuf); - -/** - * @Function BM_RemapToDev - * - * @Description - * - * Remaps the device Virtual Mapping. - * - * @Input hBuf - buffer handle. - * @Return ref count on success - */ -IMG_INT32 -BM_RemapToDev(BM_HANDLE hBuf); - -/** - * @Function BM_UnmapFromDev - * - * @Description - * - * Removes the device Virtual Mapping. - * - * @Input hBuf - buffer handle. - * @Return Ref count on success - */ -IMG_INT32 -BM_UnmapFromDev(BM_HANDLE hBuf); - -/** - * @Function BM_GetPhysPageAddr - * - * @Description - * - * Retreive physical address backing dev V address - * - * @Input psMemInfo - * @Input sDevVPageAddr - * @Output psDevPAddr - * @Return PVRSRV_ERROR - */ -IMG_VOID BM_GetPhysPageAddr(PVRSRV_KERNEL_MEM_INFO *psMemInfo, - IMG_DEV_VIRTADDR sDevVPageAddr, - IMG_DEV_PHYADDR *psDevPAddr); - -/*! -****************************************************************************** - @Function BM_GetMMUContext - - @Description - utility function to return the MMU context - - @inputs hDevMemHeap - the Dev mem heap handle - - @Return MMU context, else NULL -**************************************************************************/ -MMU_CONTEXT* BM_GetMMUContext(IMG_HANDLE hDevMemHeap); - -/*! -****************************************************************************** - @Function BM_GetMMUContextFromMemContext - - @Description - utility function to return the MMU context - - @inputs hDevMemHeap - the Dev mem heap handle - - @Return MMU context, else NULL -**************************************************************************/ -MMU_CONTEXT* BM_GetMMUContextFromMemContext(IMG_HANDLE hDevMemContext); - -/*! -****************************************************************************** - @Function BM_GetMMUHeap - - @Description - utility function to return the MMU heap handle - - @inputs hDevMemHeap - the Dev mem heap handle - - @Return MMU heap handle, else NULL -**************************************************************************/ -IMG_HANDLE BM_GetMMUHeap(IMG_HANDLE hDevMemHeap); - -/*! -****************************************************************************** - @Function BM_GetDeviceNode - - @Description utility function to return the devicenode from the BM Context - - @inputs hDevMemContext - the Dev Mem Context - - @Return MMU heap handle, else NULL -**************************************************************************/ -PVRSRV_DEVICE_NODE* BM_GetDeviceNode(IMG_HANDLE hDevMemContext); - - -/*! -****************************************************************************** - @Function BM_GetMappingHandle - - @Description utility function to return the mapping handle from a meminfo - - @inputs psMemInfo - kernel meminfo - - @Return mapping handle, else NULL -**************************************************************************/ -IMG_HANDLE BM_GetMappingHandle(PVRSRV_KERNEL_MEM_INFO *psMemInfo); - -/*! -****************************************************************************** - @Function BM_Export - - @Description Export a buffer previously allocated via BM_Alloc. - - @inputs hBuf - buffer handle. - - @Return None. -**************************************************************************/ -IMG_VOID BM_Export(BM_HANDLE hBuf); - -/*! -****************************************************************************** - @Function BM_FreeExport - - @Description Free a buffer previously exported via BM_Export. - - @inputs hBuf - buffer handle. - ui32Flags - flags - - @Return None. -**************************************************************************/ -IMG_VOID BM_FreeExport(BM_HANDLE hBuf, IMG_UINT32 ui32Flags); - -/*! -****************************************************************************** - @Function BM_MappingHandleFromBuffer - - @Description utility function to get the BM mapping handle from a BM buffer - - @Input hBuffer - Handle to BM buffer - - @Return BM mapping handle -**************************************************************************/ -IMG_HANDLE BM_MappingHandleFromBuffer(IMG_HANDLE hBuffer); - -/*! -****************************************************************************** - @Function BM_GetVirtualSize - - @Description utility function to get the VM size of a BM mapping - - @Input hBMHandle - Handle to BM mapping - - @Return VM size of mapping -**************************************************************************/ -IMG_UINT32 BM_GetVirtualSize(IMG_HANDLE hBMHandle); - -/*! -****************************************************************************** - @Function BM_MapPageAtOffset - - @Description utility function check if the specificed offset in a BM mapping - is a page that needs tp be mapped - - @Input hBMHandle - Handle to BM mapping - - @Input ui32Offset - Offset into import - - @Return IMG_TRUE if the page should be mapped -**************************************************************************/ -IMG_BOOL BM_MapPageAtOffset(IMG_HANDLE hBMHandle, IMG_UINT32 ui32Offset); - -/*! -****************************************************************************** - @Function BM_VirtOffsetToPhyscial - - @Description utility function find of physical offset of a sparse allocation - from it's virtual offset. - - @Input hBMHandle - Handle to BM mapping - - @Input ui32VirtOffset - Virtual offset into allocation - - @Output pui32PhysOffset - Physical offset - - @Return IMG_TRUE if the virtual offset is physically backed -**************************************************************************/ -IMG_BOOL BM_VirtOffsetToPhysical(IMG_HANDLE hBMHandle, - IMG_UINT32 ui32VirtOffset, - IMG_UINT32 *pui32PhysOffset); - -/* The following are present for the "share mem" workaround for - cross-process mapping. This is only valid for a specific - use-case, and only tested on Linux (Android) and only - superficially at that. Do not rely on this API! */ -/* The two "Set" functions set a piece of "global" state in the buffer - manager, and "Unset" removes this global state. Therefore, there - is no thread-safety here and it's the caller's responsibility to - ensure that a mutex is acquired before using these functions or any - device memory allocation functions, including, especially, - callbacks from RA. */ -/* Once a "Share Index" is set by this means, any requests from the RA - to import a block of physical memory shall cause the physical - memory allocation to be refcounted, and shared iff the IDs chosen - match */ -/* This API is difficult to use, but saves a lot of plumbing in other - APIs. The next generation of this library should have this functionality - plumbed in properly */ -PVRSRV_ERROR BM_XProcWorkaroundSetShareIndex(IMG_UINT32 ui32Index); -PVRSRV_ERROR BM_XProcWorkaroundUnsetShareIndex(IMG_UINT32 ui32Index); -PVRSRV_ERROR BM_XProcWorkaroundFindNewBufferAndSetShareIndex(IMG_UINT32 *pui32Index); -IMG_INT32 BM_XProcGetShareDataRefCount(IMG_UINT32 ui32Index); - -#if defined(PVRSRV_REFCOUNT_DEBUG) -IMG_VOID _BM_XProcIndexAcquireDebug(const IMG_CHAR *pszFile, IMG_INT iLine, IMG_UINT32 ui32Index); -IMG_VOID _BM_XProcIndexReleaseDebug(const IMG_CHAR *pszFile, IMG_INT iLine, IMG_UINT32 ui32Index); - -#define BM_XProcIndexAcquire(x...) \ - _BM_XProcIndexAcquireDebug(__FILE__, __LINE__, x) -#define BM_XProcIndexRelease(x...) \ - _BM_XProcIndexReleaseDebug(__FILE__, __LINE__, x) - -#else -IMG_VOID _BM_XProcIndexAcquire(IMG_UINT32 ui32Index); -IMG_VOID _BM_XProcIndexRelease(IMG_UINT32 ui32Index); - -#define BM_XProcIndexAcquire(x) \ - _BM_XProcIndexAcquire( x) -#define BM_XProcIndexRelease(x) \ - _BM_XProcIndexRelease( x) -#endif - -static INLINE IMG_CHAR * -_BMMappingType (IMG_INT eCpuMemoryOrigin) -{ - switch (eCpuMemoryOrigin) - { - case hm_wrapped: return "hm_wrapped"; - case hm_wrapped_scatter: return "hm_wrapped_scatter"; - case hm_wrapped_virtaddr: return "hm_wrapped_virtaddr"; - case hm_wrapped_scatter_virtaddr: return "hm_wrapped_scatter_virtaddr"; - case hm_env: return "hm_env"; - case hm_contiguous: return "hm_contiguous"; - } - return "junk"; -} - -#if defined(__cplusplus) -} -#endif - -#endif diff --git a/pvr-source/services4/srvkm/include/device.h b/pvr-source/services4/srvkm/include/device.h deleted file mode 100755 index 6ddee5d..0000000 --- a/pvr-source/services4/srvkm/include/device.h +++ /dev/null @@ -1,409 +0,0 @@ -/*************************************************************************/ /*! -@Title Common Device header -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description Device related function templates and defines -@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 __DEVICE_H__ -#define __DEVICE_H__ - -#if defined(__cplusplus) -extern "C" { -#endif - -#include "ra.h" /* RA_ARENA */ -#include "resman.h" /* PRESMAN_ITEM */ - -/* BM context forward reference */ -typedef struct _BM_CONTEXT_ BM_CONTEXT; - -/* pre-defined MMU structure forward references */ -typedef struct _MMU_HEAP_ MMU_HEAP; -typedef struct _MMU_CONTEXT_ MMU_CONTEXT; - -/* physical resource types: */ -/* contiguous system memory */ -#define PVRSRV_BACKINGSTORE_SYSMEM_CONTIG (1<<(PVRSRV_MEM_BACKINGSTORE_FIELD_SHIFT+0)) -/* non-contiguous system memory */ -#define PVRSRV_BACKINGSTORE_SYSMEM_NONCONTIG (1<<(PVRSRV_MEM_BACKINGSTORE_FIELD_SHIFT+1)) -/* contiguous local device memory */ -#define PVRSRV_BACKINGSTORE_LOCALMEM_CONTIG (1<<(PVRSRV_MEM_BACKINGSTORE_FIELD_SHIFT+2)) -/* non-contiguous local device memory */ -#define PVRSRV_BACKINGSTORE_LOCALMEM_NONCONTIG (1<<(PVRSRV_MEM_BACKINGSTORE_FIELD_SHIFT+3)) - -/* heap types: */ -typedef IMG_UINT32 DEVICE_MEMORY_HEAP_TYPE; -#define DEVICE_MEMORY_HEAP_PERCONTEXT 0 -#define DEVICE_MEMORY_HEAP_KERNEL 1 -#define DEVICE_MEMORY_HEAP_SHARED 2 -#define DEVICE_MEMORY_HEAP_SHARED_EXPORTED 3 - -#define PVRSRV_DEVICE_NODE_FLAGS_PORT80DISPLAY 1 -#define PVRSRV_DEVICE_NODE_FLAGS_MMU_OPT_INV 2 /* FIXME : Optimal Invalidation is not default */ - -typedef struct _DEVICE_MEMORY_HEAP_INFO_ -{ - /* heap identifier */ - IMG_UINT32 ui32HeapID; - - /* heap identifier string */ - IMG_CHAR *pszName; - - /* backing store identifier string */ - IMG_CHAR *pszBSName; - - /* Device virtual address of base of heap */ - IMG_DEV_VIRTADDR sDevVAddrBase; - - /* heapsize in bytes */ - IMG_UINT32 ui32HeapSize; - - /* Flags, includes physical resource (backing store type). Must be available to SOC */ - IMG_UINT32 ui32Attribs; - - /* Heap type: per device, kernel only, shared, shared_exported */ - DEVICE_MEMORY_HEAP_TYPE DevMemHeapType; - - /* kernel heap handle */ - IMG_HANDLE hDevMemHeap; - - /* ptr to local memory allocator for this heap */ - RA_ARENA *psLocalDevMemArena; - - /* MMU data page size (4kb, 16kb, 256kb, 1Mb, 4Mb) */ - IMG_UINT32 ui32DataPageSize; - - IMG_UINT32 ui32XTileStride; - -} DEVICE_MEMORY_HEAP_INFO; - -typedef struct _DEVICE_MEMORY_INFO_ -{ - /* size of address space, as log2 */ - IMG_UINT32 ui32AddressSpaceSizeLog2; - - /* - flags, includes physical memory resource types available to the system. - Allows for validation at heap creation, define PVRSRV_BACKINGSTORE_XXX - */ - IMG_UINT32 ui32Flags; - - /* heap count. Doesn't include additional heaps from PVRSRVCreateDeviceMemHeap */ - IMG_UINT32 ui32HeapCount; - - /* the sync heap id - common code needs to know */ - IMG_UINT32 ui32SyncHeapID; - - /* heap for buffer mappings */ - IMG_UINT32 ui32MappingHeapID; - - /* heap for ion buffers */ - IMG_UINT32 ui32IonHeapID; - - /* device memory heap info about each heap in a device address space */ - DEVICE_MEMORY_HEAP_INFO *psDeviceMemoryHeap; - - /* BM kernel context for the device */ - BM_CONTEXT *pBMKernelContext; - - /* BM context list for the device*/ - BM_CONTEXT *pBMContext; - -} DEVICE_MEMORY_INFO; - - -/*! - **************************************************************************** - Device memory descriptor for a given system - ****************************************************************************/ -typedef struct DEV_ARENA_DESCRIPTOR_TAG -{ - IMG_UINT32 ui32HeapID; /*!< memory pool has a unique id for diagnostic purposes */ - - IMG_CHAR *pszName; /*!< memory pool has a unique string for diagnostic purposes */ - - IMG_DEV_VIRTADDR BaseDevVAddr; /*!< Device virtual base address of the managed memory pool. */ - - IMG_UINT32 ui32Size; /*!< Size in bytes of the managed memory pool. */ - - DEVICE_MEMORY_HEAP_TYPE DevMemHeapType;/*!< heap type */ - - /* MMU data page size (4kb, 16kb, 256kb, 1Mb, 4Mb) */ - IMG_UINT32 ui32DataPageSize; - - DEVICE_MEMORY_HEAP_INFO *psDeviceMemoryHeapInfo; - -} DEV_ARENA_DESCRIPTOR; - - -/* - PDUMP MMU atttributes -*/ -typedef struct _PDUMP_MMU_ATTRIB_ -{ - PVRSRV_DEVICE_IDENTIFIER sDevId; - - IMG_CHAR *pszPDRegRegion; - - /* data page info */ - IMG_UINT32 ui32DataPageMask; - - /* page table info */ - IMG_UINT32 ui32PTEValid; - IMG_UINT32 ui32PTSize; - IMG_UINT32 ui32PTEAlignShift; - - /* page directory info */ - IMG_UINT32 ui32PDEMask; - IMG_UINT32 ui32PDEAlignShift; - -} PDUMP_MMU_ATTRIB; - -/* forward reference to _SYS_DATA_ */ -typedef struct _SYS_DATA_TAG_ *PSYS_DATA; - -typedef struct _PVRSRV_DEVICE_NODE_ -{ - PVRSRV_DEVICE_IDENTIFIER sDevId; - IMG_UINT32 ui32RefCount; - - /* - callbacks the device must support: - */ - /* device initialiser */ - PVRSRV_ERROR (*pfnInitDevice) (IMG_VOID*); - /* device deinitialiser */ - PVRSRV_ERROR (*pfnDeInitDevice) (IMG_VOID*); - - /* device post-finalise compatibility check */ - PVRSRV_ERROR (*pfnInitDeviceCompatCheck) (struct _PVRSRV_DEVICE_NODE_*); - - /* device MMU interface */ - PVRSRV_ERROR (*pfnMMUInitialise)(struct _PVRSRV_DEVICE_NODE_*, MMU_CONTEXT**, IMG_DEV_PHYADDR*); - IMG_VOID (*pfnMMUFinalise)(MMU_CONTEXT*); - IMG_VOID (*pfnMMUInsertHeap)(MMU_CONTEXT*, MMU_HEAP*); - MMU_HEAP* (*pfnMMUCreate)(MMU_CONTEXT*,DEV_ARENA_DESCRIPTOR*,RA_ARENA**,PDUMP_MMU_ATTRIB **ppsMMUAttrib); - IMG_VOID (*pfnMMUDelete)(MMU_HEAP*); - IMG_BOOL (*pfnMMUAlloc)(MMU_HEAP*pMMU, - IMG_SIZE_T uSize, - IMG_SIZE_T *pActualSize, - IMG_UINT32 uFlags, - IMG_UINT32 uDevVAddrAlignment, - IMG_DEV_VIRTADDR *pDevVAddr); - IMG_VOID (*pfnMMUFree)(MMU_HEAP*,IMG_DEV_VIRTADDR,IMG_UINT32); - IMG_VOID (*pfnMMUEnable)(MMU_HEAP*); - IMG_VOID (*pfnMMUDisable)(MMU_HEAP*); - IMG_VOID (*pfnMMUMapPages)(MMU_HEAP *pMMU, - IMG_DEV_VIRTADDR devVAddr, - IMG_SYS_PHYADDR SysPAddr, - IMG_SIZE_T uSize, - IMG_UINT32 ui32MemFlags, - IMG_HANDLE hUniqueTag); - IMG_VOID (*pfnMMUMapPagesSparse)(MMU_HEAP *pMMU, - IMG_DEV_VIRTADDR devVAddr, - IMG_SYS_PHYADDR SysPAddr, - IMG_UINT32 ui32ChunkSize, - IMG_UINT32 ui32NumVirtChunks, - IMG_UINT32 ui32NumPhysChunks, - IMG_BOOL *pabMapChunk, - IMG_UINT32 ui32MemFlags, - IMG_HANDLE hUniqueTag); - - IMG_VOID (*pfnMMUMapShadow)(MMU_HEAP *pMMU, - IMG_DEV_VIRTADDR MapBaseDevVAddr, - IMG_SIZE_T uSize, - IMG_CPU_VIRTADDR CpuVAddr, - IMG_HANDLE hOSMemHandle, - IMG_DEV_VIRTADDR *pDevVAddr, - IMG_UINT32 ui32MemFlags, - IMG_HANDLE hUniqueTag); - IMG_VOID (*pfnMMUMapShadowSparse)(MMU_HEAP *pMMU, - IMG_DEV_VIRTADDR MapBaseDevVAddr, - IMG_UINT32 ui32ChunkSize, - IMG_UINT32 ui32NumVirtChunks, - IMG_UINT32 ui32NumPhysChunks, - IMG_BOOL *pabMapChunk, - IMG_CPU_VIRTADDR CpuVAddr, - IMG_HANDLE hOSMemHandle, - IMG_DEV_VIRTADDR *pDevVAddr, - IMG_UINT32 ui32MemFlags, - IMG_HANDLE hUniqueTag); - - IMG_VOID (*pfnMMUUnmapPages)(MMU_HEAP *pMMU, - IMG_DEV_VIRTADDR dev_vaddr, - IMG_UINT32 ui32PageCount, - IMG_HANDLE hUniqueTag); - - IMG_VOID (*pfnMMUMapScatter)(MMU_HEAP *pMMU, - IMG_DEV_VIRTADDR DevVAddr, - IMG_SYS_PHYADDR *psSysAddr, - IMG_SIZE_T uSize, - IMG_UINT32 ui32MemFlags, - IMG_HANDLE hUniqueTag); -#if defined(SUPPORT_PDUMP_MULTI_PROCESS) - IMG_BOOL (*pfnMMUIsHeapShared)(MMU_HEAP *); -#endif - IMG_DEV_PHYADDR (*pfnMMUGetPhysPageAddr)(MMU_HEAP *pMMUHeap, IMG_DEV_VIRTADDR sDevVPageAddr); - IMG_DEV_PHYADDR (*pfnMMUGetPDDevPAddr)(MMU_CONTEXT *pMMUContext); - IMG_VOID (*pfnMMUGetCacheFlushRange)(MMU_CONTEXT *pMMUContext, IMG_UINT32 *pui32RangeMask); - IMG_VOID (*pfnMMUGetPDPhysAddr)(MMU_CONTEXT *pMMUContext, IMG_DEV_PHYADDR *psDevPAddr); - - /* tiling range control functions */ - PVRSRV_ERROR (*pfnAllocMemTilingRange)(struct _PVRSRV_DEVICE_NODE_ *psDeviceNode, - PVRSRV_KERNEL_MEM_INFO *psMemInfo, - IMG_UINT32 ui32TilingStride, - IMG_UINT32 *pui32RangeIndex); - PVRSRV_ERROR (*pfnFreeMemTilingRange)(struct _PVRSRV_DEVICE_NODE_ *psDeviceNode, - IMG_UINT32 ui32RangeIndex); - - /* LISR handler for device */ - IMG_BOOL (*pfnDeviceISR)(IMG_VOID*); - /* ISR data */ - IMG_VOID *pvISRData; - /* System/SOC specific interrupt bit relating to this device */ - IMG_UINT32 ui32SOCInterruptBit; - /* MISR handler for device */ - IMG_VOID (*pfnDeviceMISR)(IMG_VOID*); - - /* Software command complete callback for device */ - IMG_VOID (*pfnDeviceCommandComplete)(struct _PVRSRV_DEVICE_NODE_ *psDeviceNode); - /* Flag indicating that command complete callback needs to be reprocessed */ - IMG_BOOL bReProcessDeviceCommandComplete; - - IMG_VOID (*pfnCacheInvalidate)(struct _PVRSRV_DEVICE_NODE_ *psDeviceNode); - - /* information about the device's address space and heaps */ - DEVICE_MEMORY_INFO sDevMemoryInfo; - - /* private device information */ - IMG_VOID *pvDevice; - IMG_UINT32 ui32pvDeviceSize; /* required by GetClassDeviceInfo API */ - - /* Resource Manager Context */ - PRESMAN_CONTEXT hResManContext; - - /* pointer back to parent sysdata */ - PSYS_DATA psSysData; - - /* default MMU PT/PD backing store to use for the device */ - RA_ARENA *psLocalDevMemArena; - - IMG_UINT32 ui32Flags; - - struct _PVRSRV_DEVICE_NODE_ *psNext; - struct _PVRSRV_DEVICE_NODE_ **ppsThis; - -#if defined(PDUMP) - /* device-level callback which is called when pdump.exe starts. - * Should be implemented in device-specific init code, e.g. sgxinit.c - */ - PVRSRV_ERROR (*pfnPDumpInitDevice)(struct _PVRSRV_DEVICE_NODE_ *psDeviceNode); - /* device-level callback to return pdump ID associated to a memory context */ - IMG_UINT32 (*pfnMMUGetContextID)(IMG_HANDLE hDevMemContext); -#endif -} PVRSRV_DEVICE_NODE; - -PVRSRV_ERROR IMG_CALLCONV PVRSRVRegisterDevice(PSYS_DATA psSysData, - PVRSRV_ERROR (*pfnRegisterDevice)(PVRSRV_DEVICE_NODE*), - IMG_UINT32 ui32SOCInterruptBit, - IMG_UINT32 *pui32DeviceIndex ); - -PVRSRV_ERROR IMG_CALLCONV PVRSRVInitialiseDevice(IMG_UINT32 ui32DevIndex); -PVRSRV_ERROR IMG_CALLCONV PVRSRVFinaliseSystem(IMG_BOOL bInitSuccesful); - -PVRSRV_ERROR IMG_CALLCONV PVRSRVDevInitCompatCheck(PVRSRV_DEVICE_NODE *psDeviceNode); - -PVRSRV_ERROR IMG_CALLCONV PVRSRVDeinitialiseDevice(IMG_UINT32 ui32DevIndex); - -#if !defined(USE_CODE) - -/*! -****************************************************************************** - - @Function PollForValueKM - - @Description - Polls for a value to match a masked read of sysmem - - @Input pui32LinMemAddr : CPU linear address of the mem to poll - @Input ui32Value : req'd value - @Input ui32Mask : Mask - @Input ui32Timeoutus : maximum total time to wait (us) - @Input ui32PollPeriodus : minimum delay between consecutive polls (us) - @Input bAllowPreemption : allow the polling loop to be preempted - - @Return PVRSRV_ERROR : - -******************************************************************************/ -IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV PollForValueKM(volatile IMG_UINT32* pui32LinMemAddr, - IMG_UINT32 ui32Value, - IMG_UINT32 ui32Mask, - IMG_UINT32 ui32Timeoutus, - IMG_UINT32 ui32PollPeriodus, - IMG_BOOL bAllowPreemption); - -#endif /* !defined(USE_CODE) */ - - -#if defined (USING_ISR_INTERRUPTS) -PVRSRV_ERROR IMG_CALLCONV PollForInterruptKM(IMG_UINT32 ui32Value, - IMG_UINT32 ui32Mask, - IMG_UINT32 ui32Waitus, - IMG_UINT32 ui32Tries); - -#endif /* #if defined (USING_ISR_INTERRUPTS) */ - -/* The following functions don't really belong here (srvkm.h might be a better - * place), but as they use the device data structures, this is the most convenient - * place for them. */ -PVRSRV_ERROR IMG_CALLCONV PVRSRVInit(PSYS_DATA psSysData); -IMG_VOID IMG_CALLCONV PVRSRVDeInit(PSYS_DATA psSysData); -IMG_BOOL IMG_CALLCONV PVRSRVDeviceLISR(PVRSRV_DEVICE_NODE *psDeviceNode); -IMG_BOOL IMG_CALLCONV PVRSRVSystemLISR(IMG_VOID *pvSysData); -IMG_VOID IMG_CALLCONV PVRSRVMISR(IMG_VOID *pvSysData); - -#if defined(__cplusplus) -} -#endif - -#endif /* __DEVICE_H__ */ - -/****************************************************************************** - End of file (device.h) -******************************************************************************/ diff --git a/pvr-source/services4/srvkm/include/handle.h b/pvr-source/services4/srvkm/include/handle.h deleted file mode 100755 index 157d209..0000000 --- a/pvr-source/services4/srvkm/include/handle.h +++ /dev/null @@ -1,567 +0,0 @@ -/*************************************************************************/ /*! -@Title Handle Manager API -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description Provide handle management -@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 __HANDLE_H__ -#define __HANDLE_H__ - -/* - * Handle API - * ---------- - * The handle API is intended to provide handles for kernel resources, - * which can then be passed back to user space processes. - * - * The following functions comprise the API. Each function takes a - * pointer to a PVRSRV_HANDLE_BASE strcture, one of which is allocated - * for each process, and stored in the per-process data area. Use - * KERNEL_HANDLE_BASE for handles not allocated for a particular process, - * or for handles that need to be allocated before the PVRSRV_HANDLE_BASE - * structure for the process is available. - * - * PVRSRV_ERROR PVRSRVAllocHandle(PVRSRV_HANDLE_BASE *psBase, - * IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, - * PVRSRV_HANDLE_ALLOC_FLAG eFlag); - * - * Allocate a handle phHandle, for the resource of type eType pointed to by - * pvData. - * - * For handles that have a definite lifetime, where the corresponding - * resource is explicitly created and destroyed, eFlag should be zero. - * - * If the resource is not explicitly created and destroyed, eFlag should be - * set to PVRSRV_HANDLE_ALLOC_FLAG_SHARED. For a given process, the same - * handle will be returned each time a handle for the resource is allocated - * with the PVRSRV_HANDLE_ALLOC_FLAG_SHARED flag. - * - * If a particular resource may be referenced multiple times by a - * given process, setting eFlag to PVRSRV_HANDLE_ALLOC_FLAG_MULTI - * will allow multiple handles to be allocated for the resource. - * Such handles cannot be found with PVRSRVFindHandle. - * - * PVRSRV_ERROR PVRSRVAllocSubHandle(PVRSRV_HANDLE_BASE *psBase, - * IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, - * PVRSRV_HANDLE_ALLOC_FLAG eFlag, IMG_HANDLE hParent); - * - * This function is similar to PVRSRVAllocHandle, except that the allocated - * handles are associated with a parent handle, hParent, that has been - * allocated previously. Subhandles are automatically deallocated when their - * parent handle is dealloacted. - * Subhandles can be treated as ordinary handles. For example, they may - * have subhandles of their own, and may be explicity deallocated using - * PVRSRVReleaseHandle (see below). - * - * PVRSRV_ERROR PVRSRVFindHandle(PVRSRV_HANDLE_BASE *psBase, - * IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType); - * - * Find the handle previously allocated for the resource pointed to by - * pvData, of type eType. Handles allocated with the flag - * PVRSRV_HANDLE_ALLOC_FLAG_MULTI cannot be found using this - * function. - * - * PVRSRV_ERROR PVRSRVLookupHandle(PVRSRV_HANDLE_BASE *psBase, - * IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType); - * - * Given a handle for a resource of type eType, return the pointer to the - * resource. - * - * PVRSRV_ERROR PVRSRVLookuSubHandle(PVRSRV_HANDLE_BASE *psBase, - * IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType, - * IMH_HANDLE hAncestor); - * - * Similar to PVRSRVLookupHandle, but checks the handle is a descendent - * of hAncestor. - * - * PVRSRV_ERROR PVRSRVLookupHandleAnyType(PVRSRV_HANDLE_BASE *psBase, - * IMG_PVOID *ppvData, PVRSRV_HANDLE_TYPE *peType, IMG_HANDLE hHandle); - * - * This function returns the resource pointer corresponding to the - * given handle, and the resource type in peType. This function is - * intended for situations where a handle may be one of several types, - * but the type isn't known beforehand. - * - * PVRSRV_ERROR PVRSRVReleaseHandle(PVRSRV_HANDLE_BASE *psBase, - * IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType); - * - * Deallocate a handle of given type. - * - * PVRSRV_ERROR PVRSRVLookupAndReleaseHandle(PVRSRV_HANDLE_BASE *psBase, - * IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType); - * - * This function combines the functionality of PVRSRVLookupHandle and - * PVRSRVReleaseHandle, deallocating the handle after looking it up. - * - * PVRSRV_ERROR PVRSRVGetParentHandle(PVRSRV_HANDLE_BASE *psBase, - * IMG_PVOID *phParent, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType); - * - * Return the parent of a handle in *phParent, or IMG_NULL if the handle has - * no parent. - * - * PVRSRV_ERROR PVRSRVNewHandleBatch(PVRSRV_HANDLE_BASE *psBase, - * IMG_UINT32 ui32BatchSize) - * - * Allocate a new handle batch. This preallocates ui32BatchSize handles. - * Batch mode simplifies the handling of handle allocation failures. - * The handle API is unchanged in batch mode, except that handles freed - * in batch mode will not be available for reallocation until the batch - * is committed or released (see below). - * - * PVRSRV_ERROR PVRSRVCommitHandleBatch(PVRSRV_HANDLE_BASE *psBase) - * void PVRSRVReleaseHandleBatch(PVRSRV_HANDLE_BASE *psBase) - * - * When handle allocation from a handle batch is complete, the - * batch must be committed by calling PVRSRVCommitHandleBatch. If - * an error occurred, and none of the handles in the batch are no - * longer needed, PVRSRVReleaseHandleBatch must be called. - * The macros PVRSRVAllocHandleNR, and PVRSRVAllocSubHandleNR - * are defined for use in batch mode. These work the same way - * as PVRSRVAllocHandle and PVRSRVAllocSubHandle, except that - * they don't return a value, relying on the fact that - * PVRSRVCommitHandleBatch will not commit any of the handles - * in a batch if there was an error allocating one of the - * handles in the batch. - * - * PVRSRV_ERROR PVRSRVSetMaxHandle(PVRSRV_HANDLE_BASE *psBase, - * IMG_UINT32 ui32MaxHandle) - * Set the maximum handle number. This is intended to restrict the - * handle range so that it will fit within a given field width. For - * example, setting the maximum handle number to 0x7fffffff, would - * ensure the handles would fit within a 31 bit width field. This - * facility should be used with caution, as it restricts the number of - * handles that can be allocated. - * - * IMG_UINT32 PVRSRVGetMaxHandle(PVRSRV_HANDLE_BASE *psBase) - * Return the maximum handle number, or 0 if the setting of a limit - * is not supported. - * - * PVRSRV_ERROR PVRSRVEnableHandlePurging(PVRSRV_HANDLE_BASE *psBase) - * Allows unused handle space to be reclaimed, by calling - * PVRSRVPurgeHandles. Note that allocating handles may have a - * higher overhead if purging is enabled. - * - * PVRSRV_ERROR PVRSRVPurgeHandles((PVRSRV_HANDLE_BASE *psBase) - * Purge handles for a handle base that has purging enabled. - */ - -#if defined (__cplusplus) -extern "C" { -#endif - -#include "img_types.h" -#include "hash.h" -#include "resman.h" - -typedef enum -{ - PVRSRV_HANDLE_TYPE_NONE = 0, - PVRSRV_HANDLE_TYPE_PERPROC_DATA, - PVRSRV_HANDLE_TYPE_DEV_NODE, - PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT, - PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP, - PVRSRV_HANDLE_TYPE_MEM_INFO, - PVRSRV_HANDLE_TYPE_SYNC_INFO, - PVRSRV_HANDLE_TYPE_DISP_INFO, - PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN, - PVRSRV_HANDLE_TYPE_BUF_INFO, - PVRSRV_HANDLE_TYPE_DISP_BUFFER, - PVRSRV_HANDLE_TYPE_BUF_BUFFER, - PVRSRV_HANDLE_TYPE_SGX_HW_RENDER_CONTEXT, - PVRSRV_HANDLE_TYPE_SGX_HW_TRANSFER_CONTEXT, - PVRSRV_HANDLE_TYPE_SGX_HW_2D_CONTEXT, - PVRSRV_HANDLE_TYPE_SHARED_PB_DESC, - PVRSRV_HANDLE_TYPE_MEM_INFO_REF, - PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO, - PVRSRV_HANDLE_TYPE_SHARED_EVENT_OBJECT, - PVRSRV_HANDLE_TYPE_EVENT_OBJECT_CONNECT, - PVRSRV_HANDLE_TYPE_MMAP_INFO, - PVRSRV_HANDLE_TYPE_SOC_TIMER, - PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ, - PVRSRV_HANDLE_TYPE_RESITEM_INFO -} PVRSRV_HANDLE_TYPE; - -typedef enum -{ - /* No flags */ - PVRSRV_HANDLE_ALLOC_FLAG_NONE = 0, - /* Share a handle that already exists for a given data pointer */ - PVRSRV_HANDLE_ALLOC_FLAG_SHARED = 0x01, - /* Muliple handles can point at the given data pointer */ - PVRSRV_HANDLE_ALLOC_FLAG_MULTI = 0x02, - /* Subhandles are allocated in a private handle space */ - PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE = 0x04 -} PVRSRV_HANDLE_ALLOC_FLAG; - -struct _PVRSRV_HANDLE_BASE_; -typedef struct _PVRSRV_HANDLE_BASE_ PVRSRV_HANDLE_BASE; - -#if defined (PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE) -extern PVRSRV_HANDLE_BASE *gpsKernelHandleBase; - -#define KERNEL_HANDLE_BASE (gpsKernelHandleBase) - -#if defined (SUPPORT_SID_INTERFACE) -PVRSRV_ERROR PVRSRVAllocHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag); - -PVRSRV_ERROR PVRSRVAllocSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag, IMG_SID hParent); - -PVRSRV_ERROR PVRSRVFindHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType); - -PVRSRV_ERROR PVRSRVLookupHandleAnyType(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, PVRSRV_HANDLE_TYPE *peType, IMG_SID hHandle); - -PVRSRV_ERROR PVRSRVLookupHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType); - -PVRSRV_ERROR PVRSRVLookupSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType, IMG_SID hAncestor); - -PVRSRV_ERROR PVRSRVGetParentHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID *phParent, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType); - -PVRSRV_ERROR PVRSRVLookupAndReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType); - -PVRSRV_ERROR PVRSRVReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType); -#else -PVRSRV_ERROR PVRSRVAllocHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag); - -PVRSRV_ERROR PVRSRVAllocSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag, IMG_HANDLE hParent); - -PVRSRV_ERROR PVRSRVFindHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType); - -PVRSRV_ERROR PVRSRVLookupHandleAnyType(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, PVRSRV_HANDLE_TYPE *peType, IMG_HANDLE hHandle); - -PVRSRV_ERROR PVRSRVLookupHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType); - -PVRSRV_ERROR PVRSRVLookupSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType, IMG_HANDLE hAncestor); - -PVRSRV_ERROR PVRSRVGetParentHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *phParent, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType); - -PVRSRV_ERROR PVRSRVLookupAndReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType); - -PVRSRV_ERROR PVRSRVReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType); -#endif /* #if defined (SUPPORT_SID_INTERFACE) */ - -PVRSRV_ERROR PVRSRVNewHandleBatch(PVRSRV_HANDLE_BASE *psBase, IMG_UINT32 ui32BatchSize); - -PVRSRV_ERROR PVRSRVCommitHandleBatch(PVRSRV_HANDLE_BASE *psBase); - -IMG_VOID PVRSRVReleaseHandleBatch(PVRSRV_HANDLE_BASE *psBase); - -PVRSRV_ERROR PVRSRVSetMaxHandle(PVRSRV_HANDLE_BASE *psBase, IMG_UINT32 ui32MaxHandle); - -IMG_UINT32 PVRSRVGetMaxHandle(PVRSRV_HANDLE_BASE *psBase); - -PVRSRV_ERROR PVRSRVEnableHandlePurging(PVRSRV_HANDLE_BASE *psBase); - -PVRSRV_ERROR PVRSRVPurgeHandles(PVRSRV_HANDLE_BASE *psBase); - -PVRSRV_ERROR PVRSRVAllocHandleBase(PVRSRV_HANDLE_BASE **ppsBase); - -PVRSRV_ERROR PVRSRVFreeHandleBase(PVRSRV_HANDLE_BASE *psBase); - -PVRSRV_ERROR PVRSRVHandleInit(IMG_VOID); - -PVRSRV_ERROR PVRSRVHandleDeInit(IMG_VOID); - -#else /* #if defined (PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)*/ - -#define KERNEL_HANDLE_BASE IMG_NULL - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVAllocHandle) -#endif -static INLINE -PVRSRV_ERROR PVRSRVAllocHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag) -{ - PVR_UNREFERENCED_PARAMETER(eType); - PVR_UNREFERENCED_PARAMETER(eFlag); - PVR_UNREFERENCED_PARAMETER(psBase); - - *phHandle = pvData; - return PVRSRV_OK; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVAllocSubHandle) -#endif -static INLINE -PVRSRV_ERROR PVRSRVAllocSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag, IMG_HANDLE hParent) -{ - PVR_UNREFERENCED_PARAMETER(eType); - PVR_UNREFERENCED_PARAMETER(eFlag); - PVR_UNREFERENCED_PARAMETER(hParent); - PVR_UNREFERENCED_PARAMETER(psBase); - - *phHandle = pvData; - return PVRSRV_OK; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVFindHandle) -#endif -static INLINE -PVRSRV_ERROR PVRSRVFindHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType) -{ - PVR_UNREFERENCED_PARAMETER(eType); - PVR_UNREFERENCED_PARAMETER(psBase); - - *phHandle = pvData; - return PVRSRV_OK; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVLookupHandleAnyType) -#endif -static INLINE -PVRSRV_ERROR PVRSRVLookupHandleAnyType(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, PVRSRV_HANDLE_TYPE *peType, IMG_HANDLE hHandle) -{ - PVR_UNREFERENCED_PARAMETER(psBase); - /* - * Unlike the other functions here, the returned results will need - * to be handled differently for the secure and non-secure cases. - */ - *peType = PVRSRV_HANDLE_TYPE_NONE; - - *ppvData = hHandle; - return PVRSRV_OK; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVLookupHandle) -#endif -static INLINE -PVRSRV_ERROR PVRSRVLookupHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType) -{ - PVR_UNREFERENCED_PARAMETER(psBase); - PVR_UNREFERENCED_PARAMETER(eType); - - *ppvData = hHandle; - return PVRSRV_OK; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVLookupSubHandle) -#endif -static INLINE -PVRSRV_ERROR PVRSRVLookupSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType, IMG_HANDLE hAncestor) -{ - PVR_UNREFERENCED_PARAMETER(psBase); - PVR_UNREFERENCED_PARAMETER(eType); - PVR_UNREFERENCED_PARAMETER(hAncestor); - - *ppvData = hHandle; - return PVRSRV_OK; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVGetParentHandle) -#endif -static INLINE -PVRSRV_ERROR PVRSRVGetParentHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *phParent, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType) -{ - PVR_UNREFERENCED_PARAMETER(psBase); - PVR_UNREFERENCED_PARAMETER(eType); - PVR_UNREFERENCED_PARAMETER(hHandle); - - *phParent = IMG_NULL; - - return PVRSRV_OK; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVLookupAndReleaseHandle) -#endif -static INLINE -PVRSRV_ERROR PVRSRVLookupAndReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType) -{ - PVR_UNREFERENCED_PARAMETER(eType); - PVR_UNREFERENCED_PARAMETER(psBase); - - *ppvData = hHandle; - return PVRSRV_OK; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVReleaseHandle) -#endif -static INLINE -PVRSRV_ERROR PVRSRVReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType) -{ - PVR_UNREFERENCED_PARAMETER(hHandle); - PVR_UNREFERENCED_PARAMETER(eType); - PVR_UNREFERENCED_PARAMETER(psBase); - - return PVRSRV_OK; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVNewHandleBatch) -#endif -static INLINE -PVRSRV_ERROR PVRSRVNewHandleBatch(PVRSRV_HANDLE_BASE *psBase, IMG_UINT32 ui32BatchSize) -{ - PVR_UNREFERENCED_PARAMETER(psBase); - PVR_UNREFERENCED_PARAMETER(ui32BatchSize); - - return PVRSRV_OK; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVCommitHandleBatch) -#endif -static INLINE -PVRSRV_ERROR PVRSRVCommitHandleBatch(PVRSRV_HANDLE_BASE *psBase) -{ - PVR_UNREFERENCED_PARAMETER(psBase); - - return PVRSRV_OK; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVReleaseHandleBatch) -#endif -static INLINE -IMG_VOID PVRSRVReleaseHandleBatch(PVRSRV_HANDLE_BASE *psBase) -{ - PVR_UNREFERENCED_PARAMETER(psBase); -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVSetMaxHandle) -#endif -static INLINE -PVRSRV_ERROR PVRSRVSetMaxHandle(PVRSRV_HANDLE_BASE *psBase, IMG_UINT32 ui32MaxHandle) -{ - PVR_UNREFERENCED_PARAMETER(psBase); - PVR_UNREFERENCED_PARAMETER(ui32MaxHandle); - - return PVRSRV_ERROR_NOT_SUPPORTED; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVGetMaxHandle) -#endif -static INLINE -IMG_UINT32 PVRSRVGetMaxHandle(PVRSRV_HANDLE_BASE *psBase) -{ - PVR_UNREFERENCED_PARAMETER(psBase); - - return 0; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVEnableHandlePurging) -#endif -static INLINE -PVRSRV_ERROR PVRSRVEnableHandlePurging(PVRSRV_HANDLE_BASE *psBase) -{ - PVR_UNREFERENCED_PARAMETER(psBase); - - return PVRSRV_OK; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVPurgeHandles) -#endif -static INLINE -PVRSRV_ERROR PVRSRVPurgeHandles(PVRSRV_HANDLE_BASE *psBase) -{ - PVR_UNREFERENCED_PARAMETER(psBase); - - return PVRSRV_OK; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVAllocHandleBase) -#endif -static INLINE -PVRSRV_ERROR PVRSRVAllocHandleBase(PVRSRV_HANDLE_BASE **ppsBase) -{ - *ppsBase = IMG_NULL; - - return PVRSRV_OK; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVFreeHandleBase) -#endif -static INLINE -PVRSRV_ERROR PVRSRVFreeHandleBase(PVRSRV_HANDLE_BASE *psBase) -{ - PVR_UNREFERENCED_PARAMETER(psBase); - - return PVRSRV_OK; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVHandleInit) -#endif -static INLINE -PVRSRV_ERROR PVRSRVHandleInit(IMG_VOID) -{ - return PVRSRV_OK; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVHandleDeInit) -#endif -static INLINE -PVRSRV_ERROR PVRSRVHandleDeInit(IMG_VOID) -{ - return PVRSRV_OK; -} - -#endif /* #if defined (PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)*/ - -/* - * Versions of PVRSRVAllocHandle and PVRSRVAllocSubHandle with no return - * values. Intended for use with batched handle allocation, relying on - * CommitHandleBatch to detect handle allocation errors. - */ -#define PVRSRVAllocHandleNR(psBase, phHandle, pvData, eType, eFlag) \ - (IMG_VOID)PVRSRVAllocHandle(psBase, phHandle, pvData, eType, eFlag) - -#define PVRSRVAllocSubHandleNR(psBase, phHandle, pvData, eType, eFlag, hParent) \ - (IMG_VOID)PVRSRVAllocSubHandle(psBase, phHandle, pvData, eType, eFlag, hParent) - -#if defined (__cplusplus) -} -#endif - -#endif /* __HANDLE_H__ */ - -/****************************************************************************** - End of file (handle.h) -******************************************************************************/ diff --git a/pvr-source/services4/srvkm/include/hash.h b/pvr-source/services4/srvkm/include/hash.h deleted file mode 100755 index 1ed6fd0..0000000 --- a/pvr-source/services4/srvkm/include/hash.h +++ /dev/null @@ -1,277 +0,0 @@ -/*************************************************************************/ /*! -@Title Self scaling hash tables -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description Implements simple self scaling hash tables. -@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 _HASH_H_ -#define _HASH_H_ - -#include "img_types.h" -#include "osfunc.h" - -#if defined (__cplusplus) -extern "C" { -#endif - -/* - * Keys passed to the comparsion function are only guaranteed to - * be aligned on an IMG_UINTPTR_T boundary. - */ -typedef IMG_UINT32 HASH_FUNC(IMG_SIZE_T uKeySize, IMG_VOID *pKey, IMG_UINT32 uHashTabLen); -typedef IMG_BOOL HASH_KEY_COMP(IMG_SIZE_T uKeySize, IMG_VOID *pKey1, IMG_VOID *pKey2); - -typedef struct _HASH_TABLE_ HASH_TABLE; - -typedef PVRSRV_ERROR (*HASH_pfnCallback) ( - IMG_UINTPTR_T k, - IMG_UINTPTR_T v -); - -/*! -****************************************************************************** - @Function HASH_Func_Default - - @Description Hash function intended for hashing keys composed of - IMG_UINTPTR_T arrays. - - @Input uKeySize - the size of the hash key, in bytes. - @Input pKey - a pointer to the key to hash. - @Input uHashTabLen - the length of the hash table. - - @Return The hash value. -******************************************************************************/ -IMG_UINT32 HASH_Func_Default (IMG_SIZE_T uKeySize, IMG_VOID *pKey, IMG_UINT32 uHashTabLen); - -/*! -****************************************************************************** - @Function HASH_Key_Comp_Default - - @Description Compares keys composed of IMG_UINTPTR_T arrays. - - @Input uKeySize - the size of the hash key, in bytes. - @Input pKey1 - pointer to first hash key to compare. - @Input pKey2 - pointer to second hash key to compare. - - @Return IMG_TRUE - the keys match. - IMG_FALSE - the keys don't match. -******************************************************************************/ -IMG_BOOL HASH_Key_Comp_Default (IMG_SIZE_T uKeySize, IMG_VOID *pKey1, IMG_VOID *pKey2); - -/*! -****************************************************************************** - @Function HASH_Create_Extended - - @Description Create a self scaling hash table, using the supplied - key size, and the supllied hash and key comparsion - functions. - - @Input uInitialLen - initial and minimum length of the - hash table, where the length refers to the number - of entries in the hash table, not its size in - bytes. - @Input uKeySize - the size of the key, in bytes. - @Input pfnHashFunc - pointer to hash function. - @Input pfnKeyComp - pointer to key comparsion function. - - @Return IMG_NULL or hash table handle. -******************************************************************************/ -HASH_TABLE * HASH_Create_Extended (IMG_UINT32 uInitialLen, IMG_SIZE_T uKeySize, HASH_FUNC *pfnHashFunc, HASH_KEY_COMP *pfnKeyComp); - -/*! -****************************************************************************** - @Function HASH_Create - - @Description Create a self scaling hash table with a key - consisting of a single IMG_UINTPTR_T, and using - the default hash and key comparison functions. - - @Input uInitialLen - initial and minimum length of the - hash table, where the length refers to the - number of entries in the hash table, not its size - in bytes. - - @Return IMG_NULL or hash table handle. -******************************************************************************/ -HASH_TABLE * HASH_Create (IMG_UINT32 uInitialLen); - -/*! -****************************************************************************** - @Function HASH_Delete - - @Description Delete a hash table created by HASH_Create_Extended or - HASH_Create. All entries in the table must have been - removed before calling this function. - - @Input pHash - hash table - - @Return None -******************************************************************************/ -IMG_VOID HASH_Delete (HASH_TABLE *pHash); - -/*! -****************************************************************************** - @Function HASH_Insert_Extended - - @Description Insert a key value pair into a hash table created - with HASH_Create_Extended. - - @Input pHash - the hash table. - @Input pKey - pointer to the key. - @Input v - the value associated with the key. - - @Return IMG_TRUE - success. - IMG_FALSE - failure. -******************************************************************************/ -IMG_BOOL HASH_Insert_Extended (HASH_TABLE *pHash, IMG_VOID *pKey, IMG_UINTPTR_T v); - -/*! -****************************************************************************** - @Function HASH_Insert - - @Description Insert a key value pair into a hash table created with - HASH_Create. - - @Input pHash - the hash table. - @Input k - the key value. - @Input v - the value associated with the key. - - @Return IMG_TRUE - success. - IMG_FALSE - failure. -******************************************************************************/ -IMG_BOOL HASH_Insert (HASH_TABLE *pHash, IMG_UINTPTR_T k, IMG_UINTPTR_T v); - -/*! -****************************************************************************** - @Function HASH_Remove_Extended - - @Description Remove a key from a hash table created with - HASH_Create_Extended. - - @Input pHash - the hash table. - @Input pKey - pointer to key. - - @Return 0 if the key is missing, or the value associated - with the key. -******************************************************************************/ -IMG_UINTPTR_T HASH_Remove_Extended(HASH_TABLE *pHash, IMG_VOID *pKey); - -/*! -****************************************************************************** - @Function HASH_Remove - - @Description Remove a key value pair from a hash table created - with HASH_Create. - - @Input pHash - the hash table - @Input k - the key - - @Return 0 if the key is missing, or the value associated - with the key. -******************************************************************************/ -IMG_UINTPTR_T HASH_Remove (HASH_TABLE *pHash, IMG_UINTPTR_T k); - -/*! -****************************************************************************** - @Function HASH_Retrieve_Extended - - @Description Retrieve a value from a hash table created with - HASH_Create_Extended. - - @Input pHash - the hash table. - @Input pKey - pointer to the key. - - @Return 0 if the key is missing, or the value associated with - the key. -******************************************************************************/ -IMG_UINTPTR_T HASH_Retrieve_Extended (HASH_TABLE *pHash, IMG_VOID *pKey); - -/*! -****************************************************************************** - @Function HASH_Retrieve - - @Description Retrieve a value from a hash table created with - HASH_Create. - - @Input pHash - the hash table - @Input k - the key - - @Return 0 if the key is missing, or the value associated with - the key. -******************************************************************************/ -IMG_UINTPTR_T HASH_Retrieve (HASH_TABLE *pHash, IMG_UINTPTR_T k); - -/*! -****************************************************************************** - @Function HASH_Interate - - @Description Iterate over every entry in the hash table - - @Input pHash - the old hash table - @Input HASH_pfnCallback - the size of the old hash table - - @Return Callback error if any, otherwise PVRSRV_OK -******************************************************************************/ -PVRSRV_ERROR HASH_Iterate(HASH_TABLE *pHash, HASH_pfnCallback pfnCallback); - -#ifdef HASH_TRACE -/*! -****************************************************************************** - @Function HASH_Dump - - @Description Dump out some information about a hash table. - - @Input pHash - the hash table - - @Return None -******************************************************************************/ -IMG_VOID HASH_Dump (HASH_TABLE *pHash); -#endif - -#if defined (__cplusplus) -} -#endif - -#endif /* _HASH_H_ */ - -/****************************************************************************** - End of file (hash.h) -******************************************************************************/ - - diff --git a/pvr-source/services4/srvkm/include/lists.h b/pvr-source/services4/srvkm/include/lists.h deleted file mode 100755 index 81205de..0000000 --- a/pvr-source/services4/srvkm/include/lists.h +++ /dev/null @@ -1,349 +0,0 @@ -/*************************************************************************/ /*! -@Title Linked list shared functions templates. -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description Definition of the linked list function templates. -@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 __LISTS_UTILS__ -#define __LISTS_UTILS__ - -/* instruct QAC to ignore warnings about the following custom formatted macros */ -/* PRQA S 0881,3410 ++ */ -#include <stdarg.h> -#include "img_types.h" - -/* - - USAGE - - - The list functions work with any structure that provides the fields psNext and - ppsThis. In order to make a function available for a given type, it is required - to use the funcion template macro that creates the actual code. - - There are 4 main types of functions: - - INSERT : given a pointer to the head pointer of the list and a pointer to - the node, inserts it as the new head. - - REMOVE : given a pointer to a node, removes it from its list. - - FOR EACH : apply a function over all the elements of a list. - - ANY : apply a function over the elements of a list, until one of them - return a non null value, and then returns it. - - The two last functions can have a variable argument form, with allows to pass - additional parameters to the callback function. In order to do this, the - callback function must take two arguments, the first is the current node and - the second is a list of variable arguments (va_list). - - The ANY functions have also another for wich specifies the return type of the - callback function and the default value returned by the callback function. - -*/ - -/*! -****************************************************************************** - @Function List_##TYPE##_ForEach - - @Description Apply a callback function to all the elements of a list. - - @Input psHead - the head of the list to be processed. - @Input pfnCallBack - the function to be applied to each element - of the list. - - @Return None -******************************************************************************/ -#define DECLARE_LIST_FOR_EACH(TYPE) \ -IMG_VOID List_##TYPE##_ForEach(TYPE *psHead, IMG_VOID(*pfnCallBack)(TYPE* psNode)) - -#define IMPLEMENT_LIST_FOR_EACH(TYPE) \ -IMG_VOID List_##TYPE##_ForEach(TYPE *psHead, IMG_VOID(*pfnCallBack)(TYPE* psNode))\ -{\ - while(psHead)\ - {\ - pfnCallBack(psHead);\ - psHead = psHead->psNext;\ - }\ -} - - -#define DECLARE_LIST_FOR_EACH_VA(TYPE) \ -IMG_VOID List_##TYPE##_ForEach_va(TYPE *psHead, IMG_VOID(*pfnCallBack)(TYPE* psNode, va_list va), ...) - -#define IMPLEMENT_LIST_FOR_EACH_VA(TYPE) \ -IMG_VOID List_##TYPE##_ForEach_va(TYPE *psHead, IMG_VOID(*pfnCallBack)(TYPE* psNode, va_list va), ...) \ -{\ - va_list ap;\ - while(psHead)\ - {\ - va_start(ap, pfnCallBack);\ - pfnCallBack(psHead, ap);\ - psHead = psHead->psNext;\ - va_end(ap);\ - }\ -} - - -/*! -****************************************************************************** - @Function List_##TYPE##_Any - - @Description Applies a callback function to the elements of a list until - the function returns a non null value, then returns it. - - @Input psHead - the head of the list to be processed. - @Input pfnCallBack - the function to be applied to each element - of the list. - - @Return None -******************************************************************************/ -#define DECLARE_LIST_ANY(TYPE) \ -IMG_VOID* List_##TYPE##_Any(TYPE *psHead, IMG_VOID* (*pfnCallBack)(TYPE* psNode)) - -#define IMPLEMENT_LIST_ANY(TYPE) \ -IMG_VOID* List_##TYPE##_Any(TYPE *psHead, IMG_VOID* (*pfnCallBack)(TYPE* psNode))\ -{ \ - IMG_VOID *pResult;\ - TYPE *psNextNode;\ - pResult = IMG_NULL;\ - psNextNode = psHead;\ - while(psHead && !pResult)\ - {\ - psNextNode = psNextNode->psNext;\ - pResult = pfnCallBack(psHead);\ - psHead = psNextNode;\ - }\ - return pResult;\ -} - - -/*with variable arguments, that will be passed as a va_list to the callback function*/ - -#define DECLARE_LIST_ANY_VA(TYPE) \ -IMG_VOID* List_##TYPE##_Any_va(TYPE *psHead, IMG_VOID*(*pfnCallBack)(TYPE* psNode, va_list va), ...) - -#define IMPLEMENT_LIST_ANY_VA(TYPE) \ -IMG_VOID* List_##TYPE##_Any_va(TYPE *psHead, IMG_VOID*(*pfnCallBack)(TYPE* psNode, va_list va), ...)\ -{\ - va_list ap;\ - TYPE *psNextNode;\ - IMG_VOID* pResult = IMG_NULL;\ - while(psHead && !pResult)\ - {\ - psNextNode = psHead->psNext;\ - va_start(ap, pfnCallBack);\ - pResult = pfnCallBack(psHead, ap);\ - va_end(ap);\ - psHead = psNextNode;\ - }\ - return pResult;\ -} - -/*those ones are for extra type safety, so there's no need to use castings for the results*/ - -#define DECLARE_LIST_ANY_2(TYPE, RTYPE, CONTINUE) \ -RTYPE List_##TYPE##_##RTYPE##_Any(TYPE *psHead, RTYPE (*pfnCallBack)(TYPE* psNode)) - -#define IMPLEMENT_LIST_ANY_2(TYPE, RTYPE, CONTINUE) \ -RTYPE List_##TYPE##_##RTYPE##_Any(TYPE *psHead, RTYPE (*pfnCallBack)(TYPE* psNode))\ -{ \ - RTYPE result;\ - TYPE *psNextNode;\ - result = CONTINUE;\ - psNextNode = psHead;\ - while(psHead && result == CONTINUE)\ - {\ - psNextNode = psNextNode->psNext;\ - result = pfnCallBack(psHead);\ - psHead = psNextNode;\ - }\ - return result;\ -} - - -#define DECLARE_LIST_ANY_VA_2(TYPE, RTYPE, CONTINUE) \ -RTYPE List_##TYPE##_##RTYPE##_Any_va(TYPE *psHead, RTYPE(*pfnCallBack)(TYPE* psNode, va_list va), ...) - -#define IMPLEMENT_LIST_ANY_VA_2(TYPE, RTYPE, CONTINUE) \ -RTYPE List_##TYPE##_##RTYPE##_Any_va(TYPE *psHead, RTYPE(*pfnCallBack)(TYPE* psNode, va_list va), ...)\ -{\ - va_list ap;\ - TYPE *psNextNode;\ - RTYPE result = CONTINUE;\ - while(psHead && result == CONTINUE)\ - {\ - psNextNode = psHead->psNext;\ - va_start(ap, pfnCallBack);\ - result = pfnCallBack(psHead, ap);\ - va_end(ap);\ - psHead = psNextNode;\ - }\ - return result;\ -} - - -/*! -****************************************************************************** - @Function List_##TYPE##_Remove - - @Description Removes a given node from the list. - - @Input psNode - the pointer to the node to be removed. - - @Return None -******************************************************************************/ -#define DECLARE_LIST_REMOVE(TYPE) \ -IMG_VOID List_##TYPE##_Remove(TYPE *psNode) - -#define IMPLEMENT_LIST_REMOVE(TYPE) \ -IMG_VOID List_##TYPE##_Remove(TYPE *psNode)\ -{\ - (*psNode->ppsThis)=psNode->psNext;\ - if(psNode->psNext)\ - {\ - psNode->psNext->ppsThis = psNode->ppsThis;\ - }\ -} - -/*! -****************************************************************************** - @Function List_##TYPE##_Insert - - @Description Inserts a given node at the beginnning of the list. - - @Input psHead - The pointer to the pointer to the head node. - @Input psNode - The pointer to the node to be inserted. - - @Return None -******************************************************************************/ -#define DECLARE_LIST_INSERT(TYPE) \ -IMG_VOID List_##TYPE##_Insert(TYPE **ppsHead, TYPE *psNewNode) - -#define IMPLEMENT_LIST_INSERT(TYPE) \ -IMG_VOID List_##TYPE##_Insert(TYPE **ppsHead, TYPE *psNewNode)\ -{\ - psNewNode->ppsThis = ppsHead;\ - psNewNode->psNext = *ppsHead;\ - *ppsHead = psNewNode;\ - if(psNewNode->psNext)\ - {\ - psNewNode->psNext->ppsThis = &(psNewNode->psNext);\ - }\ -} - -/*! -****************************************************************************** - @Function List_##TYPE##_Reverse - - @Description Reverse a list in place - - @Input ppsHead - The pointer to the pointer to the head node. - - @Return None -******************************************************************************/ -#define DECLARE_LIST_REVERSE(TYPE) \ -IMG_VOID List_##TYPE##_Reverse(TYPE **ppsHead) - -#define IMPLEMENT_LIST_REVERSE(TYPE) \ -IMG_VOID List_##TYPE##_Reverse(TYPE **ppsHead)\ -{\ - TYPE *psTmpNode1; \ - TYPE *psTmpNode2; \ - TYPE *psCurNode; \ - psTmpNode1 = IMG_NULL; \ - psCurNode = *ppsHead; \ - while(psCurNode) { \ - psTmpNode2 = psCurNode->psNext; \ - psCurNode->psNext = psTmpNode1; \ - psTmpNode1 = psCurNode; \ - psCurNode = psTmpNode2; \ - if(psCurNode) \ - { \ - psTmpNode1->ppsThis = &(psCurNode->psNext); \ - } \ - else \ - { \ - psTmpNode1->ppsThis = ppsHead; \ - } \ - } \ - *ppsHead = psTmpNode1; \ -} - -#define IS_LAST_ELEMENT(x) ((x)->psNext == IMG_NULL) - -#include "services_headers.h" - -DECLARE_LIST_ANY_VA(BM_HEAP); -DECLARE_LIST_ANY_2(BM_HEAP, PVRSRV_ERROR, PVRSRV_OK); -DECLARE_LIST_ANY_VA_2(BM_HEAP, PVRSRV_ERROR, PVRSRV_OK); -DECLARE_LIST_FOR_EACH_VA(BM_HEAP); -DECLARE_LIST_REMOVE(BM_HEAP); -DECLARE_LIST_INSERT(BM_HEAP); - -DECLARE_LIST_ANY_VA(BM_CONTEXT); -DECLARE_LIST_ANY_VA_2(BM_CONTEXT, IMG_HANDLE, IMG_NULL); -DECLARE_LIST_ANY_VA_2(BM_CONTEXT, PVRSRV_ERROR, PVRSRV_OK); -DECLARE_LIST_FOR_EACH(BM_CONTEXT); -DECLARE_LIST_REMOVE(BM_CONTEXT); -DECLARE_LIST_INSERT(BM_CONTEXT); - -DECLARE_LIST_ANY_2(PVRSRV_DEVICE_NODE, PVRSRV_ERROR, PVRSRV_OK); -DECLARE_LIST_ANY_VA(PVRSRV_DEVICE_NODE); -DECLARE_LIST_ANY_VA_2(PVRSRV_DEVICE_NODE, PVRSRV_ERROR, PVRSRV_OK); -DECLARE_LIST_FOR_EACH(PVRSRV_DEVICE_NODE); -DECLARE_LIST_FOR_EACH_VA(PVRSRV_DEVICE_NODE); -DECLARE_LIST_INSERT(PVRSRV_DEVICE_NODE); -DECLARE_LIST_REMOVE(PVRSRV_DEVICE_NODE); - -DECLARE_LIST_ANY_VA(PVRSRV_POWER_DEV); -DECLARE_LIST_ANY_VA_2(PVRSRV_POWER_DEV, PVRSRV_ERROR, PVRSRV_OK); -DECLARE_LIST_INSERT(PVRSRV_POWER_DEV); -DECLARE_LIST_REMOVE(PVRSRV_POWER_DEV); - -#undef DECLARE_LIST_ANY_2 -#undef DECLARE_LIST_ANY_VA -#undef DECLARE_LIST_ANY_VA_2 -#undef DECLARE_LIST_FOR_EACH -#undef DECLARE_LIST_FOR_EACH_VA -#undef DECLARE_LIST_INSERT -#undef DECLARE_LIST_REMOVE - -IMG_VOID* MatchDeviceKM_AnyVaCb(PVRSRV_DEVICE_NODE* psDeviceNode, va_list va); -IMG_VOID* MatchPowerDeviceIndex_AnyVaCb(PVRSRV_POWER_DEV *psPowerDev, va_list va); - -#endif - -/* re-enable warnings */ -/* PRQA S 0881,3410 -- */ diff --git a/pvr-source/services4/srvkm/include/metrics.h b/pvr-source/services4/srvkm/include/metrics.h deleted file mode 100755 index 18079cb..0000000 --- a/pvr-source/services4/srvkm/include/metrics.h +++ /dev/null @@ -1,146 +0,0 @@ -/*************************************************************************/ /*! -@Title Time measurement interface. -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@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 _METRICS_ -#define _METRICS_ - - -#if defined (__cplusplus) -extern "C" { -#endif - - -#if defined(DEBUG) || defined(TIMING) - - -typedef struct -{ - IMG_UINT32 ui32Start; - IMG_UINT32 ui32Stop; - IMG_UINT32 ui32Total; - IMG_UINT32 ui32Count; -} Temporal_Data; - -extern Temporal_Data asTimers[]; - -extern IMG_UINT32 PVRSRVTimeNow(IMG_VOID); -extern IMG_VOID PVRSRVSetupMetricTimers(IMG_VOID *pvDevInfo); -extern IMG_VOID PVRSRVOutputMetricTotals(IMG_VOID); - - -#define PVRSRV_TIMER_DUMMY 0 - -#define PVRSRV_TIMER_EXAMPLE_1 1 -#define PVRSRV_TIMER_EXAMPLE_2 2 - - -#define PVRSRV_NUM_TIMERS (PVRSRV_TIMER_EXAMPLE_2 + 1) - -#define PVRSRV_TIME_START(X) { \ - asTimers[X].ui32Count += 1; \ - asTimers[X].ui32Count |= 0x80000000L; \ - asTimers[X].ui32Start = PVRSRVTimeNow(); \ - asTimers[X].ui32Stop = 0; \ - } - -#define PVRSRV_TIME_SUSPEND(X) { \ - asTimers[X].ui32Stop += PVRSRVTimeNow() - asTimers[X].ui32Start; \ - } - -#define PVRSRV_TIME_RESUME(X) { \ - asTimers[X].ui32Start = PVRSRVTimeNow(); \ - } - -#define PVRSRV_TIME_STOP(X) { \ - asTimers[X].ui32Stop += PVRSRVTimeNow() - asTimers[X].ui32Start; \ - asTimers[X].ui32Total += asTimers[X].ui32Stop; \ - asTimers[X].ui32Count &= 0x7FFFFFFFL; \ - } - -#define PVRSRV_TIME_RESET(X) { \ - asTimers[X].ui32Start = 0; \ - asTimers[X].ui32Stop = 0; \ - asTimers[X].ui32Total = 0; \ - asTimers[X].ui32Count = 0; \ - } - - -#if defined(__sh__) - -#define TST_REG ((volatile IMG_UINT8 *) (psDevInfo->pvSOCRegsBaseKM)) // timer start register - -#define TCOR_2 ((volatile IMG_UINT *) (psDevInfo->pvSOCRegsBaseKM+28)) // timer constant register_2 -#define TCNT_2 ((volatile IMG_UINT *) (psDevInfo->pvSOCRegsBaseKM+32)) // timer counter register_2 -#define TCR_2 ((volatile IMG_UINT16 *)(psDevInfo->pvSOCRegsBaseKM+36)) // timer control register_2 - -#define TIMER_DIVISOR 4 - -#endif /* defined(__sh__) */ - - - -#else /* defined(DEBUG) || defined(TIMING) */ - - - -#define PVRSRV_TIME_START(X) -#define PVRSRV_TIME_SUSPEND(X) -#define PVRSRV_TIME_RESUME(X) -#define PVRSRV_TIME_STOP(X) -#define PVRSRV_TIME_RESET(X) - -#define PVRSRVSetupMetricTimers(X) -#define PVRSRVOutputMetricTotals() - - - -#endif /* defined(DEBUG) || defined(TIMING) */ - -#if defined(__cplusplus) -} -#endif - - -#endif /* _METRICS_ */ - -/************************************************************************** - End of file (metrics.h) -**************************************************************************/ diff --git a/pvr-source/services4/srvkm/include/osfunc.h b/pvr-source/services4/srvkm/include/osfunc.h deleted file mode 100755 index dcaa58a..0000000 --- a/pvr-source/services4/srvkm/include/osfunc.h +++ /dev/null @@ -1,799 +0,0 @@ -/*************************************************************************/ /*! -@Title OS functions header -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description OS specific API definitions -@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. -*/ /**************************************************************************/ -#ifdef DEBUG_RELEASE_BUILD -#pragma optimize( "", off ) -#define DEBUG 1 -#endif - -#ifndef __OSFUNC_H__ -#define __OSFUNC_H__ - -#if defined (__cplusplus) -extern "C" { -#endif - -#if defined(__linux__) && defined(__KERNEL__) -#include <linux/hardirq.h> -#include <linux/string.h> -#include <asm/system.h> -#if defined(__arm__) -#include <asm/memory.h> -#endif -#endif - - -/* setup conditional pageable / non-pageable select */ - /* Other OSs only need pageable */ - #define PVRSRV_PAGEABLE_SELECT PVRSRV_OS_PAGEABLE_HEAP - -/****************************************************************************** - * Static defines - *****************************************************************************/ -#define KERNEL_ID 0xffffffffL -#define POWER_MANAGER_ID 0xfffffffeL -#define ISR_ID 0xfffffffdL -#define TIMER_ID 0xfffffffcL - - -#define HOST_PAGESIZE OSGetPageSize -#define HOST_PAGEMASK (HOST_PAGESIZE()-1) -#define HOST_PAGEALIGN(addr) (((addr) + HOST_PAGEMASK) & ~HOST_PAGEMASK) - -/****************************************************************************** - * Host memory heaps - *****************************************************************************/ -#define PVRSRV_OS_HEAP_MASK 0xf /* host heap flags mask */ -#define PVRSRV_OS_PAGEABLE_HEAP 0x1 /* allocation pageable */ -#define PVRSRV_OS_NON_PAGEABLE_HEAP 0x2 /* allocation non pageable */ - - -IMG_UINT32 OSClockus(IMG_VOID); -IMG_SIZE_T OSGetPageSize(IMG_VOID); -PVRSRV_ERROR OSInstallDeviceLISR(IMG_VOID *pvSysData, - IMG_UINT32 ui32Irq, - IMG_CHAR *pszISRName, - IMG_VOID *pvDeviceNode); -PVRSRV_ERROR OSUninstallDeviceLISR(IMG_VOID *pvSysData); -PVRSRV_ERROR OSInstallSystemLISR(IMG_VOID *pvSysData, IMG_UINT32 ui32Irq); -PVRSRV_ERROR OSUninstallSystemLISR(IMG_VOID *pvSysData); -PVRSRV_ERROR OSInstallMISR(IMG_VOID *pvSysData); -PVRSRV_ERROR OSUninstallMISR(IMG_VOID *pvSysData); -IMG_CPU_PHYADDR OSMapLinToCPUPhys(IMG_HANDLE, IMG_VOID* pvLinAddr); -IMG_VOID OSMemCopy(IMG_VOID *pvDst, IMG_VOID *pvSrc, IMG_SIZE_T ui32Size); -IMG_VOID *OSMapPhysToLin(IMG_CPU_PHYADDR BasePAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_HANDLE *phOSMemHandle); -IMG_BOOL OSUnMapPhysToLin(IMG_VOID *pvLinAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_HANDLE hOSMemHandle); - -PVRSRV_ERROR OSReservePhys(IMG_CPU_PHYADDR BasePAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_HANDLE hBMHandle, IMG_VOID **ppvCpuVAddr, IMG_HANDLE *phOSMemHandle); -PVRSRV_ERROR OSUnReservePhys(IMG_VOID *pvCpuVAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_HANDLE hOSMemHandle); - -/* Some terminology: - * - * FLUSH Flush w/ invalidate - * CLEAN Flush w/o invalidate - * INVALIDATE Invalidate w/o flush - */ - -#if defined(__linux__) && defined(__KERNEL__) - -IMG_VOID OSFlushCPUCacheKM(IMG_VOID); - -IMG_VOID OSCleanCPUCacheKM(IMG_VOID); - -IMG_BOOL OSFlushCPUCacheRangeKM(IMG_HANDLE hOSMemHandle, - IMG_UINT32 ui32ByteOffset, - IMG_VOID *pvRangeAddrStart, - IMG_UINT32 ui32Length); -IMG_BOOL OSCleanCPUCacheRangeKM(IMG_HANDLE hOSMemHandle, - IMG_UINT32 ui32ByteOffset, - IMG_VOID *pvRangeAddrStart, - IMG_UINT32 ui32Length); -IMG_BOOL OSInvalidateCPUCacheRangeKM(IMG_HANDLE hOSMemHandle, - IMG_UINT32 ui32ByteOffset, - IMG_VOID *pvRangeAddrStart, - IMG_UINT32 ui32Length); - -#else /* defined(__linux__) && defined(__KERNEL__) */ - -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSFlushCPUCacheKM) -#endif -static INLINE IMG_VOID OSFlushCPUCacheKM(IMG_VOID) {} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSCleanCPUCacheKM) -#endif -static INLINE IMG_VOID OSCleanCPUCacheKM(IMG_VOID) {} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSFlushCPUCacheRangeKM) -#endif -static INLINE IMG_BOOL OSFlushCPUCacheRangeKM(IMG_HANDLE hOSMemHandle, - IMG_UINT32 ui32ByteOffset, - IMG_VOID *pvRangeAddrStart, - IMG_UINT32 ui32Length) -{ - PVR_UNREFERENCED_PARAMETER(hOSMemHandle); - PVR_UNREFERENCED_PARAMETER(ui32ByteOffset); - PVR_UNREFERENCED_PARAMETER(pvRangeAddrStart); - PVR_UNREFERENCED_PARAMETER(ui32Length); - return IMG_FALSE; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSCleanCPUCacheRangeKM) -#endif -static INLINE IMG_BOOL OSCleanCPUCacheRangeKM(IMG_HANDLE hOSMemHandle, - IMG_UINT32 ui32ByteOffset, - IMG_VOID *pvRangeAddrStart, - IMG_UINT32 ui32Length) -{ - PVR_UNREFERENCED_PARAMETER(hOSMemHandle); - PVR_UNREFERENCED_PARAMETER(ui32ByteOffset); - PVR_UNREFERENCED_PARAMETER(pvRangeAddrStart); - PVR_UNREFERENCED_PARAMETER(ui32Length); - return IMG_FALSE; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSInvalidateCPUCacheRangeKM) -#endif -static INLINE IMG_BOOL OSInvalidateCPUCacheRangeKM(IMG_HANDLE hOSMemHandle, - IMG_UINT32 ui32ByteOffset, - IMG_VOID *pvRangeAddrStart, - IMG_UINT32 ui32Length) -{ - PVR_UNREFERENCED_PARAMETER(hOSMemHandle); - PVR_UNREFERENCED_PARAMETER(ui32ByteOffset); - PVR_UNREFERENCED_PARAMETER(pvRangeAddrStart); - PVR_UNREFERENCED_PARAMETER(ui32Length); - return IMG_FALSE; -} - -#endif /* defined(__linux__) && defined(__KERNEL__) */ - -#if defined(__linux__) || defined(__QNXNTO__) -PVRSRV_ERROR OSRegisterDiscontigMem(IMG_SYS_PHYADDR *pBasePAddr, - IMG_VOID *pvCpuVAddr, - IMG_SIZE_T ui32Bytes, - IMG_UINT32 ui32Flags, - IMG_HANDLE *phOSMemHandle); -PVRSRV_ERROR OSUnRegisterDiscontigMem(IMG_VOID *pvCpuVAddr, - IMG_SIZE_T ui32Bytes, - IMG_UINT32 ui32Flags, - IMG_HANDLE hOSMemHandle); -#else /* defined(__linux__) */ -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSRegisterDiscontigMem) -#endif -static INLINE PVRSRV_ERROR OSRegisterDiscontigMem(IMG_SYS_PHYADDR *pBasePAddr, - IMG_VOID *pvCpuVAddr, - IMG_SIZE_T ui32Bytes, - IMG_UINT32 ui32Flags, - IMG_HANDLE *phOSMemHandle) -{ - PVR_UNREFERENCED_PARAMETER(pBasePAddr); - PVR_UNREFERENCED_PARAMETER(pvCpuVAddr); - PVR_UNREFERENCED_PARAMETER(ui32Bytes); - PVR_UNREFERENCED_PARAMETER(ui32Flags); - PVR_UNREFERENCED_PARAMETER(phOSMemHandle); - - return PVRSRV_ERROR_NOT_SUPPORTED; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSUnRegisterDiscontigMem) -#endif -static INLINE PVRSRV_ERROR OSUnRegisterDiscontigMem(IMG_VOID *pvCpuVAddr, - IMG_SIZE_T ui32Bytes, - IMG_UINT32 ui32Flags, - IMG_HANDLE hOSMemHandle) -{ - PVR_UNREFERENCED_PARAMETER(pvCpuVAddr); - PVR_UNREFERENCED_PARAMETER(ui32Bytes); - PVR_UNREFERENCED_PARAMETER(ui32Flags); - PVR_UNREFERENCED_PARAMETER(hOSMemHandle); - - return PVRSRV_ERROR_NOT_SUPPORTED; -} -#endif /* defined(__linux__) */ - - -#if defined(__linux__) || defined(__QNXNTO__) -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSReserveDiscontigPhys) -#endif -static INLINE PVRSRV_ERROR OSReserveDiscontigPhys(IMG_SYS_PHYADDR *pBasePAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_VOID **ppvCpuVAddr, IMG_HANDLE *phOSMemHandle) -{ -#if defined(__linux__) || defined(__QNXNTO__) - *ppvCpuVAddr = IMG_NULL; - return OSRegisterDiscontigMem(pBasePAddr, *ppvCpuVAddr, ui32Bytes, ui32Flags, phOSMemHandle); -#else - extern IMG_CPU_PHYADDR SysSysPAddrToCpuPAddr(IMG_SYS_PHYADDR SysPAddr); - - /* - * On uITRON we know: - * 1. We will only be called with a non-contig physical if we - * already have a contiguous CPU linear - * 2. There is a one->one mapping of CpuPAddr -> CpuVAddr - * 3. Looking up the first CpuPAddr will find the first CpuVAddr - * 4. We don't need to unmap - */ - - return OSReservePhys(SysSysPAddrToCpuPAddr(pBasePAddr[0]), ui32Bytes, ui32Flags, IMG_NULL, ppvCpuVAddr, phOSMemHandle); -#endif -} - -static INLINE PVRSRV_ERROR OSUnReserveDiscontigPhys(IMG_VOID *pvCpuVAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_HANDLE hOSMemHandle) -{ -#if defined(__linux__) || defined(__QNXNTO__) - OSUnRegisterDiscontigMem(pvCpuVAddr, ui32Bytes, ui32Flags, hOSMemHandle); -#endif - /* We don't need to unmap */ - return PVRSRV_OK; -} -#else /* defined(__linux__) */ - - -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSReserveDiscontigPhys) -#endif -static INLINE PVRSRV_ERROR OSReserveDiscontigPhys(IMG_SYS_PHYADDR *pBasePAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_VOID **ppvCpuVAddr, IMG_HANDLE *phOSMemHandle) -{ - PVR_UNREFERENCED_PARAMETER(pBasePAddr); - PVR_UNREFERENCED_PARAMETER(ui32Bytes); - PVR_UNREFERENCED_PARAMETER(ui32Flags); - PVR_UNREFERENCED_PARAMETER(ppvCpuVAddr); - PVR_UNREFERENCED_PARAMETER(phOSMemHandle); - - return PVRSRV_ERROR_NOT_SUPPORTED; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSUnReserveDiscontigPhys) -#endif -static INLINE PVRSRV_ERROR OSUnReserveDiscontigPhys(IMG_VOID *pvCpuVAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_HANDLE hOSMemHandle) -{ - PVR_UNREFERENCED_PARAMETER(pvCpuVAddr); - PVR_UNREFERENCED_PARAMETER(ui32Bytes); - PVR_UNREFERENCED_PARAMETER(ui32Flags); - PVR_UNREFERENCED_PARAMETER(hOSMemHandle); - - return PVRSRV_ERROR_NOT_SUPPORTED; -} -#endif /* defined(__linux__) */ - -PVRSRV_ERROR OSRegisterMem(IMG_CPU_PHYADDR BasePAddr, - IMG_VOID *pvCpuVAddr, - IMG_SIZE_T ui32Bytes, - IMG_UINT32 ui32Flags, - IMG_HANDLE *phOSMemHandle); -PVRSRV_ERROR OSUnRegisterMem(IMG_VOID *pvCpuVAddr, - IMG_SIZE_T ui32Bytes, - IMG_UINT32 ui32Flags, - IMG_HANDLE hOSMemHandle); - - - -#if defined(__linux__) || defined(__QNXNTO__) -PVRSRV_ERROR OSGetSubMemHandle(IMG_HANDLE hOSMemHandle, - IMG_UINTPTR_T ui32ByteOffset, - IMG_SIZE_T ui32Bytes, - IMG_UINT32 ui32Flags, - IMG_HANDLE *phOSMemHandleRet); -PVRSRV_ERROR OSReleaseSubMemHandle(IMG_HANDLE hOSMemHandle, IMG_UINT32 ui32Flags); -#else -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSGetSubMemHandle) -#endif -static INLINE PVRSRV_ERROR OSGetSubMemHandle(IMG_HANDLE hOSMemHandle, - IMG_UINTPTR_T ui32ByteOffset, - IMG_SIZE_T ui32Bytes, - IMG_UINT32 ui32Flags, - IMG_HANDLE *phOSMemHandleRet) -{ - PVR_UNREFERENCED_PARAMETER(ui32ByteOffset); - PVR_UNREFERENCED_PARAMETER(ui32Bytes); - PVR_UNREFERENCED_PARAMETER(ui32Flags); - - *phOSMemHandleRet = hOSMemHandle; - return PVRSRV_OK; -} - -static INLINE PVRSRV_ERROR OSReleaseSubMemHandle(IMG_HANDLE hOSMemHandle, IMG_UINT32 ui32Flags) -{ - PVR_UNREFERENCED_PARAMETER(hOSMemHandle); - PVR_UNREFERENCED_PARAMETER(ui32Flags); - return PVRSRV_OK; -} -#endif - -IMG_UINT32 OSGetCurrentProcessIDKM(IMG_VOID); -int OSGetProcCmdline(IMG_UINT32 ui32PID, char * buffer, int buff_size); -const char* OSGetPathBaseName(char * buffer, int buff_size); -IMG_UINTPTR_T OSGetCurrentThreadID( IMG_VOID ); -IMG_VOID OSMemSet(IMG_VOID *pvDest, IMG_UINT8 ui8Value, IMG_SIZE_T ui32Size); - -PVRSRV_ERROR OSAllocPages_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T ui32Size, IMG_UINT32 ui32PageSize, - IMG_PVOID pvPrivData, IMG_UINT32 ui32PrivDataLength, IMG_HANDLE hBMHandle, IMG_PVOID *ppvLinAddr, IMG_HANDLE *phPageAlloc); -PVRSRV_ERROR OSFreePages(IMG_UINT32 ui32Flags, IMG_SIZE_T ui32Size, IMG_PVOID pvLinAddr, IMG_HANDLE hPageAlloc); - -IMG_INT32 -OSGetMemMultiPlaneInfo(IMG_HANDLE hOSMemHandle, IMG_UINT32* pui32AddressOffsets, - IMG_UINT32* ui32NumAddrOffsets); - - -/*--------------------- -The set of macros below follows this pattern: - -f(x) = if F -> f2(g(x)) - else -> g(x) - -g(x) = if G -> g2(h(x)) - else -> h(x) - -h(x) = ... - ------------------------*/ - -/*If level 3 wrapper is enabled, we add a PVR_TRACE and call the next level, else just call the next level*/ -#ifdef PVRSRV_LOG_MEMORY_ALLOCS - #define OSAllocMem(flags, size, linAddr, blockAlloc, logStr) \ - (PVR_TRACE(("OSAllocMem(" #flags ", " #size ", " #linAddr ", " #blockAlloc "): " logStr " (size = 0x%lx)", size)), \ - OSAllocMem_Debug_Wrapper(flags, size, linAddr, blockAlloc, __FILE__, __LINE__)) - - #define OSAllocPages(flags, size, pageSize, privdata, privdatalength, bmhandle, linAddr, pageAlloc) \ - (PVR_TRACE(("OSAllocPages(" #flags ", " #size ", " #pageSize ", " #linAddr ", " #pageAlloc "): (size = 0x%lx)", size)), \ - OSAllocPages_Impl(flags, size, pageSize, linAddr, privdata, privdatalength, bmhandle, pageAlloc)) - - #define OSFreeMem(flags, size, linAddr, blockAlloc) \ - (PVR_TRACE(("OSFreeMem(" #flags ", " #size ", " #linAddr ", " #blockAlloc "): (pointer = 0x%X)", linAddr)), \ - OSFreeMem_Debug_Wrapper(flags, size, linAddr, blockAlloc, __FILE__, __LINE__)) -#else - #define OSAllocMem(flags, size, linAddr, blockAlloc, logString) \ - OSAllocMem_Debug_Wrapper(flags, size, linAddr, blockAlloc, __FILE__, __LINE__) - - #define OSAllocPages OSAllocPages_Impl - - #define OSFreeMem(flags, size, linAddr, blockAlloc) \ - OSFreeMem_Debug_Wrapper(flags, size, linAddr, blockAlloc, __FILE__, __LINE__) -#endif - -/*If level 2 wrapper is enabled declare the function, -else alias to level 1 wrapper, else the wrapper function will be used*/ -#ifdef PVRSRV_DEBUG_OS_MEMORY - - PVRSRV_ERROR OSAllocMem_Debug_Wrapper(IMG_UINT32 ui32Flags, - IMG_UINT32 ui32Size, - IMG_PVOID *ppvCpuVAddr, - IMG_HANDLE *phBlockAlloc, - IMG_CHAR *pszFilename, - IMG_UINT32 ui32Line); - - PVRSRV_ERROR OSFreeMem_Debug_Wrapper(IMG_UINT32 ui32Flags, - IMG_UINT32 ui32Size, - IMG_PVOID pvCpuVAddr, - IMG_HANDLE hBlockAlloc, - IMG_CHAR *pszFilename, - IMG_UINT32 ui32Line); - - - typedef struct - { - IMG_UINT8 sGuardRegionBefore[8]; - IMG_CHAR sFileName[128]; - IMG_UINT32 uLineNo; - IMG_SIZE_T uSize; - IMG_SIZE_T uSizeParityCheck; - enum valid_tag - { isFree = 0x277260FF, - isAllocated = 0x260511AA - } eValid; - } OSMEM_DEBUG_INFO; - - #define TEST_BUFFER_PADDING_STATUS (sizeof(OSMEM_DEBUG_INFO)) - #define TEST_BUFFER_PADDING_AFTER (8) - #define TEST_BUFFER_PADDING (TEST_BUFFER_PADDING_STATUS + TEST_BUFFER_PADDING_AFTER) -#else - #define OSAllocMem_Debug_Wrapper OSAllocMem_Debug_Linux_Memory_Allocations - #define OSFreeMem_Debug_Wrapper OSFreeMem_Debug_Linux_Memory_Allocations -#endif - -/*If level 1 wrapper is enabled declare the functions with extra parameters -else alias to level 0 and declare the functions without the extra debugging parameters*/ -#if (defined(__linux__) || defined(__QNXNTO__)) && defined(DEBUG_LINUX_MEMORY_ALLOCATIONS) - PVRSRV_ERROR OSAllocMem_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T ui32Size, IMG_PVOID *ppvLinAddr, IMG_HANDLE *phBlockAlloc, IMG_CHAR *pszFilename, IMG_UINT32 ui32Line); - PVRSRV_ERROR OSFreeMem_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T ui32Size, IMG_PVOID pvLinAddr, IMG_HANDLE hBlockAlloc, IMG_CHAR *pszFilename, IMG_UINT32 ui32Line); - - #define OSAllocMem_Debug_Linux_Memory_Allocations OSAllocMem_Impl - #define OSFreeMem_Debug_Linux_Memory_Allocations OSFreeMem_Impl -#else - PVRSRV_ERROR OSAllocMem_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T ui32Size, IMG_PVOID *ppvLinAddr, IMG_HANDLE *phBlockAlloc); - PVRSRV_ERROR OSFreeMem_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T ui32Size, IMG_PVOID pvLinAddr, IMG_HANDLE hBlockAlloc); - - #define OSAllocMem_Debug_Linux_Memory_Allocations(flags, size, addr, blockAlloc, file, line) \ - OSAllocMem_Impl(flags, size, addr, blockAlloc) - #define OSFreeMem_Debug_Linux_Memory_Allocations(flags, size, addr, blockAlloc, file, line) \ - OSFreeMem_Impl(flags, size, addr, blockAlloc) -#endif - - -#if defined(__linux__) || defined(__QNXNTO__) -IMG_CPU_PHYADDR OSMemHandleToCpuPAddr(IMG_VOID *hOSMemHandle, IMG_SIZE_T ui32ByteOffset); -#else -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSMemHandleToCpuPAddr) -#endif -static INLINE IMG_CPU_PHYADDR OSMemHandleToCpuPAddr(IMG_HANDLE hOSMemHandle, IMG_SIZE_T ui32ByteOffset) -{ - IMG_CPU_PHYADDR sCpuPAddr; - PVR_UNREFERENCED_PARAMETER(hOSMemHandle); - PVR_UNREFERENCED_PARAMETER(ui32ByteOffset); - sCpuPAddr.uiAddr = 0; - return sCpuPAddr; -} -#endif - -#if defined(__linux__) -IMG_BOOL OSMemHandleIsPhysContig(IMG_VOID *hOSMemHandle); -#else -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSMemHandleIsPhysContig) -#endif -static INLINE IMG_BOOL OSMemHandleIsPhysContig(IMG_HANDLE hOSMemHandle) -{ - PVR_UNREFERENCED_PARAMETER(hOSMemHandle); - return IMG_FALSE; -} -#endif - -PVRSRV_ERROR OSInitEnvData(IMG_PVOID *ppvEnvSpecificData); -PVRSRV_ERROR OSDeInitEnvData(IMG_PVOID pvEnvSpecificData); -IMG_CHAR* OSStringCopy(IMG_CHAR *pszDest, const IMG_CHAR *pszSrc); -IMG_INT32 OSSNPrintf(IMG_CHAR *pStr, IMG_SIZE_T ui32Size, const IMG_CHAR *pszFormat, ...) IMG_FORMAT_PRINTF(3, 4); -#define OSStringLength(pszString) strlen(pszString) - -#if defined (SUPPORT_SID_INTERFACE) -PVRSRV_ERROR OSEventObjectCreateKM(const IMG_CHAR *pszName, - PVRSRV_EVENTOBJECT_KM *psEventObject); -PVRSRV_ERROR OSEventObjectDestroyKM(PVRSRV_EVENTOBJECT_KM *psEventObject); -PVRSRV_ERROR OSEventObjectSignalKM(IMG_HANDLE hOSEventKM); -PVRSRV_ERROR OSEventObjectWaitKM(IMG_HANDLE hOSEventKM); -PVRSRV_ERROR OSEventObjectOpenKM(PVRSRV_EVENTOBJECT_KM *psEventObject, - IMG_HANDLE *phOSEvent); -PVRSRV_ERROR OSEventObjectCloseKM(PVRSRV_EVENTOBJECT_KM *psEventObject, - IMG_HANDLE hOSEventKM); -#else -PVRSRV_ERROR OSEventObjectCreateKM(const IMG_CHAR *pszName, - PVRSRV_EVENTOBJECT *psEventObject); -PVRSRV_ERROR OSEventObjectDestroyKM(PVRSRV_EVENTOBJECT *psEventObject); -PVRSRV_ERROR OSEventObjectSignalKM(IMG_HANDLE hOSEventKM); -PVRSRV_ERROR OSEventObjectWaitKM(IMG_HANDLE hOSEventKM); -PVRSRV_ERROR OSEventObjectOpenKM(PVRSRV_EVENTOBJECT *psEventObject, - IMG_HANDLE *phOSEvent); -PVRSRV_ERROR OSEventObjectCloseKM(PVRSRV_EVENTOBJECT *psEventObject, - IMG_HANDLE hOSEventKM); -#endif /* #if defined (SUPPORT_SID_INTERFACE) */ - - -PVRSRV_ERROR OSBaseAllocContigMemory(IMG_SIZE_T ui32Size, IMG_CPU_VIRTADDR *pLinAddr, IMG_CPU_PHYADDR *pPhysAddr); -PVRSRV_ERROR OSBaseFreeContigMemory(IMG_SIZE_T ui32Size, IMG_CPU_VIRTADDR LinAddr, IMG_CPU_PHYADDR PhysAddr); - -IMG_PVOID MapUserFromKernel(IMG_PVOID pvLinAddrKM,IMG_SIZE_T ui32Size,IMG_HANDLE *phMemBlock); -IMG_PVOID OSMapHWRegsIntoUserSpace(IMG_HANDLE hDevCookie, IMG_SYS_PHYADDR sRegAddr, IMG_UINT32 ulSize, IMG_PVOID *ppvProcess); -IMG_VOID OSUnmapHWRegsFromUserSpace(IMG_HANDLE hDevCookie, IMG_PVOID pvUserAddr, IMG_PVOID pvProcess); - -IMG_VOID UnmapUserFromKernel(IMG_PVOID pvLinAddrUM, IMG_SIZE_T ui32Size, IMG_HANDLE hMemBlock); - -PVRSRV_ERROR OSMapPhysToUserSpace(IMG_HANDLE hDevCookie, - IMG_SYS_PHYADDR sCPUPhysAddr, - IMG_SIZE_T uiSizeInBytes, - IMG_UINT32 ui32CacheFlags, - IMG_PVOID *ppvUserAddr, - IMG_SIZE_T *puiActualSize, - IMG_HANDLE hMappingHandle); - -PVRSRV_ERROR OSUnmapPhysToUserSpace(IMG_HANDLE hDevCookie, - IMG_PVOID pvUserAddr, - IMG_PVOID pvProcess); - -PVRSRV_ERROR OSLockResource(PVRSRV_RESOURCE *psResource, IMG_UINT32 ui32ID); -PVRSRV_ERROR OSUnlockResource(PVRSRV_RESOURCE *psResource, IMG_UINT32 ui32ID); -IMG_BOOL OSIsResourceLocked(PVRSRV_RESOURCE *psResource, IMG_UINT32 ui32ID); -PVRSRV_ERROR OSCreateResource(PVRSRV_RESOURCE *psResource); -PVRSRV_ERROR OSDestroyResource(PVRSRV_RESOURCE *psResource); -IMG_VOID OSBreakResourceLock(PVRSRV_RESOURCE *psResource, IMG_UINT32 ui32ID); - -#if defined(SYS_CUSTOM_POWERLOCK_WRAP) -#define OSPowerLockWrap SysPowerLockWrap -#define OSPowerLockUnwrap SysPowerLockUnwrap -#else -/****************************************************************************** - @Function OSPowerLockWrap - - @Description OS-specific wrapper around the power lock - - @Input bTryLock - don't block on lock contention - - @Return PVRSRV_ERROR -******************************************************************************/ -PVRSRV_ERROR OSPowerLockWrap(IMG_BOOL bTryLock); - -/****************************************************************************** - @Function OSPowerLockUnwrap - - @Description OS-specific wrapper around the power unlock - - @Return IMG_VOID -******************************************************************************/ -IMG_VOID OSPowerLockUnwrap(IMG_VOID); -#endif /* SYS_CUSTOM_POWERLOCK_WRAP */ - -/*! -****************************************************************************** - - @Function OSWaitus - - @Description - This function implements a busy wait of the specified microseconds - This function does NOT release thread quanta - - @Input ui32Timeus - (us) - - @Return IMG_VOID - -******************************************************************************/ -IMG_VOID OSWaitus(IMG_UINT32 ui32Timeus); - -/*! -****************************************************************************** - - @Function OSSleepms - - @Description - This function implements a sleep of the specified milliseconds - This function may allow pre-emption if implemented - - @Input ui32Timems - (ms) - - @Return IMG_VOID - -******************************************************************************/ -IMG_VOID OSSleepms(IMG_UINT32 ui32Timems); - -IMG_HANDLE OSFuncHighResTimerCreate(IMG_VOID); -IMG_UINT32 OSFuncHighResTimerGetus(IMG_HANDLE hTimer); -IMG_VOID OSFuncHighResTimerDestroy(IMG_HANDLE hTimer); -IMG_VOID OSReleaseThreadQuanta(IMG_VOID); -IMG_UINT32 OSPCIReadDword(IMG_UINT32 ui32Bus, IMG_UINT32 ui32Dev, IMG_UINT32 ui32Func, IMG_UINT32 ui32Reg); -IMG_VOID OSPCIWriteDword(IMG_UINT32 ui32Bus, IMG_UINT32 ui32Dev, IMG_UINT32 ui32Func, IMG_UINT32 ui32Reg, IMG_UINT32 ui32Value); - -IMG_IMPORT -IMG_UINT32 ReadHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset); - -IMG_IMPORT -IMG_VOID WriteHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset, IMG_UINT32 ui32Value); - -IMG_IMPORT IMG_VOID WriteHWRegs(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Count, PVRSRV_HWREG *psHWRegs); - -#ifndef OSReadHWReg -IMG_UINT32 OSReadHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset); -#endif -#ifndef OSWriteHWReg -IMG_VOID OSWriteHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset, IMG_UINT32 ui32Value); -#endif - -typedef IMG_VOID (*PFN_TIMER_FUNC)(IMG_VOID*); -IMG_HANDLE OSAddTimer(PFN_TIMER_FUNC pfnTimerFunc, IMG_VOID *pvData, IMG_UINT32 ui32MsTimeout); -PVRSRV_ERROR OSRemoveTimer (IMG_HANDLE hTimer); -PVRSRV_ERROR OSEnableTimer (IMG_HANDLE hTimer); -PVRSRV_ERROR OSDisableTimer (IMG_HANDLE hTimer); - -PVRSRV_ERROR OSGetSysMemSize(IMG_SIZE_T *pui32Bytes); - -typedef enum _HOST_PCI_INIT_FLAGS_ -{ - HOST_PCI_INIT_FLAG_BUS_MASTER = 0x00000001, - HOST_PCI_INIT_FLAG_MSI = 0x00000002, - HOST_PCI_INIT_FLAG_FORCE_I32 = 0x7fffffff -} HOST_PCI_INIT_FLAGS; - -struct _PVRSRV_PCI_DEV_OPAQUE_STRUCT_; -typedef struct _PVRSRV_PCI_DEV_OPAQUE_STRUCT_ *PVRSRV_PCI_DEV_HANDLE; - -PVRSRV_PCI_DEV_HANDLE OSPCIAcquireDev(IMG_UINT16 ui16VendorID, IMG_UINT16 ui16DeviceID, HOST_PCI_INIT_FLAGS eFlags); -PVRSRV_PCI_DEV_HANDLE OSPCISetDev(IMG_VOID *pvPCICookie, HOST_PCI_INIT_FLAGS eFlags); -PVRSRV_ERROR OSPCIReleaseDev(PVRSRV_PCI_DEV_HANDLE hPVRPCI); -PVRSRV_ERROR OSPCIIRQ(PVRSRV_PCI_DEV_HANDLE hPVRPCI, IMG_UINT32 *pui32IRQ); -IMG_UINT32 OSPCIAddrRangeLen(PVRSRV_PCI_DEV_HANDLE hPVRPCI, IMG_UINT32 ui32Index); -IMG_UINT32 OSPCIAddrRangeStart(PVRSRV_PCI_DEV_HANDLE hPVRPCI, IMG_UINT32 ui32Index); -IMG_UINT32 OSPCIAddrRangeEnd(PVRSRV_PCI_DEV_HANDLE hPVRPCI, IMG_UINT32 ui32Index); -PVRSRV_ERROR OSPCIRequestAddrRange(PVRSRV_PCI_DEV_HANDLE hPVRPCI, IMG_UINT32 ui32Index); -PVRSRV_ERROR OSPCIReleaseAddrRange(PVRSRV_PCI_DEV_HANDLE hPVRPCI, IMG_UINT32 ui32Index); -PVRSRV_ERROR OSPCISuspendDev(PVRSRV_PCI_DEV_HANDLE hPVRPCI); -PVRSRV_ERROR OSPCIResumeDev(PVRSRV_PCI_DEV_HANDLE hPVRPCI); - -PVRSRV_ERROR OSScheduleMISR(IMG_VOID *pvSysData); - -/****************************************************************************** - - @Function OSPanic - - @Description Take action in response to an unrecoverable driver error - - @Input IMG_VOID - - @Return IMG_VOID - -******************************************************************************/ -IMG_VOID OSPanic(IMG_VOID); - -IMG_BOOL OSProcHasPrivSrvInit(IMG_VOID); - -typedef enum _img_verify_test -{ - PVR_VERIFY_WRITE = 0, - PVR_VERIFY_READ -} IMG_VERIFY_TEST; - -IMG_BOOL OSAccessOK(IMG_VERIFY_TEST eVerification, IMG_VOID *pvUserPtr, IMG_SIZE_T ui32Bytes); - -PVRSRV_ERROR OSCopyToUser(IMG_PVOID pvProcess, IMG_VOID *pvDest, IMG_VOID *pvSrc, IMG_SIZE_T ui32Bytes); -PVRSRV_ERROR OSCopyFromUser(IMG_PVOID pvProcess, IMG_VOID *pvDest, IMG_VOID *pvSrc, IMG_SIZE_T ui32Bytes); - -#if defined(__linux__) || defined(__QNXNTO__) -PVRSRV_ERROR OSAcquirePhysPageAddr(IMG_VOID* pvCPUVAddr, - IMG_SIZE_T ui32Bytes, - IMG_SYS_PHYADDR *psSysPAddr, - IMG_HANDLE *phOSWrapMem); -PVRSRV_ERROR OSReleasePhysPageAddr(IMG_HANDLE hOSWrapMem); -#else -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSAcquirePhysPageAddr) -#endif -static INLINE PVRSRV_ERROR OSAcquirePhysPageAddr(IMG_VOID* pvCPUVAddr, - IMG_SIZE_T ui32Bytes, - IMG_SYS_PHYADDR *psSysPAddr, - IMG_HANDLE *phOSWrapMem) -{ - PVR_UNREFERENCED_PARAMETER(pvCPUVAddr); - PVR_UNREFERENCED_PARAMETER(ui32Bytes); - PVR_UNREFERENCED_PARAMETER(psSysPAddr); - PVR_UNREFERENCED_PARAMETER(phOSWrapMem); - return PVRSRV_OK; -} -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSReleasePhysPageAddr) -#endif -static INLINE PVRSRV_ERROR OSReleasePhysPageAddr(IMG_HANDLE hOSWrapMem) -{ - PVR_UNREFERENCED_PARAMETER(hOSWrapMem); - return PVRSRV_OK; -} -#endif - -#if defined(__linux__) && defined(__KERNEL__) - -#define OS_SUPPORTS_IN_LISR - -static inline IMG_BOOL OSInLISR(IMG_VOID unref__ *pvSysData) -{ - PVR_UNREFERENCED_PARAMETER(pvSysData); - return (in_irq()) ? IMG_TRUE : IMG_FALSE; -} - -static inline IMG_VOID OSWriteMemoryBarrier(IMG_VOID) -{ - wmb(); -} - -static inline IMG_VOID OSMemoryBarrier(IMG_VOID) -{ - mb(); -} - -#else /* defined(__linux__) && defined(__KERNEL__) */ - -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSWriteMemoryBarrier) -#endif -static INLINE IMG_VOID OSWriteMemoryBarrier(IMG_VOID) { } - -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSMemoryBarrier) -#endif -static INLINE IMG_VOID OSMemoryBarrier(IMG_VOID) { } - -#endif /* defined(__linux__) && defined(__KERNEL__) */ - -/* Atomic functions */ -PVRSRV_ERROR OSAtomicAlloc(IMG_PVOID *ppvRefCount); -IMG_VOID OSAtomicFree(IMG_PVOID pvRefCount); -IMG_VOID OSAtomicInc(IMG_PVOID pvRefCount); -IMG_BOOL OSAtomicDecAndTest(IMG_PVOID pvRefCount); -IMG_UINT32 OSAtomicRead(IMG_PVOID pvRefCount); - -PVRSRV_ERROR OSTimeCreateWithUSOffset(IMG_PVOID *pvRet, IMG_UINT32 ui32MSOffset); -IMG_BOOL OSTimeHasTimePassed(IMG_PVOID pvData); -IMG_VOID OSTimeDestroy(IMG_PVOID pvData); - -#if defined(__linux__) -IMG_VOID OSReleaseBridgeLock(IMG_VOID); -IMG_VOID OSReacquireBridgeLock(IMG_VOID); -#else - -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSReleaseBridgeLock) -#endif -static INLINE IMG_VOID OSReleaseBridgeLock(IMG_VOID) { } - -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSReacquireBridgeLock) -#endif -static INLINE IMG_VOID OSReacquireBridgeLock(IMG_VOID) { } - -#endif - -#if defined(__linux__) -IMG_VOID OSGetCurrentProcessNameKM(IMG_CHAR *pszName, IMG_UINT32 ui32Size); -#else - -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSGetCurrentProcessNameKM) -#endif -static INLINE IMG_VOID OSGetCurrentProcessNameKM(IMG_CHAR *pszName, IMG_UINT32 ui32Size) -{ - PVR_UNREFERENCED_PARAMETER(pszName); - PVR_UNREFERENCED_PARAMETER(ui32Size); -} - -#endif - -#if defined (__cplusplus) -} -#endif - -#endif /* __OSFUNC_H__ */ - -/****************************************************************************** - End of file (osfunc.h) -******************************************************************************/ - diff --git a/pvr-source/services4/srvkm/include/osperproc.h b/pvr-source/services4/srvkm/include/osperproc.h deleted file mode 100755 index 0b962b4..0000000 --- a/pvr-source/services4/srvkm/include/osperproc.h +++ /dev/null @@ -1,94 +0,0 @@ -/*************************************************************************/ /*! -@Title OS specific per process data interface -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description OS specific per process data 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 __OSPERPROC_H__ -#define __OSPERPROC_H__ - -#if defined (__cplusplus) -extern "C" { -#endif - -#if defined(__linux__) || defined(__QNXNTO__) -PVRSRV_ERROR OSPerProcessPrivateDataInit(IMG_HANDLE *phOsPrivateData); -PVRSRV_ERROR OSPerProcessPrivateDataDeInit(IMG_HANDLE hOsPrivateData); - -PVRSRV_ERROR OSPerProcessSetHandleOptions(PVRSRV_HANDLE_BASE *psHandleBase); -#else /* defined(__linux__) */ -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSPerProcessPrivateDataInit) -#endif -static INLINE PVRSRV_ERROR OSPerProcessPrivateDataInit(IMG_HANDLE *phOsPrivateData) -{ - PVR_UNREFERENCED_PARAMETER(phOsPrivateData); - - return PVRSRV_OK; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSPerProcessPrivateDataDeInit) -#endif -static INLINE PVRSRV_ERROR OSPerProcessPrivateDataDeInit(IMG_HANDLE hOsPrivateData) -{ - PVR_UNREFERENCED_PARAMETER(hOsPrivateData); - - return PVRSRV_OK; -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(OSPerProcessSetHandleOptions) -#endif -static INLINE PVRSRV_ERROR OSPerProcessSetHandleOptions(PVRSRV_HANDLE_BASE *psHandleBase) -{ - PVR_UNREFERENCED_PARAMETER(psHandleBase); - - return PVRSRV_OK; -} -#endif /* defined(__linux__) */ - -#if defined (__cplusplus) -} -#endif - -#endif /* __OSPERPROC_H__ */ - -/****************************************************************************** - End of file (osperproc.h) -******************************************************************************/ diff --git a/pvr-source/services4/srvkm/include/pdump_int.h b/pvr-source/services4/srvkm/include/pdump_int.h deleted file mode 100755 index a76fed0..0000000 --- a/pvr-source/services4/srvkm/include/pdump_int.h +++ /dev/null @@ -1,100 +0,0 @@ -/*************************************************************************/ /*! -@Title Parameter dump internal common functions -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@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_INT_H__ -#define __PDUMP_INT_H__ - -#if defined (__cplusplus) -extern "C" { -#endif - -/* - * This file contains internal pdump utility functions which may be accessed - * from OS-specific code. The header should not be included outside of srvkm - * pdump files. - */ - -#if !defined(_UITRON) -/* - * No dbgdriver on uitron, so ignore any common functions for communicating - * with dbgdriver. - */ -#include "dbgdrvif.h" - -/* Callbacks which are registered with the debug driver. */ -IMG_EXPORT IMG_VOID PDumpConnectionNotify(IMG_VOID); - -#endif /* !defined(_UITRON) */ - -typedef enum -{ - /* Continuous writes are always captured in the dbgdrv; the buffer will - * expand if no client/sink process is running. - */ - PDUMP_WRITE_MODE_CONTINUOUS = 0, - /* Last frame capture */ - PDUMP_WRITE_MODE_LASTFRAME, - /* Capture frame, binary data */ - PDUMP_WRITE_MODE_BINCM, - /* Persistent capture, append data to init phase */ - PDUMP_WRITE_MODE_PERSISTENT -} PDUMP_DDWMODE; - - -IMG_UINT32 DbgWrite(PDBG_STREAM psStream, IMG_UINT8 *pui8Data, IMG_UINT32 ui32BCount, IMG_UINT32 ui32Flags); - -IMG_UINT32 PDumpOSDebugDriverWrite( PDBG_STREAM psStream, - PDUMP_DDWMODE eDbgDrvWriteMode, - IMG_UINT8 *pui8Data, - IMG_UINT32 ui32BCount, - IMG_UINT32 ui32Level, - IMG_UINT32 ui32DbgDrvFlags); - -#if defined (__cplusplus) -} -#endif -#endif /* __PDUMP_INT_H__ */ - -/****************************************************************************** - End of file (pdump_int.h) -******************************************************************************/ - diff --git a/pvr-source/services4/srvkm/include/pdump_km.h b/pvr-source/services4/srvkm/include/pdump_km.h deleted file mode 100755 index e4325cc..0000000 --- a/pvr-source/services4/srvkm/include/pdump_km.h +++ /dev/null @@ -1,441 +0,0 @@ -/*************************************************************************/ /*! -@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_ - - -/* - * Include the OS abstraction APIs - */ -#include "pdump_osfunc.h" - -#if defined(__cplusplus) -extern "C" { -#endif - -/* - * Pull in pdump flags from services include - */ -#include "pdump.h" - -#define PDUMP_PD_UNIQUETAG (IMG_HANDLE)0 -#define PDUMP_PT_UNIQUETAG (IMG_HANDLE)0 - -/* - * PDump streams (common to all OSes) - */ -#define PDUMP_STREAM_PARAM2 0 -#define PDUMP_STREAM_SCRIPT2 1 -#define PDUMP_STREAM_DRIVERINFO 2 -#define PDUMP_NUM_STREAMS 3 - -#if defined(PDUMP_DEBUG_OUTFILES) -/* counter increments each time debug write is called */ -extern IMG_UINT32 g_ui32EveryLineCounter; -#endif - -#ifndef PDUMP -#define MAKEUNIQUETAG(hMemInfo) (0) -#endif - -#ifdef PDUMP - -#define MAKEUNIQUETAG(hMemInfo) (((BM_BUF *)(((PVRSRV_KERNEL_MEM_INFO *)(hMemInfo))->sMemBlk.hBuffer))->pMapping) - - IMG_IMPORT PVRSRV_ERROR PDumpMemPolKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo, - IMG_UINT32 ui32Offset, - IMG_UINT32 ui32Value, - IMG_UINT32 ui32Mask, - PDUMP_POLL_OPERATOR eOperator, - IMG_UINT32 ui32Flags, - IMG_HANDLE hUniqueTag); - - IMG_IMPORT PVRSRV_ERROR PDumpMemUM(PVRSRV_PER_PROCESS_DATA *psProcData, - IMG_PVOID pvAltLinAddr, - IMG_PVOID pvLinAddr, - PVRSRV_KERNEL_MEM_INFO *psMemInfo, - IMG_UINT32 ui32Offset, - IMG_UINT32 ui32Bytes, - IMG_UINT32 ui32Flags, - IMG_HANDLE hUniqueTag); - - IMG_IMPORT PVRSRV_ERROR PDumpMemKM(IMG_PVOID pvAltLinAddr, - PVRSRV_KERNEL_MEM_INFO *psMemInfo, - IMG_UINT32 ui32Offset, - IMG_UINT32 ui32Bytes, - IMG_UINT32 ui32Flags, - IMG_HANDLE hUniqueTag); - PVRSRV_ERROR PDumpMemPagesKM(PVRSRV_DEVICE_IDENTIFIER *psDevID, - IMG_DEV_PHYADDR *pPages, - IMG_UINT32 ui32NumPages, - IMG_DEV_VIRTADDR sDevAddr, - IMG_UINT32 ui32Start, - IMG_UINT32 ui32Length, - IMG_UINT32 ui32Flags, - IMG_HANDLE hUniqueTag); - - PVRSRV_ERROR PDumpMemPDEntriesKM(PDUMP_MMU_ATTRIB *psMMUAttrib, - IMG_HANDLE hOSMemHandle, - IMG_CPU_VIRTADDR pvLinAddr, - IMG_UINT32 ui32Bytes, - IMG_UINT32 ui32Flags, - IMG_BOOL bInitialisePages, - IMG_HANDLE hUniqueTag1, - IMG_HANDLE hUniqueTag2); - - PVRSRV_ERROR PDumpMemPTEntriesKM(PDUMP_MMU_ATTRIB *psMMUAttrib, - IMG_HANDLE hOSMemHandle, - IMG_CPU_VIRTADDR pvLinAddr, - IMG_UINT32 ui32Bytes, - IMG_UINT32 ui32Flags, - IMG_BOOL bInitialisePages, - IMG_HANDLE hUniqueTag1, - IMG_HANDLE hUniqueTag2); - IMG_VOID PDumpInitCommon(IMG_VOID); - IMG_VOID PDumpDeInitCommon(IMG_VOID); - IMG_VOID PDumpInit(IMG_VOID); - IMG_VOID PDumpDeInit(IMG_VOID); - IMG_BOOL PDumpIsSuspended(IMG_VOID); - PVRSRV_ERROR PDumpStartInitPhaseKM(IMG_VOID); - PVRSRV_ERROR PDumpStopInitPhaseKM(IMG_VOID); - IMG_IMPORT PVRSRV_ERROR PDumpSetFrameKM(IMG_UINT32 ui32Frame); - IMG_IMPORT PVRSRV_ERROR PDumpCommentKM(IMG_CHAR *pszComment, IMG_UINT32 ui32Flags); - IMG_IMPORT PVRSRV_ERROR PDumpDriverInfoKM(IMG_CHAR *pszString, IMG_UINT32 ui32Flags); - - PVRSRV_ERROR PDumpRegWithFlagsKM(IMG_CHAR *pszPDumpRegName, - IMG_UINT32 ui32RegAddr, - IMG_UINT32 ui32RegValue, - IMG_UINT32 ui32Flags); - PVRSRV_ERROR PDumpRegPolWithFlagsKM(IMG_CHAR *pszPDumpRegName, - IMG_UINT32 ui32RegAddr, - IMG_UINT32 ui32RegValue, - IMG_UINT32 ui32Mask, - IMG_UINT32 ui32Flags, - PDUMP_POLL_OPERATOR eOperator); - PVRSRV_ERROR PDumpRegPolKM(IMG_CHAR *pszPDumpRegName, - IMG_UINT32 ui32RegAddr, - IMG_UINT32 ui32RegValue, - IMG_UINT32 ui32Mask, - 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_HANDLE hDevMemContext, - IMG_UINT32 ui32Size, - PDUMP_PIXEL_FORMAT ePixelFormat, - PDUMP_MEM_FORMAT eMemFormat, - 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 PDumpRegKM(IMG_CHAR* pszPDumpRegName, - IMG_UINT32 dwReg, - IMG_UINT32 dwData); - - PVRSRV_ERROR PDumpComment(IMG_CHAR* pszFormat, ...) IMG_FORMAT_PRINTF(1, 2); - PVRSRV_ERROR PDumpCommentWithFlags(IMG_UINT32 ui32Flags, - IMG_CHAR* pszFormat, - ...) IMG_FORMAT_PRINTF(2, 3); - - 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); - - IMG_BOOL PDumpIsLastCaptureFrameKM(IMG_VOID); - IMG_IMPORT IMG_BOOL PDumpIsCaptureFrameKM(IMG_VOID); - - IMG_VOID PDumpMallocPagesPhys(PVRSRV_DEVICE_IDENTIFIER *psDevID, - IMG_UINT32 ui32DevVAddr, - IMG_PUINT32 pui32PhysPages, - IMG_UINT32 ui32NumPages, - IMG_HANDLE hUniqueTag); - PVRSRV_ERROR PDumpSetMMUContext(PVRSRV_DEVICE_TYPE eDeviceType, - IMG_CHAR *pszMemSpace, - IMG_UINT32 *pui32MMUContextID, - IMG_UINT32 ui32MMUType, - IMG_HANDLE hUniqueTag1, - IMG_HANDLE hOSMemHandle, - IMG_VOID *pvPDCPUAddr); - PVRSRV_ERROR PDumpClearMMUContext(PVRSRV_DEVICE_TYPE eDeviceType, - IMG_CHAR *pszMemSpace, - IMG_UINT32 ui32MMUContextID, - IMG_UINT32 ui32MMUType); - - PVRSRV_ERROR PDumpPDDevPAddrKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo, - IMG_UINT32 ui32Offset, - IMG_DEV_PHYADDR sPDDevPAddr, - IMG_HANDLE hUniqueTag1, - IMG_HANDLE hUniqueTag2); - - IMG_BOOL PDumpTestNextFrame(IMG_UINT32 ui32CurrentFrame); - - PVRSRV_ERROR PDumpSaveMemKM (PVRSRV_DEVICE_IDENTIFIER *psDevId, - IMG_CHAR *pszFileName, - IMG_UINT32 ui32FileOffset, - IMG_DEV_VIRTADDR sDevBaseAddr, - IMG_UINT32 ui32Size, - IMG_UINT32 ui32DataMaster, - IMG_UINT32 ui32PDumpFlags); - - PVRSRV_ERROR PDumpTASignatureRegisters(PVRSRV_DEVICE_IDENTIFIER *psDevId, - IMG_UINT32 ui32DumpFrameNum, - IMG_UINT32 ui32TAKickCount, - IMG_BOOL bLastFrame, - IMG_UINT32 *pui32Registers, - IMG_UINT32 ui32NumRegisters); - - PVRSRV_ERROR PDump3DSignatureRegisters(PVRSRV_DEVICE_IDENTIFIER *psDevId, - IMG_UINT32 ui32DumpFrameNum, - IMG_BOOL bLastFrame, - IMG_UINT32 *pui32Registers, - IMG_UINT32 ui32NumRegisters); - - PVRSRV_ERROR PDumpCounterRegisters(PVRSRV_DEVICE_IDENTIFIER *psDevId, - IMG_UINT32 ui32DumpFrameNum, - IMG_BOOL bLastFrame, - IMG_UINT32 *pui32Registers, - IMG_UINT32 ui32NumRegisters); - - PVRSRV_ERROR PDumpRegRead(IMG_CHAR *pszPDumpRegName, - const IMG_UINT32 dwRegOffset, - IMG_UINT32 ui32Flags); - - PVRSRV_ERROR PDumpCycleCountRegRead(PVRSRV_DEVICE_IDENTIFIER *psDevId, - const IMG_UINT32 dwRegOffset, - IMG_BOOL bLastFrame); - - PVRSRV_ERROR PDumpIDLWithFlags(IMG_UINT32 ui32Clocks, IMG_UINT32 ui32Flags); - PVRSRV_ERROR PDumpIDL(IMG_UINT32 ui32Clocks); - - PVRSRV_ERROR PDumpMallocPages(PVRSRV_DEVICE_IDENTIFIER *psDevID, - IMG_UINT32 ui32DevVAddr, - IMG_CPU_VIRTADDR pvLinAddr, - IMG_HANDLE hOSMemHandle, - IMG_UINT32 ui32NumBytes, - IMG_UINT32 ui32PageSize, - IMG_BOOL bShared, - IMG_HANDLE hUniqueTag); - PVRSRV_ERROR PDumpMallocPageTable(PVRSRV_DEVICE_IDENTIFIER *psDevId, - IMG_HANDLE hOSMemHandle, - IMG_UINT32 ui32Offset, - IMG_CPU_VIRTADDR pvLinAddr, - IMG_UINT32 ui32NumBytes, - IMG_UINT32 ui32Flags, - IMG_HANDLE hUniqueTag); - PVRSRV_ERROR PDumpFreePages(struct _BM_HEAP_ *psBMHeap, - IMG_DEV_VIRTADDR sDevVAddr, - IMG_UINT32 ui32NumBytes, - IMG_UINT32 ui32PageSize, - IMG_HANDLE hUniqueTag, - IMG_BOOL bInterleaved, - IMG_BOOL bSparse); - PVRSRV_ERROR PDumpFreePageTable(PVRSRV_DEVICE_IDENTIFIER *psDevID, - IMG_HANDLE hOSMemHandle, - IMG_CPU_VIRTADDR pvLinAddr, - IMG_UINT32 ui32NumBytes, - IMG_UINT32 ui32Flags, - IMG_HANDLE hUniqueTag); - - IMG_IMPORT PVRSRV_ERROR PDumpHWPerfCBKM(PVRSRV_DEVICE_IDENTIFIER *psDevId, - IMG_CHAR *pszFileName, - IMG_UINT32 ui32FileOffset, - IMG_DEV_VIRTADDR sDevBaseAddr, - IMG_UINT32 ui32Size, - IMG_UINT32 ui32MMUContextID, - IMG_UINT32 ui32PDumpFlags); - - PVRSRV_ERROR PDumpSignatureBuffer(PVRSRV_DEVICE_IDENTIFIER *psDevId, - IMG_CHAR *pszFileName, - IMG_CHAR *pszBufferType, - IMG_UINT32 ui32FileOffset, - IMG_DEV_VIRTADDR sDevBaseAddr, - IMG_UINT32 ui32Size, - IMG_UINT32 ui32MMUContextID, - IMG_UINT32 ui32PDumpFlags); - - PVRSRV_ERROR PDumpCBP(PPVRSRV_KERNEL_MEM_INFO psROffMemInfo, - IMG_UINT32 ui32ROffOffset, - IMG_UINT32 ui32WPosVal, - IMG_UINT32 ui32PacketSize, - IMG_UINT32 ui32BufferSize, - IMG_UINT32 ui32Flags, - IMG_HANDLE hUniqueTag); - - PVRSRV_ERROR PDumpRegBasedCBP(IMG_CHAR *pszPDumpRegName, - IMG_UINT32 ui32RegOffset, - IMG_UINT32 ui32WPosVal, - IMG_UINT32 ui32PacketSize, - IMG_UINT32 ui32BufferSize, - IMG_UINT32 ui32Flags); - - IMG_VOID PDumpVGXMemToFile(IMG_CHAR *pszFileName, - IMG_UINT32 ui32FileOffset, - PVRSRV_KERNEL_MEM_INFO *psMemInfo, - IMG_UINT32 uiAddr, - IMG_UINT32 ui32Size, - IMG_UINT32 ui32PDumpFlags, - IMG_HANDLE hUniqueTag); - - IMG_VOID PDumpSuspendKM(IMG_VOID); - IMG_VOID PDumpResumeKM(IMG_VOID); - - /* New pdump common functions */ - PVRSRV_ERROR PDumpStoreMemToFile(PDUMP_MMU_ATTRIB *psMMUAttrib, - IMG_CHAR *pszFileName, - IMG_UINT32 ui32FileOffset, - PVRSRV_KERNEL_MEM_INFO *psMemInfo, - IMG_UINT32 uiAddr, - IMG_UINT32 ui32Size, - IMG_UINT32 ui32PDumpFlags, - IMG_HANDLE hUniqueTag); - - #define PDUMPMEMPOL PDumpMemPolKM - #define PDUMPMEM PDumpMemKM - #define PDUMPMEMPTENTRIES PDumpMemPTEntriesKM - #define PDUMPPDENTRIES PDumpMemPDEntriesKM - #define PDUMPMEMUM PDumpMemUM - #define PDUMPINIT PDumpInitCommon - #define PDUMPDEINIT PDumpDeInitCommon - #define PDUMPISLASTFRAME PDumpIsLastCaptureFrameKM - #define PDUMPTESTFRAME PDumpIsCaptureFrameKM - #define PDUMPTESTNEXTFRAME PDumpTestNextFrame - #define PDUMPREGWITHFLAGS PDumpRegWithFlagsKM - #define PDUMPREG PDumpRegKM - #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 PDUMPPDDEVPADDR PDumpPDDevPAddrKM - #define PDUMPFREEPAGES PDumpFreePages - #define PDUMPFREEPAGETABLE PDumpFreePageTable - #define PDUMPPDREG PDumpPDReg - #define PDUMPPDREGWITHFLAGS PDumpPDRegWithFlags - #define PDUMPCBP PDumpCBP - #define PDUMPREGBASEDCBP PDumpRegBasedCBP - #define PDUMPMALLOCPAGESPHYS PDumpMallocPagesPhys - #define PDUMPENDINITPHASE PDumpStopInitPhaseKM - #define PDUMPBITMAPKM PDumpBitmapKM - #define PDUMPDRIVERINFO PDumpDriverInfoKM - #define PDUMPIDLWITHFLAGS PDumpIDLWithFlags - #define PDUMPIDL PDumpIDL - #define PDUMPSUSPEND PDumpSuspendKM - #define PDUMPRESUME PDumpResumeKM - -#else -#if defined LINUX || defined (__QNXNTO__) || defined GCC_IA32 || defined GCC_ARM - #define PDUMPMEMPOL(args...) - #define PDUMPMEM(args...) - #define PDUMPMEMPTENTRIES(args...) - #define PDUMPPDENTRIES(args...) - #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 PDUMPREGPOL(args...) - #define PDUMPREGPOLWITHFLAGS(args...) - #define PDUMPMALLOCPAGES(args...) - #define PDUMPMALLOCPAGETABLE(args...) - #define PDUMPSETMMUCONTEXT(args...) - #define PDUMPCLEARMMUCONTEXT(args...) - #define PDUMPPDDEVPADDR(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 PDUMPREGBASEDCBP(args...) - #define PDUMPCOMMENTWITHFLAGS(args...) - #define PDUMPMALLOCPAGESPHYS(args...) - #define PDUMPENDINITPHASE(args...) - #define PDUMPMSVDXREG(args...) - #define PDUMPMSVDXREGWRITE(args...) - #define PDUMPMSVDXREGREAD(args...) - #define PDUMPMSVDXPOLEQ(args...) - #define PDUMPMSVDXPOL(args...) - #define PDUMPBITMAPKM(args...) - #define PDUMPDRIVERINFO(args...) - #define PDUMPIDLWITHFLAGS(args...) - #define PDUMPIDL(args...) - #define PDUMPSUSPEND(args...) - #define PDUMPRESUME(args...) - #define PDUMPMSVDXWRITEREF(args...) - #else - #error Compiler not specified - #endif -#endif - -#if defined (__cplusplus) -} -#endif - -#endif /* _PDUMP_KM_H_ */ - -/****************************************************************************** - End of file (pdump_km.h) -******************************************************************************/ diff --git a/pvr-source/services4/srvkm/include/pdump_osfunc.h b/pvr-source/services4/srvkm/include/pdump_osfunc.h deleted file mode 100755 index 0f2e103..0000000 --- a/pvr-source/services4/srvkm/include/pdump_osfunc.h +++ /dev/null @@ -1,337 +0,0 @@ -/*************************************************************************/ /*! -@Title OS-independent interface to helper functions for pdump -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@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. -*/ /**************************************************************************/ - -#include <stdarg.h> - -#if defined(__cplusplus) -extern "C" { -#endif - - -/* - * Some OSes (WinXP,CE) allocate the string on the stack, but some - * (Linux,Symbian) use a global variable/lock instead. - * Would be good to use the same across all OSes. - * - * A handle is returned which represents IMG_CHAR* type on all OSes except - * Symbian when it represents PDumpState* type. - * - * The allocated buffer length is also returned on OSes where it's - * supported (e.g. Linux). - */ -#define MAX_PDUMP_STRING_LENGTH (256) -#if defined(__QNXNTO__) -#define PDUMP_GET_SCRIPT_STRING() \ - IMG_CHAR pszScript[MAX_PDUMP_STRING_LENGTH]; \ - IMG_UINT32 ui32MaxLen = MAX_PDUMP_STRING_LENGTH-1; \ - IMG_HANDLE hScript = (IMG_HANDLE)pszScript; - -#define PDUMP_GET_MSG_STRING() \ - IMG_CHAR pszMsg[MAX_PDUMP_STRING_LENGTH]; \ - IMG_UINT32 ui32MaxLen = MAX_PDUMP_STRING_LENGTH-1; - -#define PDUMP_GET_FILE_STRING() \ - IMG_CHAR pszFileName[MAX_PDUMP_STRING_LENGTH]; \ - IMG_UINT32 ui32MaxLen = MAX_PDUMP_STRING_LENGTH-1; - -#define PDUMP_GET_SCRIPT_AND_FILE_STRING() \ - IMG_CHAR pszScript[MAX_PDUMP_STRING_LENGTH]; \ - IMG_CHAR pszFileName[MAX_PDUMP_STRING_LENGTH]; \ - IMG_UINT32 ui32MaxLenScript = MAX_PDUMP_STRING_LENGTH-1; \ - IMG_UINT32 ui32MaxLenFileName = MAX_PDUMP_STRING_LENGTH-1; \ - IMG_HANDLE hScript = (IMG_HANDLE)pszScript; - -#else /* WIN32 or QNX */ - - - /* - * Linux - */ -#define PDUMP_GET_SCRIPT_STRING() \ - IMG_HANDLE hScript; \ - IMG_UINT32 ui32MaxLen; \ - PVRSRV_ERROR eError; \ - eError = PDumpOSGetScriptString(&hScript, &ui32MaxLen);\ - if(eError != PVRSRV_OK) return eError; - -#define PDUMP_GET_MSG_STRING() \ - IMG_CHAR *pszMsg; \ - IMG_UINT32 ui32MaxLen; \ - PVRSRV_ERROR eError; \ - eError = PDumpOSGetMessageString(&pszMsg, &ui32MaxLen);\ - if(eError != PVRSRV_OK) return eError; - -#define PDUMP_GET_FILE_STRING() \ - IMG_CHAR *pszFileName; \ - IMG_UINT32 ui32MaxLen; \ - PVRSRV_ERROR eError; \ - eError = PDumpOSGetFilenameString(&pszFileName, &ui32MaxLen);\ - if(eError != PVRSRV_OK) return eError; - -#define PDUMP_GET_SCRIPT_AND_FILE_STRING() \ - IMG_HANDLE hScript; \ - IMG_CHAR *pszFileName; \ - IMG_UINT32 ui32MaxLenScript; \ - IMG_UINT32 ui32MaxLenFileName; \ - PVRSRV_ERROR eError; \ - eError = PDumpOSGetScriptString(&hScript, &ui32MaxLenScript);\ - if(eError != PVRSRV_OK) return eError; \ - eError = PDumpOSGetFilenameString(&pszFileName, &ui32MaxLenFileName);\ - if(eError != PVRSRV_OK) return eError; - - /*! - * @name PDumpOSGetScriptString - * @brief Get the "script" buffer - * @param phScript - buffer handle for pdump script - * @param pui32MaxLen - max length of the script buffer - * FIXME: the max length should be internal to the OS-specific code - * @return error (always PVRSRV_OK on some OSes) - */ - PVRSRV_ERROR PDumpOSGetScriptString(IMG_HANDLE *phScript, IMG_UINT32 *pui32MaxLen); - - /*! - * @name PDumpOSGetMessageString - * @brief Get the "message" buffer - * @param pszMsg - buffer pointer for pdump messages - * @param pui32MaxLen - max length of the message buffer - * FIXME: the max length should be internal to the OS-specific code - * @return error (always PVRSRV_OK on some OSes) - */ - PVRSRV_ERROR PDumpOSGetMessageString(IMG_CHAR **ppszMsg, IMG_UINT32 *pui32MaxLen); - - /*! - * @name PDumpOSGetFilenameString - * @brief Get the "filename" buffer - * @param ppszFile - buffer pointer for filename - * @param pui32MaxLen - max length of the filename buffer - * FIXME: the max length should be internal to the OS-specific code - * @return error (always PVRSRV_OK on some OSes) - */ - PVRSRV_ERROR PDumpOSGetFilenameString(IMG_CHAR **ppszFile, IMG_UINT32 *pui32MaxLen); - -#endif /* WIN32 or QNX */ - - -/* - * Define macro for processing variable args list in OS-independent - * manner. See e.g. PDumpComment(). - */ - -#define PDUMP_va_list va_list -#define PDUMP_va_start va_start -#define PDUMP_va_end va_end - - - -/*! - * @name PDumpOSGetStream - * @brief Get a handle to the labelled stream (cast the handle to PDBG_STREAM to use it) - * @param ePDumpStream - stream label - */ -IMG_HANDLE PDumpOSGetStream(IMG_UINT32 ePDumpStream); - -/*! - * @name PDumpOSGetStreamOffset - * @brief Return current offset within the labelled stream - * @param ePDumpStream - stream label - */ -IMG_UINT32 PDumpOSGetStreamOffset(IMG_UINT32 ePDumpStream); - -/*! - * @name PDumpOSGetParamFileNum - * @brief Return file number of the 'script' stream, in the case that the file was split - * @param ePDumpStream - stream label - */ -IMG_UINT32 PDumpOSGetParamFileNum(IMG_VOID); - -/*! - * @name PDumpOSCheckForSplitting - * @brief Check if the requested pdump params are too large for a single file - * @param hStream - pdump stream - * @param ui32Size - size of params to dump (bytes) - * @param ui32Flags - pdump flags - */ -IMG_VOID PDumpOSCheckForSplitting(IMG_HANDLE hStream, IMG_UINT32 ui32Size, IMG_UINT32 ui32Flags); - -/*! - * @name PDumpOSIsSuspended - * @brief Is the pdump stream busy? - * @return IMG_BOOL - */ -IMG_BOOL PDumpOSIsSuspended(IMG_VOID); - -/*! - * @name PDumpOSIsSuspended - * @brief Is the pdump jump table initialised? - * @return IMG_BOOL - */ -IMG_BOOL PDumpOSJTInitialised(IMG_VOID); - -/*! - * @name PDumpOSWriteString - * @brief General function for writing to pdump stream. - * Usually more convenient to use PDumpOSWriteString2 below. - * @param hDbgStream - pdump stream handle - * @param psui8Data - data to write - * @param ui32Size - size of write - * @param ui32Flags - pdump flags - * @return error - */ -IMG_BOOL PDumpOSWriteString(IMG_HANDLE hDbgStream, - IMG_UINT8 *psui8Data, - IMG_UINT32 ui32Size, - IMG_UINT32 ui32Flags); - -/*! - * @name PDumpOSWriteString2 - * @brief Write a string to the "script" output stream - * @param pszScript - buffer to write (ptr to state structure on Symbian) - * @param ui32Flags - pdump flags - * @return error - */ -IMG_BOOL PDumpOSWriteString2(IMG_HANDLE hScript, IMG_UINT32 ui32Flags); - -/*! - * @name PDumpOSBufprintf - * @brief Printf to OS-specific pdump state buffer - * @param hBuf - buffer handle to write into (ptr to state structure on Symbian) - * @param ui32ScriptSizeMax - maximum size of data to write (not supported on all OSes) - * @param pszFormat - format string - */ -PVRSRV_ERROR PDumpOSBufprintf(IMG_HANDLE hBuf, IMG_UINT32 ui32ScriptSizeMax, IMG_CHAR* pszFormat, ...) IMG_FORMAT_PRINTF(3, 4); - -/*! - * @name PDumpOSDebugPrintf - * @brief Debug message during pdumping - * @param pszFormat - format string - */ -IMG_VOID PDumpOSDebugPrintf(IMG_CHAR* pszFormat, ...) IMG_FORMAT_PRINTF(1, 2); - -/* - * Write into a IMG_CHAR* on all OSes. Can be allocated on the stack or heap. - */ -/*! - * @name PDumpOSSprintf - * @brief Printf to IMG char array - * @param pszComment - char array to print into - * @param pszFormat - format string - */ -PVRSRV_ERROR PDumpOSSprintf(IMG_CHAR *pszComment, IMG_UINT32 ui32ScriptSizeMax, IMG_CHAR *pszFormat, ...) IMG_FORMAT_PRINTF(3, 4); - -/*! - * @name PDumpOSVSprintf - * @brief Printf to IMG string using variable args (see stdarg.h). This is necessary - * because the ... notation does not support nested function calls. - * @param pszMsg - char array to print into - * @param ui32ScriptSizeMax - maximum size of data to write (not supported on all OSes) - * @param pszFormat - format string - * @param vaArgs - variable args structure (from stdarg.h) - */ -PVRSRV_ERROR PDumpOSVSprintf(IMG_CHAR *pszMsg, IMG_UINT32 ui32ScriptSizeMax, IMG_CHAR* pszFormat, PDUMP_va_list vaArgs) IMG_FORMAT_PRINTF(3, 0); - -/*! - * @name PDumpOSBuflen - * @param hBuffer - handle to buffer (ptr to state structure on Symbian) - * @param ui32BuffeRSizeMax - max size of buffer (chars) - * @return length of buffer, will always be <= ui32BufferSizeMax - */ -IMG_UINT32 PDumpOSBuflen(IMG_HANDLE hBuffer, IMG_UINT32 ui32BufferSizeMax); - -/*! - * @name PDumpOSVerifyLineEnding - * @brief Put \r\n sequence at the end if it isn't already there - * @param hBuffer - handle to buffer - * @param ui32BufferSizeMax - max size of buffer (chars) - */ -IMG_VOID PDumpOSVerifyLineEnding(IMG_HANDLE hBuffer, IMG_UINT32 ui32BufferSizeMax); - -/*! - * @name PDumpOSCPUVAddrToDevPAddr - * @brief OS function to convert CPU virtual to device physical for dumping pages - * @param hOSMemHandle mem allocation handle (used if kernel virtual mem space is limited, e.g. linux) - * @param ui32Offset dword offset into allocation (for use with mem handle, e.g. linux) - * @param pui8LinAddr CPU linear addr (usually a kernel virtual address) - * @param ui32PageSize page size, used for assertion check - * @return psDevPAddr device physical addr - */ -IMG_VOID PDumpOSCPUVAddrToDevPAddr(PVRSRV_DEVICE_TYPE eDeviceType, - IMG_HANDLE hOSMemHandle, - IMG_UINT32 ui32Offset, - IMG_UINT8 *pui8LinAddr, - IMG_UINT32 ui32PageSize, - IMG_DEV_PHYADDR *psDevPAddr); - -/*! - * @name PDumpOSCPUVAddrToPhysPages - * @brief OS function to convert CPU virtual to backing physical pages - * @param hOSMemHandle mem allocation handle (used if kernel virtual mem space is limited, e.g. linux) - * @param ui32Offset offset within mem allocation block - * @param pui8LinAddr CPU linear addr - * @param ui32DataPageMask mask for data page (= data page size -1) - * @return pui32PageOffset CPU page offset (same as device page offset if page sizes equal) - */ -IMG_VOID PDumpOSCPUVAddrToPhysPages(IMG_HANDLE hOSMemHandle, - IMG_UINT32 ui32Offset, - IMG_PUINT8 pui8LinAddr, - IMG_UINT32 ui32DataPageMask, - IMG_UINT32 *pui32PageOffset); - -/*! - * @name PDumpOSReleaseExecution - * @brief OS function to switch to another process, to clear pdump buffers - */ -IMG_VOID PDumpOSReleaseExecution(IMG_VOID); - -/*! - * @name PDumpOSIsCaptureFrameKM - * @brief Is the current frame a capture frame? - */ -IMG_BOOL PDumpOSIsCaptureFrameKM(IMG_VOID); - -/*! - * @name PDumpOSSetFrameKM - * @brief Set frame counter - */ -PVRSRV_ERROR PDumpOSSetFrameKM(IMG_UINT32 ui32Frame); - -#if defined (__cplusplus) -} -#endif diff --git a/pvr-source/services4/srvkm/include/perfkm.h b/pvr-source/services4/srvkm/include/perfkm.h deleted file mode 100755 index 458a29b..0000000 --- a/pvr-source/services4/srvkm/include/perfkm.h +++ /dev/null @@ -1,53 +0,0 @@ -/*************************************************************************/ /*! -@Title Perf initialisation -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@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 _PERFKM_H_ -#define _PERFKM_H_ - -#include "img_types.h" - -#define PERFINIT() -#define PERFDEINIT() - -#endif /* _PERFKM_H_ */ - -/****************************************************************************** - End of file (perfkm.h) -******************************************************************************/ diff --git a/pvr-source/services4/srvkm/include/perproc.h b/pvr-source/services4/srvkm/include/perproc.h deleted file mode 100755 index d603613..0000000 --- a/pvr-source/services4/srvkm/include/perproc.h +++ /dev/null @@ -1,150 +0,0 @@ -/*************************************************************************/ /*! -@Title Handle Manager API -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description Perprocess data -@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 __PERPROC_H__ -#define __PERPROC_H__ - -#if defined (__cplusplus) -extern "C" { -#endif - -#include "img_types.h" -#include "resman.h" - -#include "handle.h" - -typedef struct _PVRSRV_PER_PROCESS_DATA_ -{ - IMG_UINT32 ui32PID; - IMG_HANDLE hBlockAlloc; - PRESMAN_CONTEXT hResManContext; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hPerProcData; -#else - IMG_HANDLE hPerProcData; -#endif - PVRSRV_HANDLE_BASE *psHandleBase; -#if defined (SUPPORT_SID_INTERFACE) - /* Handles are being allocated in batches */ - IMG_BOOL bHandlesBatched; -#else -#if defined (PVR_SECURE_HANDLES) - /* Handles are being allocated in batches */ - IMG_BOOL bHandlesBatched; -#endif /* PVR_SECURE_HANDLES */ -#endif /* SUPPORT_SID_INTERFACE */ - IMG_UINT32 ui32RefCount; - - /* True if the process is the initialisation server. */ - IMG_BOOL bInitProcess; -#if defined(PDUMP) - /* True if pdump data from the process is 'persistent' */ - IMG_BOOL bPDumpPersistent; -#if defined(SUPPORT_PDUMP_MULTI_PROCESS) - /* True if this process is marked for pdumping. This flag is - * significant in a multi-app environment. - */ - IMG_BOOL bPDumpActive; -#endif /* SUPPORT_PDUMP_MULTI_PROCESS */ -#endif - /* - * OS specific data can be stored via this handle. - * See osperproc.h for a generic mechanism for initialising - * this field. - */ - IMG_HANDLE hOsPrivateData; -} PVRSRV_PER_PROCESS_DATA; - -PVRSRV_PER_PROCESS_DATA *PVRSRVPerProcessData(IMG_UINT32 ui32PID); - -PVRSRV_ERROR PVRSRVPerProcessDataConnect(IMG_UINT32 ui32PID, IMG_UINT32 ui32Flags); -IMG_VOID PVRSRVPerProcessDataDisconnect(IMG_UINT32 ui32PID); - -PVRSRV_ERROR PVRSRVPerProcessDataInit(IMG_VOID); -PVRSRV_ERROR PVRSRVPerProcessDataDeInit(IMG_VOID); - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVFindPerProcessData) -#endif -static INLINE -PVRSRV_PER_PROCESS_DATA *PVRSRVFindPerProcessData(IMG_VOID) -{ - return PVRSRVPerProcessData(OSGetCurrentProcessIDKM()); -} - - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVProcessPrivateData) -#endif -static INLINE -IMG_HANDLE PVRSRVProcessPrivateData(PVRSRV_PER_PROCESS_DATA *psPerProc) -{ - return (psPerProc != IMG_NULL) ? psPerProc->hOsPrivateData : IMG_NULL; -} - - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVPerProcessPrivateData) -#endif -static INLINE -IMG_HANDLE PVRSRVPerProcessPrivateData(IMG_UINT32 ui32PID) -{ - return PVRSRVProcessPrivateData(PVRSRVPerProcessData(ui32PID)); -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVFindPerProcessPrivateData) -#endif -static INLINE -IMG_HANDLE PVRSRVFindPerProcessPrivateData(IMG_VOID) -{ - return PVRSRVProcessPrivateData(PVRSRVFindPerProcessData()); -} - -#if defined (__cplusplus) -} -#endif - -#endif /* __PERPROC_H__ */ - -/****************************************************************************** - End of file (perproc.h) -******************************************************************************/ diff --git a/pvr-source/services4/srvkm/include/power.h b/pvr-source/services4/srvkm/include/power.h deleted file mode 100755 index 0abaf75..0000000 --- a/pvr-source/services4/srvkm/include/power.h +++ /dev/null @@ -1,140 +0,0 @@ -/*************************************************************************/ /*! -@Title Power Management Functions -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description Main APIs for power management 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 POWER_H -#define POWER_H - -#if defined(__cplusplus) -extern "C" { -#endif - - -/*! - ***************************************************************************** - * Power management - *****************************************************************************/ - -typedef struct _PVRSRV_POWER_DEV_TAG_ -{ - PFN_PRE_POWER pfnPrePower; - PFN_POST_POWER pfnPostPower; - PFN_PRE_CLOCKSPEED_CHANGE pfnPreClockSpeedChange; - PFN_POST_CLOCKSPEED_CHANGE pfnPostClockSpeedChange; - IMG_HANDLE hDevCookie; - IMG_UINT32 ui32DeviceIndex; - PVRSRV_DEV_POWER_STATE eDefaultPowerState; - PVRSRV_DEV_POWER_STATE eCurrentPowerState; - struct _PVRSRV_POWER_DEV_TAG_ *psNext; - struct _PVRSRV_POWER_DEV_TAG_ **ppsThis; - -} PVRSRV_POWER_DEV; - -typedef enum _PVRSRV_INIT_SERVER_STATE_ -{ - PVRSRV_INIT_SERVER_Unspecified = -1, - PVRSRV_INIT_SERVER_RUNNING = 0, - PVRSRV_INIT_SERVER_RAN = 1, - PVRSRV_INIT_SERVER_SUCCESSFUL = 2, - PVRSRV_INIT_SERVER_NUM = 3, - PVRSRV_INIT_SERVER_FORCE_I32 = 0x7fffffff - -} PVRSRV_INIT_SERVER_STATE, *PPVRSRV_INIT_SERVER_STATE; - -IMG_IMPORT -IMG_BOOL PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_STATE eInitServerState); - -IMG_IMPORT -PVRSRV_ERROR PVRSRVSetInitServerState(PVRSRV_INIT_SERVER_STATE eInitServerState, IMG_BOOL bState); - - - -IMG_IMPORT -PVRSRV_ERROR PVRSRVPowerLock(IMG_UINT32 ui32CallerID, - IMG_BOOL bSystemPowerEvent); -IMG_IMPORT -IMG_VOID PVRSRVPowerUnlock(IMG_UINT32 ui32CallerID); - -IMG_IMPORT -PVRSRV_ERROR PVRSRVSetDevicePowerStateKM(IMG_UINT32 ui32DeviceIndex, - PVRSRV_DEV_POWER_STATE eNewPowerState); - -IMG_IMPORT -PVRSRV_ERROR PVRSRVSystemPrePowerStateKM(PVRSRV_SYS_POWER_STATE eNewPowerState); -IMG_IMPORT -PVRSRV_ERROR PVRSRVSystemPostPowerStateKM(PVRSRV_SYS_POWER_STATE eNewPowerState); - -IMG_IMPORT -PVRSRV_ERROR PVRSRVSetPowerStateKM (PVRSRV_SYS_POWER_STATE ePVRState); - -IMG_IMPORT -PVRSRV_ERROR PVRSRVRegisterPowerDevice(IMG_UINT32 ui32DeviceIndex, - PFN_PRE_POWER pfnPrePower, - PFN_POST_POWER pfnPostPower, - PFN_PRE_CLOCKSPEED_CHANGE pfnPreClockSpeedChange, - PFN_POST_CLOCKSPEED_CHANGE pfnPostClockSpeedChange, - IMG_HANDLE hDevCookie, - PVRSRV_DEV_POWER_STATE eCurrentPowerState, - PVRSRV_DEV_POWER_STATE eDefaultPowerState); - -IMG_IMPORT -PVRSRV_ERROR PVRSRVRemovePowerDevice (IMG_UINT32 ui32DeviceIndex); - -IMG_IMPORT -IMG_BOOL PVRSRVIsDevicePowered(IMG_UINT32 ui32DeviceIndex); - -IMG_IMPORT -PVRSRV_ERROR PVRSRVDevicePreClockSpeedChange(IMG_UINT32 ui32DeviceIndex, - IMG_BOOL bIdleDevice, - IMG_VOID *pvInfo); - -IMG_IMPORT -IMG_VOID PVRSRVDevicePostClockSpeedChange(IMG_UINT32 ui32DeviceIndex, - IMG_BOOL bIdleDevice, - IMG_VOID *pvInfo); - -#if defined (__cplusplus) -} -#endif -#endif /* POWER_H */ - -/****************************************************************************** - End of file (power.h) -******************************************************************************/ diff --git a/pvr-source/services4/srvkm/include/queue.h b/pvr-source/services4/srvkm/include/queue.h deleted file mode 100755 index 58f8093..0000000 --- a/pvr-source/services4/srvkm/include/queue.h +++ /dev/null @@ -1,145 +0,0 @@ -/*************************************************************************/ /*! -@Title Command Queue API -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description Internal structures and definitions for command queues -@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 QUEUE_H -#define QUEUE_H - - -#if defined(__cplusplus) -extern "C" { -#endif - -/*! - * Macro to Read Offset in given command queue - */ -#define UPDATE_QUEUE_ROFF(psQueue, ui32Size) \ - (psQueue)->ui32ReadOffset = ((psQueue)->ui32ReadOffset + (ui32Size)) \ - & ((psQueue)->ui32QueueSize - 1); - -/*! - generic cmd complete structure. - This structure represents the storage required between starting and finishing - a given cmd and is required to hold the generic sync object update data. - note: for any given system we know what command types we support and - therefore how much storage is required for any number of commands in progress - */ - typedef struct _COMMAND_COMPLETE_DATA_ - { - IMG_BOOL bInUse; - /* <arg(s) to PVRSRVProcessQueues>; */ /*!< TBD */ - IMG_UINT32 ui32DstSyncCount; /*!< number of dst sync objects */ - IMG_UINT32 ui32SrcSyncCount; /*!< number of src sync objects */ - PVRSRV_SYNC_OBJECT *psDstSync; /*!< dst sync ptr list, - allocated on back of this structure */ - PVRSRV_SYNC_OBJECT *psSrcSync; /*!< src sync ptr list, - allocated on back of this structure */ - IMG_UINT32 ui32AllocSize; /*!< allocated size*/ - PFN_QUEUE_COMMAND_COMPLETE pfnCommandComplete; /*!< Command complete callback */ - IMG_HANDLE hCallbackData; /*!< Command complete callback data */ - }COMMAND_COMPLETE_DATA, *PCOMMAND_COMPLETE_DATA; - -#if !defined(USE_CODE) -IMG_VOID QueueDumpDebugInfo(IMG_VOID); - -IMG_IMPORT -PVRSRV_ERROR PVRSRVProcessQueues (IMG_BOOL bFlush); - -#if defined(__linux__) && defined(__KERNEL__) -#include <linux/types.h> -#include <linux/seq_file.h> -void* ProcSeqOff2ElementQueue(struct seq_file * sfile, loff_t off); -void ProcSeqShowQueue(struct seq_file *sfile,void* el); -#endif - - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateCommandQueueKM(IMG_SIZE_T ui32QueueSize, - PVRSRV_QUEUE_INFO **ppsQueueInfo); -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyCommandQueueKM(PVRSRV_QUEUE_INFO *psQueueInfo); - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVInsertCommandKM(PVRSRV_QUEUE_INFO *psQueue, - PVRSRV_COMMAND **ppsCommand, - IMG_UINT32 ui32DevIndex, - IMG_UINT16 CommandType, - IMG_UINT32 ui32DstSyncCount, - PVRSRV_KERNEL_SYNC_INFO *apsDstSync[], - IMG_UINT32 ui32SrcSyncCount, - PVRSRV_KERNEL_SYNC_INFO *apsSrcSync[], - IMG_SIZE_T ui32DataByteSize, - PFN_QUEUE_COMMAND_COMPLETE pfnCommandComplete, - IMG_HANDLE hCallbackData); - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVGetQueueSpaceKM(PVRSRV_QUEUE_INFO *psQueue, - IMG_SIZE_T ui32ParamSize, - IMG_VOID **ppvSpace); - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVSubmitCommandKM(PVRSRV_QUEUE_INFO *psQueue, - PVRSRV_COMMAND *psCommand); - -IMG_IMPORT -IMG_VOID PVRSRVCommandCompleteKM(IMG_HANDLE hCmdCookie, IMG_BOOL bScheduleMISR); - -IMG_IMPORT -PVRSRV_ERROR PVRSRVRegisterCmdProcListKM(IMG_UINT32 ui32DevIndex, - PFN_CMD_PROC *ppfnCmdProcList, - IMG_UINT32 ui32MaxSyncsPerCmd[][2], - IMG_UINT32 ui32CmdCount); -IMG_IMPORT -PVRSRV_ERROR PVRSRVRemoveCmdProcListKM(IMG_UINT32 ui32DevIndex, - IMG_UINT32 ui32CmdCount); - -#endif /* !defined(USE_CODE) */ - - -#if defined (__cplusplus) -} -#endif - -#endif /* QUEUE_H */ - -/****************************************************************************** - End of file (queue.h) -******************************************************************************/ diff --git a/pvr-source/services4/srvkm/include/ra.h b/pvr-source/services4/srvkm/include/ra.h deleted file mode 100755 index b84a8e5..0000000 --- a/pvr-source/services4/srvkm/include/ra.h +++ /dev/null @@ -1,293 +0,0 @@ -/*************************************************************************/ /*! -@Title Resource Allocator API -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@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 _RA_H_ -#define _RA_H_ - -#include "img_types.h" -#include "hash.h" -#include "osfunc.h" - -/** Resource arena. - * struct _RA_ARENA_ deliberately opaque - */ -typedef struct _RA_ARENA_ RA_ARENA; //PRQA S 3313 -typedef struct _BM_MAPPING_ BM_MAPPING; - - - -/** Enable support for arena statistics. */ -#define RA_STATS - - -/** Resource arena statistics. */ -struct _RA_STATISTICS_ -{ - /** total number of segments add to the arena */ - IMG_SIZE_T uSpanCount; - - /** number of current live segments within the arena */ - IMG_SIZE_T uLiveSegmentCount; - - /** number of current free segments within the arena */ - IMG_SIZE_T uFreeSegmentCount; - - /** total number of resource within the arena */ - IMG_SIZE_T uTotalResourceCount; - - /** number of free resource within the arena */ - IMG_SIZE_T uFreeResourceCount; - - /** total number of resources allocated from the arena */ - IMG_SIZE_T uCumulativeAllocs; - - /** total number of resources returned to the arena */ - IMG_SIZE_T uCumulativeFrees; - - /** total number of spans allocated by the callback mechanism */ - IMG_SIZE_T uImportCount; - - /** total number of spans deallocated by the callback mechanism */ - IMG_SIZE_T uExportCount; - - IMG_SIZE_T uFailedAllocCount; - -}; -typedef struct _RA_STATISTICS_ RA_STATISTICS; - -struct _RA_SEGMENT_DETAILS_ -{ - IMG_SIZE_T uiSize; - IMG_CPU_PHYADDR sCpuPhyAddr; - IMG_HANDLE hSegment; -}; -typedef struct _RA_SEGMENT_DETAILS_ RA_SEGMENT_DETAILS; - -/** - * @Function RA_Create - * - * @Description - * - * To create a resource arena. - * - * @Input name - the name of the arena for diagnostic purposes. - * @Input base - the base of an initial resource span or 0. - * @Input uSize - the size of an initial resource span or 0. - * @Input pRef - the reference to return for the initial resource or 0. - * @Input uQuantum - the arena allocation quantum. - * @Input alloc - a resource allocation callback or 0. - * @Input free - a resource de-allocation callback or 0. - * @Input import_handle - handle passed to alloc and free or 0. - * @Return arena handle, or IMG_NULL. - */ -RA_ARENA * -RA_Create (IMG_CHAR *name, - IMG_UINTPTR_T base, - IMG_SIZE_T uSize, - BM_MAPPING *psMapping, - IMG_SIZE_T uQuantum, - IMG_BOOL (*imp_alloc)(IMG_VOID *_h, - IMG_SIZE_T uSize, - IMG_SIZE_T *pActualSize, - BM_MAPPING **ppsMapping, - IMG_UINT32 uFlags, - IMG_PVOID pvPrivData, - IMG_UINT32 ui32PrivDataLength, - IMG_UINTPTR_T *pBase), - IMG_VOID (*imp_free) (IMG_VOID *, - IMG_UINTPTR_T, - BM_MAPPING *), - IMG_VOID (*backingstore_free) (IMG_VOID *, - IMG_SIZE_T, - IMG_SIZE_T, - IMG_HANDLE), - IMG_VOID *import_handle); - -/** - * @Function RA_Delete - * - * @Description - * - * To delete a resource arena. All resources allocated from the arena - * must be freed before deleting the arena. - * - * @Input pArena - the arena to delete. - * @Return None - */ -IMG_VOID -RA_Delete (RA_ARENA *pArena); - -/** - * @Function RA_TestDelete - * - * @Description - * - * To test whether it is safe to delete a resource arena. If any allocations - * have not been freed, the RA must not be deleted. - * - * @Input pArena - the arena to test. - * @Return IMG_BOOL - IMG_TRUE if is safe to go on and call RA_Delete. - */ -IMG_BOOL -RA_TestDelete (RA_ARENA *pArena); - -/** - * @Function RA_Add - * - * @Description - * - * To add a resource span to an arena. The span must not overlap with - * any span previously added to the arena. - * - * @Input pArena - the arena to add a span into. - * @Input base - the base of the span. - * @Input uSize - the extent of the span. - * @Return IMG_TRUE - success, IMG_FALSE - failure - */ -IMG_BOOL -RA_Add (RA_ARENA *pArena, IMG_UINTPTR_T base, IMG_SIZE_T uSize); - -/** - * @Function RA_Alloc - * - * @Description - * - * To allocate resource from an arena. - * - * @Input pArena - the arena - * @Input uRequestSize - the size of resource segment requested. - * @Output pActualSize - the actual_size of resource segment allocated, - * typcially rounded up by quantum. - * @Output ppsMapping - the user reference associated with allocated - * resource span. - * @Input uFlags - flags influencing allocation policy. - * @Input uAlignment - the alignment constraint required for the - * allocated segment, use 0 if alignment not required. - * @Input uAlignmentOffset - the required alignment offset - * @Input pvPrivData - private data passed to OS allocator - * @Input ui32PrivData - length of private data - * - * @Output pBase - allocated base resource - * @Return IMG_TRUE - success, IMG_FALSE - failure - */ -IMG_BOOL -RA_Alloc (RA_ARENA *pArena, - IMG_SIZE_T uSize, - IMG_SIZE_T *pActualSize, - BM_MAPPING **ppsMapping, - IMG_UINT32 uFlags, - IMG_UINT32 uAlignment, - IMG_UINT32 uAlignmentOffset, - IMG_PVOID pvPrivData, - IMG_UINT32 ui32PrivDataLength, - IMG_UINTPTR_T *pBase); - -/** - * @Function RA_Free - * - * @Description To free a resource segment. - * - * @Input pArena - the arena the segment was originally allocated from. - * @Input base - the base of the resource span to free. - * @Input bFreeBackingStore - Should backing store memory be freed? - * - * @Return None - */ -IMG_VOID -RA_Free (RA_ARENA *pArena, IMG_UINTPTR_T base, IMG_BOOL bFreeBackingStore); - - -#ifdef RA_STATS - -#define CHECK_SPACE(total) \ -{ \ - if((total)<100) \ - return PVRSRV_ERROR_INVALID_PARAMS; \ -} - -#define UPDATE_SPACE(str, count, total) \ -{ \ - if((count) == -1) \ - return PVRSRV_ERROR_INVALID_PARAMS; \ - else \ - { \ - (str) += (count); \ - (total) -= (count); \ - } \ -} - - -/** - * @Function RA_GetNextLiveSegment - * - * @Description Returns details of the next live resource segments - * - * @Input pArena - the arena the segment was originally allocated from. - * @Output psSegDetails - rtn details of segments - * - * @Return IMG_TRUE if operation succeeded - */ -IMG_BOOL RA_GetNextLiveSegment(IMG_HANDLE hArena, RA_SEGMENT_DETAILS *psSegDetails); - - -/** - * @Function RA_GetStats - * - * @Description gets stats on a given arena - * - * @Input pArena - the arena the segment was originally allocated from. - * @Input ppszStr - string to write stats to - * @Input pui32StrLen - length of string - * - * @Return PVRSRV_ERROR - */ -PVRSRV_ERROR RA_GetStats(RA_ARENA *pArena, - IMG_CHAR **ppszStr, - IMG_UINT32 *pui32StrLen); - -PVRSRV_ERROR RA_GetStatsFreeMem(RA_ARENA *pArena, - IMG_CHAR **ppszStr, - IMG_UINT32 *pui32StrLen); - -#endif /* #ifdef RA_STATS */ - -#endif - diff --git a/pvr-source/services4/srvkm/include/refcount.h b/pvr-source/services4/srvkm/include/refcount.h deleted file mode 100755 index 0e3479d..0000000 --- a/pvr-source/services4/srvkm/include/refcount.h +++ /dev/null @@ -1,203 +0,0 @@ -/*************************************************************************/ /*! -@Title Services reference count debugging -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@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 __REFCOUNT_H__ -#define __REFCOUNT_H__ - -#include "pvr_bridge_km.h" - -#if defined(PVRSRV_REFCOUNT_DEBUG) - -void PVRSRVDumpRefCountCCB(void); - -#define PVRSRVKernelSyncInfoIncRef(x...) \ - PVRSRVKernelSyncInfoIncRef2(__FILE__, __LINE__, x) -#define PVRSRVKernelSyncInfoDecRef(x...) \ - PVRSRVKernelSyncInfoDecRef2(__FILE__, __LINE__, x) -#define PVRSRVKernelMemInfoIncRef(x...) \ - PVRSRVKernelMemInfoIncRef2(__FILE__, __LINE__, x) -#define PVRSRVKernelMemInfoDecRef(x...) \ - PVRSRVKernelMemInfoDecRef2(__FILE__, __LINE__, x) -#define PVRSRVBMBufIncRef(x...) \ - PVRSRVBMBufIncRef2(__FILE__, __LINE__, x) -#define PVRSRVBMBufDecRef(x...) \ - PVRSRVBMBufDecRef2(__FILE__, __LINE__, x) -#define PVRSRVBMBufIncExport(x...) \ - PVRSRVBMBufIncExport2(__FILE__, __LINE__, x) -#define PVRSRVBMBufDecExport(x...) \ - PVRSRVBMBufDecExport2(__FILE__, __LINE__, x) - -void PVRSRVKernelSyncInfoIncRef2(const IMG_CHAR *pszFile, IMG_INT iLine, - PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo, - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo); -void PVRSRVKernelSyncInfoDecRef2(const IMG_CHAR *pszFile, IMG_INT iLine, - PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo, - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo); -void PVRSRVKernelMemInfoIncRef2(const IMG_CHAR *pszFile, IMG_INT iLine, - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo); -void PVRSRVKernelMemInfoDecRef2(const IMG_CHAR *pszFile, IMG_INT iLine, - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo); -void PVRSRVBMBufIncRef2(const IMG_CHAR *pszFile, - IMG_INT iLine, BM_BUF *pBuf); -void PVRSRVBMBufDecRef2(const IMG_CHAR *pszFile, - IMG_INT iLine, BM_BUF *pBuf); -void PVRSRVBMBufIncExport2(const IMG_CHAR *pszFile, - IMG_INT iLine, BM_BUF *pBuf); -void PVRSRVBMBufDecExport2(const IMG_CHAR *pszFile, - IMG_INT iLine, BM_BUF *pBuf); -void PVRSRVBMXProcIncRef2(const IMG_CHAR *pszFile, IMG_INT iLine, - IMG_UINT32 ui32Index); -void PVRSRVBMXProcDecRef2(const IMG_CHAR *pszFile, IMG_INT iLine, - IMG_UINT32 ui32Index); - -#if defined(__linux__) - -/* mmap refcounting is Linux specific */ -#include "mmap.h" - -#define PVRSRVOffsetStructIncRef(x...) \ - PVRSRVOffsetStructIncRef2(__FILE__, __LINE__, x) -#define PVRSRVOffsetStructDecRef(x...) \ - PVRSRVOffsetStructDecRef2(__FILE__, __LINE__, x) -#define PVRSRVOffsetStructIncMapped(x...) \ - PVRSRVOffsetStructIncMapped2(__FILE__, __LINE__, x) -#define PVRSRVOffsetStructDecMapped(x...) \ - PVRSRVOffsetStructDecMapped2(__FILE__, __LINE__, x) - -void PVRSRVOffsetStructIncRef2(const IMG_CHAR *pszFile, IMG_INT iLine, - PKV_OFFSET_STRUCT psOffsetStruct); -void PVRSRVOffsetStructDecRef2(const IMG_CHAR *pszFile, IMG_INT iLine, - PKV_OFFSET_STRUCT psOffsetStruct); -void PVRSRVOffsetStructIncMapped2(const IMG_CHAR *pszFile, IMG_INT iLine, - PKV_OFFSET_STRUCT psOffsetStruct); -void PVRSRVOffsetStructDecMapped2(const IMG_CHAR *pszFile, IMG_INT iLine, - PKV_OFFSET_STRUCT psOffsetStruct); - -#endif /* defined(__linux__) */ - -#else /* defined(PVRSRV_REFCOUNT_DEBUG) */ - -static INLINE void PVRSRVDumpRefCountCCB(void) { } - -static INLINE void PVRSRVKernelSyncInfoIncRef(PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo, - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo) -{ - PVR_UNREFERENCED_PARAMETER(psKernelMemInfo); - PVRSRVAcquireSyncInfoKM(psKernelSyncInfo); -} - -static INLINE void PVRSRVKernelSyncInfoDecRef(PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo, - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo) -{ - PVR_UNREFERENCED_PARAMETER(psKernelMemInfo); - PVRSRVReleaseSyncInfoKM(psKernelSyncInfo); -} - -static INLINE void PVRSRVKernelMemInfoIncRef(PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo) -{ - psKernelMemInfo->ui32RefCount++; -} - -static INLINE void PVRSRVKernelMemInfoDecRef(PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo) -{ - psKernelMemInfo->ui32RefCount--; -} - -static INLINE void PVRSRVBMBufIncRef(BM_BUF *pBuf) -{ - pBuf->ui32RefCount++; -} - -static INLINE void PVRSRVBMBufDecRef(BM_BUF *pBuf) -{ - pBuf->ui32RefCount--; -} - -static INLINE void PVRSRVBMBufIncExport(BM_BUF *pBuf) -{ - pBuf->ui32ExportCount++; -} - -static INLINE void PVRSRVBMBufDecExport(BM_BUF *pBuf) -{ - pBuf->ui32ExportCount--; -} - -static INLINE void PVRSRVBMXProcIncRef(IMG_UINT32 ui32Index) -{ - gXProcWorkaroundShareData[ui32Index].ui32RefCount++; -} - -static INLINE void PVRSRVBMXProcDecRef(IMG_UINT32 ui32Index) -{ - gXProcWorkaroundShareData[ui32Index].ui32RefCount--; -} - -#if defined(__linux__) - -/* mmap refcounting is Linux specific */ -#include "mmap.h" - -static INLINE void PVRSRVOffsetStructIncRef(PKV_OFFSET_STRUCT psOffsetStruct) -{ - psOffsetStruct->ui32RefCount++; -} - -static INLINE void PVRSRVOffsetStructDecRef(PKV_OFFSET_STRUCT psOffsetStruct) -{ - psOffsetStruct->ui32RefCount--; -} - -static INLINE void PVRSRVOffsetStructIncMapped(PKV_OFFSET_STRUCT psOffsetStruct) -{ - psOffsetStruct->ui32Mapped++; -} - -static INLINE void PVRSRVOffsetStructDecMapped(PKV_OFFSET_STRUCT psOffsetStruct) -{ - psOffsetStruct->ui32Mapped--; -} - -#endif /* defined(__linux__) */ - -#endif /* defined(PVRSRV_REFCOUNT_DEBUG) */ - -#endif /* __REFCOUNT_H__ */ diff --git a/pvr-source/services4/srvkm/include/resman.h b/pvr-source/services4/srvkm/include/resman.h deleted file mode 100755 index 92659d9..0000000 --- a/pvr-source/services4/srvkm/include/resman.h +++ /dev/null @@ -1,152 +0,0 @@ -/*************************************************************************/ /*! -@Title Resource Manager API -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description Provide resource management -@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 __RESMAN_H__ -#define __RESMAN_H__ - -#if defined (__cplusplus) -extern "C" { -#endif - -/****************************************************************************** - * resman definitions - *****************************************************************************/ - -enum { - /* SGX: */ - RESMAN_TYPE_SHARED_PB_DESC = 1, /*!< Parameter buffer kernel stubs */ - RESMAN_TYPE_SHARED_PB_DESC_CREATE_LOCK, /*!< Shared parameter buffer creation lock */ - RESMAN_TYPE_HW_RENDER_CONTEXT, /*!< Hardware Render Context Resource */ - RESMAN_TYPE_HW_TRANSFER_CONTEXT, /*!< Hardware transfer Context Resource */ - RESMAN_TYPE_HW_2D_CONTEXT, /*!< Hardware 2D Context Resource */ - RESMAN_TYPE_TRANSFER_CONTEXT, /*!< Transfer Queue context */ - - /* VGX: */ - RESMAN_TYPE_DMA_CLIENT_FIFO_DATA, /*!< VGX DMA Client FIFO data */ - - /* DISPLAY CLASS: */ - RESMAN_TYPE_DISPLAYCLASS_SWAPCHAIN_REF, /*!< Display Class Swapchain Reference Resource */ - RESMAN_TYPE_DISPLAYCLASS_DEVICE, /*!< Display Class Device Resource */ - - /* BUFFER CLASS: */ - RESMAN_TYPE_BUFFERCLASS_DEVICE, /*!< Buffer Class Device Resource */ - - /* OS specific User mode Mappings: */ - RESMAN_TYPE_OS_USERMODE_MAPPING, /*!< OS specific User mode mappings */ - - /* COMMON: */ - RESMAN_TYPE_DEVICEMEM_CONTEXT, /*!< Device Memory Context Resource */ - RESMAN_TYPE_DEVICECLASSMEM_MAPPING, /*!< Device Memory Mapping Resource */ - RESMAN_TYPE_DEVICEMEM_MAPPING, /*!< Device Memory Mapping Resource */ - RESMAN_TYPE_DEVICEMEM_WRAP, /*!< Device Memory Wrap Resource */ - RESMAN_TYPE_DEVICEMEM_ALLOCATION, /*!< Device Memory Allocation Resource */ - RESMAN_TYPE_DEVICEMEM_ION, /*!< Device Memory Ion Resource */ - RESMAN_TYPE_EVENT_OBJECT, /*!< Event Object */ - RESMAN_TYPE_SHARED_MEM_INFO, /*!< Shared system memory meminfo */ - RESMAN_TYPE_MODIFY_SYNC_OPS, /*!< Syncobject synchronisation Resource*/ - RESMAN_TYPE_SYNC_INFO, /*!< Syncobject Resource*/ - - /* KERNEL: */ - RESMAN_TYPE_KERNEL_DEVICEMEM_ALLOCATION /*!< Device Memory Allocation Resource */ -}; - -#define RESMAN_CRITERIA_ALL 0x00000000 /*!< match by criteria all */ -#define RESMAN_CRITERIA_RESTYPE 0x00000001 /*!< match by criteria type */ -#define RESMAN_CRITERIA_PVOID_PARAM 0x00000002 /*!< match by criteria param1 */ -#define RESMAN_CRITERIA_UI32_PARAM 0x00000004 /*!< match by criteria param2 */ - -typedef PVRSRV_ERROR (*RESMAN_FREE_FN)(IMG_PVOID pvParam, IMG_UINT32 ui32Param, IMG_BOOL bForceCleanup); - -typedef struct _RESMAN_ITEM_ *PRESMAN_ITEM; -typedef struct _RESMAN_CONTEXT_ *PRESMAN_CONTEXT; - -/****************************************************************************** - * resman functions - *****************************************************************************/ - -/* - Note: - Resource cleanup can fail with retry in which case we don't remove - it from resman's list and either UM or KM will try to release the - resource at a later date (and will keep trying until a non-retry - error is returned) -*/ - -PVRSRV_ERROR ResManInit(IMG_VOID); -IMG_VOID ResManDeInit(IMG_VOID); - -PRESMAN_ITEM ResManRegisterRes(PRESMAN_CONTEXT hResManContext, - IMG_UINT32 ui32ResType, - IMG_PVOID pvParam, - IMG_UINT32 ui32Param, - RESMAN_FREE_FN pfnFreeResource); - -PVRSRV_ERROR ResManFreeResByPtr(PRESMAN_ITEM psResItem, - IMG_BOOL bForceCleanup); - -PVRSRV_ERROR ResManFreeResByCriteria(PRESMAN_CONTEXT hResManContext, - IMG_UINT32 ui32SearchCriteria, - IMG_UINT32 ui32ResType, - IMG_PVOID pvParam, - IMG_UINT32 ui32Param); - -PVRSRV_ERROR ResManDissociateRes(PRESMAN_ITEM psResItem, - PRESMAN_CONTEXT psNewResManContext); - -PVRSRV_ERROR ResManFindResourceByPtr(PRESMAN_CONTEXT hResManContext, - PRESMAN_ITEM psItem); - -PVRSRV_ERROR PVRSRVResManConnect(IMG_HANDLE hPerProc, - PRESMAN_CONTEXT *phResManContext); -IMG_VOID PVRSRVResManDisconnect(PRESMAN_CONTEXT hResManContext, - IMG_BOOL bKernelContext); - -#if defined (__cplusplus) -} -#endif - -#endif /* __RESMAN_H__ */ - -/****************************************************************************** - End of file (resman.h) -******************************************************************************/ - diff --git a/pvr-source/services4/srvkm/include/services_headers.h b/pvr-source/services4/srvkm/include/services_headers.h deleted file mode 100755 index d09b8a8..0000000 --- a/pvr-source/services4/srvkm/include/services_headers.h +++ /dev/null @@ -1,68 +0,0 @@ -/*************************************************************************/ /*! -@Title Command queues and synchronisation -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description Internal structures and definitions for command queues and - synchronisation -@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 SERVICES_HEADERS_H -#define SERVICES_HEADERS_H - -#ifdef DEBUG_RELEASE_BUILD -#pragma optimize( "", off ) -#define DEBUG 1 -#endif - -#include "img_defs.h" -#include "services.h" -#include "servicesint.h" -#include "power.h" -#include "resman.h" -#include "queue.h" -#include "srvkm.h" -#include "kerneldisplay.h" -#include "syscommon.h" -#include "pvr_debug.h" -#include "metrics.h" -#include "osfunc.h" -#include "refcount.h" - -#endif /* SERVICES_HEADERS_H */ - diff --git a/pvr-source/services4/srvkm/include/srvkm.h b/pvr-source/services4/srvkm/include/srvkm.h deleted file mode 100755 index 5d396f8..0000000 --- a/pvr-source/services4/srvkm/include/srvkm.h +++ /dev/null @@ -1,129 +0,0 @@ -/*************************************************************************/ /*! -@Title Services kernel module internal header file -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@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 SRVKM_H -#define SRVKM_H - - -#if defined(__cplusplus) -extern "C" { -#endif - - /** Use PVR_DPF() unless message is necessary in release build - */ - #ifdef PVR_DISABLE_LOGGING - #define PVR_LOG(X) - #else - /* PRQA S 3410 1 */ /* this macro requires no brackets in order to work */ - #define PVR_LOG(X) PVRSRVReleasePrintf X; - #endif - - IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVReleasePrintf(const IMG_CHAR *pszFormat, ...) IMG_FORMAT_PRINTF(1, 2); - - IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV PVRSRVProcessConnect(IMG_UINT32 ui32PID, IMG_UINT32 ui32Flags); - IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVProcessDisconnect(IMG_UINT32 ui32PID); - - IMG_IMPORT IMG_VOID PVRSRVScheduleDevicesKM(IMG_VOID); - - IMG_VOID IMG_CALLCONV PVRSRVSetDCState(IMG_UINT32 ui32State); - - PVRSRV_ERROR IMG_CALLCONV PVRSRVSaveRestoreLiveSegments(IMG_HANDLE hArena, IMG_PBYTE pbyBuffer, IMG_SIZE_T *puiBufSize, IMG_BOOL bSave); - - IMG_VOID PVRSRVScheduleDeviceCallbacks(IMG_VOID); - - -#if defined (__cplusplus) -} -#endif - -/****************** -HIGHER LEVEL MACROS -*******************/ - -/*---------------------------------------------------------------------------- -Repeats the body of the loop for a certain minimum time, or until the body -exits by its own means (break, return, goto, etc.) - -Example of usage: - -LOOP_UNTIL_TIMEOUT(MAX_HW_TIME_US) -{ - if(psQueueInfo->ui32ReadOffset == psQueueInfo->ui32WriteOffset) - { - bTimeout = IMG_FALSE; - break; - } - - OSWaitus(MAX_HW_TIME_US/WAIT_TRY_COUNT); -} END_LOOP_UNTIL_TIMEOUT(); - ------------------------------------------------------------------------------*/ - -/* uiNotLastLoop will remain at 1 until the timeout has expired, at which time - * it will be decremented and the loop executed one final time. This is necessary - * when preemption is enabled. - */ -/* PRQA S 3411,3431 12 */ /* critical format, leave alone */ -#define LOOP_UNTIL_TIMEOUT(TIMEOUT) \ -{\ - IMG_UINT32 uiOffset, uiStart, uiCurrent; \ - IMG_INT32 iNotLastLoop; \ - for(uiOffset = 0, uiStart = OSClockus(), uiCurrent = uiStart + 1, iNotLastLoop = 1;\ - ((uiCurrent - uiStart + uiOffset) < (TIMEOUT)) || iNotLastLoop--; \ - uiCurrent = OSClockus(), \ - uiOffset = uiCurrent < uiStart ? IMG_UINT32_MAX - uiStart : uiOffset, \ - uiStart = uiCurrent < uiStart ? 0 : uiStart) - -#define END_LOOP_UNTIL_TIMEOUT() \ -} - -/*! - ****************************************************************************** - - @Function PVRSRVGetErrorStringKM - - @Description Returns a text string relating to the PVRSRV_ERROR enum. - - ******************************************************************************/ -IMG_IMPORT -const IMG_CHAR *PVRSRVGetErrorStringKM(PVRSRV_ERROR eError); - -#endif /* SRVKM_H */ diff --git a/pvr-source/services4/srvkm/include/ttrace.h b/pvr-source/services4/srvkm/include/ttrace.h deleted file mode 100755 index cb70ff8..0000000 --- a/pvr-source/services4/srvkm/include/ttrace.h +++ /dev/null @@ -1,200 +0,0 @@ -/*************************************************************************/ /*! -@Title Timed Trace header -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description Timed Trace header. Contines structures and functions used - in the timed trace subsystem. -@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. -*/ /**************************************************************************/ -#include "services_headers.h" -#include "ttrace_common.h" -#include "ttrace_tokens.h" - -#ifndef __TTRACE_H__ -#define __TTRACE_H__ - -#if defined(TTRACE) - - #define PVR_TTRACE(group, class, token) \ - PVRSRVTimeTrace(group, class, token) - #define PVR_TTRACE_UI8(group, class, token, val) \ - PVRSRVTimeTraceUI8(group, class, token, val) - #define PVR_TTRACE_UI16(group, class, token, val) \ - PVRSRVTimeTraceUI16(group, class, token, val) - #define PVR_TTRACE_UI32(group, class, token, val) \ - PVRSRVTimeTraceUI32(group, class, token, val) - #define PVR_TTRACE_UI64(group, class, token, val) \ - PVRSRVTimeTraceUI64(group, class, token, val) - #define PVR_TTRACE_DEV_VIRTADDR(group, class, token, val) \ - PVRSRVTimeTraceDevVirtAddr(group, class, token, val) - #define PVR_TTRACE_CPU_PHYADDR(group, class, token, val) \ - PVRSRVTimeTraceCpuPhyAddr(group, class, token, val) - #define PVR_TTRACE_DEV_PHYADDR(group, class, token, val) \ - PVRSRVTimeTraceDevPhysAddr(group, class, token, val) - #define PVR_TTRACE_SYS_PHYADDR(group, class, token, val) \ - PVRSRVTimeTraceSysPhysAddr(group, class, token, val) - #define PVR_TTRACE_SYNC_OBJECT(group, token, syncobj, op) \ - PVRSRVTimeTraceSyncObject(group, token, syncobj, op) - -IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVTimeTraceArray(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class, - IMG_UINT32 ui32Token, IMG_UINT32 ui32TypeSize, - IMG_UINT32 ui32Count, IMG_UINT8 *ui8Data); - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVTimeTrace) -#endif -static INLINE IMG_VOID PVRSRVTimeTrace(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class, - IMG_UINT32 ui32Token) -{ - PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, 0, 0, NULL); -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVTimeTraceUI8) -#endif -static INLINE IMG_VOID PVRSRVTimeTraceUI8(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class, - IMG_UINT32 ui32Token, IMG_UINT8 ui8Value) -{ - PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI8, - 1, &ui8Value); -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVTimeTraceUI16) -#endif -static INLINE IMG_VOID PVRSRVTimeTraceUI16(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class, - IMG_UINT32 ui32Token, IMG_UINT16 ui16Value) -{ - PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI16, - 1, (IMG_UINT8 *) &ui16Value); -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVTimeTraceUI32) -#endif -static INLINE IMG_VOID PVRSRVTimeTraceUI32(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class, - IMG_UINT32 ui32Token, IMG_UINT32 ui32Value) -{ - PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI32, - 1, (IMG_UINT8 *) &ui32Value); -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVTimeTraceUI64) -#endif -static INLINE IMG_VOID PVRSRVTimeTraceUI64(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class, - IMG_UINT32 ui32Token, IMG_UINT64 ui64Value) -{ - PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI64, - 1, (IMG_UINT8 *) &ui64Value); -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVTimeTraceDevVirtAddr) -#endif -static INLINE IMG_VOID PVRSRVTimeTraceDevVirtAddr(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class, - IMG_UINT32 ui32Token, IMG_DEV_VIRTADDR psVAddr) -{ - PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI32, - 1, (IMG_UINT8 *) &psVAddr.uiAddr); -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVTimeTraceCpuPhyAddr) -#endif -static INLINE IMG_VOID PVRSRVTimeTraceCpuPhyAddr(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class, - IMG_UINT32 ui32Token, IMG_CPU_PHYADDR psPAddr) -{ - PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI32, - 1, (IMG_UINT8 *) &psPAddr.uiAddr); -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVTimeTraceDevPhysAddr) -#endif -static INLINE IMG_VOID PVRSRVTimeTraceDevPhysAddr(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class, - IMG_UINT32 ui32Token, IMG_DEV_PHYADDR psPAddr) -{ - PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI32, - 1, (IMG_UINT8 *) &psPAddr.uiAddr); -} - -#ifdef INLINE_IS_PRAGMA -#pragma inline(PVRSRVTimeTraceSysPhysAddr) -#endif -static INLINE IMG_VOID PVRSRVTimeTraceSysPhysAddr(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class, - IMG_UINT32 ui32Token, IMG_SYS_PHYADDR psPAddr) -{ - PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, sizeof(psPAddr.uiAddr), - 1, (IMG_UINT8 *) &psPAddr.uiAddr); -} - -#else /* defined(PVRSRV_NEED_PVR_TIME_TRACE) */ - - #define PVR_TTRACE(group, class, token) \ - ((void) 0) - #define PVR_TTRACE_UI8(group, class, token, val) \ - ((void) 0) - #define PVR_TTRACE_UI16(group, class, token, val) \ - ((void) 0) - #define PVR_TTRACE_UI32(group, class, token, val) \ - ((void) 0) - #define PVR_TTRACE_UI64(group, class, token, val) \ - ((void) 0) - #define PVR_TTRACE_DEV_VIRTADDR(group, class, token, val) \ - ((void) 0) - #define PVR_TTRACE_CPU_PHYADDR(group, class, token, val) \ - ((void) 0) - #define PVR_TTRACE_DEV_PHYADDR(group, class, token, val) \ - ((void) 0) - #define PVR_TTRACE_SYS_PHYADDR(group, class, token, val) \ - ((void) 0) - #define PVR_TTRACE_SYNC_OBJECT(group, token, syncobj, op) \ - ((void) 0) - -#endif /* defined(PVRSRV_NEED_PVR_TIME_TRACE) */ - -IMG_IMPORT PVRSRV_ERROR PVRSRVTimeTraceInit(IMG_VOID); -IMG_IMPORT IMG_VOID PVRSRVTimeTraceDeinit(IMG_VOID); - -IMG_IMPORT IMG_VOID PVRSRVTimeTraceSyncObject(IMG_UINT32 ui32Group, IMG_UINT32 ui32Token, - PVRSRV_KERNEL_SYNC_INFO *psSync, IMG_UINT8 ui8SyncOp); -IMG_IMPORT PVRSRV_ERROR PVRSRVTimeTraceBufferCreate(IMG_UINT32 ui32PID); -IMG_IMPORT PVRSRV_ERROR PVRSRVTimeTraceBufferDestroy(IMG_UINT32 ui32PID); - -IMG_IMPORT IMG_VOID PVRSRVDumpTimeTraceBuffers(IMG_VOID); -#endif /* __TTRACE_H__ */ diff --git a/pvr-source/services4/srvkm/include/ttrace_common.h b/pvr-source/services4/srvkm/include/ttrace_common.h deleted file mode 100755 index b14f256..0000000 --- a/pvr-source/services4/srvkm/include/ttrace_common.h +++ /dev/null @@ -1,146 +0,0 @@ -/*************************************************************************/ /*! -@Title Timed Trace header -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description Timed Trace common header. Contains shared defines and - structures which are shared with the post processing tool. -@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. -*/ /**************************************************************************/ -#include "img_types.h" - -#ifndef __TTRACE_COMMON_H__ -#define __TTRACE_COMMON_H__ - -/* - * Trace item - * ========== - * - * A trace item contains a trace header, a timestamp, a UID and a - * data header all of which are 32-bit and mandatory. If there - * is no data then the data header size is set to 0. - * - * Trace header - * ------------ - * 31 27 23 19 15 11 7 3 - * GGGG GGGG CCCC CCCC TTTT TTTT TTTT TTTT - * - * G = group - * Note: - * Group 0xff means the message is padding - * - * C = class - * T = Token - * - * Data header - *----------- - * 31 27 23 19 15 11 7 3 - * SSSS SSSS SSSS SSSS TTTT CCCC CCCC CCCC - * - * S = data packet size - * T = Type - * 0000 - 8 bit - * 0001 - 16 bit - * 0010 - 32 bit - * 0011 - 64 bit - * - * C = data item count - * - * Note: It might look strange having both the packet - * size and the data item count, but the idea - * is the you might have a "special" data type - * who's size might not be known by the post - * processing program and rather then fail - * processing the buffer after that point if we - * know the size we can just skip it and move to - * the next item. - */ - - -#define PVRSRV_TRACE_HEADER 0 -#define PVRSRV_TRACE_TIMESTAMP 1 -#define PVRSRV_TRACE_HOSTUID 2 -#define PVRSRV_TRACE_DATA_HEADER 3 -#define PVRSRV_TRACE_DATA_PAYLOAD 4 - -#define PVRSRV_TRACE_ITEM_SIZE 16 - -#define PVRSRV_TRACE_GROUP_MASK 0xff -#define PVRSRV_TRACE_CLASS_MASK 0xff -#define PVRSRV_TRACE_TOKEN_MASK 0xffff - -#define PVRSRV_TRACE_GROUP_SHIFT 24 -#define PVRSRV_TRACE_CLASS_SHIFT 16 -#define PVRSRV_TRACE_TOKEN_SHIFT 0 - -#define PVRSRV_TRACE_SIZE_MASK 0xffff -#define PVRSRV_TRACE_TYPE_MASK 0xf -#define PVRSRV_TRACE_COUNT_MASK 0xfff - -#define PVRSRV_TRACE_SIZE_SHIFT 16 -#define PVRSRV_TRACE_TYPE_SHIFT 12 -#define PVRSRV_TRACE_COUNT_SHIFT 0 - - -#define WRITE_HEADER(n,m) \ - ((m & PVRSRV_TRACE_##n##_MASK) << PVRSRV_TRACE_##n##_SHIFT) - -#define READ_HEADER(n,m) \ - ((m & (PVRSRV_TRACE_##n##_MASK << PVRSRV_TRACE_##n##_SHIFT)) >> PVRSRV_TRACE_##n##_SHIFT) - -#define TIME_TRACE_BUFFER_SIZE 4096 - -/* Type defines for trace items */ -#define PVRSRV_TRACE_TYPE_UI8 0 -#define PVRSRV_TRACE_TYPE_UI16 1 -#define PVRSRV_TRACE_TYPE_UI32 2 -#define PVRSRV_TRACE_TYPE_UI64 3 - -#define PVRSRV_TRACE_TYPE_SYNC 15 - #define PVRSRV_TRACE_SYNC_UID 0 - #define PVRSRV_TRACE_SYNC_WOP 1 - #define PVRSRV_TRACE_SYNC_WOC 2 - #define PVRSRV_TRACE_SYNC_ROP 3 - #define PVRSRV_TRACE_SYNC_ROC 4 - #define PVRSRV_TRACE_SYNC_WO_DEV_VADDR 5 - #define PVRSRV_TRACE_SYNC_RO_DEV_VADDR 6 - #define PVRSRV_TRACE_SYNC_OP 7 - #define PVRSRV_TRACE_SYNC_RO2P 8 - #define PVRSRV_TRACE_SYNC_RO2C 9 - #define PVRSRV_TRACE_SYNC_RO2_DEV_VADDR 10 -#define PVRSRV_TRACE_TYPE_SYNC_SIZE ((PVRSRV_TRACE_SYNC_RO2_DEV_VADDR + 1) * sizeof(IMG_UINT32)) - -#endif /* __TTRACE_COMMON_H__*/ diff --git a/pvr-source/services4/srvkm/include/ttrace_tokens.h b/pvr-source/services4/srvkm/include/ttrace_tokens.h deleted file mode 100755 index 24bc484..0000000 --- a/pvr-source/services4/srvkm/include/ttrace_tokens.h +++ /dev/null @@ -1,119 +0,0 @@ -/*************************************************************************/ /*! -@Title Timed Trace header -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description Timed Trace token header. Contains defines for all the tokens - used. -@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 __TTRACE_TOKENS_H__ -#define __TTRACE_TOKENS_H__ - -/* All defines should use decimal so to not confuse the post processing tool */ - -/* Trace groups */ -#define PVRSRV_TRACE_GROUP_KICK 0 -#define PVRSRV_TRACE_GROUP_TRANSFER 1 -#define PVRSRV_TRACE_GROUP_QUEUE 2 -#define PVRSRV_TRACE_GROUP_POWER 3 -#define PVRSRV_TRACE_GROUP_MKSYNC 4 - -#define PVRSRV_TRACE_GROUP_PADDING 255 - -/* Trace classes */ -#define PVRSRV_TRACE_CLASS_FUNCTION_ENTER 0 -#define PVRSRV_TRACE_CLASS_FUNCTION_EXIT 1 -#define PVRSRV_TRACE_CLASS_SYNC 2 -#define PVRSRV_TRACE_CLASS_CCB 3 -#define PVRSRV_TRACE_CLASS_CMD_START 4 -#define PVRSRV_TRACE_CLASS_CMD_END 5 -#define PVRSRV_TRACE_CLASS_CMD_COMP_START 6 -#define PVRSRV_TRACE_CLASS_CMD_COMP_END 7 -#define PVRSRV_TRACE_CLASS_FLAGS 8 - -#define PVRSRV_TRACE_CLASS_NONE 255 - -/* Operation about to happen on the sync object */ -#define PVRSRV_SYNCOP_SAMPLE 0 -#define PVRSRV_SYNCOP_COMPLETE 1 -#define PVRSRV_SYNCOP_DUMP 2 - -/* - * Trace tokens - * ------------ - * These only need to unique within a group. - */ - -/* Kick group tokens */ -#define KICK_TOKEN_DOKICK 0 -#define KICK_TOKEN_CCB_OFFSET 1 -#define KICK_TOKEN_TA3D_SYNC 2 -#define KICK_TOKEN_TA_SYNC 3 -#define KICK_TOKEN_3D_SYNC 4 -#define KICK_TOKEN_SRC_SYNC 5 -#define KICK_TOKEN_DST_SYNC 6 -#define KICK_TOKEN_FIRST_KICK 7 -#define KICK_TOKEN_LAST_KICK 8 - -/* Transfer Queue group tokens */ -#define TRANSFER_TOKEN_SUBMIT 0 -#define TRANSFER_TOKEN_TA_SYNC 1 -#define TRANSFER_TOKEN_3D_SYNC 2 -#define TRANSFER_TOKEN_SRC_SYNC 3 -#define TRANSFER_TOKEN_DST_SYNC 4 -#define TRANSFER_TOKEN_CCB_OFFSET 5 - -/* Queue group tokens */ -#define QUEUE_TOKEN_GET_SPACE 0 -#define QUEUE_TOKEN_INSERTKM 1 -#define QUEUE_TOKEN_SUBMITKM 2 -#define QUEUE_TOKEN_PROCESS_COMMAND 3 -#define QUEUE_TOKEN_PROCESS_QUEUES 4 -#define QUEUE_TOKEN_COMMAND_COMPLETE 5 -#define QUEUE_TOKEN_UPDATE_DST 6 -#define QUEUE_TOKEN_UPDATE_SRC 7 -#define QUEUE_TOKEN_SRC_SYNC 8 -#define QUEUE_TOKEN_DST_SYNC 9 -#define QUEUE_TOKEN_COMMAND_TYPE 10 - -/* uKernel Sync tokens */ -#define MKSYNC_TOKEN_KERNEL_CCB_OFFSET 0 -#define MKSYNC_TOKEN_CORE_CLK 1 -#define MKSYNC_TOKEN_UKERNEL_CLK 2 - -#endif /* __TTRACE_TOKENS_H__ */ |