Files
AnyPS5/docs/dev/debt/libSceSystemLogger.md
T

1.5 KiB

libSceSystemLogger technical debt

Functional

  • sceSystemLoggerInitialize, sceSystemLoggerSetLogData and sceSystemLoggerTerminate (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.