summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/kernel/kernel/modulemgr.h11
-rw-r--r--include/user/kernel/clib.h11
-rw-r--r--include/user/usbserial.h83
-rw-r--r--nids/360/SceKernelModulemgr.yml6
-rw-r--r--nids/360/SceUsbSerial.yml24
5 files changed, 130 insertions, 5 deletions
diff --git a/include/kernel/kernel/modulemgr.h b/include/kernel/kernel/modulemgr.h
index 67f5ab5..5d7a956 100644
--- a/include/kernel/kernel/modulemgr.h
+++ b/include/kernel/kernel/modulemgr.h
@@ -78,16 +78,19 @@ int sceKernelGetModuleInternal(SceUID modid, void **module);
int sceKernelGetSystemSwVersion(SceKernelFwInfo *data);
+int sceKernelLoadStartModule(const char *path, SceSize args, void *argp, int flags, SceKernelLMOption *option, int *status);
SceUID sceKernelLoadModule(const char *path, int flags, SceKernelLMOption *option);
int sceKernelStartModule(SceUID modid, SceSize args, void *argp, int flags, SceKernelLMOption *option, int *status);
+int sceKernelUnloadModule(SceUID modid, int flags, SceKernelULMOption *option);
+int sceKernelStopModule(SceUID modid, SceSize args, void *argp, int flags, SceKernelULMOption *option, int *status);
+int sceKernelStopUnloadModule(SceUID modid, SceSize args, void *argp, int flags, SceKernelULMOption *option, int *status);
SceUID sceKernelLoadStartSharedModuleForPid(SceUID pid, const char *path, SceSize args, void *argp, int flags, SceKernelLMOption *option, int *status);
SceUID sceKernelLoadStartModuleForPid(SceUID pid, const char *path, SceSize args, void *argp, int flags, SceKernelLMOption *option, int *status);
SceUID sceKernelLoadModuleForPid(SceUID pid, const char *path, int flags, SceKernelLMOption *option);
-
-int sceKernelUnloadModule(SceUID modid, int flags);
-
-int sceKernelStopUnloadModule(SceUID modid, SceSize args, void *argp, int flags, SceKernelULMOption *option, int *status);
+SceUID sceKernelUnloadModuleForPid(SceUID pid, SceUID modid, int flags, SceKernelULMOption *option);
+int sceKernelStopModuleForPid(SceUID pid, SceUID modid, SceSize args, void *argp, int flags, SceKernelULMOption *option, int *status);
+int sceKernelStopUnloadModuleForPid(SceUID pid, SceUID modid, SceSize args, void *argp, int flags, SceKernelULMOption *option, int *status);
#ifdef __cplusplus
}
diff --git a/include/user/kernel/clib.h b/include/user/kernel/clib.h
index bb8ba0d..1188707 100644
--- a/include/user/kernel/clib.h
+++ b/include/user/kernel/clib.h
@@ -9,10 +9,21 @@ extern "C" {
#endif
int sceClibStrcmp(const char *, const char *);
+void *sceClibStrncmp(const char *, const char *, SceSize);
+int sceClibStrncasecmp(const char *, const char *, SceSize);
+char *sceClibStrncpy(char *, const char *, SceSize);
+char *sceClibStrncat(char *, const char *, SceSize);
+SceSize sceClibStrnlen(const char *, SceSize);
+char *sceClibStrrchr(const char *, int);
+int sceClibPrintf(const char *, ...);
int sceClibSnprintf(char *, SceSize, const char *, ...);
int sceClibVsnprintf(char *, SceSize, const char *, va_list);
+void *sceClibMemset(void *, int, SceSize);
+void *sceClibMemcpy(void *, const void *, SceSize);
+void *sceClibMemmove(void *, const void *, SceSize);
+
#ifdef __cplusplus
}
#endif
diff --git a/include/user/usbserial.h b/include/user/usbserial.h
new file mode 100644
index 0000000..00c9ba6
--- /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 sceUsbSerialGetRecvBufferSize(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/SceKernelModulemgr.yml b/nids/360/SceKernelModulemgr.yml
index d889f7b..9f95892 100644
--- a/nids/360/SceKernelModulemgr.yml
+++ b/nids/360/SceKernelModulemgr.yml
@@ -18,7 +18,9 @@ modules:
sceKernelLoadStartModuleForPid: 0x9D953C22
sceKernelLoadStartSharedModuleForPid: 0xE2ADEF8D
sceKernelStartModule: 0x0675B682
- sceKernelStopUnloadModule: 0x100DAEB9
+ sceKernelStopModule: 0x100DAEB9
+ sceKernelStopUnloadModule: 0x03B30B7E
+ sceKernelStopUnloadModuleForPid: 0x49A3EDC7
sceKernelUnloadModule: 0x728E72A6
SceModulemgrForKernel:
nid: 0xC445FA63
@@ -27,3 +29,5 @@ modules:
sceKernelGetModuleInternal: 0xFE303863
sceKernelGetModuleList: 0x97CF7B4E
sceKernelLoadModuleForPid: 0xFA21D8CB
+ sceKernelStopModuleForPid: 0x7BB4CE54
+ sceKernelUnloadModuleForPid: 0x5972E2CC
diff --git a/nids/360/SceUsbSerial.yml b/nids/360/SceUsbSerial.yml
new file mode 100644
index 0000000..485a685
--- /dev/null
+++ b/nids/360/SceUsbSerial.yml
@@ -0,0 +1,24 @@
+modules:
+ SceUsbSerial:
+ nid: 0xF8D9930F
+ libraries:
+ SceUsbSerial:
+ nid: 0x2820117D
+ functions:
+ sceUsbSerialClose: 0xF2415853
+ sceUsbSerialGetRecvBufferSize: 0xE8567A87
+ sceUsbSerialRecv: 0xF26DC8D8
+ sceUsbSerialSend: 0x89E71202
+ sceUsbSerialSetup: 0x290E08B4
+ sceUsbSerialStart: 0xE3BEC18C
+ sceUsbSerialStatus: 0xA6A2F5DE
+ SceUsbSerialForDriver:
+ nid: 0x8829C2F3
+ functions:
+ sceUsbSerialClose: 0xE6B1E64F
+ sceUsbSerialGetRecvBufferSize: 0xF531B5AE
+ sceUsbSerialRecv: 0x6B5E296F
+ sceUsbSerialSend: 0x0C2E73C0
+ sceUsbSerialSetup: 0x590B8F97
+ sceUsbSerialStart: 0xFEE7F4BA
+ sceUsbSerialStatus: 0x8C426906