📄 tmhd.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 + -