From: chaoskagami Date: Fri, 14 Oct 2016 11:46:35 +0000 (-0400) Subject: Move PxiPM to ctrulib X-Git-Tag: v0.3.1~66^2~5 X-Git-Url: https://chaos.moe/g/?a=commitdiff_plain;h=10fb761d3851d91a5b1b5da21a51a9cfd16f7fb4;p=corbenik%2Fcorbenik.git Move PxiPM to ctrulib --- diff --git a/external/ctrulib b/external/ctrulib index 361f8d4..af70f7d 160000 --- a/external/ctrulib +++ b/external/ctrulib @@ -1 +1 @@ -Subproject commit 361f8d402eb16c09a49d184f3fa58844fce0e48a +Subproject commit af70f7daae4e41e2526308d2705e8c1abc8ed586 diff --git a/external/loader/source/loader.c b/external/loader/source/loader.c index 78609ec..dfd8640 100644 --- a/external/loader/source/loader.c +++ b/external/loader/source/loader.c @@ -1,6 +1,5 @@ #include <3ds.h> #include "patcher.h" -#include "pxipm.h" #include #include #include diff --git a/external/loader/source/pxipm.c b/external/loader/source/pxipm.c deleted file mode 100644 index 10ec020..0000000 --- a/external/loader/source/pxipm.c +++ /dev/null @@ -1,84 +0,0 @@ -#include <3ds.h> -#include -#include "pxipm.h" - -static Handle pxipmHandle; -static int pxipmRefCount; - -Result -pxipmInit(void) -{ - Result ret = 0; - - if (AtomicPostIncrement(&pxipmRefCount)) - return 0; - - ret = srvGetServiceHandle(&pxipmHandle, "PxiPM"); - - if (R_FAILED(ret)) - AtomicDecrement(&pxipmRefCount); - return ret; -} - -void -pxipmExit(void) -{ - if (AtomicDecrement(&pxipmRefCount)) - return; - svcCloseHandle(pxipmHandle); -} - -Result -PXIPM_RegisterProgram(u64 *prog_handle, FS_ProgramInfo *title, FS_ProgramInfo *update) -{ - u32 *cmdbuf = getThreadCommandBuffer(); - - cmdbuf[0] = IPC_MakeHeader(0x2, 8, 0); // 0x20200 - memcpy(&cmdbuf[1], &title->programId, sizeof(u64)); - *(u8 *)&cmdbuf[3] = title->mediaType; - memcpy(((u8 *)&cmdbuf[3]) + 1, &title->padding, 7); - memcpy(&cmdbuf[5], &update->programId, sizeof(u64)); - *(u8 *)&cmdbuf[7] = update->mediaType; - memcpy(((u8 *)&cmdbuf[7]) + 1, &update->padding, 7); - - Result ret = 0; - if (R_FAILED(ret = svcSendSyncRequest(pxipmHandle))) - return ret; - *prog_handle = *(u64 *)&cmdbuf[2]; - - return cmdbuf[1]; -} - -Result -PXIPM_GetProgramInfo(EXHEADER_header *exheader, u64 prog_handle) -{ - u32 *cmdbuf = getThreadCommandBuffer(); - - cmdbuf[0] = IPC_MakeHeader(0x1, 2, 2); // 0x10082 - cmdbuf[1] = (u32)(prog_handle); - cmdbuf[2] = (u32)(prog_handle >> 32); - cmdbuf[3] = (0x400 << 8) | 0x4; - cmdbuf[4] = (u32)exheader; - - Result ret = 0; - if (R_FAILED(ret = svcSendSyncRequest(pxipmHandle))) - return ret; - - return cmdbuf[1]; -} - -Result -PXIPM_UnregisterProgram(u64 prog_handle) -{ - u32 *cmdbuf = getThreadCommandBuffer(); - - cmdbuf[0] = IPC_MakeHeader(0x3, 2, 0); // 0x30080 - cmdbuf[1] = (u32)(prog_handle); - cmdbuf[2] = (u32)(prog_handle >> 32); - - Result ret = 0; - if (R_FAILED(ret = svcSendSyncRequest(pxipmHandle))) - return ret; - - return cmdbuf[1]; -} diff --git a/external/loader/source/pxipm.h b/external/loader/source/pxipm.h deleted file mode 100644 index 0784f41..0000000 --- a/external/loader/source/pxipm.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef __PXIPM_H -#define __PXIPM_H - -#include <3ds/types.h> -#include <3ds/exheader.h> - -Result pxipmInit(void); -void pxipmExit(void); -Result PXIPM_RegisterProgram(u64 *prog_handle, FS_ProgramInfo *title, FS_ProgramInfo *update); -Result PXIPM_GetProgramInfo(EXHEADER_header *exheader, u64 prog_handle); -Result PXIPM_UnregisterProgram(u64 prog_handle); - -#endif diff --git a/external/loader/source/statics.c b/external/loader/source/statics.c index 2f5642b..4ac400c 100644 --- a/external/loader/source/statics.c +++ b/external/loader/source/statics.c @@ -1,6 +1,5 @@ #include <3ds.h> #include "patcher.h" -#include "pxipm.h" #include #include "logger.h"