SceUsbDevSerial: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
No edit summary
 
(2 intermediate revisions by one other user not shown)
Line 45: Line 45:
|}
|}


<source lang="C">int SceUsbDevSerial_57FBB08C(void *pOut, SceSize *size);</source>
<source lang="C">int SceUsbDevSerial_57FBB08C(void *pOut, SceSize *puiSize);</source>


=== SceUsbDevSerial_6F2B3960 ===
=== SceUsbDevSerial_6F2B3960 ===
Line 78: Line 78:
| 0.990-3.60 || 0x9F497D4E
| 0.990-3.60 || 0x9F497D4E
|}
|}
Reversed code:
<source lang="C">
sceUdcdDeactivateInternalForDriver(2);
sceUdcdStopInternalForDriver("USBSerialDriver", 0, 0, 2);
sceUdcdStopInternalForDriver("USBDeviceControllerDriver", 0, 0, 2);
</source>


<source lang="C">
<source lang="C">
Line 84: Line 91:
  */
  */
int sceUsbDevSerialFinalize(void);
int sceUsbDevSerialFinalize(void);
</source>
<source lang="C">
sceUdcdDeactivateToBusForDriver(2);
sceUdcdStopToBusForDriver("USBSerialDriver", 0, 0, 2);
sceUdcdStopToBusForDriver("USBDeviceControllerDriver", 0, 0, 2);
</source>
</source>


Line 154: Line 155:
<source lang="C">int SceUsbDevSerial_F0C3F3D4(void);</source>
<source lang="C">int SceUsbDevSerial_F0C3F3D4(void);</source>


 
[[Category:ARM]]
[[Category:Kernel]]
[[Category:Modules]]
[[Category:Modules]]
[[Category:Kernel]]
[[Category:Library]]

Latest revision as of 21:36, 1 May 2023

Module

A simplified and internal development version of SceUsbSerial:

  • Does not check SceSblACMgrForDriver for processes capabilities.
  • Does not check sceIdStorageLookupForDriver(0x112, 0, /*s_data_81003184*/ "", 0x40); (might be Driver name similarly to PSP IdStorage)

This module exists only in Non-secure world. The SELF can be found in os0:kd/usbdev_serial.skprx.

Version World Privilege
0.990-3.60 Non-secure Kernel

Libraries

Known NIDs

Version Name World Visibility NID
0.990-3.60 SceUsbDevSerial Non-secure User 0x125C67C7

SceUsbDevSerial

SceUsbDevSerial_4437FF2D

Version NID
3.60 0x4437FF2D
int SceUsbDevSerial_4437FF2D(void *pIn, SceSize size);

SceUsbDevSerial_57FBB08C

Version NID
3.60 0x57FBB08C
int SceUsbDevSerial_57FBB08C(void *pOut, SceSize *puiSize);

SceUsbDevSerial_6F2B3960

Version NID
3.60 0x6F2B3960
int SceUsbDevSerial_6F2B3960(void);

SceUsbDevSerial_918D359E

Version NID
3.60 0x918D359E
// version: on FW 3.60, it must be 0x3517008 or 0x3517001
// value: anything different than 0
// value_size: must be 4
int SceUsbDevSerial_918D359E(SceUInt32 version, SceUInt32 value, SceSize value_size);

sceUsbDevSerialFinalize

Version NID
0.990-3.60 0x9F497D4E

Reversed code:

sceUdcdDeactivateInternalForDriver(2);
sceUdcdStopInternalForDriver("USBSerialDriver", 0, 0, 2);
sceUdcdStopInternalForDriver("USBDeviceControllerDriver", 0, 0, 2);
/**
 * Stops USB Dev Serial device
 */
int sceUsbDevSerialFinalize(void);

sceUsbDevSerialGetDeviceState

Version NID
0.990-3.60 0xC0FDECAF

Calls SceUdcd#sceUdcdGetDeviceStateInternalForDriver(2).

int sceUsbDevSerialGetDeviceState(void);

sceUsbDevSerialInit

Version NID
0.990-3.60 0xDAE5C362

Reversed code:

int sceUsbDevSerialInit(SceUInt32 bus) {
    int ret = 0;
    if (bus >= 2)
        return 0x80243300;
    ret = sceUdcdStartInternalForDriver("USBDeviceControllerDriver", 0, 0, 2));
    if (ret != 0)
        return ret;
    ret = sceUdcdStartInternalForDriver("USBSerialDriver", 0, 0, 2);
    if (ret != 0) {
        sceUdcdStopInternalForDriver("USBDeviceControllerDriver", 0, 0, 2);
        return ret;
    }
    ret = sceUdcdActivateInternalForDriver(0xFFFF, bus);
    if (ret != 0)
        sceUdcdStopInternalForDriver("USBSerialDriver", 0, 0, 2);
    return ret;
}
/**
 * Initialize USB Dev Serial device
 *
 * bus: Must be 0 or 1.
 * 
 * @return 0 on success, < 0 on error
 */
int sceUsbDevSerialInit(SceUInt32 bus);

SceUsbDevSerial_F0C3F3D4

Version NID
3.60 0xF0C3F3D4
int SceUsbDevSerial_F0C3F3D4(void);