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

📄 tmshare.h

📁 wince host 和 target PCI驱动程序
💻 H
字号:
/*
	tmshare.h
	contains the data structures that are common to all objects 



	960417 TR Created from tmstd.h
	961906 TR Modified to contain all the punlicly callable interfaces 
				for data hiding and abstraction.
*/

/* this is the driver extension object specific to TM */
typedef struct	_INIT_OBJECT
{
	DWORD	dwUserBufferSize;
	DWORD	dwTotalBufferSize;
	DWORD	dwMaximumBoards;
	DWORD	dwDisableHal;
	DWORD	dwSDRAMSize;
	BYTE	szFriendlyName[80];
	DWORD	dwDBGLevelBitmap;
	DWORD	dwDBGType;
	DWORD	dwTargetDBGLevel;
	DWORD	dwPrinterPort;
	DWORD	dwPrinterDongle;
	DWORD	dwHardReset;
	DWORD	InteractiveMode;
	DWORD	dwDisablePnP;
	DWORD	dwBufferMaxCount;
	BYTE	szIniPath[256];
}	INIT_OBJECT, *PINIT_OBJECT;

/* 	tmboard.h */
STATUS	boardGetCaps ( PVOID Object, PVOID ObjectCaps );
STATUS	boardParameterDWORDSet ( PVOID pBoard, DWORD ID, DWORD Value );
STATUS	boardParameterDWORDGet ( PVOID pBoard, DWORD ID, PDWORD pValue );
STATUS	boardCreate ( PVOID pConfig,  PVOID *ppBoard );
STATUS	boardDestroy ( PVOID pBoard );
STATUS	boardOpen ( PVOID Object );
STATUS	boardClose ( PVOID Object );
STATUS	boardReset ( PVOID Object );
STATUS	boardImageLoad ( PVOID pBoard, DWORD PhysLoadAddr, DWORD Size,
	PVOID	pImageAddr, DWORD ArgC, PCHAR *ArgV );
STATUS	boardImageRun ( PVOID pBoard, DWORD PhysStartAddr );
STATUS	boardImageStop ( PVOID pBoard );
STATUS	boardGetMiscInfo ( PVOID pBoard, PVOID pDSPInfo );
STATUS	boardSetMiscInfo( PVOID pBoard, PVOID pInfo );
STATUS	boardGetStatus( PVOID pBoard, PDWORD pdwStatus );

PVOID	GetDevNodeObject ( PVOID );
PVOID	GetHALObject ( PVOID );
PVOID	GetIPCObject ( PVOID );
PVOID	GetTaskMgrObject ( PVOID );
PVOID	GetChnlMgrObject ( PVOID );
PVOID	GetStrmMgrObject ( PVOID );
PVOID	GetMsgMgrObject ( PVOID );
PVOID	GetShMemObject ( PVOID );
PVOID	GetBufferMgrObject ( PVOID );



/* tmpnp.h */
typedef struct _TMPNP_CONFIG
{
	WORD	wVendorID;
	WORD	wDeviceID;
	BYTE	bBusNum;
	BYTE	bDevFuncNum;
	BYTE	bIRQ;
	BYTE	bRevision;
	DWORD	dwSubsystemID;
	DWORD	dwDevNode;
	DWORD	dwMMIOBase;
	DWORD	dwMMIOLength;
	DWORD	dwSDRAMBase;
	DWORD	dwSDRAMLength;
	
}	TMPNP_CONFIG, *PTMPNP_CONFIG;


/* tmipc.h */
typedef STATUS ( * TMIPC_ONINTERRUPT )( DWORD InterruptID, DWORD Count,
    PVOID pContext );
STATUS  ipcRegisterCallback  (
    PVOID pIPC,         /* ipc object */
    DWORD InterruptID,  /* interrupt command */
    TMIPC_ONINTERRUPT   OnInterrupt,    /* interrupt callback function */
    PVOID pContext );   /* callback context */

STATUS  ipcUnregisterCallback  (
    PVOID pIPC,             /* ipc object */
    DWORD InterruptID );    /* interrupt command */
STATUS  ipcGenerateIRQ ( PVOID pIPC , DWORD dwIntID );
STATUS	ipcCreate ( PVOID pvContainer, BYTE bIRQ, PVOID *ppIPC );
VOID	ipcDestroy (PVOID pvObject);
STATUS	ipcReset (  PVOID pIPC );
STATUS  ipcDisableIRQ ( PVOID pIPC );
STATUS  ipcEnableIRQ ( PVOID pIPC );
BOOL	ipcGetInterruptState ( PVOID pIPC );

