📄 dp_hardware_dispatcher.h
字号:
/*********************************************************************************
*********************************************************************************
**
** Name : dp_hardware_dispatcher.h
** Title : Header file for Display Pipeline DMA engine interface module
** Created : June 2001
**
** Copyright : 2001 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.
**
** Description : This file contains the enumerations, constant definitions
** and function prototypes used by the API's DMA engine
** interface module.
**
** Platform : Platform independent (modify 'types.h' accordingly)
** $Log: dp_hardware_dispatcher.h $
**
** --- Revision Logs Removed ---
**
*********************************************************************************
*********************************************************************************/
#if !defined (__DP_HARDWARE_DISPATCHER_H__)
#define __DP_HARDWARE_DISPATCHER_H__
typedef enum DP_tag_HardwareAccessMethods
{
DP_HARDWARE_ACCESS_IMMEDIATELY = 0x00,
DP_HARDWARE_ACCESS_WAIT_FOR_VSYNC,
DP_HARDWARE_ACCESS_USE_DISPATCHER
} DP_HardwareAccessMethods;
typedef enum DP_tag_CommandSequenceOperations
{
DP_COMMAND_SEQUENCE_OPERATIONS_SINGLE_COMMAND = 0x00,
DP_COMMAND_SEQUENCE_OPERATIONS_NEW_SEQUENCE,
DP_COMMAND_SEQUENCE_OPERATIONS_ADD_COMMAND,
DP_COMMAND_SEQUENCE_OPERATIONS_SEND_SEQUENCE,
DP_COMMAND_SEQUENCE_OPERATIONS_SEND_IMMEDIATE,
DP_COMMAND_SEQUENCE_OPERATIONS_SEND_ON_VSYNC,
DP_COMMAND_SEQUENCE_OPERATIONS_SINGLE_COMMAND_INSTANT,
DP_COMMAND_SEQUENCE_OPERATIONS_SINGLE_COMMAND_ON_VSYNC
} DP_CommandSequenceOperations;
typedef enum DP_tag_DMABufferStates
{
DP_DMA_BUFFER_STATE_FREE = 0x00,
DP_DMA_BUFFER_STATE_PENDING,
DP_DMA_BUFFER_STATE_SERVICING,
DP_DMA_BUFFER_STATE_LIMBO
} DP_DMABufferStates;
typedef struct DP_tag_QueuedFieldWrite
{
DP_pFieldTarget pasFieldToWrite;
DP_UINT_32 ui32ValueToWrite;
} DP_QueuedFieldWrite, * DP_pQueuedFieldWrite;
extern DP_UINT_32 DP_DispatcherBufferStorage [ 2 * DP_SIZE_OF_DISPATCHER_BUFFER_IN_ENTRIES * (sizeof (DP_QueuedMemoryWrite) / sizeof ( DP_UINT_32)) ];
extern DP_UINT_16 DP_ui16DispatcherBufferSize [ 2 ];
extern DP_DMABufferStates DP_eBufferStates [ 2 ];
extern DP_UINT_8 DP_ui8DispatcherBufferOffset [ 2 ];
/* Function prototypes */
DP_UINT_32 DP_GetField ( const DP_FieldTarget * psSourceField,
DP_UINT_16 * pui16Errors );
DP_BOOL DP_SearchBuffer ( DP_pQueuedMemoryWrite pasBufferToSearch,
DP_UINT_16 ui16SizeOfBuffer,
DP_UINT_32 ui32AddressToSearchFor,
DP_PUINT_32 pui32ValueOfQueuedWrite,
DP_PUINT_16 pui16PositionOfQueuedWrite );
DP_UINT_32 DP_ReadFieldFromHardware ( const DP_FieldTarget * psSourceField );
DP_VOID DP_WriteFieldToAddress ( const DP_FieldTarget * psTargetField,
DP_UINT_32 ui32SourceData,
DP_PUINT_32 pui32TargetAddress );
DP_VOID DP_AddToBuffer ( DP_QueuedFieldWrite sFieldToAdd,
DP_pQueuedMemoryWrite pasBufferToAddTo,
DP_PUINT_16 pui16SizeOfBuffer );
DP_VOID DP_QueueNewDMABuffer ( DP_pQueuedFieldWrite pasQueueToSubmit,
DP_UINT_8 ui8LengthOfQueue );
DP_UINT_16 DP_CommandSequence ( DP_CommandSequenceOperations eOperation,
DP_pFieldTarget pasField,
DP_UINT_32 ui32Value );
DP_UINT_32 DP_ReadFromMemory ( DP_UINT_32 ui32AddressToReadFrom );
DP_VOID DP_WriteToMemory ( DP_UINT_32 ui32AddressToWriteTo,
DP_UINT_32 ui32ValueToWrite );
#if defined DP_SIMULATION_MODE
#define DP_SIMULATION_NO_OF_REGISTERS 0x2000
typedef enum DP_tag_DMAEngineSimulatorModes
{
DP_DMA_ENGINE_SIMULATOR_INITIALISE = 0x00,
DP_DMA_ENGINE_SIMULATOR_START,
DP_DMA_ENGINE_SIMULATOR_END,
DP_DMA_ENGINE_SIMULATOR_INSTANT
} DP_DMAEngineSimulatorModes;
void DP_SimulateDMAEngine ( DP_DMAEngineSimulatorModes eSimulatorMode );
#endif
#endif /* __DP_HARDWARE_DISPATCHER_H__ */
/*--------------------------- End of File --------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -