| 1143 | } |
| 1144 | |
| 1145 | Result APT_AppletUtility(int id, void* out, size_t outSize, const void* in, size_t inSize) |
| 1146 | { |
| 1147 | u32 cmdbuf[16]; |
| 1148 | cmdbuf[0]=IPC_MakeHeader(0x4B,3,2); // 0x4B00C2 |
| 1149 | cmdbuf[1]=id; |
| 1150 | cmdbuf[2]=inSize; |
| 1151 | cmdbuf[3]=outSize; |
| 1152 | cmdbuf[4]=IPC_Desc_StaticBuffer(cmdbuf[2],1); |
| 1153 | cmdbuf[5]=(u32)in; |
| 1154 | |
| 1155 | u32 saved_threadstorage[2]; |
| 1156 | u32* staticbufs = getThreadStaticBuffers(); |
| 1157 | saved_threadstorage[0]=staticbufs[0]; |
| 1158 | saved_threadstorage[1]=staticbufs[1]; |
| 1159 | staticbufs[0]=IPC_Desc_StaticBuffer(cmdbuf[3],0); |
| 1160 | staticbufs[1]=(u32)out; |
| 1161 | |
| 1162 | Result ret = aptSendCommand(cmdbuf); |
| 1163 | staticbufs[0]=saved_threadstorage[0]; |
| 1164 | staticbufs[1]=saved_threadstorage[1]; |
| 1165 | |
| 1166 | return R_SUCCEEDED(ret) ? cmdbuf[2] : ret; |
| 1167 | } |
| 1168 | |
| 1169 | Result APT_SleepIfShellClosed(void) |
| 1170 | { |
no test coverage detected