AnyPS5/core/libs/prx/libkernel
screamm 43ffba87e4 feat(libkernel): implement fcntl record locks on Windows
ProsperoRadio (PPSA99001) stops at 33.7 s on Windows, with #3649
applied so that it gets past poll, on the throw from #3840:

    what():  fcntl: record locks are not implemented on Windows, command=12, fd=3

F_GETLK, F_SETLK, F_SETLKW and the F_OGETLK, F_OSETLK and F_OSETLKW
forms now follow FreeBSD 11.4's kern_fcntl and lf_advlockasync
(8c639945): an SEEK_CUR start is resolved against the descriptor offset
(EOVERFLOW past OFF_MAX), F_RDLCK needs read access and F_WRLCK write
access (EBADF), another type is EINVAL, and the range is checked against
the file size for SEEK_END (EINVAL for a negative start or an unknown
whence, EOVERFLOW past OFF_MAX). The guest is one process, and
lf_blocks never lets locks of one owner conflict, so whichever
descriptor or thread asks, F_SETLK and F_SETLKW succeed without waiting
and F_GETLK reports F_UNLCK, as on the console. Nothing is held on the
host: Windows byte-range locks are mandatory and would fail the guest's
own reads and writes through other descriptors. A lock from the end of
a directory throws.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 18:42:53 +00:00
..
Aio/src fix(aio): use precise polling sleep 2026-10-11 18:48:18 -04:00
AppMetadata Merge pull request #3971 from arreina/fix/param-json-nesting 2026-10-13 02:33:55 +13:00
Apr fix(libkernel): report the target size of symbolic links on Windows 2026-10-12 13:48:56 +05:30
DirectMemory Merge pull request #4324 from abhinav29102005/feat/libkernel-memory-pool-commit-type 2026-10-12 23:53:02 +13:00
Equeue fix(libkernel): report a level-triggered equeue event once per wait 2026-10-11 11:28:34 +00:00
EventFlag/src feat(runtime): timed waits, sync primitive fixes, heap and RTC fixes, unattended-run switches 2026-09-26 19:00:39 -07:00
File feat(libkernel): implement fcntl record locks on Windows 2026-10-12 18:42:53 +00:00
Module Merge pull request #4544 from poonasor/feat/libkernel-module-info2 2026-10-13 07:33:08 +13:00
Pthread Merge pull request #4350 from milescoviello/fix/once-reset-on-exit 2026-10-13 04:53:46 +13:00
Semaphore fix(libkernel): report the remaining time from sceKernelWaitSema 2026-10-11 20:09:33 +00:00
Socket Merge pull request #4373 from milescoviello/fix/recvmsg-seqpacket-trunc 2026-10-13 07:22:38 +13:00
SyncOnAddress/src feat(libkernel): wake each listed address in _umtx_op UMTX_OP_NWAKE_PRIVATE 2026-10-11 17:48:06 +00:00
System Merge pull request #4536 from orishamir/fix/debugout-host-stderr 2026-10-13 07:31:53 +13:00
Time Merge pull request #4466 from babyhuey/feat/libkernel-socid-cpumode 2026-10-13 07:27:28 +13:00
CMakeLists.txt Merge pull request #4516 from Ondra97/codex/file-lock-lifetime 2026-10-13 07:30:48 +13:00
KernelErrors.hpp refactor(kernel): share SCE kernel error codes through KernelErrors.hpp 2026-09-27 13:32:28 +07:00
Unimplemented.cpp feat(libkernel): implement sceKernelGetCpuTemperature 2026-10-12 07:37:44 +02:00