|
libnx
|
USB (usb:*) service IPC wrapper. More...
Go to the source code of this file.
Data Structures | |
| struct | usb_endpoint_descriptor |
| Imported from libusb, with some adjustments. More... | |
| struct | usb_interface_descriptor |
| Imported from libusb, with some adjustments. More... | |
| struct | UsbDsDeviceInfo |
| struct | UsbDsReportEntry |
| struct | UsbDsReportData |
| struct | UsbDsInterface |
| struct | UsbDsEndpoint |
Macros | |
| #define | USBDS_DEFAULT_InterfaceNumber 0x4 |
| usb:ds Switch-as-device<>host USB comms, see also here: http://switchbrew.org/index.php?title=USB_services More... | |
| #define | USB_DT_INTERFACE_SIZE 9 |
| Imported from libusb with changed names. | |
| #define | USB_DT_ENDPOINT_SIZE 7 |
Enumerations | |
| enum | UsbComplexId { UsbComplexId_Default = 0x2 } |
| enum | usb_class_code { USB_CLASS_PER_INTERFACE = 0, USB_CLASS_AUDIO = 1, USB_CLASS_COMM = 2, USB_CLASS_HID = 3, USB_CLASS_PHYSICAL = 5, USB_CLASS_PRINTER = 7, USB_CLASS_PTP = 6, USB_CLASS_IMAGE = 6, USB_CLASS_MASS_STORAGE = 8, USB_CLASS_HUB = 9, USB_CLASS_DATA = 10, USB_CLASS_SMART_CARD = 0x0b, USB_CLASS_CONTENT_SECURITY = 0x0d, USB_CLASS_VIDEO = 0x0e, USB_CLASS_PERSONAL_HEALTHCARE = 0x0f, USB_CLASS_DIAGNOSTIC_DEVICE = 0xdc, USB_CLASS_WIRELESS = 0xe0, USB_CLASS_APPLICATION = 0xfe, USB_CLASS_VENDOR_SPEC = 0xff } |
| Imported from libusb, with changed names. | |
| enum | usb_descriptor_type { USB_DT_DEVICE = 0x01, USB_DT_CONFIG = 0x02, USB_DT_STRING = 0x03, USB_DT_INTERFACE = 0x04, USB_DT_ENDPOINT = 0x05, USB_DT_BOS = 0x0f, USB_DT_DEVICE_CAPABILITY = 0x10, USB_DT_HID = 0x21, USB_DT_REPORT = 0x22, USB_DT_PHYSICAL = 0x23, USB_DT_HUB = 0x29, USB_DT_SUPERSPEED_HUB = 0x2a, USB_DT_SS_ENDPOINT_COMPANION = 0x30 } |
| Imported from libusb, with changed names. | |
| enum | usb_endpoint_direction { USB_ENDPOINT_IN = 0x80, USB_ENDPOINT_OUT = 0x00 } |
| Imported from libusb, with changed names. | |
| enum | usb_transfer_type { USB_TRANSFER_TYPE_CONTROL = 0, USB_TRANSFER_TYPE_ISOCHRONOUS = 1, USB_TRANSFER_TYPE_BULK = 2, USB_TRANSFER_TYPE_INTERRUPT = 3, USB_TRANSFER_TYPE_BULK_STREAM = 4 } |
| Imported from libusb, with changed names. | |
| enum | usb_iso_sync_type { USB_ISO_SYNC_TYPE_NONE = 0, USB_ISO_SYNC_TYPE_ASYNC = 1, USB_ISO_SYNC_TYPE_ADAPTIVE = 2, USB_ISO_SYNC_TYPE_SYNC = 3 } |
| Imported from libusb, with changed names. | |
| enum | usb_iso_usage_type { USB_ISO_USAGE_TYPE_DATA = 0, USB_ISO_USAGE_TYPE_FEEDBACK = 1, USB_ISO_USAGE_TYPE_IMPLICIT = 2 } |
| Imported from libusb, with changed names. | |
Functions | |
| Result | usbDsInitialize (UsbComplexId complexId, const UsbDsDeviceInfo *deviceinfo) |
| void | usbDsExit (void) |
| Exit usbDs. Any interfaces/endpoints which are left open are automatically closed, since otherwise usb-sysmodule won't fully reset usbds to defaults. | |
| Service * | usbDsGetServiceSession (void) |
| Handle | usbDsGetStateChangeEvent (void) |
| Result | usbDsGetState (u32 *out) |
| Result | usbDsGetDsInterface (UsbDsInterface **interface, struct usb_interface_descriptor *descriptor, const char *interface_name) |
| Result | usbDsWaitReady (void) |
| Wait for initialization to finish where data-transfer is usable. | |
| Result | usbDsParseReportData (UsbDsReportData *reportdata, u32 urbId, u32 *requestedSize, u32 *transferredSize) |
| Parse usbDsReportData from the Get*ReportData commands, where urbId is from the post-buffer commands. Will return the converted urb_status result-value. | |
| void | usbDsInterface_Close (UsbDsInterface *interface) |
| IDsInterface. | |
| Result | usbDsInterface_GetDsEndpoint (UsbDsInterface *interface, UsbDsEndpoint **endpoint, struct usb_endpoint_descriptor *descriptor) |
| Result | usbDsInterface_EnableInterface (UsbDsInterface *interface) |
| Result | usbDsInterface_DisableInterface (UsbDsInterface *interface) |
| Result | usbDsInterface_CtrlInPostBufferAsync (UsbDsInterface *interface, void *buffer, size_t size, u32 *urbId) |
| Result | usbDsInterface_CtrlOutPostBufferAsync (UsbDsInterface *interface, void *buffer, size_t size, u32 *urbId) |
| Result | usbDsInterface_GetCtrlInReportData (UsbDsInterface *interface, UsbDsReportData *out) |
| Result | usbDsInterface_GetCtrlOutReportData (UsbDsInterface *interface, UsbDsReportData *out) |
| Result | usbDsInterface_StallCtrl (UsbDsInterface *interface) |
| void | usbDsEndpoint_Close (UsbDsEndpoint *endpoint) |
| IDsEndpoint. | |
| Result | usbDsEndpoint_PostBufferAsync (UsbDsEndpoint *endpoint, void *buffer, size_t size, u32 *urbId) |
| Result | usbDsEndpoint_GetReportData (UsbDsEndpoint *endpoint, UsbDsReportData *out) |
| Result | usbDsEndpoint_StallCtrl (UsbDsEndpoint *endpoint) |
USB (usb:*) service IPC wrapper.
| #define USBDS_DEFAULT_InterfaceNumber 0x4 |
usb:ds Switch-as-device<>host USB comms, see also here: http://switchbrew.org/index.php?title=USB_services
Names starting with "libusb" were changed to "usb" to avoid collision with actual libusb if it's ever used.
1.8.11