blob: b89e4a4bbb1f2c7b1ecd0f6e1141b7fabee3f6cd [file] [edit]
/*************************************************************************/ /*!
@File tutilsdefs.h
@Title Testing utils bridge defines
@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved
@Description Shared structures and constants between client and server sides
of tutils bridge
@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 TUTILSDEFS_H
#define TUTILSDEFS_H
#include "pvrsrv_tlcommon.h"
#include "pvrsrv_sync_km.h"
/******************************************************************************
*
* TEST Related definitions and constants
*/
#define PVR_TL_TEST_STREAM_BRIDGE_NAME "TLBRIDGE_TEST"
#define PVR_TL_TEST_UMBASE 0x00202000
#define PVR_TL_TEST_OFFSET 0x0008
#define PVR_TL_TEST_LEN 0x0010
#define PVR_TL_TEST_STREAM2_NAME "TLSTREAM2_TEST"
#define PVR_TL_TEST_STREAM2_SIZE 2
#define PVR_TL_TEST_STREAM3_NAME "TLSTREAM3_TEST"
#define PVR_TL_TEST_STREAM3_SIZE 256
// This constant, when used as a parameter in StreamCreate, lessens the size of
// the buffer that is created for a stream, to avoid going over a page boundary.
#define PVR_TL_TEST_STREAM_BUFFER_REDUCTION 32
#define PVR_TL_TEST_CMD_SOURCE_START 10
typedef struct _PVR_TL_TEST_CMD_SOURCE_START_IN_
{
/* Stream name must always be first in struct */
IMG_CHAR pszStreamName[PRVSRVTL_MAX_STREAM_NAME_SIZE];
IMG_UINT16 uiStreamSizeInPages; /* # of 4Kb pages */
IMG_UINT16 uiInterval; /* in milliseconds */
IMG_UINT16 uiCallbackKicks; /* 0 for no limit of timer call backs */
IMG_UINT16 uiEOSMarkerKicks; /* Insert EOS Marker every N Kicks, 0 for none */
IMG_UINT16 uiPacketSizeInBytes; /* 0 for random size between 1..255 size in bytes */
IMG_UINT32 uiStreamCreateFlags; /* See TLStreamCreate() */
IMG_UINT16 uiStartDelay; /* 0 for normal uiInterval delay, one off delay in ms */
IMG_BOOL bDoNotDeleteStream; /* When true the stream is not deleted on self
* cleanup sources only the timers and other resources are */
IMG_BOOL bDelayStreamCreate; /* When true the stream used in the source is created
* in the first kick. False for normal behaviour where
* the stream is created in the bridge source start context */
} PVR_TL_TEST_CMD_SOURCE_START_IN;
#define PVR_TL_TEST_CMD_SOURCE_STOP 11
typedef struct _PVR_TL_TEST_CMD_SOURCE_STOP_IN_
{
/* Stream name must always be first in struct */
IMG_CHAR pszStreamName[PRVSRVTL_MAX_STREAM_NAME_SIZE];
IMG_BOOL bDoNotDeleteStream;
} PVR_TL_TEST_CMD_SOURCE_STOP_IN;
#define PVR_TL_TEST_CMD_SOURCE_START2 12 /* Uses two stage data submit */
typedef PVR_TL_TEST_CMD_SOURCE_START_IN PVR_TL_TEST_CMD_SOURCE_START2_IN;
#define PVR_TL_TEST_CMD_DEBUG_LEVEL 13
/* No typedef, uses integer uiIn1 in union */
#define PVR_TL_TEST_CMD_DUMP_TL_STATE 14
/* No typedef, uses integer uiIn1 in union */
#define PVR_TL_TEST_CMD_STREAM_CREATE 15
typedef struct _PVR_TL_TEST_CMD_STREAM_CREATE_IN_
{
/* Stream name must always be first in struct */
IMG_CHAR pszStreamName[PRVSRVTL_MAX_STREAM_NAME_SIZE];
IMG_UINT16 uiStreamSizeInPages;
IMG_UINT32 uiStreamCreateFlags;
IMG_BOOL bWithOpenCallback;
} PVR_TL_TEST_CMD_STREAM_CREATE_IN;
#define PVR_TL_TEST_CMD_STREAM_CLOSE 16
typedef struct _PVR_TL_TEST_CMD_STREAM_NAME_IN_
{
IMG_CHAR pszStreamName[PRVSRVTL_MAX_STREAM_NAME_SIZE];
} PVR_TL_TEST_CMD_STREAM_NAME_IN;
#define PVR_TL_TEST_CMD_STREAM_OPEN 17
#define PVR_TL_TEST_CMD_DUMP_HWPERF_STATE 18
#define PVR_TL_TEST_CMD_FLUSH_HWPERF_FWBUF 19
#define PVR_TL_TEST_CMD_DUMP_PDUMP_STATE 21
typedef union _PVR_TL_TEST_CMD_IN_
{
PVR_TL_TEST_CMD_SOURCE_START_IN sStart;
PVR_TL_TEST_CMD_SOURCE_STOP_IN sStop;
/* PVR_TL_TEST_CMD_SOURCE_START_IN sStart2; Used by #12, use sStart instead */
IMG_UINT32 uiIn1; /* Used by #13, #14 */
PVR_TL_TEST_CMD_STREAM_CREATE_IN sCreate;
PVR_TL_TEST_CMD_STREAM_NAME_IN sName;
IMG_UINT32 uiParams[6];
} PVR_TL_TEST_CMD_IN;
/* Has to be the largest test IN structure */
#define PVR_TL_TEST_PARAM_MAX_SIZE (sizeof(PVR_TL_TEST_CMD_IN)+4)
#define PVR_TL_TEST_CMD_SET_PWR_STATE 22
#define PVR_TL_TEST_CMD_GET_PWR_STATE 23
#define PVR_TL_TEST_CMD_SET_DWT_PWR_CHANGE_COUNTER 24
#define PVR_TL_TEST_CMD_GET_DWT_PWR_CHANGE_COUNTER 25
#define PVR_TL_TEST_PWR_STATE_ON 1
#define PVR_TL_TEST_PWR_STATE_OFF 0
/****************************************************************************
* PowMonTestThread IOCTL calls and constants
*/
#define PVR_POWMON_CMD_GET_ESTIMATES 1
#define PVR_POWMON_CMD_SET_THREAD_LATENCY 2
#define PVR_POWMON_CMD_TEST_THREAD_UPDATE_STATE 3
#define PVR_POWMON_TEST_THREAD_RESUME 1
#define PVR_POWMON_TEST_THREAD_PAUSE 0
/****************************************************************************
* PowerTestThread IOCTL calls and constants
*/
#define PVR_POWER_TEST_CMD_DVFS 1
#define PVR_POWER_TEST_CMD_FORCED_IDLE 2
#define PVR_POWER_TEST_CMD_CANCEL_FORCED_IDLE 3
#define PVR_POWER_TEST_CMD_POWER_ON 4
#define PVR_POWER_TEST_CMD_POWER_OFF 5
#define PVR_POWER_TEST_CMD_APM_LATENCY 6
#define PVR_POWER_TEST_CMD_INVALID 7
#define PVR_POWER_TEST_NON_FORCED 0
#define PVR_POWER_TEST_FORCED 1
/****************************************************************************
* SyncCheckpointTest IOCTL types
*/
#define PVR_TL_TEST_CMD_SYNC_CHECKPOINT_CONTEXT_CREATE 26
#define PVR_TL_TEST_CMD_SYNC_CHECKPOINT_CONTEXT_DESTROY 27
#define PVR_TL_TEST_CMD_SYNC_CHECKPOINT_REGISTER_FUNCS 28
#define PVR_TL_TEST_CMD_SYNC_CHECKPOINT_CREATE 29
#define PVR_TL_TEST_CMD_SYNC_CHECKPOINT_CREATE_NULL_CTXT 30
#define PVR_TL_TEST_CMD_SYNC_CHECKPOINT_CREATE_NULL_RTRN 31
#define PVR_TL_TEST_CMD_SYNC_CHECKPOINT_DESTROY 32
#define PVR_TL_TEST_CMD_SYNC_CHECKPOINT_SIGNAL 33
#define PVR_TL_TEST_CMD_SYNC_CHECKPOINT_ERROR 34
#define PVR_TL_TEST_CMD_SYNC_CHECKPOINT_IS_SIGNALLED 35
#define PVR_TL_TEST_CMD_SYNC_CHECKPOINT_IS_ERRORED 36
typedef struct _PVR_TL_TEST_CMD_CHECKPOINT_CREATE_IN_
{
/* Checkpoint name must always be first in struct */
IMG_CHAR pszCheckpointName[PVRSRV_SYNC_NAME_LENGTH];
IMG_UINT16 uiStreamSizeInPages;
IMG_UINT32 uiStreamCreateFlags;
} PVR_TL_TEST_CMD_CHECKPOINT_CREATE_IN;
#define PVR_TL_TEST_CMD_SET_STREAM_OPEN_COUNTER 37
#define PVR_TL_TEST_CMD_GET_STREAM_OPEN_COUNTER 38
typedef struct _PVR_TL_TEST_CMD_STREAM_OPEN_COUNTER_IN_
{
IMG_CHAR pszStreamName[PRVSRVTL_MAX_STREAM_NAME_SIZE];
IMG_UINT32 ui32Counter;
} PVR_TL_TEST_CMD_STREAM_OPEN_COUNTER_IN;
/****************************************************************************
* KmallocThreshold IOCTL types
*/
#define PVR_TL_TEST_CMD_KMALLOC 39
typedef struct _PVR_TL_TEST_CMD_KMALLOC_IN_
{
IMG_UINT32 uiAllocCount;
IMG_UINT32 uiAllocSize;
IMG_UINT32 uiFailedAllocThreshold;
IMG_UINT32 uiFailedAllocFrequency;
} PVR_TL_TEST_CMD_KMALLOC_IN;
#endif /* TUTILSDEFS_H */
/******************************************************************************
End of file (tutilsdefs.h)
******************************************************************************/