SceUsbDevSerial: Difference between revisions
Jump to navigation
Jump to search
CelesteBlue (talk | contribs) |
No edit summary |
||
(19 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
== Module == | == Module == | ||
A simplified and internal development version of [[SceUsbSerial]]: | A simplified and internal development version of [[SceUsbSerial]]: | ||
* Does not check SceSblACMgrForDriver for processes capabilities. | * Does not check SceSblACMgrForDriver for processes capabilities. | ||
* Does not check sceIdStorageLookupForDriver(0x112, 0, /*s_data_81003184*/ "", 0x40); | * 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 <code>os0:kd/usbdev_serial.skprx</code>. | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version | ! Version !! World !! Privilege | ||
|- | |- | ||
| 3.60 | | 0.990-3.60 || Non-secure || Kernel | ||
|} | |} | ||
Line 23: | Line 22: | ||
! Version !! Name !! World !! Visibility !! NID | ! Version !! Name !! World !! Visibility !! NID | ||
|- | |- | ||
| 3.60 || [[ | | 0.990-3.60 || [[SceUsbDevSerial#SceUsbDevSerial|SceUsbDevSerial]] || Non-secure || User || 0x125C67C7 | ||
|} | |} | ||
Line 36: | Line 35: | ||
|} | |} | ||
<source lang=" | <source lang="C">int SceUsbDevSerial_4437FF2D(void *pIn, SceSize size);</source> | ||
</source> | |||
=== SceUsbDevSerial_57FBB08C === | === SceUsbDevSerial_57FBB08C === | ||
Line 48: | Line 45: | ||
|} | |} | ||
<source lang=" | <source lang="C">int SceUsbDevSerial_57FBB08C(void *pOut, SceSize *puiSize);</source> | ||
</source> | |||
=== SceUsbDevSerial_6F2B3960 === | === SceUsbDevSerial_6F2B3960 === | ||
Line 60: | Line 55: | ||
|} | |} | ||
<source lang=" | <source lang="C">int SceUsbDevSerial_6F2B3960(void);</source> | ||
</source> | |||
=== SceUsbDevSerial_918D359E === | === SceUsbDevSerial_918D359E === | ||
Line 72: | Line 65: | ||
|} | |} | ||
<source lang=" | <source lang="C"> | ||
// 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);</source> | |||
=== sceUsbDevSerialFinalize === | |||
=== | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 3.60 || 0x9F497D4E | | 0.990-3.60 || 0x9F497D4E | ||
|} | |} | ||
<source lang=" | Reversed code: | ||
<source lang="C"> | |||
sceUdcdDeactivateInternalForDriver(2); | |||
sceUdcdStopInternalForDriver("USBSerialDriver", 0, 0, 2); | |||
sceUdcdStopInternalForDriver("USBDeviceControllerDriver", 0, 0, 2); | |||
</source> | </source> | ||
=== | <source lang="C"> | ||
/** | |||
* Stops USB Dev Serial device | |||
*/ | |||
int sceUsbDevSerialFinalize(void); | |||
</source> | |||
=== sceUsbDevSerialGetDeviceState === | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 3.60 || 0xC0FDECAF | | 0.990-3.60 || 0xC0FDECAF | ||
|} | |} | ||
Calls [[SceUdcd#sceUdcdGetDeviceStateInternalForDriver]](2). | |||
</source> | <source lang="C">int sceUsbDevSerialGetDeviceState(void);</source> | ||
=== | === sceUsbDevSerialInit === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 3.60 || 0xDAE5C362 | | 0.990-3.60 || 0xDAE5C362 | ||
|} | |} | ||
<source lang=" | 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 | |||
* | |||
* bus: Must be 0 or 1. | |||
* | |||
* @return 0 on success, < 0 on error | |||
*/ | |||
int sceUsbDevSerialInit(SceUInt32 bus); | |||
</source> | </source> | ||
Line 126: | Line 153: | ||
|} | |} | ||
<source lang=" | <source lang="C">int SceUsbDevSerial_F0C3F3D4(void);</source> | ||
</source> | |||
[[Category:ARM]] | |||
[[Category:Kernel]] | |||
[[Category:Modules]] | [[Category:Modules]] | ||
[[Category: | [[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);