SceUsbSerial: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
Devnoname120 (talk | contribs) (Swapped Module <-> Library, see revision 1.1 under "Revision History" of "Vita SDK specifications" (https://wiki.henkaku.xyz/vita/File:Vita_SDK_specifications.pdf)) |
||
Line 1: | Line 1: | ||
== | == Module == | ||
=== Known NIDs === | === Known NIDs === | ||
Line 9: | Line 9: | ||
|} | |} | ||
== | == Libraries == | ||
=== Known NIDs === | === Known NIDs === | ||
Line 264: | Line 264: | ||
</source> | </source> | ||
[[Category: | [[Category:Modules]] | ||
[[Category:Kernel]] | [[Category:Kernel]] |
Revision as of 03:43, 9 November 2016
Module
Known NIDs
Version | Name | World | Privilege | NID |
---|---|---|---|---|
1.69 | SceUsbSerial | Non-secure | Kernel | 0xF8D9930F |
Libraries
Known NIDs
Version | Name | World | Visibility | NID |
---|---|---|---|---|
1.69 | SceUsbSerialForDriver | Non-secure | Kernel | 0x8829C2F3 |
1.69 | SceUsbSerial | Non-secure | User | 0x2820117D |
SceUsbSerialForDriver
Activate USB serial device
Version | NID |
---|---|
1.69 | 0xFEE7F4BA |
The user is responsible for making sure no other UDC driver is active. This activates UDC as a "PS Vita" Type D
device.
int SceUsbSerialForDriver_0xFEE7F4BA_start(void);
Setup USB serial device
Version | NID |
---|---|
1.69 | 0x590B8F97 |
int SceUsbSerialForDriver_0x590B8F97_setup(int unk);
Get Device Status
Version | NID |
---|---|
1.69 | 0x8C426906 |
Returns 1 when device is ready.
int SceUsbSerialForDriver_0x8C426906_status(void);
Close USB serial device
Version | NID |
---|---|
1.69 | 0xE6B1E64F |
int SceUsbSerialForDriver_0xE6B1E64F_close(void);
Get receive buffer length
Version | NID |
---|---|
1.69 | 0xF531B5AE |
unsigned int SceUsbSerialForDriver_0xF531B5AE_get_len(void);
Send Data
Version | NID |
---|---|
1.69 | 0x0C2E73C0 |
unsigned int SceUsbSerialForDriver_0x0C2E73C0_send(const void *buffer, unsigned int len, int unk1, int unk2);
Receive Data
Version | NID |
---|---|
1.69 | 0x6B5E296F |
unsigned int SceUsbSerialForDriver_0x6B5E296F_recv(void *buffer, unsigned int max_len, int unk1, int unk2);
SceUsbSerial
Activate USB serial device
Version | NID |
---|---|
1.69 | 0xE3BEC18C |
User wrapper for 0xFEE7F4BA
. Must have correct permissions to call.
Setup USB serial device
Version | NID |
---|---|
1.69 | 0x290E08B4 |
User wrapper for 0x590B8F97
. Must have correct permissions to call.
Get Device Status
Version | NID |
---|---|
1.69 | 0xA6A2F5DE |
User wrapper for 0x8C426906
. Must have correct permissions to call.
Close USB serial device
Version | NID |
---|---|
1.69 | 0xF2415853 |
User wrapper for 0xE6B1E64F
. Must have correct permissions to call.
Get receive buffer length
Version | NID |
---|---|
1.69 | 0xE8567A87 |
User wrapper for 0xF531B5AE
. Must have correct permissions to call.
Send Data
Version | NID |
---|---|
1.69 | 0x89E71202 |
User wrapper for 0x0C2E73C0
. Must have correct permissions to call. Max length is 0x10000
.
Receive Data
Version | NID |
---|---|
1.69 | 0xF26DC8D8 |
User wrapper for 0x6B5E296F
. Must have correct permissions to call. Max length is 0x10000
.
Sample Usage
int usb_serial_connect(void) { int ret; ret = SceUsbSerialForDriver_0x8C426906_status(); printf("SceUsbSerialForDriver_0x8C426906_status: 0x%08X\n", ret); if (ret != 0x80244401) { printf("already connected\n"); return 0; } ret = SceUsbSerialForDriver_0xFEE7F4BA_start(); printf("SceUsbSerialForDriver_0xFEE7F4BA_start: 0x%08X\n", ret); ret = SceUsbSerialForDriver_0x590B8F97_setup(1); printf("SceUsbSerialForDriver_0x590B8F97_setup: 0x%08X\n", ret); if (ret == 0x80244403) { ret = SceUsbSerialForDriver_0x6AA4EFA4(); printf("SceUsbSerialForDriver_0x6AA4EFA4: 0x%08X\n", ret); ret = SceUsbSerialForDriver_0x590B8F97_setup(1); printf("SceUsbSerialForDriver_0x590B8F97_setup: 0x%08X\n", ret); } while (SceUsbSerialForDriver_0x8C426906_status() != 1); // wait for ready return 0; } int usb_serial_close(void) { int ret; ret = SceUsbSerialForDriver_0x6AA4EFA4(); printf("SceUsbSerialForDriver_0x6AA4EFA4: 0x%08X\n", ret); ret = SceUsbSerialForDriver_0xE6B1E64F_close(); printf("SceUsbSerialForDriver_0xE6B1E64F_close: 0x%08X\n", ret); return 0; } int usb_serial_send(const void *data, unsigned int len) { int ret; ret = SceUsbSerialForDriver_0x0C2E73C0_send(data, len, 0, -1); printf("SceUsbSerialForDriver_0x0C2E73C0_send: 0x%08X\n"); return ret; } int usb_serial_recv(void *data, unsigned int len) { int ret; while (SceUsbSerialForDriver_0xF531B5AE_get_len() < len) { if (SceUsbSerialForDriver_0x8C426906_status() != 1) { return 0; } } ret = SceUsbSerialForDriver_0x6B5E296F_recv(data, len, 0, -1); printf("SceUsbSerialForDriver_0x6B5E296F_recv: 0x%08X\n"); return ret; }