diff options
Diffstat (limited to 'src/libultra_code_O2/osSpTaskYielded.c')
| -rw-r--r-- | src/libultra_code_O2/osSpTaskYielded.c | 21 |
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; +} |
