Repository navigation
feat(libSceNpWebApi2): implement sceNpWebApi2PushEventAbortHandle - #4375
milescoviello wants to merge 1 commit into
Conversation
2650120 to
13d9cdd
Compare
|
Windows test: head AI-assisted (Claude Code). |
Planet Coaster (PPSA01736) imports sceNpWebApi2PushEventAbortHandle (NID 1OLgvahaSco, confirmed with tools/nid_names.py and aerolib); the import audit in boykopovar#3399 resolves the NID to the throwing stub. No title execution was captured. Push event handles are now kept per library context: CreateHandle registers them, DeleteHandle and Terminate drop them, AbortHandle marks one as aborted and CreateFilter on an aborted handle returns ABORTED. An unknown context returns LIB_CONTEXT_NOT_FOUND and an unknown handle HANDLE_NOT_FOUND. Semantics and codes follow shadPS4 e0a466753a1aacbc8db8253be685bf7ab4d9daae (np_web_api2_internal.cpp abortPushEventHandle, np_web_api2_context.cpp, np_web_api2_push_event.cpp, np_error.h), PS4 and unverified on the PS5. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
13d9cdd to
2efa438
Compare
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
|
|
Closing: PPSA01736 imports |
What
Fixes #4174. Carries @screamm's fix branch from that issue (
screamm:feat/npwebapi2-push-event-abort,2d9c2e45), keeping the commit and its authorship as is, as the issue invites. It is cherry-picked onto currentmain; besides the commit's own code, only its TechnicalDebt edit changed, to follow the move to one file per library (#4411): the stub entry leavesdocs/dev/debt/libSceNpWebApi2.md's Unknown function info and the new entry goes under that file's Functional section.sceNpWebApi2PushEventAbortHandle(NID1OLgvahaSco) threwNotImplemented; Planet Coaster (PPSA01736) imports it (import evidence from merged #3399). From the issue:np_web_api2_internal.cpp(abortPushEventHandle),np_web_api2_context.cppandnp_web_api2_push_event.cppate0a46675:CreateHandlereturnsLIB_CONTEXT_NOT_FOUND(0x80553404) for an unknown context and registers the handle;AbortHandlereturnsLIB_CONTEXT_NOT_FOUND/HANDLE_NOT_FOUND(0x8055340D) for an unknown context or handle and otherwise marks the handle aborted (idempotent, 0);CreateFilteron an aborted handle returnsABORTED(0x80553409);DeleteHandlevalidates the same way and removes the handle;Terminatedrops the context's handles. In shadPS4 the only effect of abort is thatABORTEDresult, so registered callbacks are left alone; handle timeouts are not modelled. The codes are PS4 numbering, unverified on PS5 (TechnicalDebt). Note for reviewers:CreateHandle,DeleteHandleandCreateFilterpreviously accepted any id and now return these errors; the siblingGetMemoryPoolStatsstill throws for an unknown context, and the existingSCE_NP_WEBAPI2_ERROR_UNAVAILABLE(0x80553406) is shadPS4'sREQUEST_NOT_FOUND, left unchanged.guest_np_web_api2covers two handles (abort one twice, filter creationABORTEDon it and unaffected on the other), the wrong-context, unknown-handle and unknown-context codes, delete then abort/delete again, and abort afterTerminate.Tested
main1acfa7f.guest_np_web_api2passes and fails withmain'sExport.cpp, and all 310guest_*tests pass.guest_np_web_api23/3 plus the full suite results listed there.tools/check_conventions.py --base upstream/mainpasses.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt.mdfiles or images added to the repository (attach them to this PR)