From acf3ba85a5285494d4884c4587c9ad822fded58b Mon Sep 17 00:00:00 2001 From: Random <28494085+Random0666@users.noreply.github.com> Date: Tue, 14 Aug 2018 00:16:05 +0200 Subject: [PATCH] Added nsListApplicationRecord --- nx/source/services/ns.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/nx/source/services/ns.c b/nx/source/services/ns.c index 3cc05cda..2eb75919 100644 --- a/nx/source/services/ns.c +++ b/nx/source/services/ns.c @@ -92,6 +92,45 @@ static Result _nsGetInterface(Service* srv_out, u64 cmd_id) { return rc; } +Result nsListApplicationRecord(NsApplicationRecord* buffer, size_t size, int* out_entrycount) +{ + IpcCommand c; + ipcInitialize(&c); + + ipcAddRecvBuffer(&c, buffer, size, 0); + + struct + { + u64 magic; + u64 cmd_id; + u64 unk; + } *raw; + raw = ipcPrepareHeader(&c, sizeof(*raw)); + + raw->magic = SFCI_MAGIC; + raw->cmd_id = 0; + raw->unk = 0; + + Result rc = serviceIpcDispatch(&g_nsAppManSrv); + + if (R_SUCCEEDED(rc)) { + IpcParsedCommand r; + ipcParse(&r); + + struct { + u64 magic; + u64 result; + u32 entry_count; + } *resp = r.Raw; + + rc = resp->result; + + if (R_SUCCEEDED(rc) && out_entrycount) *out_entrycount = resp->entry_count; + } + + return rc; +} + Result nsGetApplicationControlData(u8 flag, u64 titleID, NsApplicationControlData* buffer, size_t size, size_t* actual_size) { IpcCommand c; ipcInitialize(&c);