summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/user/usbserial.h83
-rw-r--r--nids/360/SceUsbSerial.yml24
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