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

📄 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
	
*/



// error codes for CHNL module


#define		TMCHNL_ERR_INVALIDHANDLE		TMERR(TM_STATUS_HCOMP_CHNL,1)
#define		TMCHNL_ERR_MGROBJMALLOCFAIL		TMERR(TM_STATUS_HCOMP_CHNL,2)
#define		TMCHNL_ERR_OBJPTRTABMALLOCFAIL	TMERR(TM_STATUS_HCOMP_CHNL,3)
#define		TMCHNL_ERR_INVALIDPARAM			TMERR(TM_STATUS_HCOMP_CHNL,4)
#define		TMCHNL_ERR_OUTOFCHANNELS		TMERR(TM_STATUS_HCOMP_CHNL,5)
#define		TMCHNL_ERR_CHNLIDOUTOFLIMIT		TMERR(TM_STATUS_HCOMP_CHNL,6)
#define		TMCHNL_ERR_CHNLALREADYALLOCATED	TMERR(TM_STATUS_HCOMP_CHNL,7)
#define		TMCHNL_ERR_OBJALLOCFAIL			TMERR(TM_STATUS_HCOMP_CHNL,8)
#define		TMCHNL_ERR_QUEUECREATEFAIL		TMERR(TM_STATUS_HCOMP_CHNL,9)
#define		TMCHNL_ERR_CHANNELQUEUEFULL		TMERR(TM_STATUS_HCOMP_CHNL,0xa)
#define		TMCHNL_ERR_PACKETCOUNTRANGE		TMERR(TM_STATUS_HCOMP_CHNL,0xb)
#define		TMCHNL_ERR_RECVDPACKQUEUEFAIL	TMERR(TM_STATUS_HCOMP_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;			// direction of transfer
	PVOID	pContainer;		// pointer to MGR_OBJECT
	DWORD	ID;


	PVOID	OnCallback;	// recv callback
	PVOID	pContext;

	// pointer to the packet queue
	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;
	DWORD	IdxSent;		/* last channel for pak sending */ 

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

	PVOID	*pChnlTab;

	/* channel manager statictics data */
	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	DPCEntered; /* check if our deferred procedure call is reentered */
	DWORD	DPCRunning;
	DWORD	DPCScheduled;

}	TMCHNL_MGR_OBJECT,	*PTMCHNL_MGR_OBJECT;

STATUS	chnlValidateHandle ( PVOID pChnl );

⌨️ 快捷键说明

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