Charles.Forsyth20060303644188019 years agoHistory
62 lines · 1.0 KB · C
RawDownload
/* * MPC82x/QUICC DSP support */ typedef struct DSP DSP;typedef struct FnD FnD; typedef short Real;typedef struct Complex Complex; struct Complex {	Real	im;	Real	re;}; struct FnD {	ushort	status;	ushort	param[7];}; enum {	FnDsize =	8*2,	/* each function descriptor is 8 shorts */ 	/* standard bits in FnD.status */	FnStop = 	1<<15,	FnWrap =	1<<13,	FnInt =	1<<12, 	/* optional bits */	FnZ =	1<<11,	/* FIR[35], MOD */	FnIALL =	1<<10,	/* FIRx */	FnXinc0 =	0<<8,	/* FIRx, IRR */	FnXinc1 =	1<<8,	FnXinc2 =	2<<8,	FnXinc3 =	3<<8,	FnPC =	1<<7,	/* FIRx */  	/* DSP functions (table 16-6) */	FnFIR1 =	0x01,	FnFIR2 =	0x02,	FnFIR3 =	0x03,	FnFIR5 = 	0x03,	FnFIR6 =	0x06,	FnIIR =	0x07,	FnMOD =	0x08,	FnDEMOD = 0x09,	FnLMS1 =	0x0A,	FnLMS2 =	0x0B,	FnWADD = 0x0C,}; void	dspinitialise(void);DSP*	dspacquire(void (*)(void*), void*);void	dspexec(DSP*, FnD*, ulong);void*	dspmalloc(ulong);void	dspfree(void*, ulong);void	dspsetfn(DSP*, FnD*, ulong);void	dspstart(DSP*);void	dsprelease(DSP*);FnD*	fndalloc(ulong);void	fndfree(FnD*, ulong);