dspproc, dsptask, osdsp, osdsp_task

This commit is contained in:
Jcw87
2023-10-19 21:04:51 -07:00
parent 9068e46bf9
commit 60efc2bda6
10 changed files with 825 additions and 49 deletions
+15
View File
@@ -0,0 +1,15 @@
#ifndef DSPPROC_H
#define DSPPROC_H
#include "dolphin/types.h"
void DSPReleaseHalt2(u32);
void DSPReleaseHalt();
void setup_callback(u16);
void DsetupTable(u32, u32, u32, u32, u32);
void DsetMixerLevel(f32);
void DsyncFrame(u32, u32, u32);
void dummy_callback(u16);
void DsetDolbyDelay(u32, u16);
#endif /* DSPPROC_H */
+13
View File
@@ -0,0 +1,13 @@
#ifndef DSPTASK_H
#define DSPTASK_H
#include "dolphin/dsp.h"
void DspHandShake(void*);
void DspBoot(DSPCallback);
int DSPSendCommands2(u32*, u32, void (*)(u16));
void DspInitWork();
int DspStartWork(u32, void (*)(u16));
void DspFinishWork(u16);
#endif /* DSPTASK_H */
+8
View File
@@ -0,0 +1,8 @@
#ifndef OSDSP_H
#define OSDSP_H
#include "dolphin/dsp.h"
void DSPAddPriorTask(STRUCT_DSP_TASK*);
#endif /* OSDSP_H */
+17
View File
@@ -0,0 +1,17 @@
#ifndef OSDSP_TASK_H
#define OSDSP_TASK_H
#include "dolphin/types.h"
typedef struct STRUCT_DSP_TASK DSPTaskInfo;
typedef struct OSContext OSContext;
extern DSPTaskInfo* DSP_prior_task;
extern "C" void __DSPHandler(int, OSContext*);
void DsyncFrame2(u32, u32, u32);
void Dsp_Update_Request();
bool Dsp_Running_Check();
void Dsp_Running_Start();
#endif /* OSDSP_TASK_H */
+16 -6
View File
@@ -4,6 +4,9 @@
#include "dolphin/os/OS.h"
#include "dolphin/types.h"
volatile u16 __DSPRegs[32] : 0xCC005000;
volatile u32 __AIRegs[8] : 0xCC006C00;
#ifdef __cplusplus
extern "C" {
#endif
@@ -47,24 +50,31 @@ typedef struct STRUCT_DSP_TASK {
} DSPTaskInfo;
extern DSPTaskInfo* __DSP_tmp_task;
extern DSPTaskInfo* __DSP_last_task;
extern DSPTaskInfo* __DSP_first_task;
extern DSPTaskInfo* __DSP_curr_task;
u32 DSPCheckMailToDSP();
u32 DSPCheckMailFromDSP();
u32 DSPReadMailFromDSP();
void DSPSendMailToDSP(u32 mail);
void DSPAssertInt();
void DSPInit();
void DSPReset();
void DSPHalt();
void DSPSendMailToDSP(u32 mail);
u32 DSPCheckMailToDSP();
u32 DSPCheckMailFromDSP();
u32 DSPGetDMAStatus();
DSPTaskInfo* DSPAddTask(DSPTaskInfo* task);
void __DSP_exec_task(DSPTaskInfo* curr, DSPTaskInfo* next);
void __DSP_boot_task(DSPTaskInfo* task);
void __DSP_remove_task(DSPTaskInfo* task);
void __DSP_insert_task(DSPTaskInfo* task);
void __DSP_add_task(DSPTaskInfo* task);
void __DSP_remove_task(DSPTaskInfo* task);
void __DSP_debug_printf(const char* fmt, ...);
#ifdef __cplusplus
}
#endif
#endif // _DOLPHIN_DSP
#endif // _DOLPHIN_DSP