Awoo-Installer/include/util/usb_comms_awoo.h

47 lines
1.4 KiB
C
Raw Normal View History

/**
* @file usb_comms.h
* @brief USB comms.
* @author yellows8
* @author plutoo
* @copyright libnx Authors
*/
#ifdef __cplusplus
extern "C" {
#endif
#pragma once
#include "switch/types.h"
typedef struct {
u8 bInterfaceClass;
u8 bInterfaceSubClass;
u8 bInterfaceProtocol;
} awoo_UsbCommsInterfaceInfo;
/// Initializes usbComms with the default number of interfaces (1)
Result awoo_usbCommsInitialize(void);
/// Initializes usbComms with a specific number of interfaces.
Result awoo_usbCommsInitializeEx(u32 num_interfaces, const awoo_UsbCommsInterfaceInfo *infos);
/// Exits usbComms.
void awoo_usbCommsExit(void);
/// Sets whether to throw a fatal error in usbComms{Read/Write}* on failure, or just return the transferred size. By default (false) the latter is used.
void awoo_usbCommsSetErrorHandling(bool flag);
/// Read data with the default interface.
2019-12-26 01:35:54 +00:00
size_t awoo_usbCommsRead(void* buffer, size_t size, u64 timeout);
/// Write data with the default interface.
2019-12-26 01:35:54 +00:00
size_t awoo_usbCommsWrite(const void* buffer, size_t size, u64 timeout);
/// Same as usbCommsRead except with the specified interface.
2019-12-26 01:35:54 +00:00
size_t awoo_usbCommsReadEx(void* buffer, size_t size, u32 interface, u64 timeout);
/// Same as usbCommsWrite except with the specified interface.
2019-12-26 01:35:54 +00:00
size_t awoo_usbCommsWriteEx(const void* buffer, size_t size, u32 interface, u64 timeout);
#ifdef __cplusplus
}
#endif