/* tmchnl.h */
#define TMCHNL_DIRECTION_RECV	0
#define	TMCHNL_DIRECTION_SEND	1

typedef	STATUS ( * TMCHNL_ONRECVPACKET ) ( PVOID, PVOID );
typedef	STATUS ( * TMCHNL_ONSENDREADY ) ( PVOID );

STATUS	chnlValidateHandle ( PVOID pChnl );

STATUS	chnlmCreate ( 
	PVOID	pContainer,		/* pointer to the driver object */
	DWORD	ChannelCount,	/* number of channels that will be supported */
	PVOID	*ppChnlMgr );	/* address of memory where object ptr is stored */

STATUS	chnlmCreateChnl ( 
	PVOID	pChnlMgr, 		/* pointer to channel manager */
	BOOL	Direction, 		/* channel direction */
	DWORD	ChannelID, 		/* channel ID - passed by the host */
	DWORD	QueueSize,		/* queue depth */
	PVOID	OnCallback, 	/* receive callback */
	PVOID	pContext, 		/*	receive and send callback context */
	PVOID	*ppChnl );		/* address of pointer for string chnl object */
STATUS	chnlDestroy ( 
	PVOID pChnl );		/* pointer to the channel object */
STATUS	chnlmDestroy (PVOID pChnlMgr);
STATUS	chnlPacketSend ( PVOID pChnl, PVOID pPacket );
STATUS	chnlHandleToID ( PVOID pChnl, PDWORD pID );



/* tmtask.h */

STATUS	taskmCreate ( PVOID pContainer, DWORD TaskCount, PVOID *ppTaskMgr );
STATUS	taskmCreateTask ( PVOID	pObject, PVOID TaskCreateArg, PDWORD Handle );
STATUS	taskDestroy ( DWORD dwHandle );
STATUS	taskmDestroy ( PVOID pObject );
STATUS	taskStart ( DWORD dwHandle );
STATUS	taskStop ( DWORD dwHandle );
STATUS	taskSignal ( DWORD dwHandle, DWORD State );
STATUS	taskmDestroyTaskByClnt ( PVOID pObject, DWORD dwClientHandle );

/* tmmsg.h */
typedef STATUS	 ( * TMMSG_ONRECVPACKET )( DWORD dwMsgHandle, PVOID pvContext,
	PVOID pvPacket );


STATUS	msgmCreate ( PVOID pvContainer, DWORD MessageCount, PVOID *ppMsgMgr );
STATUS	msgmCreateMsg ( PVOID pMsgMgr, PVOID pMsgCreateArg, PVOID *ppMsg );
STATUS	msgDestroy ( PVOID pMsg );
STATUS	msgmDestroy (PVOID pMsgMgr);
STATUS	msgSend ( PVOID pMsg, PVOID pPacket );
STATUS	msgmDestroyMsgByClnt  ( PVOID pMsgMgr, DWORD dwClientHandle );


/* tmstrm.h */
typedef STATUS	 ( * TMSTRM_ONBUFFERRETURN )( DWORD dwStrmHandle, 
	PVOID pvContext, PVOID pvPacket);

/* tmif.h */

/* tmclnt.h */


#define	TMCLNT_CLIENT_TYPEDLL32		(0x01)
#define	TMCLNT_CLIENT_TYPEDLL16		(0x02)
#define	TMCLNT_CLIENT_TYPEVXD		(0x03)

typedef struct	_TMCLNT_CLIENT
{
	IN		DWORD	dwType;				// vxd, dll32, dll16.
	IN		DWORD	dwContext;
	union
	{
		struct
		{
			IN	DWORD	dwModuleHandle;	// returned by Win32 API for calling app
			IN	DWORD	dwAdvisoryQueueCount; // currently ignored
			IN	DWORD	dwVMHandle;
			OUT	PVOID	pvAdvisoryQueue;
			OUT PVOID	pvOverlappedObject;
		}	DLL32;

		struct
		{

			IN	WORD	wCallbackCS;	// dll16 CS for Simulate_Far_Call
			IN	DWORD	dwCallbackIP;	// dll16 IP for Simulate_Far_Call
		}	DLL16;

		struct
		{
			IN	PVOID	pvCallbackFunc;		// vxd client
		}	VxD;
	}	Client;

}	TMCLNT_CLIENT, *PTMCLNT_CLIENT;


