Lines Matching refs:context

60 BOOL DSP_EnumSections(DSPProcessContext *context, DSPSectionEnumCallback callback);
74 DSPProcessContext *context = DSPiCurrentComponent; in DSP_StopDSPComponent() local
75 context->hookFactors = 0; in DSP_StopDSPComponent()
95 DSPProcessContext *context = DSP_FindProcess(NULL); in DSPi_ShutdownCallback() local
96 if (!context) in DSPi_ShutdownCallback()
101 DSP_QuitProcess(context); in DSPi_ShutdownCallback()
131 DSPProcessContext *context = DSPiCurrentComponent; in DSPi_MasterInterrupts() local
132 if (context) in DSPi_MasterInterrupts()
143 int factors = (ready & context->hookFactors); in DSPi_MasterInterrupts()
155 factors &= ~context->hookGroup[index]; in DSPi_MasterInterrupts()
156 (*context->hookFunction[index])(context->hookUserdata[index]); in DSPi_MasterInterrupts()
176 static BOOL DSPi_ReadProcessImage(DSPProcessContext *context, int offset, void *buffer, int length) in DSPi_ReadProcessImage() argument
178 return FS_SeekFile(context->image, offset, FS_SEEK_SET) && in DSPi_ReadProcessImage()
179 (FS_ReadFile(context->image, buffer, length) == length); in DSPi_ReadProcessImage()
194 static BOOL DSPi_CommitWram(DSPProcessContext *context, MIWramPos wram, int segment, MIWramProc to) in DSPi_CommitWram() argument
197 int slot = DSP_GetProcessSlotFromSegment(context, wram, segment); in DSPi_CommitWram()
234 static BOOL DSPi_MapAndLoadProcessImageCallback(DSPProcessContext *context, in DSPi_MapAndLoadProcessImageCallback() argument
262 if(!DSPi_ReadProcessImage(context, in DSPi_MapAndLoadProcessImageCallback()
275 context->flags |= DSP_PROCESS_FLAG_USING_OS; in DSPi_MapAndLoadProcessImageCallback()
337 if (DSP_GetProcessSlotFromSegment(context, wram, dstofs / DSP_WRAM_SLOT_SIZE) == -1) in DSPi_MapAndLoadProcessImageCallback()
340 u16 *slots = (wram == MI_WRAM_B) ? &context->slotB : &context->slotC; in DSPi_MapAndLoadProcessImageCallback()
341 … int *segbits = (wram == MI_WRAM_B) ? &context->segmentCode : &context->segmentData; in DSPi_MapAndLoadProcessImageCallback()
342 … int *map = (wram == MI_WRAM_B) ? context->slotOfSegmentCode : context->slotOfSegmentData; in DSPi_MapAndLoadProcessImageCallback()
355 if (!DSPi_CommitWram(context, wram, segment, MI_WRAM_ARM9)) in DSPi_MapAndLoadProcessImageCallback()
361 MI_CpuFillFast(DSP_ConvertProcessAddressFromDSP(context, wram, in DSPi_MapAndLoadProcessImageCallback()
373 … u8 *dstbuf = (u8*)DSP_ConvertProcessAddressFromDSP(context, wram, dstofs / 2); in DSPi_MapAndLoadProcessImageCallback()
374 if (!DSPi_ReadProcessImage(context, srcofs, dstbuf, curlen)) in DSPi_MapAndLoadProcessImageCallback()
401 void DSP_InitProcessContext(DSPProcessContext *context, const char *name) in DSP_InitProcessContext() argument
405 MI_CpuFill8(context, 0, sizeof(*context)); in DSP_InitProcessContext()
406 context->next = NULL; in DSP_InitProcessContext()
407 context->flags = 0; in DSP_InitProcessContext()
408 (void)STD_CopyString(context->name, name ? name : ""); in DSP_InitProcessContext()
409 context->image = NULL; in DSP_InitProcessContext()
411 context->segmentCode = 0; in DSP_InitProcessContext()
412 context->segmentData = 0; in DSP_InitProcessContext()
416 context->slotOfSegmentCode[segment] = -1; in DSP_InitProcessContext()
420 context->slotOfSegmentData[segment] = -1; in DSP_InitProcessContext()
423 context->hookFactors = 0; in DSP_InitProcessContext()
426 context->hookFunction[i] = NULL; in DSP_InitProcessContext()
427 context->hookUserdata[i] = NULL; in DSP_InitProcessContext()
428 context->hookGroup[i] = 0; in DSP_InitProcessContext()
442 BOOL DSP_EnumSections(DSPProcessContext *context, DSPSectionEnumCallback callback) in DSP_EnumSections() argument
447 if (DSPi_ReadProcessImage(context, 0, header, sizeof(header))) in DSP_EnumSections()
454 …if (!DSPi_ReadProcessImage(context, (int)(base + index * sizeof(section)), section, (int)sizeof(se… in DSP_EnumSections()
461 if (callback && !(*callback)(context, header, section)) in DSP_EnumSections()
483 u32 DSP_AttachProcessMemory(DSPProcessContext *context, MIWramPos wram, int slots) in DSP_AttachProcessMemory() argument
486 int *segbits = (wram == MI_WRAM_B) ? &context->segmentCode : &context->segmentData; in DSP_AttachProcessMemory()
487 int *map = (wram == MI_WRAM_B) ? context->slotOfSegmentCode : context->slotOfSegmentData; in DSP_AttachProcessMemory()
526 void DSP_DetachProcessMemory(DSPProcessContext *context, MIWramPos wram, int slots) in DSP_DetachProcessMemory() argument
528 int *segbits = (wram == MI_WRAM_B) ? &context->segmentCode : &context->segmentData; in DSP_DetachProcessMemory()
529 int *map = (wram == MI_WRAM_B) ? context->slotOfSegmentCode : context->slotOfSegmentData; in DSP_DetachProcessMemory()
554 BOOL DSP_SwitchProcessMemory(DSPProcessContext *context, MIWramPos wram, u32 address, u32 length, M… in DSP_SwitchProcessMemory() argument
559 int *segbits = (wram == MI_WRAM_B) ? &context->segmentCode : &context->segmentData; in DSP_SwitchProcessMemory()
567 if (!DSPi_CommitWram(context, wram, segment, to)) in DSP_SwitchProcessMemory()
591 static BOOL DSP_MapAndLoadProcessImage(DSPProcessContext *context, FSFile *image, int slotB, int sl… in DSP_MapAndLoadProcessImage() argument
596 context->image = image; in DSP_MapAndLoadProcessImage()
597 context->slotB = (u16)slotB; in DSP_MapAndLoadProcessImage()
598 context->slotC = (u16)slotC; in DSP_MapAndLoadProcessImage()
600 if (DSP_EnumSections(context, DSPi_MapAndLoadProcessImageCallback)) in DSP_MapAndLoadProcessImage()
605 if (DSP_SwitchProcessMemory(context, MI_WRAM_B, 0, dspMemSize, MI_WRAM_DSP) && in DSP_MapAndLoadProcessImage()
606 DSP_SwitchProcessMemory(context, MI_WRAM_C, 0, dspMemSize, MI_WRAM_DSP)) in DSP_MapAndLoadProcessImage()
627 void DSP_SetProcessHook(DSPProcessContext *context, int factors, DSPHookFunction function, void *us… in DSP_SetProcessHook() argument
636 context->hookFunction[i] = function; in DSP_SetProcessHook()
637 context->hookUserdata[i] = userdata; in DSP_SetProcessHook()
638 context->hookGroup[i] = factors; in DSP_SetProcessHook()
651 context->hookFactors |= factors; in DSP_SetProcessHook()
657 context->hookFactors &= ~factors; in DSP_SetProcessHook()
691 BOOL DSP_ExecuteProcess(DSPProcessContext *context, FSFile *image, int slotB, int slotC) in DSP_ExecuteProcess() argument
702 DSP_SetProcessHook(context, in DSP_ExecuteProcess()
707 if (!DSP_MapAndLoadProcessImage(context, image, slotB, slotC)) in DSP_ExecuteProcess()
716 for (pp = &DSPiCurrentComponent; *pp && (*pp != context); pp = &(*pp)->next) in DSP_ExecuteProcess()
719 *pp = context; in DSP_ExecuteProcess()
720 context->image = NULL; in DSP_ExecuteProcess()
737 DSP_ResetOffEx((u16)(context->hookFactors >> 16)); in DSP_ExecuteProcess()
738 DSP_MaskSemaphore((u16)~(context->hookFactors >> 0)); in DSP_ExecuteProcess()
747 if ((context->flags & DSP_PROCESS_FLAG_USING_OS) != 0) in DSP_ExecuteProcess()
775 void DSP_QuitProcess(DSPProcessContext *context) in DSP_QuitProcess() argument
797 if (*pp == context) in DSP_QuitProcess()
803 context->next = NULL; in DSP_QuitProcess()
805 (void)context; in DSP_QuitProcess()
850 void DSP_ReadProcessPipe(DSPProcessContext *context, int port, void *buffer, u32 length) in DSP_ReadProcessPipe() argument
855 (void)context; in DSP_ReadProcessPipe()
870 void DSP_WriteProcessPipe(DSPProcessContext *context, int port, const void *buffer, u32 length) in DSP_WriteProcessPipe() argument
875 (void)context; in DSP_WriteProcessPipe()
895 static BOOL DSPi_MapProcessSegmentCallback(DSPProcessContext *context, in DSPi_MapProcessSegmentCallback() argument
909 context->segmentCode |= (1 << segment); in DSPi_MapProcessSegmentCallback()
920 context->segmentData |= (1 << segment); in DSPi_MapProcessSegmentCallback()
937 static BOOL DSPi_MapProcessSlotDefault(DSPProcessContext *context, int slotB, int slotC) in DSPi_MapProcessSlotDefault() argument
943 if ((context->segmentCode & (1 << segment)) != 0) in DSPi_MapProcessSlotDefault()
951 context->slotOfSegmentCode[segment] = slot; in DSPi_MapProcessSlotDefault()
957 if ((context->segmentData & (1 << segment)) != 0) in DSPi_MapProcessSlotDefault()
965 context->slotOfSegmentData[segment] = slot; in DSPi_MapProcessSlotDefault()
981 static BOOL DSP_IsProcessMemoryReady(DSPProcessContext *context) in DSP_IsProcessMemoryReady() argument
987 if ((context->segmentCode & (1 << segment)) != 0) in DSP_IsProcessMemoryReady()
989 int slot = context->slotOfSegmentCode[segment]; in DSP_IsProcessMemoryReady()
1000 if ((context->segmentData & (1 << segment)) != 0) in DSP_IsProcessMemoryReady()
1002 int slot = context->slotOfSegmentData[segment]; in DSP_IsProcessMemoryReady()
1025 static BOOL DSPi_LoadProcessImageCallback(DSPProcessContext *context, in DSPi_LoadProcessImageCallback() argument
1074 u8 *dstbuf = (u8*)DSP_ConvertProcessAddressFromDSP(context, wram, dstofs/2); in DSPi_LoadProcessImageCallback()
1075 if (!DSPi_ReadProcessImage(context, srcofs, dstbuf, length)) in DSPi_LoadProcessImageCallback()
1099 void DSP_MapProcessSegment(DSPProcessContext *context) in DSP_MapProcessSegment() argument
1101 (void)DSP_EnumSections(context, DSPi_MapProcessSegmentCallback); in DSP_MapProcessSegment()
1114 BOOL DSP_LoadProcessImage(DSPProcessContext *context) in DSP_LoadProcessImage() argument
1118 if (DSP_IsProcessMemoryReady(context)) in DSP_LoadProcessImage()
1122 if (DSP_SwitchProcessMemory(context, MI_WRAM_B, 0, dspMemSize, MI_WRAM_ARM9) && in DSP_LoadProcessImage()
1123 DSP_SwitchProcessMemory(context, MI_WRAM_C, 0, dspMemSize, MI_WRAM_ARM9)) in DSP_LoadProcessImage()
1126 if (DSP_EnumSections(context, DSPi_LoadProcessImageCallback)) in DSP_LoadProcessImage()
1131 if (DSP_SwitchProcessMemory(context, MI_WRAM_B, 0, dspMemSize, MI_WRAM_DSP) && in DSP_LoadProcessImage()
1132 DSP_SwitchProcessMemory(context, MI_WRAM_C, 0, dspMemSize, MI_WRAM_DSP)) in DSP_LoadProcessImage()
1158 BOOL DSP_StartupProcess(DSPProcessContext *context, FSFile *image, in DSP_StartupProcess() argument
1171 context->image = image; in DSP_StartupProcess()
1172 DSP_MapProcessSegment(context); in DSP_StartupProcess()
1173 if (!(*slotMapper)(context, slotB, slotC) || in DSP_StartupProcess()
1174 !DSP_LoadProcessImage(context)) in DSP_StartupProcess()
1182 context->image = NULL; in DSP_StartupProcess()