| 138 | } |
| 139 | |
| 140 | Result srvGetServiceHandleDirect(Handle* out, const char* name) |
| 141 | { |
| 142 | Result rc = 0; |
| 143 | u32* cmdbuf = getThreadCommandBuffer(); |
| 144 | |
| 145 | cmdbuf[0] = IPC_MakeHeader(0x5,4,0); // 0x50100 |
| 146 | strncpy((char*) &cmdbuf[1], name,8); |
| 147 | cmdbuf[3] = strnlen(name, 8); |
| 148 | cmdbuf[4] = (u32)srvGetBlockingPolicy(); // per-thread setting, default is blocking |
| 149 | |
| 150 | rc = svcSendSyncRequest(srvHandle); |
| 151 | rc = R_SUCCEEDED(rc) ? cmdbuf[1] : rc; |
| 152 | if(out) *out = R_SUCCEEDED(rc) ? cmdbuf[3] : 0; |
| 153 | |
| 154 | return rc; |
| 155 | } |
| 156 | |
| 157 | Result srvRegisterPort(const char* name, Handle clientHandle) |
| 158 | { |
no test coverage detected