dolphin/Source/DSPSpy/dsp.h

60 lines
1.0 KiB
C

#ifndef __DSP_H__
#define __DSP_H__
#include <gctypes.h>
#define DSPTASK_INIT 0
#define DSPTASK_RUN 1
#define DSPTASK_YIELD 2
#define DSPTASK_DONE 3
#define DSPTASK_CLEARALL 0x00000000
#define DSPTASK_ATTACH 0x00000001
#define DSPTASK_CANCEL 0x00000002
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef void (*DSPCallback)(void *task);
typedef struct _dsp_task {
vu32 state;
vu32 prio;
vu32 flags;
u16 init_vec;
u16 resume_vec;
u16 *iram_maddr;
u32 iram_len;
u16 iram_addr;
u16 *dram_maddr;
u32 dram_len;
u16 dram_addr;
DSPCallback init_cb;
DSPCallback res_cb;
DSPCallback done_cb;
DSPCallback req_cb;
struct _dsp_task *next;
struct _dsp_task *prev;
} dsptask_t;
void DSP_Init();
u32 DSP_CheckMailTo();
u32 DSP_CheckMailFrom();
u32 DSP_ReadMailFrom();
void DSP_AssertInt();
void DSP_SendMailTo(u32 mail);
u32 DSP_ReadCPUtoDSP();
dsptask_t* DSP_AddTask(dsptask_t *task);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif