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

📄 tmhd.h

📁 wince host 和 target PCI驱动程序
💻 H
字号:
/*	hostdsp.h	Common file that is shared between TriMedia and host code.	to compile this file on a non-microsoft environment use	/u/troy/trimedia/stddef.h*/#ifndef __TMHD_H__#define __TMHD_H__/* THESE DATA STRUCTURES HAVE TO BE SHARED BETWEEN HOST AND DSP *//* DEBUGGING DATA STRUCTURES */#define	TMHD_DBG_VBUFLEN	(80 * 25)#define	TMHD_DBG_PBUFLEN	(80 * 25)#define	TMHD_DBG_MAGICSIZE	0x40 /* maximum 64 characterrs */#define	TMHD_DBG_BUFMAGIC	"XXXXXXX:cjp:da:fd:gfp:lcf:rj:troy:wcs:yc:zcw\0"

typedef struct _TMHD_DBG_SHARED
{
	DWORD	OptionBits;
	DWORD	Level;
	BOOL	VWrapped;
	DWORD	VBufLen;	/* size - always default*/
	DWORD	VBufPos;	/* current postion */
	CHAR	VBuffer[80 *25]; /* this array goes into shared memory */
}	TMHD_DBG_SHARED, *PTMHD_DBG_SHARED;

typedef struct _TMHD_DBG_PBUFFER
{
	CHAR	szMagic[TMHD_DBG_MAGICSIZE]; /* starts at 64 byte boundary */
	BOOL	PWrapped;		/* has wrap-around occured */
	PBYTE	pPBufStart;		/* ptr to the unaligned memory for malloc & free */
	DWORD	PBufLen;		/* length of trace buffer */
	DWORD	PBufPos;		/* position in trace buffer */
	PBYTE	pPBuffer;		/* pointer to trace buffer */
}	TMHD_DBG_PBUFFER, *PTMHD_DBG_PBUFFER;

/* LEGACY DATA STRUCTURES */#define		TMHD_MEMORY_SIZE_SYSTEM		(11 * 1024)

/* TASK INTERFACE */
#define		TMHD_TASK_CREATE		0x01
#define		TMHD_TASK_DESTROY		0x02
#define		TMHD_TASK_START			0x03
#define		TMHD_TASK_STOP			0x04
#define		TMHD_TASK_FAIL			0x05
#define		TMHD_TASK_SIGNAL		0x06

#define		TMHD_TASK_ARGSTATUS		0x00
#define		TMHD_TASK_ARGHOSTTASK	0x01
#define		TMHD_TASK_ARGDSPTASK	0x02

/*-------------------------------------------------------------------------*/
/* NEW shared data structures allocated through shmem interface
/*-------------------------------------------------------------------------*/
/* Host-BOARD & Target-GLOBAL */
#define		TMHD_PARAM_COUNT		0x100

typedef		struct _TMHD_BOARD_SHARED
{
	TMSTD_VERSION_INFO		HostVersion;
	TMSTD_VERSION_INFO		TargetVersion;

	TMSTD_MEMORY_BLOCK	SDRAM;	TMSTD_MEMORY_BLOCK	MMIO;	TMSTD_MEMORY_BLOCK	User;	TMSTD_MEMORY_BLOCK	Video;
	DWORD				CPUVersion;	DWORD		Parameter[TMHD_PARAM_COUNT];

}	TMHD_BOARD_SHARED, *PTMHD_BOARD_SHARED;


#define		TMHD_PARAM_HAL			0x1
#define		TMHD_PARAM_IPC			0x2
#define		TMHD_PARAM_CHNL			0x3
#define		TMHD_PARAM_BOARD		0x4
#define		TMHD_PARAM_DMA			0x5
#define		TMHD_PARAM_MSG			0x6
#define		TMHD_PARAM_STRM			0x7
#define		TMHD_PARAM_DBG			0x8
#define		TMHD_PARAM_PNP			0x9
#define		TMHD_PARAM_TASK			0xa

/* HAL */
typedef struct _TMHD_HAL_SHARED
{
	DWORD	Ring0ISRActive;
	DWORD	T2HInterruptReq;
	DWORD	H2TInterruptReq;
}	TMHD_HAL_SHARED, *PTMHD_HAL_SHARED;

