summaryrefslogtreecommitdiff
path: root/src/libultra_code_O2/osSpTaskYielded.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libultra_code_O2/osSpTaskYielded.c')
-rw-r--r--src/libultra_code_O2/osSpTaskYielded.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/libultra_code_O2/osSpTaskYielded.c b/src/libultra_code_O2/osSpTaskYielded.c
new file mode 100644
index 000000000..be1dcc09c
--- /dev/null
+++ b/src/libultra_code_O2/osSpTaskYielded.c
@@ -0,0 +1,21 @@
+#include "global.h"
+
+u32 osSpTaskYielded(OSTask* task) {
+ u32 ret;
+ u32 status;
+
+ status = __osSpGetStatus();
+
+ if (status & SP_STATUS_YIELDED) {
+ ret = OS_TASK_YIELDED;
+ } else {
+ ret = 0;
+ }
+
+ if (status & SP_STATUS_YIELD) {
+ task->t.flags |= ret;
+ task->t.flags &= ~OS_TASK_DP_WAIT;
+ }
+
+ return ret;
+}