📄 pvr_bridge.h
字号:
/*!****************************************************************************
@File pvr_bridge.h
@Title PVR Bridge Functionality
@Author Imagination Technologies
@date 10/9/2003
@Copyright Copyright 2003-2004 by Imagination Technologies Limited.
All rights reserved. No part of this software, either
material or conceptual may be copied or distributed,
transmitted, transcribed, stored in a retrieval system
or translated into any human or computer language in any
form by any means, electronic, mechanical, manual or
other-wise, or disclosed to third parties without the
express written permission of Imagination Technologies
Limited, Unit 8, HomePark Industrial Estate,
King's Langley, Hertfordshire, WD4 8LZ, U.K.
@Platform generic
@Description Header for the PVR Brdige code
@DoxygenVer
******************************************************************************/
/******************************************************************************
Modifications :-
$Log: pvr_bridge.h $
*****************************************************************************/
#if defined (__cplusplus)
extern "C" {
#endif
/*
* Bridge Cmd Ids
*/
#ifdef UNDER_CE
#define PVRSRV_BRIDGE_BASE (100000+2000) /*!< WinCE bridge base index */
#else
#define PVRSRV_BRIDGE_BASE 0x00000000 /*!< general bridge base index */
#endif
#define PVRSRV_BRIDGE_ENUM_DEVICES (PVRSRV_BRIDGE_BASE + 0x00000000) /*!< enumerate device bridge index */
#define PVRSRV_BRIDGE_ACQUIRE_DEVICEINFO (PVRSRV_BRIDGE_BASE + 0x00000001) /*!< acquire device data bridge index */
#define PVRSRV_BRIDGE_RELEASE_DEVICEINFO (PVRSRV_BRIDGE_BASE + 0x00000002) /*!< release device data bridge index */
#define PVRSRV_BRIDGE_ALLOC_DEVICEMEM (PVRSRV_BRIDGE_BASE + 0x00000003) /*!< alloc device memory bridge index */
#define PVRSRV_BRIDGE_FREE_DEVICEMEM (PVRSRV_BRIDGE_BASE + 0x00000004) /*!< free device memory bridge index */
#define PVRSRV_BRIDGE_GETFREE_DEVICEMEM (PVRSRV_BRIDGE_BASE + 0x00000005) /*!< get free device memory bridge index */
#define PVRSRV_BRIDGE_CREATE_PARAMBUFF (PVRSRV_BRIDGE_BASE + 0x00000006) /*!< create PB bridge index */
#define PVRSRV_BRIDGE_DESTROY_PARAMBUFF (PVRSRV_BRIDGE_BASE + 0x00000007) /*!< destroy PB bridge index */
#define PVRSRV_BRIDGE_ADD_RENDERTARGET (PVRSRV_BRIDGE_BASE + 0x00000008) /*!< add RT bridge index */
#define PVRSRV_BRIDGE_REMOVE_RENDERTARGET (PVRSRV_BRIDGE_BASE + 0x00000009) /*!< remove RT bridge index */
#define PVRSRV_BRIDGE_CREATE_COMMANDQUEUE (PVRSRV_BRIDGE_BASE + 0x0000000A) /*!< create Cmd Q bridge index */
#define PVRSRV_BRIDGE_DESTROY_COMMANDQUEUE (PVRSRV_BRIDGE_BASE + 0x0000000B) /*!< destroy Cmd Q bridge index */
#define PVRSRV_BRIDGE_ACQUIRE_PRIMARY (PVRSRV_BRIDGE_BASE + 0x0000000C) /*!< acquire primary bridge index */
#define PVRSRV_BRIDGE_QUERY_PRIMARY (PVRSRV_BRIDGE_BASE + 0x0000000D) /*!< query primary bridge index */
#define PVRSRV_BRIDGE_RELEASE_PRIMARY (PVRSRV_BRIDGE_BASE + 0x0000000E) /*!< release primary bridge index */
#define PVRSRV_BRIDGE_REGISTER_PRIMARY (PVRSRV_BRIDGE_BASE + 0x0000000F) /*!< register primary bridge index */
#define PVRSRV_BRIDGE_UNMAPMEMORY (PVRSRV_BRIDGE_BASE + 0x00000010) /*!< unmap memory bridge index */
#define PVRSRV_BRIDGE_CONNECT_SERVICES (PVRSRV_BRIDGE_BASE + 0x00000011) /*!< services connect bridge index */
#define PVRSRV_BRIDGE_PDUMP (PVRSRV_BRIDGE_BASE + 0x00000012) /*!< pdump bridge index */
#define PVRSRV_BRIDGE_MPEGCONNECT (PVRSRV_BRIDGE_BASE + 0x00000013) /*!< mpeg connect bridge index */
#define PVRSRV_BRIDGE_WRAP_DEVICE_MEM (PVRSRV_BRIDGE_BASE + 0x00000014) /*!< wrap device memory bridge index */
#define PVRSRV_BRIDGE_MUTEX_TABLE (PVRSRV_BRIDGE_BASE + 0x00000015)
#ifdef SUPPORT_3D_BLIT
#define PVRSRV_BRIDGE_INIT_OVL_BLIT_RSC (PVRSRV_BRIDGE_BASE + 0x00000016) /*!< Init Overlay Blit resources */
#define PVRSRV_BRIDGE_DEINIT_OVL_BLIT_RSC (PVRSRV_BRIDGE_BASE + 0x00000017) /*!< De-init Overlay Blit resources */
#endif
#define PVRSRV_BRIDGE_GET_FB_STATS (PVRSRV_BRIDGE_BASE + 0x00000018) /*!< Get FB memory stats */
/****************************************************************************
* Generic bridge structures
****************************************************************************/
/*!
*****************************************************************************
* bridge return structure
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_RETURN_TAG {
PVRSRV_ERROR eError;
IMG_VOID *pvData;
}PVRSRV_BRIDGE_RETURN;
/*!
*****************************************************************************
* bridge packaging structure
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_PACKAGE_TAG {
IMG_UINT32 ui32BridgeID; /*!< ioctl/drvesc index */
IMG_UINT32 ui32Size; /*!< size of structure */
IMG_VOID *pvParamIn; /*!< input data buffer */
IMG_UINT32 ui32InBufferSize; /*!< size of input data buffer */
IMG_VOID *pvParamOut; /*!< output data buffer */
IMG_UINT32 ui32OutBufferSize; /*!< size of output data buffer */
}PVRSRV_BRIDGE_PACKAGE;
/*****************************************************************************
* Input structures for IOCTL/DRVESC
*****************************************************************************/
/*!
*****************************************************************************
* `bridge in' acquire device info
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_ACQUIRE_DEVICEINFO_TAG {
IMG_UINT32 uiDevIndex;
PVRSRV_DEVICE_TYPE eDeviceType;
} PVRSRV_BRIDGE_IN_ACQUIRE_DEVICEINFO;
/*!
*****************************************************************************
* `bridge in' alloc device memory
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM_TAG{
PVRSRV_DEV_INFO *psDevInfo;
IMG_UINT32 ui32Flags;
IMG_UINT32 ui32Size;
IMG_UINT32 ui32Alignment;
}PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM;
/*!
*****************************************************************************
* `bridge in' free device memory
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_FREEDEVICEMEM_TAG{
PVRSRV_DEV_INFO *psDevInfo;
PVRSRV_MEM_INFO *psMemInfo;
}PVRSRV_BRIDGE_IN_FREEDEVICEMEM;
/*!
*****************************************************************************
* `bridge in' get free device memory
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_GETFREEDEVICEMEM_TAG
{
PVRSRV_DEV_INFO *psDevInfo;
IMG_UINT32 ui32Flags;
} PVRSRV_BRIDGE_IN_GETFREEDEVICEMEM;
/*!
*****************************************************************************
* `bridge in' create primary
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_CREATEPARAMBUFF_TAG {
PVRSRV_DEV_INFO *psDevInfo;
IMG_UINT32 ui32ParamBuffSize;
}PVRSRV_BRIDGE_IN_CREATEPARAMBUFF;
/*!
*****************************************************************************
* `bridge in' add RT
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_ADDRENDERTARGET_TAG {
PVRSRV_DEV_INFO *psDevInfo;
IMG_UINT32 ui32Width;
IMG_UINT32 ui32Height;
IMG_UINT32 ui32AAFlags;
}PVRSRV_BRIDGE_IN_ADDRENDERTARGET;
/*!
*****************************************************************************
* `bridge in' remove RT
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_REMOVERENDERTARGET_TAG {
PVRSRV_DEV_INFO *psDevInfo;
PVRSRV_TARENDERINFO *psTARenderInfo;
}PVRSRV_BRIDGE_IN_REMOVERENDERTARGET;
/*!
*****************************************************************************
* `bridge in' create Cmd Q
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_CREATECOMMANDQUEUE_TAG {
PVRSRV_DEV_INFO *psDevInfo;
IMG_UINT32 ui32QueueSize;
}PVRSRV_BRIDGE_IN_CREATECOMMANDQUEUE;
/*!
*****************************************************************************
* `bridge in' destroy Cmd Q
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_DESTROYCOMMANDQUEUE_TAG {
PVRSRV_DEV_INFO *psDevInfo;
PVRSRV_QUEUE_INFO *psQueueInfo;
}PVRSRV_BRIDGE_IN_DESTROYCOMMANDQUEUE;
/*!
*****************************************************************************
* `bridge in' acquire Primary
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_ACQUIREPRIMARY_TAG {
PVRSRV_DEV_INFO *psDevInfo;
IMG_UINT32 ui32Flags;
IMG_UINT32 ui32PixelWidth;
IMG_UINT32 ui32PixelHeight;
PVRSRV_PIXEL_FORMAT ePixelFormat;
}PVRSRV_BRIDGE_IN_ACQUIREPRIMARY;
/*!
*****************************************************************************
* `bridge in' release primary
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_RELEASEPRIMARY_TAG {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -