Commit Graph
20967 Commits
Author SHA1 Message Date
Adrià 2cd69d689a Merge pull request #9667 from xXPBSXx/docs/np-sns-debt-undeclared-names
docs(debt): make the NpSns entry and its note agree on three names
2026-10-25 19:35:10 +01:00
Adrià efe89d49c9 Merge pull request #9651 from xXPBSXx/docs/sce-net-connect-unspec-windows-bound-address
docs(debt): record what a Windows datagram socket keeps after sceNetConnect to AF_UNSPEC
2026-10-25 19:31:54 +01:00
Adrià b1f023dda3 Merge pull request #9486 from harisibrar1/fix/relinker-dlltool-temp-prefix
build(relinker): give dlltool a short temporary prefix for the msvcrt import library
2026-10-25 19:29:55 +01:00
orezraeyandClaude Opus 5.5 f0a989a508 docs(libkernel): record the version stubs, kern.boottime and the SoC power block as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 15:29:10 -03:00
orezraeyandClaude Opus 5.5 fc938dcedb fix(libkernel): throw on PRIO_PGRP and PRIO_USER setpriority until measured
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 15:27:28 -03:00
Adrià d17785dba8 Merge pull request #9551 from JJenkx/perf/agc-sparse-mirror-range-run
perf(agc): mirror a sparse heap whose committed span crosses adjacent ranges
2026-10-25 19:26:00 +01:00
Yunus Shaikh 46fe252486 docs(debt): record that sceAjmBatchJobGetStatistics only zero-fills its sideband 2026-10-25 18:25:27 +00:00
Yunus Shaikh b1c5fba50c fix(libSceAjm.native): reject a null batch buffer list with a nonzero count in sceAjmBatchJobRunSplit
The null buffer list check in Append ran for every batch-job builder,
although only sceAjmBatchJobRunSplit and sceAjmBatchJobControl pass a
caller's buffer lists. It now runs in CheckedAppend, after the same
invalid-parameter checks, for those two and for
sceAjmBatchJobGetStatistics, whose zero-filled result has no source.
The other builders append without it. No job is built or run
differently.

