60 lines
1.0 KiB
C
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
|