/* TRC970324 added per Gerritt's request */
#define TMHD_HAL_DSPIRQNUMBER_CTC	4
#define TMHD_HAL_DSPIRQNUMBER_TM1	intHOSTCOMM
#define TMHD_HAL_PCIIRQNUMBER		0xa

/* IPC */

/* Reserved interrupt codes */
#define	TMHD_IPC_CHNLINTERRUPT	0x01
#define	TMHD_IPC_DSPRESUME		0x02
#define	TMHD_IPC_DSPHALT		0x03
#define TMHD_IPC_GETDPC			0x04
#define TMHD_IPC_DEBUGCALL		0x05

#define	TMHD_IPC_MUXCOUNT		0x4

typedef struct _TMHD_IPC_INTCOUNT
{
	DWORD	Req;
	DWORD	Ack;	
}	TMHD_IPC_INTCOUNT, *PTMHD_IPC_INTCOUNT;

typedef	struct	_TMHD_IPC_SHARED
{
	DWORD		H2TInterruptAck;
	DWORD		T2HInterruptAck;
	/* interrupts Host -> Target */
	TMHD_IPC_INTCOUNT	H2T[TMHD_IPC_MUXCOUNT]; 
	/* interrupts Target -> Host */
	TMHD_IPC_INTCOUNT	T2H[TMHD_IPC_MUXCOUNT]; 
}	TMHD_IPC_SHARED, *PTMHD_IPC_SHARED;


#define TMHD_CHNL_MBOXREADY		0x01#define TMHD_CHNL_ISRREADY		0x02/* CHANNEL */
typedef struct	_TMHD_CHNL_MAILSLOT
{
	DWORD	volatile dwChannel;
	DWORD	volatile dwPriority;
	DWORD	volatile dwMessage;
	TMSTD_PACKET	 Packet;
	
}	TMHD_CHNL_MAILSLOT,	*PTMHD_CHNL_MAILSLOT;

#define		TMHD_CHNL_MBOXSLOTS		0x10

typedef struct	_TMHD_CHNL_MAILQUEUE
{
	DWORD	volatile dwReadIndex;
	DWORD	volatile dwWriteIndex;	
	DWORD	volatile SlotCount;	DWORD	volatile IntCmd;	TMHD_CHNL_MAILSLOT		Queue[TMHD_CHNL_MBOXSLOTS];	
}	TMHD_CHNL_MAILQUEUE, *PTMHD_CHNL_MAILQUEUE;

typedef struct	_TMHD_CHNL_SHARED
{
	TMHD_CHNL_MAILQUEUE	ToHost;
	TMHD_CHNL_MAILQUEUE	ToDSP;
}	TMHD_CHNL_SHARED, *PTMHD_CHNL_SHARED;

/* BUFFER MANAGER */
typedef struct _TMHD_BUFFER_PTE
{
	DWORD	dwPhysicalAddress;
	DWORD	dwSize;
}	TMHD_BUFFER_PTE, *PTMHD_BUFFER_PTE;

typedef struct _TMHD_BUFFER_PTEHEADER
{
	DWORD	dwSize;	DWORD	dwCurrentEntry;	DWORD	dwCurrentLinearAddress;	DWORD	dwLinearAddress;
	DWORD	dwBufferSize;	DWORD	dwEntryCount;
	TMHD_BUFFER_PTE	Entries[1];
}	TMHD_BUFFER_PTEHEADER, *PTMHD_BUFFER_PTEHEADER;


/* SHARED MEMORY */

/* TASK */
typedef struct _TMHD_TASK_SHARED
{
	DWORD				dwPriority;
	DWORD				dwStackSize;
	CHAR				szTaskFile[TMSTD_PATH_LENGTH];
}	TMHD_TASK_SHARED, *PTMHD_TASK_SHARED;
/* NAME SPACE */

#define TMSTD_TYPE_TM1000		0x00
#define TMSTD_TYPE_TM1000S		0x01
#define TMSTD_TYPE_TM1100		0x10

#define	TMSTD_GETTMREV(x)	(((x) & 0x0f ))
#define	TMSTD_GETTMTYPE(x)	(((x) & 0x30 ) >> 4)
#define	TMSTD_GETTMFAB(x)	(((x) & 0xc0 ) >> 6)

#endif	__TMHD_H__

⌨️ 快捷键说明

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