Repository navigation
feat(libSceAppContent): implement sceAppContentGetAddcontDownloadProgress - #6020
Merged
adriadam10 merged 1 commit intoOct 17, 2026
Conversation
…ress The signature (uint32_t service label, const NpUnifiedEntitlementLabel*, progress*) follows SharpProspero Interop/AppContent/AppContent.cs. dlc_emu dlc_content.cpp (fcf69b16) answers PARAMETER for a null label or progress and NOT_FOUND for a label that is not installed additional content. No additional content is ever installed here, as sceAppContentAddcontMount, sceAppContentAddcontEnqueueDownload and sceAppContentAddcontDelete already model, so every other call answers NOT_FOUND and the progress, whose 16-byte layout SharpProspero gives, is never written. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
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.
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
11 tasks done
Collaborator
|
Checked: |
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
Implements
sceAppContentGetAddcontDownloadProgress, declared as a throwing stub by #3244, under the existing model in which no additional content is ever installed.Source of the behaviour. No console measurement is involved.
(uint32_t serviceLabel, const SceNpUnifiedEntitlementLabel*, SceAppContentAddcontDownloadProgress*): SharpProspero and dlc_emu.dlcEmu_sceAppContentGetAddcontDownloadProgressreturnsSCE_APP_CONTENT_ERROR_PARAMETERfor an invalid label or a null progress, thenSCE_APP_CONTENT_ERROR_NOT_FOUNDfor a label that is not installed additional content, before it writes the progress. This is the same commit that feat(libSceAppContent): implement sceAppContentAddcontEnqueueDownload #5204 used forsceAppContentAddcontEnqueueDownload.sceAppContentAddcontEnqueueDownload(feat(libSceAppContent): implement sceAppContentAddcontEnqueueDownload #5204) andsceAppContentAddcontDelete(feat(libSceAppContent): export sceAppContentAddcontDelete #5514) already answerPARAMETERfor a null label andNOT_FOUNDfor any other label, because no additional content is installed here. This call follows them.Changes:
sceAppContentGetAddcontDownloadProgress(service_label, entitlement_label, progress)returnsSCE_APP_CONTENT_ERROR_PARAMETER(0x80D90002) when the label or the progress pointer is null, andSCE_APP_CONTENT_ERROR_NOT_FOUND(0x80D90005) otherwise. The progress is never written, so its layout is not needed: SharpProspero declares it as 16 bytes,DataSizeandDownloadedSize, and the parameter is declaredvoid*.NOT_FOUNDhere.guest_app_content:NOT_FOUNDfor service labels 0 and 7,PARAMETERfor a null label and for a null progress, and the 64-byte progress buffer unchanged after all four calls.docs/dev/debt/libSceAppContent.md: the "Unknown function info" entry from feat(libSceAppContent): implement sceAppContentGetAddcontDownloadProgress #3244 is removed and the call is added to the existing "Additional content" entry under Functional. That entry's remaining SharpProspero link is pinned to the same commit, and its last sentence now says that thesceAppContentAddcontEnqueueDownloadandsceAppContentGetAddcontDownloadProgresssignatures follow SharpProspero, that thesceAppContentAddcontDeletesignature follows dlc_emu, and that dlc_emu is not a console measurement.Nothing stays throwing in this function. The console's own error codes for these cases remain unverified, as the existing entry already says for the sibling calls.
Progress: libSceAppContent 14/15 → 15/15 (
tools/progress.py, measured one27ff7c54and on this branch).Tested
Head
7d42db40a3ff8cadf8a6ade7594ae7928a8eee9f, basee27ff7c545cb5ac669612567d853956ffa02ebe6.BUILD_TESTING=ON, AMD EPYC 7763 (GitHub Codespaces), tests run natively):guest_appcontent_testspasses in 5 of 5 runs, the test executable being run directly five times.core/libs/prx/libSceAppContent/Export.cppwith the base version:guest_appcontent_testsfails withsceAppContentGetAddcontDownloadProgress not implemented. Restoring the PR source and rebuilding,guest_appcontent_testspasses in 5 of 5 runs again.mainat2b7e3ce69fd889deceb6b52ac1fbf13e7c0d1084, WinLibs MinGW-w64 GCC 15.2.0, Release,BUILD_TESTING=ON: 1212/1212 tests pass; the relinker (Linux, Windows, macOS), register-context and write-watch jobs of the same run also pass.git diff --checkpass. The Linux job of the Build workflow now targets the project's self-hosted runner, so it was not run on the fork; no title was run.Duplicate and overlap check
core/libs/prx/libSceAppContent/Export.cpp,core/libs/tests/GuestAppContent.cppordocs/dev/debt/libSceAppContent.md, or names this function.DRM_NO_ENTITLEMENTresult had no cited source and no debt entry. Both returnedDRM_NO_ENTITLEMENTafter the null checks and both assumed a 64-byte layout. This PR uses neither. Its null checks on the label and the progress match theirs, now with the dlc_emu source.runtime_errorin a bulk stub PR. Its author closed it without a stated reason.core/libs/tests/GuestAppContent.cpptocore/libs/tests/services/GuestAppContent.cppwithout changing it and editscore/libs/prx/libSceAppContent/CMakeLists.txt; merging this branch into test: organize library tests and label CTest suites #6044's head gives no conflict, the test hunk following the rename.e27ff7c54.Checklist
e27ff7c54; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)🤖 Generated with Claude Code