diff options
Diffstat (limited to 'pvr-source/services4/3rdparty/dc_nohw/dc_nohw.h')
-rwxr-xr-x | pvr-source/services4/3rdparty/dc_nohw/dc_nohw.h | 288 |
1 files changed, 0 insertions, 288 deletions
diff --git a/pvr-source/services4/3rdparty/dc_nohw/dc_nohw.h b/pvr-source/services4/3rdparty/dc_nohw/dc_nohw.h deleted file mode 100755 index 403361f..0000000 --- a/pvr-source/services4/3rdparty/dc_nohw/dc_nohw.h +++ /dev/null @@ -1,288 +0,0 @@ -/*************************************************************************/ /*! -@Title Dummy 3rd party display driver structures and prototypes -@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. -*/ /**************************************************************************/ - -/************************************************************************** - The 3rd party driver is a specification of an API to integrate the - IMG PowerVR Services driver with 3rd Party display hardware. - It is NOT a specification for a display controller driver, rather a - specification to extend the API for a pre-existing driver for the display hardware. - - The 3rd party driver interface provides IMG PowerVR client drivers (e.g. PVR2D) - with an API abstraction of the system's underlying display hardware, allowing - the client drivers to indirectly control the display hardware and access its - associated memory. - - Functions of the API include - - - query primary surface attributes (width, height, stride, pixel format, - CPU physical and virtual address) - - swap/flip chain creation and subsequent query of surface attributes - - asynchronous display surface flipping, taking account of asynchronous - read (flip) and write (render) operations to the display surface - - Note: having queried surface attributes the client drivers are able to map - the display memory to any IMG PowerVR Services device by calling - PVRSRVMapDeviceClassMemory with the display surface handle. - - This code is intended to be an example of how a pre-existing display driver - may be extended to support the 3rd Party Display interface to - PowerVR Services - IMG is not providing a display driver implementation - **************************************************************************/ - -#ifndef __DC_NOHW_H__ -#define __DC_NOHW_H__ - - -#if defined(__cplusplus) -extern "C" { -#endif - -#if defined(USE_BASE_VIDEO_FRAMEBUFFER) -#if defined (ENABLE_DISPLAY_MODE_TRACKING) -#error Cannot have both USE_BASE_VIDEO_FRAMEBUFFER and ENABLE_DISPLAY_MODE_TRACKING defined -#endif -#endif - -#if !defined(DC_NOHW_BUFFER_WIDTH) && !defined(DC_NOHW_BUFFER_HEIGHT) -/* Default buffer size */ -#define DC_NOHW_BUFFER_WIDTH 320 -#define DC_NOHW_BUFFER_HEIGHT 240 -#endif - -#define DC_NOHW_BUFFER_BIT_DEPTH 32 -#define DC_NOHW_BUFFER_PIXEL_FORMAT PVRSRV_PIXEL_FORMAT_ARGB8888 - -#define DC_NOHW_DEPTH_BITS_PER_BYTE 8 - -#define dc_nohw_byte_depth_from_bit_depth(bit_depth) (((IMG_UINT32)(bit_depth) + DC_NOHW_DEPTH_BITS_PER_BYTE - 1)/DC_NOHW_DEPTH_BITS_PER_BYTE) -#define dc_nohw_bit_depth_from_byte_depth(byte_depth) ((IMG_UINT32)(byte_depth) * DC_NOHW_DEPTH_BITS_PER_BYTE) -#define dc_nohw_roundup_bit_depth(bd) dc_nohw_bit_depth_from_byte_depth(dc_nohw_byte_depth_from_bit_depth(bd)) - -#define dc_nohw_byte_stride(width, bit_depth) ((IMG_UINT32)(width) * dc_nohw_byte_depth_from_bit_depth(bit_depth)) - -#if defined(DC_NOHW_GET_BUFFER_DIMENSIONS) -IMG_BOOL GetBufferDimensions(IMG_UINT32 *pui32Width, IMG_UINT32 *pui32Height, PVRSRV_PIXEL_FORMAT *pePixelFormat, IMG_UINT32 *pui32Stride); -#else -#define DC_NOHW_BUFFER_BYTE_STRIDE dc_nohw_byte_stride(DC_NOHW_BUFFER_WIDTH, DC_NOHW_BUFFER_BIT_DEPTH) -#endif - -extern IMG_BOOL IMG_IMPORT PVRGetDisplayClassJTable(PVRSRV_DC_DISP2SRV_KMJTABLE *psJTable); - -#define DC_NOHW_MAXFORMATS (1) -#define DC_NOHW_MAXDIMS (1) -#define DC_NOHW_MAX_BACKBUFFERS (3) - - -typedef void * DC_HANDLE; - -typedef struct DC_NOHW_BUFFER_TAG -{ - DC_HANDLE hSwapChain; - DC_HANDLE hMemChunk; - - /* member using IMG structures to minimise API function code */ - /* replace with own structures where necessary */ -#if defined(DC_NOHW_DISCONTIG_BUFFERS) - IMG_SYS_PHYADDR *psSysAddr; -#else - IMG_SYS_PHYADDR sSysAddr; -#endif - IMG_DEV_VIRTADDR sDevVAddr; - IMG_CPU_VIRTADDR sCPUVAddr; - PVRSRV_SYNC_DATA* psSyncData; - - struct DC_NOHW_BUFFER_TAG *psNext; -} DC_NOHW_BUFFER; - - -/* DC_NOHW buffer structure */ -typedef struct DC_NOHW_SWAPCHAIN_TAG -{ - unsigned long ulBufferCount; - DC_NOHW_BUFFER *psBuffer; -} DC_NOHW_SWAPCHAIN; - - -/* kernel device information structure */ -typedef struct DC_NOHW_DEVINFO_TAG -{ - unsigned int uiDeviceID; - - /* system surface info */ - DC_NOHW_BUFFER sSystemBuffer; - - /* number of supported display formats */ - unsigned long ulNumFormats; - - /* number of supported display dims */ - unsigned long ulNumDims; - - /* jump table into PVR services */ - PVRSRV_DC_DISP2SRV_KMJTABLE sPVRJTable; - - /* jump table into DC */ - PVRSRV_DC_SRV2DISP_KMJTABLE sDCJTable; - - /* - handle for connection to kernel services - - OS specific - may not be required - */ - DC_HANDLE hPVRServices; - - /* back buffer info */ - DC_NOHW_BUFFER asBackBuffers[DC_NOHW_MAX_BACKBUFFERS]; - - /* ref count */ - unsigned long ulRefCount; - - DC_NOHW_SWAPCHAIN *psSwapChain; - - /* member using IMG structures to minimise API function code */ - /* replace with own structures where necessary */ - DISPLAY_INFO sDisplayInfo; - - /* system surface info */ - DISPLAY_FORMAT sSysFormat; - DISPLAY_DIMS sSysDims; - IMG_UINT32 ui32BufferSize; - - /* list of supported display formats */ - DISPLAY_FORMAT asDisplayFormatList[DC_NOHW_MAXFORMATS]; - - /* list of supported display formats */ - DISPLAY_DIMS asDisplayDimList[DC_NOHW_MAXDIMS]; - - /* back buffer info */ - DISPLAY_FORMAT sBackBufferFormat[DC_NOHW_MAXFORMATS]; - -} DC_NOHW_DEVINFO; - - -/*! - ***************************************************************************** - * Error values - *****************************************************************************/ -typedef enum _DC_ERROR_ -{ - DC_OK = 0, - DC_ERROR_GENERIC = 1, - DC_ERROR_OUT_OF_MEMORY = 2, - DC_ERROR_TOO_FEW_BUFFERS = 3, - DC_ERROR_INVALID_PARAMS = 4, - DC_ERROR_INIT_FAILURE = 5, - DC_ERROR_CANT_REGISTER_CALLBACK = 6, - DC_ERROR_INVALID_DEVICE = 7, - DC_ERROR_DEVICE_REGISTER_FAILED = 8 -} DC_ERROR; - - -#ifndef UNREFERENCED_PARAMETER -#define UNREFERENCED_PARAMETER(param) (param) = (param) -#endif - -DC_ERROR Init(void); -DC_ERROR Deinit(void); - -#if defined(USE_BASE_VIDEO_FRAMEBUFFER) || defined (ENABLE_DISPLAY_MODE_TRACKING) -DC_ERROR OpenMiniport(void); -DC_ERROR CloseMiniport(void); -#endif /* #if defined(USE_BASE_VIDEO_FRAMEBUFFER) || defined (ENABLE_DISPLAY_MODE_TRACKING) */ - -#if defined(USE_BASE_VIDEO_FRAMEBUFFER) -PVRSRV_ERROR SetupDevInfo (DC_NOHW_DEVINFO *psDevInfo); -PVRSRV_ERROR FreeBackBuffers (DC_NOHW_DEVINFO *psDevInfo); -#endif - -#if defined (ENABLE_DISPLAY_MODE_TRACKING) -DC_ERROR Shadow_Desktop_Resolution(DC_NOHW_DEVINFO *psDevInfo); -#endif /* #if defined (ENABLE_DISPLAY_MODE_TRACKING) */ - -#if !defined(DC_NOHW_DISCONTIG_BUFFERS) && !defined(USE_BASE_VIDEO_FRAMEBUFFER) -IMG_SYS_PHYADDR CpuPAddrToSysPAddr(IMG_CPU_PHYADDR cpu_paddr); -IMG_CPU_PHYADDR SysPAddrToCpuPAddr(IMG_SYS_PHYADDR sys_paddr); -#endif - -/* OS Specific APIs */ -DC_ERROR OpenPVRServices (DC_HANDLE *phPVRServices); -DC_ERROR ClosePVRServices (DC_HANDLE hPVRServices); - -#if defined(DC_NOHW_DISCONTIG_BUFFERS) -DC_ERROR AllocDiscontigMemory(unsigned long ulSize, - DC_HANDLE * phMemChunk, - IMG_CPU_VIRTADDR *pLinAddr, - IMG_SYS_PHYADDR **pPhysAddr); - -void FreeDiscontigMemory(unsigned long ulSize, - DC_HANDLE hMemChunk, - IMG_CPU_VIRTADDR LinAddr, - IMG_SYS_PHYADDR *pPhysAddr); -#else - - - -DC_ERROR AllocContigMemory(unsigned long ulSize, - DC_HANDLE * phMemHandle, - IMG_CPU_VIRTADDR *pLinAddr, - IMG_CPU_PHYADDR *pPhysAddr); - -void FreeContigMemory(unsigned long ulSize, - DC_HANDLE hMemChunk, - IMG_CPU_VIRTADDR LinAddr, - IMG_CPU_PHYADDR PhysAddr); - - -#endif - -void *AllocKernelMem(unsigned long ulSize); -void FreeKernelMem (void *pvMem); - -DC_ERROR GetLibFuncAddr (DC_HANDLE hExtDrv, char *szFunctionName, PFN_DC_GET_PVRJTABLE *ppfnFuncTable); - -#if defined(__cplusplus) -} -#endif - -#endif /* __DC_NOHW_H__ */ - -/****************************************************************************** - End of file (dc_nohw.h) -******************************************************************************/ - |