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

📄 tmchnl.h

📁 wince host 和 target PCI驱动程序
💻 H
字号:
/*---------------------------------------------------------------------------- 
COPYRIGHT (c) 1995 by Philips Semiconductors

THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED AND COPIED IN 
ACCORDANCE WITH THE TERMS AND CONDITIONS OF SUCH A LICENSE AND WITH THE 
INCLUSION OF THE THIS COPY RIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES 
OF THIS SOFTWARE MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER
PERSON. THE OWNERSHIP AND TITLE OF THIS SOFTWARE IS NOT TRANSFERRED. 

THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT ANY PRIOR NOTICE
AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY Philips Semiconductor. 

PHILIPS ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF THIS SOFTWARE
ON PLATFORMS OTHER THAN THE ONE ON WHICH THIS SOFTWARE IS FURNISHED.
----------------------------------------------------------------------------*/
/*
	HISTORY
	#define	TR	Tilakraj Roy
	960531	TR 	Created
	960610	TR	Pulled in prototyes from IPC
	960619	TR	Moved all public interfces to tmshare.h
	
*/



#define		TMCHNL_ERR_INVALIDHANDLE		TMERR(TM_STATUS_TCOMP_CHNL,1)
#define		TMCHNL_ERR_MGROBJMALLOCFAIL		TMERR(TM_STATUS_TCOMP_CHNL,2)
#define		TMCHNL_ERR_OBJPTRTABMALLOCFAIL	TMERR(TM_STATUS_TCOMP_CHNL,3)
#define		TMCHNL_ERR_INVALIDPARAM			TMERR(TM_STATUS_TCOMP_CHNL,4)
#define		TMCHNL_ERR_OUTOFCHANNELS		TMERR(TM_STATUS_TCOMP_CHNL,5)
#define		TMCHNL_ERR_CHNLIDOUTOFLIMIT		TMERR(TM_STATUS_TCOMP_CHNL,6)
#define		TMCHNL_ERR_CHNLALREADYALLOCATED	TMERR(TM_STATUS_TCOMP_CHNL,7)
#define		TMCHNL_ERR_OBJALLOCFAIL			TMERR(TM_STATUS_TCOMP_CHNL,8)
#define		TMCHNL_ERR_QUEUECREATEFAIL		TMERR(TM_STATUS_TCOMP_CHNL,9)
#define		TMCHNL_ERR_CHANNELQUEUEFULL		TMERR(TM_STATUS_TCOMP_CHNL,0xa)
#define		TMCHNL_ERR_PACKETCOUNTRANGE		TMERR(TM_STATUS_TCOMP_CHNL,0xb)
#define		TMCHNL_ERR_RECVDPACKQUEUEFAIL	TMERR(TM_STATUS_TCOMP_CHNL,0xc)

/* PRIVATE STRUCTURES to CHNL HOST */


#define TMCHNL_CHNL_FLAGINITIALIZED		0x01
#define TMCHNL_CHNL_FLAGALLOCATED		0x02


typedef struct _TMCHNL_OBJECT
{
	DWORD	Size;
	DWORD	Flags;

	BOOL	Direction;			
	PVOID	pContainer;		
	DWORD	ID;

	PVOID	OnCallback;	
	PVOID	pContext;

	PVOID	pQueue; 

	DWORD	PacketCounter;
	
}	TMCHNL_OBJECT, *PTMCHNL_OBJECT;


#define TMCHNL_MGR_FLAGINITIALIZED	0x01

typedef struct _TMCHNL_MGR_OBJECT
{
	DWORD	Size;
	DWORD	Flags;

	PVOID	pContainer;		/* pointer to board object */

	DWORD	AllocatedCount;	/* number of open channels */
	DWORD	ChannelCount;	/* number of chnl manager is going to manage */
	DWORD	IdxSent;

	PVOID	pIPC; 		/* IPC realted information */
	PTMHD_CHNL_SHARED	pSharedData;	/* host - target shared data */

	PVOID	*pChnlTab;		/* array of pointers pointing to channel objects */

	DWORD	DPCReqCount;	/* number of DPCs requested */
	DWORD	DPCAckCount;	/* number of DPCs scheduled */
	DWORD	PktSendCount;	/* packets sent */
	DWORD	PktRecvCount;	/* packets recevied */
	DWORD	PktSendDropCount;/* sent pkts couldn't be queued */
	DWORD	PktRecvDropCount;/* recvd pkts couldn't be queued */
	DWORD	PktRecvInvDirCount;/* recvd pkts with invalid  dir */
	DWORD	PktRecvInvChCount;/* recvd pkts with invalid chnl*/
	DWORD	PktSendSequence;	/* packets sent sequence #*/
	DWORD	PktRecvSequence;	/* packets recv sequence #  */

	DWORD	InchnlmOnPacketSend;/* reentrancy check for chnlmOnPacketSend */
}	TMCHNL_MGR_OBJECT,	*PTMCHNL_MGR_OBJECT;

STATUS	chnlValidateHandle ( PVOID pChnl );
STATUS	chnlmOnPacketRecv ( 
	PVOID pContext, 		/* channel manger pointer */
	PVOID pPacketPointer, 	/* array of pointers to mailslots */
	DWORD PacketCount );	/* number of valid pointers in the array */
STATUS	chnlmOnPacketSend ( 
	PVOID pContext );		/* pointer to the channel manager object */
STATUS	chnlmOnAsyncCallback ( PVOID pContext );


⌨️ 快捷键说明

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