diff options
-rw-r--r-- | include/user/usbserial.h | 83 | ||||
-rw-r--r-- | nids/360/SceUsbSerial.yml | 24 |
2 files changed, 107 insertions, 0 deletions
diff --git a/include/user/usbserial.h b/include/user/usbserial.h new file mode 100644 index 0000000..baf4c41 --- /dev/null +++ b/include/user/usbserial.h @@ -0,0 +1,83 @@ +#ifndef _PSP2_USBSERIAL_H_ +#define _PSP2_USBSERIAL_H_ + +#include <psp2/types.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Activate USB serial device + * + * @return 0 on success, < 0 on error + * + * @note The user is responsible for making sure no other UDC driver is active. This activates UDC as a "PS Vita" Type D device. + * + * @note Wrapper for kernel function sceUsbSerialStart() + */ +int sceUsbSerialStart(void); + +/** + * Setup USB serial device + * + * @return 0 on success, < 0 on error + * + * @param unk Unknown + * + * @note Wrapper for kernel function sceUsbSerialSetup() + */ +int sceUsbSerialSetup(int unk); + +/** + * Close USB serial device + * + * @note Wrapper for kernel function sceUsbSerialClose() + */ +int sceUsbSerialClose(void); + +/** + * Close USB serial device + * + * @return Returns 1 when serial port is open + * + * @note Wrapper for kernel function sceUsbSerialStatus() + */ +int sceUsbSerialStatus(void); + +/** + * Get receive buffer length + * + * @return Returns length of USB rx buffer + * + * @note Wrapper for kernel function sceUsbSerialGetLen() + */ +unsigned int sceUsbSerialGetLen(void); + +/** + * Send data + * @param[in] *buffer data to send over usb + * @param len int len of serial buffer data + * @param unk1 Unknown + * @param unk2 Unknown + * @note max send length is 0x10000 + * @note Wrapper for kernel function sceUsbSerialSend() + */ +unsigned int sceUsbSerialSend(const void *buffer, unsigned int len, int unk1, int unk2); + +/** + * Receive Data + * + * @param[out] *buffer buffer for incoming data + * @param max_len max data length to receive + * @param unk1 Unknown + * @param unk2 Unknown + * @note max recv length is 0x10000 + * @note Wrapper for kernel function sceUsbSerialRecv() + */ +unsigned int sceUsbSerialRecv(void *buffer, unsigned int max_len, int unk1, int unk2); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/nids/360/SceUsbSerial.yml b/nids/360/SceUsbSerial.yml new file mode 100644 index 0000000..0b22b63 --- /dev/null +++ b/nids/360/SceUsbSerial.yml @@ -0,0 +1,24 @@ +modules: + SceUsbSerial: + nid: 0xF8D9930F + libraries: + SceUsbSerial: + nid: 0x2820117D + functions: + sceUsbSerialClose: 0xF2415853 + sceUsbSerialGetLen: 0xE8567A87 + sceUsbSerialRecv: 0xF26DC8D8 + sceUsbSerialSend: 0x89E71202 + sceUsbSerialSetup: 0x290E08B4 + sceUsbSerialStart: 0xE3BEC18C + sceUsbSerialStatus: 0xA6A2F5DE + SceUsbSerialForDriver: + nid: 0x8829C2F3 + functions: + sceUsbSerialClose: 0xE6B1E64F + sceUsbSerialGetLen: 0xF531B5AE + sceUsbSerialRecv: 0x6B5E296F + sceUsbSerialSend: 0x0C2E73C0 + sceUsbSerialSetup: 0x590B8F97 + sceUsbSerialStart: 0xFEE7F4BA + sceUsbSerialStatus: 0x8C426906 |