| 64 | } |
| 65 | |
| 66 | Result FSREG_GetProgramInfo(ExHeader_Info *exheaderInfos, u32 maxNumEntries, u64 programHandle) |
| 67 | { |
| 68 | u32 *cmdbuf = getThreadCommandBuffer(); |
| 69 | u32 *staticbufs = getThreadStaticBuffers(); |
| 70 | |
| 71 | cmdbuf[0] = IPC_MakeHeader(0x403, 3, 0); // 0x40300C0 |
| 72 | cmdbuf[1] = maxNumEntries; |
| 73 | cmdbuf[2] = (u32)programHandle; |
| 74 | cmdbuf[3] = (u32)(programHandle >> 32); |
| 75 | |
| 76 | u32 staticbufscpy[2] = {staticbufs[0], staticbufs[1]}; |
| 77 | staticbufs[0] = IPC_Desc_StaticBuffer(maxNumEntries * sizeof(ExHeader_Info), 0); |
| 78 | staticbufs[1] = (u32)exheaderInfos; |
| 79 | |
| 80 | Result ret = svcSendSyncRequest(fsRegHandle); |
| 81 | |
| 82 | staticbufs[0] = staticbufscpy[0]; |
| 83 | staticbufs[1] = staticbufscpy[1]; |
| 84 | return R_FAILED(ret) ? ret : cmdbuf[1]; |
| 85 | } |
| 86 | |
| 87 | Result FSREG_LoadProgram(u64 *programHandle, const FS_ProgramInfo *programInfo) |
| 88 | { |
nothing calls this directly
no test coverage detected