From 2c89aed2b952e603ca08d3ecd11c840292ee7b82 Mon Sep 17 00:00:00 2001 From: yellows8 Date: Sat, 29 Dec 2018 19:13:53 -0500 Subject: [PATCH] Swapped the order of the buffers used in usbHsAcquireUsbIf on 3.0.0+. --- nx/source/services/usbhs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nx/source/services/usbhs.c b/nx/source/services/usbhs.c index 165ccbda..7c1bcca5 100644 --- a/nx/source/services/usbhs.c +++ b/nx/source/services/usbhs.c @@ -341,9 +341,9 @@ Result usbHsAcquireUsbIf(UsbHsClientIfSession* s, UsbHsInterface *interface) { ipcAddRecvBuffer(&c, &s->inf.inf, sizeof(UsbHsInterfaceInfo), BufferType_Normal); } else { - size_t tmpoff = offsetof(UsbHsInterfaceInfo, output_endpoint_descs[12]); - ipcAddRecvBuffer(&c, &s->inf.inf, tmpoff, BufferType_Normal); - ipcAddRecvBuffer(&c, &s->inf.inf.output_endpoint_descs[12], sizeof(UsbHsInterface) - tmpoff, BufferType_Normal); + //These buffer addresses are the inverse of what official sw does - needed to get the correct UsbHsInterface output for some reason. + ipcAddRecvBuffer(&c, &s->inf.pathstr, sizeof(UsbHsInterface) - sizeof(UsbHsInterfaceInfo), BufferType_Normal); + ipcAddRecvBuffer(&c, &s->inf.inf, sizeof(UsbHsInterfaceInfo), BufferType_Normal); } raw = serviceIpcPrepareHeader(&g_usbHsSrv, &c, sizeof(*raw));