From 24c78c8919372f20af6a02fa5e768e30af9dd6fc Mon Sep 17 00:00:00 2001 From: Ryan Myers Date: Thu, 21 Oct 2021 08:56:10 -0400 Subject: [PATCH] __osDpDeviceBusy from libreultra --- lib/src/os/__osViGetCurrentContext.c | 9 +++++++++ lib/src/os/dp.c | 11 ++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) create mode 100644 lib/src/os/__osViGetCurrentContext.c diff --git a/lib/src/os/__osViGetCurrentContext.c b/lib/src/os/__osViGetCurrentContext.c new file mode 100644 index 00000000..fa33239a --- /dev/null +++ b/lib/src/os/__osViGetCurrentContext.c @@ -0,0 +1,9 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D6080 */ + +#include "libultra_internal.h" +#include "viint.h" + +__OSViContext *__osViGetCurrentContext(void){ + return __osViCurr; +} diff --git a/lib/src/os/dp.c b/lib/src/os/dp.c index 54ac9a8d..803e5f49 100644 --- a/lib/src/os/dp.c +++ b/lib/src/os/dp.c @@ -3,10 +3,11 @@ #include "macros.h" #include "libultra_internal.h" -#include "viint.h" -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/__osDpDeviceBusy.s") - -__OSViContext *__osViGetCurrentContext(void){ - return __osViCurr; +int __osDpDeviceBusy(void) { + register u32 stat; + stat = IO_READ(DPC_STATUS_REG); + if (stat & DPC_STATUS_DMA_BUSY) + return 1; + return 0; }