⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tmif.h

📁 wince host 和 target PCI驱动程序
💻 H
字号:
/*
	tmif.h

	950928	TR	Created.
	960610	TR	Major revamp to include all the new tmman interfaces.

*/

#ifdef __cplusplus
extern "C" {
#endif


#define     tmmanIOCTLCode(f,m)                 \
    CTL_CODE ( FILE_DEVICE_UNKNOWN, 0x800 | ( f), (m) , FILE_ANY_ACCESS )


// functions that map directly to the tmman interace
#define	constIOCTLtmmanNegotiateVersion		tmmanIOCTLCode( 0x01, METHOD_BUFFERED )

#define	constIOCTLtmmanDSPGetNum			tmmanIOCTLCode( 0x10, METHOD_BUFFERED )
#define	constIOCTLtmmanDSPOpen				tmmanIOCTLCode( 0x11, METHOD_BUFFERED )
#define	constIOCTLtmmanDSPClose				tmmanIOCTLCode( 0x12, METHOD_BUFFERED )
#define	constIOCTLtmmanDSPLoad				tmmanIOCTLCode( 0x13, METHOD_BUFFERED )
#define	constIOCTLtmmanDSPStart				tmmanIOCTLCode( 0x14, METHOD_BUFFERED )
#define	constIOCTLtmmanDSPStop				tmmanIOCTLCode( 0x15, METHOD_BUFFERED )
#define	constIOCTLtmmanDSPReset				tmmanIOCTLCode( 0x16, METHOD_BUFFERED )
#define	constIOCTLtmmanDSPInfo				tmmanIOCTLCode( 0x17, METHOD_BUFFERED )
#define	constIOCTLtmmanDSPStatus			tmmanIOCTLCode( 0x18, METHOD_BUFFERED )
#define	constIOCTLtmmanDSPGetInternalInfo	tmmanIOCTLCode( 0x19, METHOD_BUFFERED )
#define	constIOCTLtmmanDSPSetInternalInfo	tmmanIOCTLCode( 0x1a, METHOD_BUFFERED )
#define	constIOCTLtmmanDSPGetEndianess		tmmanIOCTLCode( 0x1b, METHOD_BUFFERED )

#define	constIOCTLtmmanMessageCreate		tmmanIOCTLCode( 0x30, METHOD_BUFFERED )
#define	constIOCTLtmmanMessageDestroy		tmmanIOCTLCode( 0x31, METHOD_BUFFERED )
#define	constIOCTLtmmanMessageSend			tmmanIOCTLCode( 0x32, METHOD_BUFFERED )
#define	constIOCTLtmmanMessageReceive		tmmanIOCTLCode( 0x33, METHOD_BUFFERED )
#define	constIOCTLtmmanMessageBlock			tmmanIOCTLCode( 0x34, METHOD_BUFFERED )

#define	constIOCTLtmmanSharedMemoryCreate	tmmanIOCTLCode( 0x40, METHOD_BUFFERED )
#define	constIOCTLtmmanSharedMemoryDestroy	tmmanIOCTLCode( 0x41, METHOD_BUFFERED )
#define	constIOCTLtmmanSharedMemoryOpen		tmmanIOCTLCode( 0x42, METHOD_BUFFERED )
#define	constIOCTLtmmanSharedMemoryClose	tmmanIOCTLCode( 0x43, METHOD_BUFFERED )
#define	constIOCTLtmmanSharedMemoryGetAddress	tmmanIOCTLCode( 0x44, METHOD_BUFFERED )

#define	constIOCTLtmmanSGBufferCreate		tmmanIOCTLCode( 0x50, METHOD_BUFFERED )
#define	constIOCTLtmmanSGBufferDestroy		tmmanIOCTLCode( 0x51, METHOD_BUFFERED )
#define	constIOCTLtmmanSGBufferOpen			tmmanIOCTLCode( 0x52, METHOD_BUFFERED )
#define	constIOCTLtmmanSGBufferClose		tmmanIOCTLCode( 0x53, METHOD_BUFFERED )
#define	constIOCTLtmmanSGBufferFirstBlock	tmmanIOCTLCode( 0x54, METHOD_BUFFERED )
#define	constIOCTLtmmanSGBufferNextBlock	tmmanIOCTLCode( 0x55, METHOD_BUFFERED )
#define	constIOCTLtmmanSGBufferCopy			tmmanIOCTLCode( 0x56, METHOD_BUFFERED )

#define	constIOCTLtmmanNameSpaceCreate		tmmanIOCTLCode( 0x60, METHOD_BUFFERED )
#define	constIOCTLtmmanNameSpaceDestroy		tmmanIOCTLCode( 0x61, METHOD_BUFFERED )
#define	constIOCTLtmmanNameSpaceOpen		tmmanIOCTLCode( 0x62, METHOD_BUFFERED )
#define	constIOCTLtmmanNameSpaceClose		tmmanIOCTLCode( 0x63, METHOD_BUFFERED )

#define	constIOCTLtmmanGetParameter			tmmanIOCTLCode( 0x70, METHOD_BUFFERED )
#define	constIOCTLtmmanSetParameter			tmmanIOCTLCode( 0x71, METHOD_BUFFERED )

#define	constIOCTLtmmanStreamCreate			tmmanIOCTLCode( 0x80, METHOD_BUFFERED )
#define	constIOCTLtmmanStreamDestroy		tmmanIOCTLCode( 0x81, METHOD_BUFFERED )
#define	constIOCTLtmmanPosition				tmmanIOCTLCode( 0x82, METHOD_BUFFERED )
#define	constIOCTLtmmanAddBuffer			tmmanIOCTLCode( 0x83, METHOD_BUFFERED )

#define	constIOCTLtmmanGetDebugDPBuffers	tmmanIOCTLCode( 0x90, METHOD_BUFFERED )
#define	constIOCTLtmmanGetDebugHostBuffers	tmmanIOCTLCode( 0x91, METHOD_BUFFERED )
#define	constIOCTLtmmanGetDebugTargetBuffers	tmmanIOCTLCode( 0x92, METHOD_BUFFERED )
#define	constIOCTLtmmanDebugPrintf		tmmanIOCTLCode( 0x93, METHOD_BUFFERED )

#define	constIOCTLtmmanEventCreate			tmmanIOCTLCode( 0xa0, METHOD_BUFFERED )
#define	constIOCTLtmmanEventDestroy			tmmanIOCTLCode( 0xa1, METHOD_BUFFERED )
#define	constIOCTLtmmanEventSignal			tmmanIOCTLCode( 0xa2, METHOD_BUFFERED )
#define	constIOCTLtmmanEventBlock			tmmanIOCTLCode( 0xa3, METHOD_BUFFERED )

#define	constIOCTLtmmanXlateAdapterAddress1	tmmanIOCTLCode( 0xb0, METHOD_OUT_DIRECT )
#define	constIOCTLtmmanXlateAdapterAddress2	tmmanIOCTLCode( 0xb1, METHOD_BUFFERED )
#define	constIOCTLtmmanMapSDRAM				tmmanIOCTLCode( 0xb2, METHOD_BUFFERED )
#define	constIOCTLtmmanUnmapSDRAM			tmmanIOCTLCode( 0xb3, METHOD_BUFFERED )

// functions that do not directly map to the tmman intterface

//
//			STRUCTURES REQURIED FOR API MARSHALING
//

typedef	struct tagtmifGenericFunction
{
	OUT	TMStatus		Status;
	IN	UInt32			Handle;
}	tmifGenericFunction;

typedef	struct tagtmifNegotiateVersion
{
	OUT	TMStatus		Status;
	IN	UInt32			ModuleID;
	tmmanVersion		Version;
}	tmifNegotiateVersion;

typedef	struct tagtmifDSPNum
{
	OUT	TMStatus	Status;
	OUT	UInt32	DSPCount;
}	tmifDSPNum;

typedef	struct tagtmifDSPOpen
{
	OUT	TMStatus	Status;
	IN	UInt32	DSPNumber;
	OUT	UInt32	DSPHandle;

}	tmifDSPOpen;

typedef	struct tagtmifDSPInternalInfo
{
	OUT	TMStatus				Status;
	IN	UInt32					DSPHandle;
	OUT	tmmanDSPInternalInfo	Info;
}	tmifDSPInternalInfo;

typedef	struct tagtmifDSPStatus
{
	OUT	TMStatus	Status;
	IN	UInt32	DSPHandle;
	OUT	UInt32	DSPStatus;
}	tmifDSPStatus;

typedef	struct tagtmifDSPInfo
{
	OUT	TMStatus		Status;
	IN	UInt32			DSPHandle;
	OUT	tmmanDSPInfo	Info;
}	tmifDSPInfo;

typedef	struct tagtmifDSPEndianess
{
	OUT	TMStatus		Status;
	IN	UInt32			DSPHandle;
	OUT	UInt32			Endianess;
}	tmifDSPEndianess;


/* CLOSE -> Generic */

typedef	struct tagtmifDSPLoad
{
	OUT	TMStatus	Status;
	IN	UInt32		DSPHandle;
	IN	UInt32		Endianess;
	IN	UInt32		PeerMajorVersion;
	IN	UInt32		PeerMinorVersion;
}	tmifDSPLoad;

/* RUN , STOP , RESET -> Generic */

typedef struct tagtmifMessageCreate
{
	OUT	TMStatus	Status;
	IN	UInt32		DSPHandle;
	IN	UInt8		Name[constTMManNameSpaceNameLength];
	IN	UInt32		SynchObject;
	IN	UInt32		SynchFlags;
	OUT	UInt32		MessageHandle;						
}	tmifMessageCreate;

typedef struct tagtmifMessageSR
{
	OUT	TMStatus	Status;
	IN	UInt32	MessageHandle;
	IN	UInt8	Packet[constTMManPacketSize];
}	tmifMessageSR;

/* MSGDESTROY -> Generic */

typedef struct tagtmifEventCreate
{
	OUT	TMStatus	Status;
	IN	UInt32		DSPHandle;
	IN	UInt8		Name[constTMManNameSpaceNameLength];
	IN	UInt32		SynchObject;
	IN	UInt32		SynchFlags;
	OUT	UInt32		EventHandle;						
}	tmifEventCreate;

/* EVENTSIGNAL, EVENTDESTROY ->Generic */

typedef struct tagtmifSharedMemoryCreate
{
	OUT	TMStatus	Status;
	IN	UInt32		DSPHandle;
	IN	UInt8		Name[constTMManNameSpaceNameLength];
	IN	UInt32		Size;
	OUT	Pointer		Address;
	OUT	Pointer		PhysicalAddress;
	OUT	UInt32		SharedMemoryHandle;
}	tmifSharedMemoryCreate;

typedef struct tagtmifSharedMemoryAddress
{
	OUT	TMStatus	Status;
	IN	UInt32		SharedMemoryHandle;
	OUT	UInt32		PhysicalAddress;
}	tmifSharedMemoryAddress;


/* SHMEMDESTROY - > GENERIC */

typedef struct tagtmifSGBufferCreate
{
	OUT	TMStatus	Status;
	IN	UInt32		DSPHandle;
	IN	UInt8		Name[constTMManNameSpaceNameLength];
	IN	UInt32		MappedAddress;
	IN	UInt32		Size;
	IN	UInt32		Flags;
	OUT	UInt32		SGBufferHandle;
}	tmifSGBufferCreate;

/* BUFFERDESTROY -> Generic */

typedef struct tagtmifDebugBuffers
{
	OUT	TMStatus	Status;
	IN	UInt32		DSPHandle;
	OUT	UInt8*		FirstHalfPtr;
	OUT	UInt32		FirstHalfSize; 
	OUT UInt8*		SecondHalfPtr;
	OUT	UInt32		SecondHalfSize;
}	tmifDebugBuffers;

#ifdef __cplusplus
};
#endif	/* __cplusplus */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -