mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-07 13:39:55 +00:00
6 lines
1.5 KiB
Markdown
6 lines
1.5 KiB
Markdown
# libSceSystemLogger technical debt
|
|
|
|
### Functional
|
|
|
|
- [sceSystemLoggerInitialize, sceSystemLoggerSetLogData and sceSystemLoggerTerminate](../../../core/libs/prx/libSceSystemLogger/Export.cpp) (libSceSystemLogger) - the state and argument checks follow the 11.00 system module `libSceSystemLogger.sprx` (SHA-256 `8b0788ae7885f085fa2a7eeafedf72f9c0352e8363a79afff06e56fe30e17292`; `Initialize` at `0x700`, `Terminate` at `0x730`, `SetLogData` at `0x760`) disassembly, not measurements on a console: `Initialize` returns `0x81080005` when the library is already initialized, `Terminate` returns `0x81080004` when it is not, and `SetLogData` takes the tag, count and entries pointer in the first three argument registers, ignores the fourth, rejects a tag longer than 15 bytes or containing a character outside `[0-9A-Za-z]`, a count above 32, a non-zero count with a null data pointer, and any entry whose payload length is above 64 or whose tail is non-zero. Each 100-byte entry holds the 64-byte payload at `0x00`, a 32-bit payload length at `0x40` and a 32-byte tail at `0x44` that must be zero. An empty tag, including a zero-length one, and a zero count are accepted. The entries are written to the host's standard error with the tag. The system logger service, its ring buffer and transport, the objects created by the firmware's internal initialize/terminate/submit helpers and the `0x81080001` failure paths are not implemented, so initialization always succeeds and submission always reports success. The tag is copied up to 15 bytes.
|