From 435fad724b703de6deee732a9e169c705069c137 Mon Sep 17 00:00:00 2001 From: yellows8 Date: Sun, 25 Dec 2016 01:00:49 -0500 Subject: [PATCH] Added enum bossTaskStatus and updated bossGetTaskState. --- libctru/include/3ds/services/boss.h | 9 +++++++-- libctru/source/services/boss.c | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/libctru/include/3ds/services/boss.h b/libctru/include/3ds/services/boss.h index 525cc09..0985780 100644 --- a/libctru/include/3ds/services/boss.h +++ b/libctru/include/3ds/services/boss.h @@ -39,6 +39,11 @@ typedef struct u8 property_x3e[0x200]; } bossContext; +typedef enum { + BOSSTASKSTATUS_STARTED = 0x2, + BOSSTASKSTATUS_ERROR = 0x7, +} bossTaskStatus; + /** * @brief Initializes BOSS. * @param programID programID to use, 0 for the current process. Not used internally unless BOSSP is available. @@ -90,11 +95,11 @@ Result bossDeleteTask(const char *taskID, u32 unk); * @brief Returns task state. * @param taskID BOSS taskID. * @param inval Unknown, normally 0? - * @param out0 Output field. + * @param status Output status, see bossTaskStatus. * @param out1 Output field. * @param out2 Output field. */ -Result bossGetTaskState(const char *taskID, s8 inval, u8 *out0, u32 *out1, u8 *out2); +Result bossGetTaskState(const char *taskID, s8 inval, u8 *status, u32 *out1, u8 *out2); /** * @brief This loads the current state of PropertyID 0x0 for the specified task. diff --git a/libctru/source/services/boss.c b/libctru/source/services/boss.c index 2400e15..44ab296 100644 --- a/libctru/source/services/boss.c +++ b/libctru/source/services/boss.c @@ -170,7 +170,7 @@ Result bossDeleteTask(const char *taskID, u32 unk) return ret; } -Result bossGetTaskState(const char *taskID, s8 inval, u8 *out0, u32 *out1, u8 *out2) +Result bossGetTaskState(const char *taskID, s8 inval, u8 *status, u32 *out1, u8 *out2) { Result ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); @@ -187,7 +187,7 @@ Result bossGetTaskState(const char *taskID, s8 inval, u8 *out0, u32 *out1, u8 *o if(R_SUCCEEDED(ret)) { - if(out0)*out0 = cmdbuf[2]; + if(status)*status = cmdbuf[2]; if(out1)*out1 = cmdbuf[3]; if(out2)*out2 = cmdbuf[4]; }