SceUsbDevSerial: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 11: Line 11:
! Version !! World !! Privilege
! Version !! World !! Privilege
|-
|-
| 0.995-3.60 || Non-secure || Kernel
| 0.990-3.60 || Non-secure || Kernel
|}
|}


Line 22: Line 22:
! Version !! Name !! World !! Visibility !! NID
! Version !! Name !! World !! Visibility !! NID
|-
|-
| 0.995-3.60 || [[SceUsbSerial#SceUsbSerial|SceUsbSerial]] || Non-secure || User || 0x125C67C7
| 0.990-3.60 || [[SceUsbDevSerial#SceUsbDevSerial|SceUsbDevSerial]] || Non-secure || User || 0x125C67C7
|}
|}


Line 35: Line 35:
|}
|}


<source lang="c">
<source lang="C">int SceUsbDevSerial_4437FF2D(void *pIn, SceSize size);</source>
 
</source>


=== SceUsbDevSerial_57FBB08C ===
=== SceUsbDevSerial_57FBB08C ===
Line 47: Line 45:
|}
|}


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


=== SceUsbDevSerial_6F2B3960 ===
=== SceUsbDevSerial_6F2B3960 ===
Line 59: Line 55:
|}
|}


<source lang="c">
<source lang="C">int SceUsbDevSerial_6F2B3960(void);</source>
 
</source>


=== SceUsbDevSerial_918D359E ===
=== SceUsbDevSerial_918D359E ===
Line 71: Line 65:
|}
|}


<source lang="c">
<source lang="C">
 
// version: on FW 3.60, it must be 0x3517008 or 0x3517001
</source>
// value: anything different than 0
// value_size: must be 4
int SceUsbDevSerial_918D359E(SceUInt32 version, SceUInt32 value, SceSize value_size);</source>


=== sceUsbDevSerialFinalize ===
=== sceUsbDevSerialFinalize ===
Line 83: Line 79:
|}
|}


<source lang="c">
<source lang="C">
/**
/**
  * Stops USB Dev Serial device
  * Stops USB Dev Serial device
Line 90: Line 86:
</source>
</source>


<source lang="c">
<source lang="C">
sceUdcdDeactivateToBusForDriver(2);
sceUdcdDeactivateToBusForDriver(2);
sceUdcdStopToBusForDriver("USBSerialDriver", 0, 0, 2);
sceUdcdStopToBusForDriver("USBSerialDriver", 0, 0, 2);
Line 104: Line 100:
|}
|}


Calls sceUdcdGetDeviceStateInternalForDriver(2, a2, a3, 2).
Calls [[SceUdcd#sceUdcdGetDeviceStateInternalForDriver]](2).


<source lang="c">sceUsbDevSerialGetDeviceState(int a1, int a2, int a3);</source>
<source lang="C">sceUsbDevSerialGetDeviceState(void);</source>


=== sceUsbDevSerialInit ===
=== sceUsbDevSerialInit ===
Line 116: Line 112:
|}
|}


<source lang="c">
Reversed code:
<source lang="C">
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;
}
</source>
 
<source lang="C">
/**
/**
  * Initialize USB Dev serial device
  * Initialize USB Dev Serial device
  *
  *
* bus: Must be 0 or 1.
*
  * @return 0 on success, < 0 on error
  * @return 0 on success, < 0 on error
  */
  */
int sceUsbDevSerialInit(int a1);
int sceUsbDevSerialInit(SceUInt32 bus);
</source>
 
<source lang="c">
int ret = 0;
ret = sceUdcdStartToBusForDriver("USBDeviceControllerDriver", 0, 0, 2));
if (ret != 0)
    return ret;
ret = sceUdcdStartToBusForDriver("USBSerialDriver", 0, 0, 2);
if (ret != 0) {
    sceUdcdStopToBusForDriver("USBDeviceControllerDriver", 0, 0, v4);
    return ret;
}
ret = sceUdcdActivateToBusForDriver(0xFFFF, a1, 2);
if (ret != 0)
    sceUdcdStopToBusForDriver("USBSerialDriver", 0, 0, 2);
return ret;
</source>
</source>


Line 149: Line 152:
|}
|}


<source lang="c">
<source lang="C">int SceUsbDevSerial_F0C3F3D4(void);</source>
 
</source>




[[Category:Modules]]
[[Category:Modules]]
[[Category:Kernel]]
[[Category:Kernel]]

Revision as of 23:02, 30 January 2022

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 *size);

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
/**
 * Stops USB Dev Serial device
 */
int sceUsbDevSerialFinalize(void);
sceUdcdDeactivateToBusForDriver(2);
sceUdcdStopToBusForDriver("USBSerialDriver", 0, 0, 2);
sceUdcdStopToBusForDriver("USBDeviceControllerDriver", 0, 0, 2);

sceUsbDevSerialGetDeviceState

Version NID
0.990-3.60 0xC0FDECAF

Calls SceUdcd#sceUdcdGetDeviceStateInternalForDriver(2).

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);