Repository navigation
Conversation
|
The PR description was corrected to use the template section headings ( |
|
Windows test: head AI-assisted (Claude Code). |
|
Rebase handoff — rebased onto current Verified on Linux (CachyOS, kernel 7.2.9, GCC 16.2.1, Ninja, Release,
To pick it up: |
7fba670 to
ca9bf36
Compare
ca9bf36 to
d39d70d
Compare
PS5MC (PPSA99420) imports setitimer (hPWDGx8ioXQ, aerolib) at registry index 472, after tcsetpgrp and before getitimer. Predicted stop: "FAIL: unresolved ELF import hPWDGx8ioXQ from libkernel.prx". setitimer follows FreeBSD 11.4 kern_time.c (8c639945) sys_setitimer and kern_setitimer: EINVAL for an unknown timer and for an itimerfix failure or more than INT32_MAX / 2 seconds; a zero value clears the interval and disarms; a null value reads the timer, EFAULT when the output is null too. ITIMER_REAL shares the alarm state, now with an interval that re-arms it as realitexpire does; alarm clears it, as FreeBSD's alarm.c does. Guest SIGALRM handlers are not run, so an expiry with a handler, or with SIGALRM blocked (signals are never left pending), throws naming the interval; SIG_IGN drops it and the default disposition exits with 142, as alarm already did. Intervals below 1 ms throw (itimerfix rounds them to tick / 16 and the console's hz is unknown). ITIMER_VIRTUAL and ITIMER_PROF throw when armed and read and disarm as zero. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 6bef7bf)
d39d70d to
12abb3f
Compare
|
Closing this stale carry as superseded by merged #3800, which includes the same |
What
Carries the ready
setitimerimplementation from issue #3735 onto currentmain, integrating it with the existinggetitimerand alarm timer state.ITIMER_REALsupports countdown, disarm, and periodic rearming. Invalid inputs return FreeBSD-style errors; unsupported CPU timers, sub-millisecond intervals, and signal delivery cases fail explicitly where the emulator lacks the required behavior.This PR covers only the
setitimerportion;getitimerremains as currently implemented onmain.Tested
guest_itimer_tests,guest_signal_tests.ctest --test-dir /tmp/AnyPS5-3735-build -R '^guest_itimer$' --output-on-failure: 1/1 passed.ctest --test-dir /tmp/AnyPS5-3735-build -R '^guest_signals$' --output-on-failure: 1/1 passed.python3 tools/check_conventions.py: passed.git diff --check upstream/main: passed.Checklist
main; no other open PR implements the same function.mdfiles or images added to the repository