feat(libkernel_sys): add chroot with FreeBSD lookup errors
Porpoise (PPSA99764) imports chroot (AKknh8Cx-V8) from libkernel_sys.prx, not libkernel.prx, one reference. Predicted stop once pathconf, the pthread_attr calls and ftrylockfile ahead of it are covered (not a run): FAIL: unresolved ELF import AKknh8Cx-V8 from libkernel_sys.prx The NID is computed with tools/nid_names.py and matches aerolib. Follows FreeBSD 11.4 sys/kern/vfs_syscalls.c sys_chroot and change_dir (8c639945a44588f6cfdddfb057bb5aad88735da0) for a root caller up to the lookup: EFAULT for a null path, ENOENT for an empty or missing one, ENOTDIR for a file or a path through a file. A directory that is found throws with the path named: the resolver's root is fixed and the mount aliases (/app0, /savedata0) are host paths that do not move with it, so it cannot be re-based, and a real chroot is not modelled. Nothing shows that Porpoise calls it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
3faa9cb400
commit
dc0d316fda
|
|
@ -369,6 +369,18 @@ int APS5_VABI fchdir_nid_postfix(int fd) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI chroot_nid_postfix(const char* path) {
|
||||
if (path == nullptr) return static_cast<int>(Fail(GuestEfault));
|
||||
if (*path == ' | ||||