The guest test builds Initialize, ClearContext, SetGaplessDecode,
SetResampleParameters, SetResampleParametersEx and GetResampleInfo jobs
without buffers and runs them, and checks that RunSplit still throws
for a null input or output list with a nonzero count without writing
to the batch.
2026-10-25 18:24:45 +00:00
pushkarreddyy 2a6e50b706 test(libkernel): verify append vector writes fail with EFAULT on unreadable buffers on Windows 2026-10-25 23:49:57 +05:30
Adrià FranchandClaude Sonnet 5.5 3191597d51 fix(libc): declare fetch seq_cst helpers in the public header
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 19:16:24 +01:00
Kraken b2446bd037 style(libc): remove extra blank line after fetch helpers 2026-10-25 19:16:20 +01:00
Kraken d1a277b7d8 feat(libc): implement sequential bitwise fetch helpers 2026-10-25 19:16:20 +01:00
Bram910andClaude Opus 5.5 e1213fd473 fix(shader): skip undecodable words that only follow s_branch or s_endpgm
The RDNA program decode sweeps linearly up to the last s_endpgm past the
furthest direct branch target, so it also decoded words that no path
reaches and threw on any it could not decode. A word directly after
s_branch, s_endpgm or s_code_end that fails to decode is now skipped;
the decode still throws that word's error when a direct branch or
s_call_b64 targets it, and a failure on a word reachable by fall-through
is unchanged. The control-flow graph starts the block after s_branch and
s_endpgm at the next decoded instruction instead of the next word.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 19:15:40 +01:00
Adrià baabfbc204 Merge pull request #9474 from Gruzzberry/fix/access-symbolic-link
fix(libc): follow a Windows symbolic link in access
2026-10-25 19:14:11 +01:00
Adrià 5d48c6233e Merge pull request #9401 from tibzejoker/perf/grow-pipeline-store
perf(agc): size the pipeline store to the title's working set
2026-10-25 19:07:59 +01:00
GruzzberryandClaude Opus 5.5 69ead78b5e feat(libkernel_sys): implement profil argument checks
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 18:07:30 +00:00
orezraeyandClaude Opus 5.5 c5dd9f9cbc fix(libSceRtc): check the seconds before the pointer in sceRtcSetTime_t as measured on a PS5
On PS5 firmware 13.60 sceRtcSetTime_t(NULL, -1) returns
SCE_RTC_ERROR_INVALID_VALUE and sceRtcSetTime_t(NULL, 0)
SCE_RTC_ERROR_INVALID_POINTER: negative seconds are rejected before a
null destination under the later SDK rules. The other measured
GetDayOfWeek, SetTime_t and FormatRFC3339 results already matched.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 15:06:45 -03:00
Dean Galvin b18c1e6796 fix(libkernel): declare the sched parameter exports once in the libkernel public header
sched_getparam, sched_getscheduler and sched_setparam are defined under libkernel/Pthread/Posix, so their typed declarations replace the no-argument placeholders in the libkernel header (public_headers requires the declaration in the implementing library's header), and GuestSchedParams.cpp includes the canonical headers instead of declaring these exports and the pthread, getpid and error calls locally.
2026-10-26 07:05:02 +13:00
AlxcBTW e0932f82ce test(libc): check that the Annex K stream functions set EBADF on a closed stream 2026-10-25 19:04:17 +01:00
AlxcBTW 3aa53715ce docs(debt): record the unmeasured Annex K stream function results 2026-10-25 19:04:17 +01:00
AlxcBTW fa7d4bd1d0 test(libc): cover freopen_s 2026-10-25 19:04:10 +01:00
AlxcBTW 37813eabeb test(libc): cover the Annex K stream printf and scanf functions 2026-10-25 19:04:10 +01:00
AlxcBTW b360b7144b feat(libc): add freopen_s 2026-10-25 19:04:10 +01:00
AlxcBTW 7c69505d5c feat(libc): add fwprintf_s, wprintf_s, vfwprintf_s and vwprintf_s 2026-10-25 19:04:10 +01:00
AlxcBTW 633d8aa836 feat(libc): add the narrow Annex K stream functions fprintf_s, vfprintf_s, vprintf_s, scanf_s, fscanf_s, vscanf_s, vfscanf_s 2026-10-25 19:04:10 +01:00
Adrià dbeacda420 Merge pull request #9548 from jotitadev/fix/libatrac9-bitreverse-shift-by-32
fix(libSceAjm.native): guard LibAtrac9 BitReverse32/SignExtend32 against undefined shifts in the ATRAC9 decoder
2026-10-25 19:04:00 +01:00
Yunus Shaikh d0c945ce86 docs(libkernel): record how poll reports a hung-up stream socket on each host 2026-10-25 19:01:11 +01:00
Yunus Shaikh 7c36d37671 fix(libkernel): clear POLLOUT from a hung-up socket in poll on Linux
FreeBSD's pollscan clears POLLOUT whenever POLLHUP is set, for every
descriptor. 64ca6e332 applied that to pipes, but a stream socket whose
peer has closed and whose own sending side is shut down still reported
POLLOUT next to POLLHUP, because Linux's poll sets both. Linux sets
POLLHUP only once both directions are shut, the same condition as
FreeBSD, so poll now clears POLLOUT from any entry that reports POLLHUP
there.
2026-10-25 19:01:02 +01:00
orezraeyandClaude Opus 5.5 642f6fc7ef docs(libkernel): mark PRIO_PGRP and PRIO_USER setpriority as unverified
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 14:59:05 -03:00
Adrià FranchandClaude Sonnet 5.5 44393a3350 fix(net): reach the guest read through a _nid_no_patch export
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 18:56:25 +01:00
Braxton Atkinson 67c149465e feat(net): store DNS overrides and match firmware argument checks
Apply the firmware 13.42 module-probe report in PR #9506: all four DNS calls check initialization first; getters return EINVAL for null outputs or nonzero flags; setters reject flags before reading guest memory. Keep the checked input copy and document EFAULT as host safety, not firmware behavior. Use the current public Net.hpp declarations in the regression.

Rebased onto upstream e7e3e9c198. Ubuntu 24.04, GCC 13.3, Release: actual libc/libkernel/libSceNet libraries and both focused test executables built. guest_sce_net passes. A separate harness linked against those unmodified libraries passes initialization, errno, invalid flags, unreadable-input flag precedence, null clearing and unchanged-output checks. The full guest_net_dns_info test is blocked here: process_vm_readv is denied with EPERM by the execution environment. No full DNS regression pass is claimed. Public-header audit, conventions, test registration and whitespace checks pass.

The resolver still uses host DNS; IPv6 host-server discovery and firmware server-count behavior remain debt. Firmware evidence: https://github.com/boykopovar/AnyPS5/pull/9506#issuecomment-6390574180

AI-assisted: yes
2026-10-25 18:56:14 +01:00
mantavisualandClaude Opus 5.5 d003153f53 fix(libSceLibreSsl): reject null strings in the ASN.1 accessors as invalid arguments
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 19:52:58 +02:00
orezraeyandClaude Opus 5.5 2a0604d3e9 fix(libkernel): keep the nice value at 0 after setpriority as measured on a PS5
On PS5 firmware 13.60 setpriority(PRIO_PROCESS, 0, v) returns 0 for -25,
-5, 5 and 25, and getpriority keeps returning 0. setpriority keeps its
target checks and returns 0 without storing the value.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 14:48:57 -03:00
Yunus Shaikh 950722167b fix(agc): write back a view whose space import a failed join retired
A descriptor view inside an imported range of the cached address space
is served by the space's region and gets no region of its own. When
UploadFinish's join of two such ranges fails at vkAllocateMemory, the
join has already retired the ranges' imports and the lowered ceiling
refuses new ones, so the dissolved space's region falls back to a copy
of the registered range. For a range the CPU cannot write, that copy is
read-only: the dispatch's stores land in a buffer that is never written
back, and WriteBack fails with "write-back range exceeds its GPU owner".

The dissolve that re-resolves the space's imports now marks a region
written by one of the build's views as writable, as UploadPrepare's merge
does for a view with a region of its own, so the copy keeps its reference
bytes and the stores are written back.
2026-10-25 17:45:54 +00:00
Matheus Herberts d15fe22e98 test(relinker): require the exact section string table size 2026-10-25 14:44:13 -03:00
Adrià 7a25f87620 Merge pull request #9500 from GitamarT045T3R/fix/libkernel-condattr-setclock
fix(libkernel): reject clocks libthr does not accept in pthread_condattr_setclock
2026-10-25 18:42:46 +01:00
Adrià 19fe176ddc Merge pull request #9456 from mazen320/feat/libc-time-get-vtable
feat(libc): export the time_get facet vtable as data
2026-10-25 18:38:52 +01:00
Adrià FranchandClaude Sonnet 5.5 44ea38fc23 fix(relinker): align the macOS import trace stack and trace only executable segments
Save r12 in the entry walk so TraceImport_nid_no_patch is called with an aligned stack, record only executable Mach-O segments in the module map, and make the test hook check the alignment.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 18:37:39 +01:00
Radu Ursache 66ca5c0442 feat(relinker): trace function imports on macOS
Walk each macOS function import before the guest entry and pass it through TraceImport_nid_no_patch, as Linux and Windows already do. An x86-64 libc build records the call and prints it on SIGABRT.
2026-10-25 18:37:23 +01:00
JaceTheBluandClaude Opus 5.5 e8d6c3fb47 feat(libSceLibreSsl): implement X509_LOOKUP_file and X509_STORE_add_lookup
Both exports threw and were declared without parameters. They follow
LibreSSL 2.5.4, unchanged in 2.7: X509_LOOKUP_file returns the static
80-byte file method, and X509_STORE_add_lookup returns the store's
lookup for a method, or mallocs a 32-byte lookup owned by the store and
pushes it on the store's methods, growing the stack the way sk_insert
does. X509_STORE_free now frees the store's lookups.

The file method's ctrl, which loads PEM files, throws: there is no
certificate model yet. Callbacks of guest-supplied methods throw
instead of being called.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 17:37:22 +00:00
JaceTheBluandClaude Opus 5.5 2bafc417cc feat(libSceLibreSsl): implement X509_VERIFY_PARAM_set_hostflags and X509_VERIFY_PARAM_set1_ip_asc
Both exports threw and were declared without parameters. They follow
LibreSSL 2.5.4, unchanged in 2.7: set_hostflags stores the host
matching flags in the verify parameters' identity, and set1_ip_asc
parses an IPv4 or IPv6 address the way a2i_ipadd does, copies the 4 or
16 bytes into a guest malloc block that replaces the previous address,
and returns 0 without touching it for text the parser rejects. IPv4
parts are read with the guest sscanf, as the module would.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 17:37:05 +00:00
JaceTheBluandClaude Opus 5.5 a2d4d38a15 feat(libSceLibreSsl): implement X509_STORE_new, X509_STORE_free and X509_STORE_set_flags
The three exports threw and were declared without parameters. They now
follow LibreSSL 2.5.4, the version the firmware 13.40 measurements
identify: X509_STORE_new allocates the 136-byte store with an empty
object cache, an empty lookup method stack and 64-byte verify
parameters at depth -1, X509_STORE_free drops a reference and frees the
store with its stacks, verify parameters and their host names, peer
name, email and IP, and X509_STORE_set_flags ORs the flags into the
verify parameters and adds the policy check for any policy flag.

No export adds certificates, CRLs or lookup methods yet, so freeing a
store that holds them, or verify parameters holding policy objects,
throws instead of freeing objects with no model.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 17:37:05 +00:00
Adrià ac65cf490e Merge pull request #9613 from JJenkx/windows/libc-debt-bundled-readings
docs(debt): cite the bundled libc.prx for _Mtx_trylock, strdup and strndup
2026-10-25 18:36:43 +01:00
Adrià 506991994d Merge pull request #9496 from Gruzzberry/fix/open-excl-symbolic-link
fix(libkernel): fail open with O_CREAT and O_EXCL on a Windows symbolic link
2026-10-25 18:35:57 +01:00
Adrià 30bef4b0c1 Merge pull request #9501 from GitamarT045T3R/fix/libkernel-process-cpu-clock
fix(libkernel): answer process CPU clocks like FreeBSD instead of throwing
2026-10-25 18:34:57 +01:00
Eduardo Ruiz 1adc418e6e feat(libc): forward pthread attributes in _Pad::_Launch 2026-10-25 18:34:18 +01:00
mantavisualandClaude Opus 5.5 37d5137ea0 docs(libSceIcu): record the ICU version firmware 13.42 reports
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 19:28:38 +02:00
Adnan Khan 0d14468ccc fix(libSceAmpr): zero the padding of a constructed Nop payload 2026-10-25 22:56:04 +05:30
Adrià 2e1c72239b Merge pull request #9487 from Gruzzberry/fix/chmod-symbolic-link
fix(libkernel): follow a Windows symbolic link in chmod
2026-10-25 18:25:24 +01:00
Adrià FranchandClaude Sonnet 5.5 2736e7f7a8 test(libc): delete the Windows loop link before removing the fopen fixture
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 18:23:53 +01:00