Repository navigation
feat(libkernel): query real-time alarms with getitimer - #3572
Merged
Merged
Conversation
9 tasks done
Collaborator
|
Checked build + |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
PS5MC 1.2 (PPSA99420, Kodi 22) imports
getitimerfromlibkernel, but maina11c8f7fdoes not export it. Its public release's ELF dynamic symbol 457 is the undefined functionJ1H1QRCJf2Q#M#N; the import metadata maps this tolibkernel. The same missing function is listed for PS5MC in #1578. Searches for the function and its NID found no existing PR; the relevant closed homebrew bundle #3293 also contains no implementation of it.Implement
getitimer(ITIMER_REAL)using the existing guest alarm's synchronized monotonic deadline. It returns normalized, signed 64-bit seconds/microseconds, reports an inactive or expired alarm as zero, and does not reset or cancel it. The interval is zero because the current alarm backend is one-shot. Invalid selectors return guestEINVAL; a null real-timer output returnsEFAULT; success preserves errno. CPU interval timers (ITIMER_VIRTUALandITIMER_PROF) explicitly throw because those timers are not implemented.The ABI and relative-time/error rules follow FreeBSD's getitimer implementation and itimerval definition. No new comments, Markdown changes, dependencies, or generated files.
Tested
Windows 11 Pro 26100, WinLibs GCC 15.2.0 r7, Release, BUILD_TESTING=ON.
undefined reference to getitimer_nid_postfix.guest_getitimer,guest_signals,guest_signal_sets,guest_sigtimedwait,guest_process_time, andguest_cpu_time_clocks.libkernel.prxexportsJ1H1QRCJf2Q. Conventions and diff whitespace checks pass.tools/progress.py: system libraries 2903/3383 (85.81%) -> 2904/3384 (85.82%). This is the source counter, not a claim that CPU timers or PS5MC startup are fully supported.Title evidence: the public PS5MC 1.2 Kodi 22 release, archive SHA256
5a9eeff4a0024a341a4924b8d283fe65b4ff94d7f5dbea446c8a677c4db157b6, verified against the catalog and inspected without executing it. PS5MC was not launched; this does not establishgetitimeras its first startup failure. Linux and macOS runtime tests were not run locally.Checklist
main; no other open PR implements the same functions.mdfiles or images added to the repository