]> Chaos Git - corbenik/ctrulib.git/commitdiff
Added force_user param to bossInit().
authoryellows8 <yellows8@users.noreply.github.com>
Mon, 26 Dec 2016 00:21:20 +0000 (19:21 -0500)
committeryellows8 <yellows8@users.noreply.github.com>
Mon, 26 Dec 2016 00:21:20 +0000 (19:21 -0500)
libctru/include/3ds/services/boss.h
libctru/source/services/boss.c

index 6b179c4a3c5744f5a0163c2c434b583f37510e9d..3b9c68edb16b2e246cc1aa0869065b322fa595da 100644 (file)
@@ -47,8 +47,9 @@ typedef enum {
 /**
  * @brief Initializes BOSS.
  * @param programID programID to use, 0 for the current process. Not used internally unless BOSSP is available.
+ * @param force_user When true, just use bossU instead of trying to initialize with bossP first.
  */
-Result bossInit(u64 programID);
+Result bossInit(u64 programID, bool force_user);
 
 /// Exits BOSS.
 void bossExit(void);
index d5098b494a7ddf4d26f8dbfaeafd655e8ca87b0c..f7dc6c00fbbc2033ec65b0f458b7df9f6babd45f 100644 (file)
@@ -15,7 +15,7 @@ static u32 bossPriv = 0;
 
 static Result bossipc_InitializeSession(u64 programID);
 
-Result bossInit(u64 programID)
+Result bossInit(u64 programID, bool force_user)
 {
        Result res=0;
        Handle envhandle=0;
@@ -23,9 +23,15 @@ Result bossInit(u64 programID)
 
        if (AtomicPostIncrement(&bossRefCount)) return 0;
 
-       res = srvGetServiceHandle(&handle, "boss:P");
-       envhandle = envGetHandle("boss:P");
-       bossPriv = 1;
+       res = -1;
+
+       if(!force_user)
+       {
+               res = srvGetServiceHandle(&handle, "boss:P");
+               envhandle = envGetHandle("boss:P");
+               bossPriv = 1;
+       }
+
        if (R_FAILED(res))
        {
                bossPriv = 0;