kernel: memory mapping, event flags and condvar fixes

- Event flags gain a zero-timeout polling path, which this title uses heavily,
  and map their results to the right errno.
- Memory mapping, address-space and file-system corrections its startup path
  depends on.
- pthread condvar waits dispatch pending signals while waiting.
This commit is contained in:
Mac
2026-08-31 23:41:54 +05:30
parent ed44795511
commit 0551010010
6 changed files with 312 additions and 9 deletions
+9
View File
@@ -117,6 +117,8 @@ void InvalidateMemory(uint64_t vaddr, uint64_t size);
void InstallGpuResources(Graphics::GpuResourceManager* resources) noexcept;
[[nodiscard]] bool HandleGpuFault(Graphics::PageFaultAccess access, uint64_t fault_vaddr) noexcept;
[[nodiscard]] bool IsHandlingGpuFault() noexcept;
int KYTY_SYSV_ABI KernelMapNamedFlexibleMemory(void** addr_in_out, size_t len, int prot, int flags,
const char* name);
int KYTY_SYSV_ABI KernelMapFlexibleMemory(void** addr_in_out, size_t len, int prot, int flags);
@@ -147,6 +149,13 @@ int KYTY_SYSV_ABI KernelGetPrtAperture(int index, void** addr, size_t* len);
int KYTY_SYSV_ABI KernelIsAddressSanitizerEnabled();
int KYTY_SYSV_ABI KernelQueryMemoryProtection(void* addr, void** start, void** end, int* prot);
int KYTY_SYSV_ABI KernelDirectMemoryQuery(int64_t offset, int flags, void* info, size_t info_size);
bool KernelHandleReservedRangeAccessViolation(uint64_t vaddr);
bool KernelHandleTransientMappingFault(Graphics::PageFaultAccess access, uint64_t vaddr);
void DumpVirtualRangeForAddress(uint64_t vaddr);
uint64_t MappedExtentFrom(uint64_t vaddr, bool* known = nullptr);
int KYTY_SYSV_ABI KernelVirtualQuery(const void* addr, int flags, VirtualQueryInfo* info,
uint64_t info_size);
int KYTY_SYSV_ABI KernelIsStack(void* addr, void** start, void** end);