Repository navigation
Conversation
…ount does Measured in a payload process on a PS5 (firmware 13.60) through libkernel_sys.sprx's pathconf: /system_data gives 65536 for the allocation, transfer and hole sizes, 16384 for the transfer alignment, 3 for _PC_ACL_PATH_MAX and 0 for the ACL and MAC flags, and EINVAL for _PC_MAX_CANON, _PC_MAX_INPUT, _PC_VDISABLE and _PC_ASYNC_IO, which used to throw. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MarcZX10
left a comment
There was a problem hiding this comment.
Reviewed exact head 9fc8d159bdecb858e6a72741b0822fd7b58d1171. The measured /system_data values are narrowly applied to names that were previously unimplemented, while the existing lookup-error behavior remains covered; the added test cases exercise file and directory paths, and hosted eligibility/conventions/labels/report checks pass. One contribution-rule item remains unresolved: the PR itself says #10060 moves the same pathconf switch into PathConfigurationValue and that the second branch must carry the first branch’s values, but the checklist still says Depends on: none and the body records no agreement with #10060’s author. Please coordinate the landing order with that author and update the dependency line accordingly, preserving both sets of behavior whichever lands second. I am not asking either author to close work; this is only the required overlap sequencing.
|
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.
|
|
@orezraey on the landing order with #10060 that MarcZX10 raised there: #10060 lands first. It is reviewed and in its final CI run. Once it has merged, please merge main into this branch, keep both implementations in core/libs/prx/libkernel_sys/Export.cpp and both entries in docs/dev/debt/libkernel_sys.md, as your description already offers, and change this PR's checklist to "Depends on: #10060". #10060 needs no change for this. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Refreshed after #10060 landed (f32fd62): main is merged in and the measured |
|
@Gruzzberry @simonbronk: #9442 and #9713 change the same lines as this PR in |
|
@boykopovar: #10706 changes |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@Gruzzberry #11032 adds the kenv code right before |
|
Hi @orezraey, the overlap check shows my open PR next to this one:
The changes are separate. Only the neighbouring lines overlap. Proposed merge order: this PR first, then #11032, which I'll rebase onto it after it merges. I've recorded that under |
|
Thanks @Gruzzberry, agreed: this PR lands before #11032. I updated the |
What
pathconfmeasured on a retail PS5 (firmware 13.60) throughlibkernel_sys.sprx's ownpathconffrom a payload process, over every name from 0 to 70 on 22 paths. The sources and console logs are in this gist (ppathconf2,ppathconf3).The answer depends on the mount. The console has at least five sets:
/dataand/user;/,/system,/hostapp,/preinstand/update; tmpfs (/system_tmp,/mnt/sandbox,/mnt/usb0); devfs (/dev/null); and UFS (/system_data).AnyPS5 already answered with FreeBSD's UFS constants, and those match
/system_datafor every name it answered. It threw for the rest; they now return what/system_datareturns:_PC_ALLOC_SIZE_MIN,_PC_REC_INCR_XFER_SIZE,_PC_REC_MIN_XFER_SIZEand_PC_MIN_HOLE_SIZE: 65536;_PC_REC_XFER_ALIGN: 16384;_PC_ACL_PATH_MAX: 3;_PC_ACL_EXTENDED,_PC_MAC_PRESENTand_PC_ACL_NFS4: 0;_PC_MAX_CANON,_PC_MAX_INPUT,_PC_VDISABLEand_PC_ASYNC_IO:EINVAL.The lookup errors already matched:
EFAULTfor a null path,ENOENTfor an empty or missing one,ENOTDIRunder a file, andENAMETOOLONGfor 1024 bytes or a component over 255.Not followed:
/app0,/savedata0,/temp0and/download0do not exist in a payload process, so what a title sees there is unknown. The debt entry lists how the other mounts differ.Tested
main(f26434afa3, with refactor(libs): add full export headers for libs #10706):88bf509e20. The test takes its declarations from the library headers and drops the unusedPathconfThrows.guest_kernel_syspasses three runs in a row on Windows (MinGW) and on Linux (WSL Ubuntu, GCC);public_headersaudit andcheck_conventionspass.Windows 11, MinGW (winlibs).
guest_kernel_syschecks every newly answered name for a file and a directory throughpathconf,fpathconfand_fpathconf, andEINVALfor the four names above (_PC_ASYNC_IOstays 200112 for the descriptor forms). It throws onmainand passes three runs in a row with the change.tools/check_conventions.pypasses.PathConfigurationValue.fpathconfand_fpathconfon a file or directory answer them too, since FreeBSD 11'skern_fpathconfasks the sameVOP_PATHCONF; pipes and_PC_ASYNC_IOkeep feat(libkernel_sys): implement fpathconf and _fpathconf #10060's handling.Checklist
main; 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)PathConfigurationValuetoo (Gruzzberry agreed to refresh it)