Result PS_EncryptSignDecryptVerifyAesCcm(u8* in, u32 in_size, u8* out, u32 out_size, u32 data_len, u32 mac_data_len, u32 mac_len, PS_AESAlgorithm aes_algo, PS_AESKeyType key_type, u8* nonce) { Result ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); u32 *_nonce = (u32*)nonce; cmdbuf[0] = IPC_MakeHeader(0x5,10,4); // 0x50284 cmdbuf[1] = in_size; cmdbuf[2] = mac_data_len; cmdbuf[3] = data_len; cmdbuf[4] = out_size; cmdbuf[5] = mac_len; memcpy(&cmdbuf[6], _nonce, 12); cmdbuf[9] = aes_algo; cmdbuf[10] = key_type; cmdbuf[11] = IPC_Desc_Buffer(in_size, IPC_BUFFER_R); cmdbuf[12] = (u32)in; cmdbuf[13] = IPC_Desc_Buffer(out_size, IPC_BUFFER_W); cmdbuf[14] = (u32)out; if(R_FAILED(ret = svcSendSyncRequest(psHandle)))return ret; return (Result)cmdbuf[1]; }
int socListen(int sockfd, int max_connections) { Result ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x3,2,2); // 0x30082 cmdbuf[1] = (u32)sockfd; cmdbuf[2] = (u32)max_connections; cmdbuf[3] = IPC_Desc_CurProcessHandle(); ret = svcSendSyncRequest(SOCU_handle); if(ret != 0) { //errno = SYNC_ERROR; return ret; } ret = (int)cmdbuf[1]; if(ret == 0) ret = _net_convert_error(cmdbuf[2]); if(ret < 0) { //errno = -ret; return -1; } return 0; }
static int soc_close(struct _reent *r, int fd) { Handle sockfd = *(Handle*)fd; int ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0xB,1,2); // 0xB0042 cmdbuf[1] = (u32)sockfd; cmdbuf[2] = IPC_Desc_CurProcessHandle(); ret = svcSendSyncRequest(SOCU_handle); if(ret != 0) { errno = SYNC_ERROR; return ret; } ret = (int)cmdbuf[1]; if(ret == 0) ret =_net_convert_error(cmdbuf[2]); if(ret < 0) { errno = -ret; return -1; } return 0; }
Result PS_EncryptDecryptAes(u32 size, u8* in, u8* out, PS_AESAlgorithm aes_algo, PS_AESKeyType key_type, u8* iv) { Result ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); u32 *_iv = (u32*)iv; cmdbuf[0] = IPC_MakeHeader(0x4,7,4); // 0x401C4 cmdbuf[1] = size; cmdbuf[2] = _iv[0]; cmdbuf[3] = _iv[1]; cmdbuf[4] = _iv[2]; cmdbuf[5] = _iv[3]; cmdbuf[6] = aes_algo; cmdbuf[7] = key_type; cmdbuf[8] = IPC_Desc_PXIBuffer(size,0,false); cmdbuf[9] = (u32)in; cmdbuf[10] = IPC_Desc_PXIBuffer(size,1,false); cmdbuf[11] = (u32)out; if(R_FAILED(ret = svcSendSyncRequest(psHandle)))return ret; _iv[0] = cmdbuf[2] & 0xFF; _iv[1] = cmdbuf[3] & 0xFF; _iv[2] = cmdbuf[4] & 0xFF; _iv[3] = cmdbuf[5] & 0xFF; return (Result)cmdbuf[1]; }
Result udsGetApplicationData(void *buf, size_t size, size_t *actual_size) { u32* cmdbuf=getThreadCommandBuffer(); u32 saved_threadstorage[2]; cmdbuf[0]=IPC_MakeHeader(0x11,1,0); // 0x110040 cmdbuf[1]=size; u32 * staticbufs = getThreadStaticBuffers(); saved_threadstorage[0] = staticbufs[0]; saved_threadstorage[1] = staticbufs[1]; staticbufs[0] = IPC_Desc_StaticBuffer(size,0); staticbufs[1] = (u32)buf; Result ret=0; ret=svcSendSyncRequest(__uds_servhandle); staticbufs[0] = saved_threadstorage[0]; staticbufs[1] = saved_threadstorage[1]; if(R_FAILED(ret))return ret; ret = cmdbuf[1]; if(R_SUCCEEDED(ret)) { if(actual_size)*actual_size = cmdbuf[2]; } return ret; }
static Result udsipc_DecryptBeaconData(udsNetworkStruct *network, u8 *tag0, u8 *tag1, udsNodeInfo *out) { u32* cmdbuf=getThreadCommandBuffer(); u32 tagsize = 0xfe; u32 saved_threadstorage[2]; cmdbuf[0]=IPC_MakeHeader(0x1F,0,6); // 0x1F0006 cmdbuf[1]=IPC_Desc_StaticBuffer(sizeof(udsNetworkStruct), 1); cmdbuf[2]=(u32)network; cmdbuf[3]=IPC_Desc_StaticBuffer(tagsize, 2); cmdbuf[4]=(u32)tag0; cmdbuf[5]=IPC_Desc_StaticBuffer(tagsize, 3); cmdbuf[6]=(u32)tag1; u32 * staticbufs = getThreadStaticBuffers(); saved_threadstorage[0] = staticbufs[0]; saved_threadstorage[1] = staticbufs[1]; staticbufs[0] = IPC_Desc_StaticBuffer(0x280,0); staticbufs[1] = (u32)out; Result ret=0; ret=svcSendSyncRequest(__uds_servhandle); staticbufs[0] = saved_threadstorage[0]; staticbufs[1] = saved_threadstorage[1]; if(R_FAILED(ret))return ret; return cmdbuf[1]; }
int sockatmark(int sockfd) { int ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); sockfd = soc_get_fd(sockfd); if(sockfd < 0) { errno = -sockfd; return -1; } cmdbuf[0] = IPC_MakeHeader(0x15,1,2); // 0x150042 cmdbuf[1] = (u32)sockfd; cmdbuf[2] = IPC_Desc_CurProcessHandle(); ret = svcSendSyncRequest(SOCU_handle); if(ret != 0) { errno = SYNC_ERROR; return -1; } ret = (int)cmdbuf[1]; if(ret == 0) ret = _net_convert_error(cmdbuf[2]); if(ret < 0) { errno = -ret; return -1; } return ret; }
Result FSLDR_OpenFileDirectly(Handle* out, FS_Archive archive, FS_Path path, u32 openFlags, u32 attributes) { u32 *cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x803,8,4); // 0x8030204 cmdbuf[1] = 0; cmdbuf[2] = archive.id; cmdbuf[3] = archive.lowPath.type; cmdbuf[4] = archive.lowPath.size; cmdbuf[5] = path.type; cmdbuf[6] = path.size; cmdbuf[7] = openFlags; cmdbuf[8] = attributes; cmdbuf[9] = IPC_Desc_StaticBuffer(archive.lowPath.size, 2); cmdbuf[10] = (u32) archive.lowPath.data; cmdbuf[11] = IPC_Desc_StaticBuffer(path.size, 0); cmdbuf[12] = (u32) path.data; Result ret = 0; if(R_FAILED(ret = svcSendSyncRequest(fsldrHandle))) return ret; if(out) *out = cmdbuf[3]; return cmdbuf[1]; }
int socSetsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen) { int ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x12,4,4); // 0x120104 cmdbuf[1] = (u32)sockfd; cmdbuf[2] = (u32)level; cmdbuf[3] = (u32)optname; cmdbuf[4] = (u32)optlen; cmdbuf[5] = IPC_Desc_CurProcessHandle(); cmdbuf[7] = IPC_Desc_StaticBuffer(optlen,9); cmdbuf[8] = (u32)optval; ret = svcSendSyncRequest(SOCU_handle); if(ret != 0) { return ret; } ret = (int)cmdbuf[1]; if(ret == 0) ret = _net_convert_error(cmdbuf[2]); if(ret < 0) { //errno = -ret; return -1; } return ret; }
Result APT_ReceiveDeliverArg_(void* param, size_t param_size, void* hmac, size_t hmac_size, u64* source_pid, bool* received) { u32 cmdbuf[16]; cmdbuf[0]=IPC_MakeHeader(0x35,2,0); cmdbuf[1]=param_size; cmdbuf[2]=hmac_size; u32 saved_threadstorage[4]; u32* staticbufs = getThreadStaticBuffers(); saved_threadstorage[0]=staticbufs[0]; saved_threadstorage[1]=staticbufs[1]; saved_threadstorage[2]=staticbufs[2]; saved_threadstorage[3]=staticbufs[3]; staticbufs[0]=IPC_Desc_StaticBuffer(param_size, 0); staticbufs[1]=(u32)param; staticbufs[2]=IPC_Desc_StaticBuffer(hmac_size, 2); staticbufs[3]=(u32)hmac; Result ret = aptSendCommand(cmdbuf); staticbufs[0]=saved_threadstorage[0]; staticbufs[1]=saved_threadstorage[1]; staticbufs[2]=saved_threadstorage[2]; staticbufs[3]=saved_threadstorage[3]; if(R_FAILED(ret)) return ret; if(source_pid) *source_pid = ((u64*)cmdbuf)[1]; if(received) *received = ((bool*)cmdbuf)[16]; return cmdbuf[1]; }
Result APT_AppletUtility(u32* out, u32 a, u32 size1, u8* buf1, u32 size2, u8* buf2) { u32 saved_threadstorage[2]; u32* cmdbuf=getThreadCommandBuffer(); cmdbuf[0]=IPC_MakeHeader(0x4B,3,2); // 0x4B00C2 cmdbuf[1]=a; cmdbuf[2]=size1; cmdbuf[3]=size2; cmdbuf[4]=IPC_Desc_StaticBuffer(size1,1); cmdbuf[5]=(u32)buf1; u32 *staticbufs = getThreadStaticBuffers(); saved_threadstorage[0]=staticbufs[0]; saved_threadstorage[1]=staticbufs[1]; staticbufs[0]=IPC_Desc_StaticBuffer(size2,0); staticbufs[1]=(u32)buf2; Result ret=svcSendSyncRequest(aptuHandle); staticbufs[0]=saved_threadstorage[0]; staticbufs[1]=saved_threadstorage[1]; if(R_FAILED(ret))return ret; if(out)*out=cmdbuf[2]; return cmdbuf[1]; }
Result CAMU_DriverFinalize(void) { Result ret = 0; u32* cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x3A,0,0); // 0x3A0000 if (R_FAILED(ret = svcSendSyncRequest(camHandle))) return ret; return cmdbuf[1]; }
Result CAMU_SetBrightnessSynchronization(bool brightnessSynchronization) { Result ret = 0; u32* cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x3E,1,0); // 0x3E0040 cmdbuf[1] = brightnessSynchronization; if (R_FAILED(ret = svcSendSyncRequest(camHandle))) return ret; return cmdbuf[1]; }
Result Y2RU_DriverInitialize(void) { Result ret = 0; u32* cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x2B,0,0); // 0x2B0000 if (R_FAILED(ret = svcSendSyncRequest(y2rHandle))) return ret; return cmdbuf[1]; }
Result CAMU_SetStereoCameraCalibrationData(CAMU_StereoCameraCalibrationData data) { Result ret = 0; u32* cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x2C,16,0); // 0x2C0400 *(CAMU_StereoCameraCalibrationData*) cmdbuf[1] = data; if (R_FAILED(ret = svcSendSyncRequest(camHandle))) return ret; return cmdbuf[1]; }
Result CAMU_GetSuitableY2rStandardCoefficient(Y2RU_StandardCoefficient* coefficient) { Result ret = 0; u32* cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x36,0,0); // 0x360000 if (R_FAILED(ret = svcSendSyncRequest(camHandle))) return ret; *coefficient = (Y2RU_StandardCoefficient) cmdbuf[2]; return cmdbuf[1]; }
Result CAMU_SetPackageParameterWithContextDetail(CAMU_PackageParameterContextDetail param) { Result ret = 0; u32* cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x35,7,0); // 0x3501C0 *(CAMU_PackageParameterContextDetail*) cmdbuf[1] = param; if (R_FAILED(ret = svcSendSyncRequest(camHandle))) return ret; return cmdbuf[1]; }
Result CAMU_SetPackageParameterWithoutContext(CAMU_PackageParameterCameraSelect param) { Result ret = 0; u32* cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x33,11,0); // 0x3302C0 *(CAMU_PackageParameterCameraSelect*) cmdbuf[1] = param; if (R_FAILED(ret = svcSendSyncRequest(camHandle))) return ret; return cmdbuf[1]; }
Result CAMU_GetImageQualityCalibrationData(CAMU_ImageQualityCalibrationData* data) { Result ret = 0; u32* cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x32,0,0); // 0x320000 if (R_FAILED(ret = svcSendSyncRequest(camHandle))) return ret; *data = *(CAMU_ImageQualityCalibrationData*) cmdbuf[2]; return cmdbuf[1]; }
Result CAMU_SetImageQualityCalibrationData(CAMU_ImageQualityCalibrationData data) { Result ret = 0; u32* cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x31,6,0); // 0x310180 *(CAMU_ImageQualityCalibrationData*) cmdbuf[1] = data; if (R_FAILED(ret = svcSendSyncRequest(camHandle))) return ret; return cmdbuf[1]; }
Result CAMU_ClearBuffer(u32 port) { Result ret = 0; u32* cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x4,1,0); // 0x40040 cmdbuf[1] = port; if (R_FAILED(ret = svcSendSyncRequest(camHandle))) return ret; return cmdbuf[1]; }
Result CAMU_Activate(u32 select) { Result ret = 0; u32* cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x13,1,0); // 0x130040 cmdbuf[1] = select; if (R_FAILED(ret = svcSendSyncRequest(camHandle))) return ret; return cmdbuf[1]; }
Result CAMU_PlayShutterSound(CAMU_ShutterSoundType sound) { Result ret = 0; u32* cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x38,1,0); // 0x380040 cmdbuf[1] = sound; if (R_FAILED(ret = svcSendSyncRequest(camHandle))) return ret; return cmdbuf[1]; }
Result CAMU_SetSleepCamera(u32 select) { Result ret = 0; u32* cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x3D,0,0); // 0x3D0040 cmdbuf[1] = select; if (R_FAILED(ret = svcSendSyncRequest(camHandle))) return ret; return cmdbuf[1]; }
Result CAMU_GetSleepCamera(u32* select) { Result ret = 0; u32* cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x3C,0,0); // 0x3C0000 if (R_FAILED(ret = svcSendSyncRequest(camHandle))) return ret; *select = (u32) cmdbuf[2]; return cmdbuf[1]; }
Result Y2RU_StopConversion(void) { Result ret = 0; u32* cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x27,0,0); // 0x270000 if (R_FAILED(ret = svcSendSyncRequest(y2rHandle))) return ret; return cmdbuf[1]; }
Result HIDUSER_DisableGyroscope(void) { u32* cmdbuf=getThreadCommandBuffer(); cmdbuf[0]=IPC_MakeHeader(0x14,0,0); // 0x140000 Result ret=0; if(R_FAILED(ret=svcSendSyncRequest(hidHandle)))return ret; return cmdbuf[1]; }
Result APT_HardwareResetAsync() { u32* cmdbuf=getThreadCommandBuffer(); cmdbuf[0]=IPC_MakeHeader(0x4E,0,0); // 0x4E0000 Result ret=0; if(R_FAILED(ret=svcSendSyncRequest(aptuHandle)))return ret; return cmdbuf[1]; }
Result APT_Finalize(NS_APPID appId) { u32* cmdbuf=getThreadCommandBuffer(); cmdbuf[0]=IPC_MakeHeader(0x4,1,0); // 0x40040 cmdbuf[1]=appId; Result ret=0; if(R_FAILED(ret=svcSendSyncRequest(aptuHandle)))return ret; return cmdbuf[1]; }
Result APT_PrepareToJumpToHomeMenu(void) { u32* cmdbuf=getThreadCommandBuffer(); cmdbuf[0]=IPC_MakeHeader(0x2B,0,0); // 0x2B0000 Result ret=0; if(R_FAILED(ret=svcSendSyncRequest(aptuHandle)))return ret; return cmdbuf[1]; }