add usbDsGetSpeed and missing speed enum entries.

This commit is contained in:
ITotalJustice 2025-05-21 20:03:14 +01:00
parent de7cfeb3d9
commit b3067506b4
2 changed files with 13 additions and 2 deletions

View File

@ -55,6 +55,8 @@ typedef enum {
} UsbComplexId;
typedef enum {
UsbDeviceSpeed_None = 0x0,
UsbDeviceSpeed_Low = 0x1, ///< USB 1.0 Low Speed
UsbDeviceSpeed_Full = 0x2, ///< USB 1.1 Full Speed
UsbDeviceSpeed_High = 0x3, ///< USB 2.0 High Speed
UsbDeviceSpeed_Super = 0x4, ///< USB 3.0 Super Speed
@ -119,6 +121,9 @@ Result usbDsEnable(void);
/// Only available on [5.0.0+].
Result usbDsDisable(void);
/// Only available on [8.0.0+].
Result usbDsGetSpeed(UsbDeviceSpeed* out);
///@}
///@name IDsInterface
@ -158,4 +163,3 @@ Result usbDsEndpoint_Stall(UsbDsEndpoint* endpoint);
Result usbDsEndpoint_SetZlt(UsbDsEndpoint* endpoint, bool zlt); // Sets Zero Length Termination for endpoint
///@}

View File

@ -558,6 +558,14 @@ Result usbDsDisable(void) {
return _usbDsCmdNoIO(&g_usbDsSrv, hosversionAtLeast(11,0,0) ? 10 : 11);
}
Result usbDsGetSpeed(UsbDeviceSpeed* out) {
if (hosversionBefore(8,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
_Static_assert(sizeof(*out) == sizeof(u32));
return _usbDsCmdNoInOutU32(&g_usbDsSrv, (u32 *)out, hosversionAtLeast(11,0,0) ? 11 : 12);
}
//IDsInterface
@ -729,4 +737,3 @@ Result usbDsEndpoint_SetZlt(UsbDsEndpoint* endpoint, bool zlt) {
return _usbDsCmdInBoolNoOut(&endpoint->s, zlt, 5);
}