STATUS	clntmCreate ( PVOID *ppvObject, PVOID pvContainer );
STATUS	clntmCreateClnt ( PVOID pvObject, PVOID pvRegisterClient, 
	PDWORD pdwHandle );
STATUS	clntDestroy ( DWORD dwHandle );
STATUS	clntAdvise  ( DWORD dwHandle , PVOID pvAdvisoryObject );
STATUS	clntmDestroy ( PVOID pvObject );
STATUS	clntWaitForAdvise ( DWORD dwHandle );
STATUS	clntmVMHandleToClnt ( PVOID pObject, DWORD VMHandle, 
	PDWORD pClientHandle );
STATUS	chnlmReset ( PVOID	pChnlMgr );
STATUS	clntIncrementReference ( DWORD dwHandle );


/* tmhal.h */
STATUS	halCreate( DWORD dwSDRAMBase, DWORD dwSDRAMSize, 
	DWORD dwMMIOBase, PVOID pConatiner, PVOID *ppHAL  );
VOID	halRegisterInit ( PVOID 	pvObject, DWORD dwSDRAMPhys,
	DWORD dwSDRAMCacheLimit, DWORD dwMMIOPhys);
VOID	halDSPStart ( PVOID pvObject );
VOID	halDSPReset ( PVOID pvObject );
VOID	halDSPStop ( PVOID pvObject );
STATUS	halDestroy ( PVOID pObject );
VOID	halIRQConnect( PVOID pObject, DWORD dwIRQ, BOOL fLevelTrigger,
	BYTE bPriority, DWORD dwInterruptHandler );
VOID	halIRQDisconnect( PVOID pObject, DWORD dwIRQ );
VOID	halIRQDisable( PVOID pObject, DWORD dwIRQ );
VOID	halIRQEnable( PVOID	pObject, DWORD dwIRQ );
VOID	halUnreset ( PVOID pvObject );
VOID	halIRQDSPGen( PVOID pObject );
VOID	halBIUHostIRQAck( PVOID pObject );
BOOL	halIsTMRunning ( PVOID pvObject );
BOOL	halBIUIsIRQOurs ( PVOID pObject );

BOOL	halGetTargetVersion ( 
	PVOID pvObject, 
	PDWORD MajorVersion, 
	PDWORD MinorVersion );

BOOL	halSetTargetVersion ( 
	PVOID pvObject, 
	DWORD MajorVersion, 
	DWORD MinorVersion );

/* tmloader.h */
STATUS	loaderCreate ( PVOID pContainer, PVOID pLoaderRegisterArg,
	PVOID *ppObject);
STATUS	loaderDestroy ( PVOID pLoader );
STATUS	loaderTMLDRSendRequest ( PVOID pLoader, 
	PVOID pRequestArg );
STATUS	loaderDownloadImage ( PVOID pLoader , PVOID pSectionTable,
	DWORD SectionCount );
STATUS	loaderPatchMemory( PVOID pLoader , PVOID pPatchTable,
	DWORD PatchCount );

/* tmshmem.h */

STATUS	shmemCreate ( DWORD Length , PVOID pContainer, PVOID *ppShmem );
STATUS	shmemAllocate (PVOID pShmem, DWORD Flags, DWORD Length,
	PVOID *pLinear, PDWORD pPhysical );
STATUS	shmemFree(PVOID pShmem, PVOID Buffer);
VOID	shmemDestroy ( PVOID pShmem );

/* tmpnp.h */
VOID	pnpPCINameGet ( WORD VendorID, WORD DeviceID,
	BYTE Bus, BYTE DeviceFunction, PCHAR Name );


/* tmbuffer.h */
STATUS	buffermCreate ( PVOID pvContainer, DWORD dwBufferObjectCount,
	PVOID *ppvObject );
STATUS	buffermPrepare ( PVOID pvObject, PVOID pvBufferPrepare,
	PVOID *ppvObject );
STATUS	bufferUnprepare ( PVOID pObject );
STATUS	buffermDestroy (PVOID pObject );
STATUS	buffermDestroyBufferByClnt  ( PVOID pMsgMgr, DWORD dwClientHandle );

/* cqueue */
DWORD	cqueueLength ( PVOID Object );

⌨️ 快捷键说明

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