redo boot around an explicit system volume and fixed kernel/HAL images, redo volumes and filesystem paths around capabilities instead of drive numbers and kernel CWD state, add a capability/security model with derived and revocable handles and security contexts, add port IPC and rssrv to manage the userspace resource namespace and publish the system volume, move process, dll and path loading to userspace and add process builder syscalls, init now supervises rssrv and the session process, redo the syscall ABI around request structs and four arguments, add a volume manager and proper partition arrival/removal handling so FAT and NTFS mount dynamically, clean up the HAL/DDK boundary so drivers don't depend on HAL internals, save fpu state properly now, the serial driver doesn't hang on a missing port, fix AHCI startup races, fix timeout accounting, fix shared mmap writeback, more smoke tests

This commit is contained in:
maksw committed 2026-08-20 12:33:17 +02:00
1 parent 4add6789ba
commit f882d339fb
232 files changed
+20934 -8898

No files matched your search

+49
View File
@@ -0,0 +1,49 @@
// Native userspace path and filesystem base services.
#pragma once
#include <stddef.h>
#include <stdint.h>
#include <ntlite/handle.h>
#include <ntlite/status.h>
#include <ntlite/string_view.h>
#include <ntlite/file_stat.h>
#include <ntlite/syscall.h>
#if defined(NTL_SYSCALL_STATIC)
#define NTL_PATH_API
#elif defined(NTL_SYSCALL_BUILD)
#define NTL_PATH_API __declspec(dllexport)
#else
#define NTL_PATH_API
#endif
// Native global paths are canonical resource paths such as /SystemRoot/system/init.exe.
// Relative paths are resolved against the process-local userspace CWD. Parent traversal is
// clamped at the CWD's owning RSSRV resource binding. Backslash is never accepted; repeated '/',
// '.', and '..' are normalized before RSSRV sees the path.
NTL_PATH_API KSTATUS NtlRealPath(SYS_STRING_VIEW path,
char* buffer,
size_t bufferSize,
size_t* requiredSizeOut);
NTL_PATH_API KSTATUS NtlSetCurrentDirectory(SYS_STRING_VIEW path);
NTL_PATH_API KSTATUS NtlGetCurrentDirectory(char* buffer,
size_t bufferSize,
size_t* requiredSizeOut);
NTL_PATH_API KSTATUS NtlOpenFile(SYS_STRING_VIEW path,
uint32_t access,
uint32_t disposition,
uint32_t flags,
SYS_HANDLE* handleOut);
NTL_PATH_API KSTATUS NtlOpenDir(SYS_STRING_VIEW path,
uint32_t access,
uint32_t flags,
SYS_HANDLE* handleOut);
NTL_PATH_API KSTATUS NtlStatPath(SYS_STRING_VIEW path, SYS_FILE_STAT* statOut);
NTL_PATH_API KSTATUS NtlDeleteFile(SYS_STRING_VIEW path);
NTL_PATH_API KSTATUS NtlRenameFile(SYS_STRING_VIEW oldPath, SYS_STRING_VIEW newPath);
NTL_PATH_API KSTATUS NtlCreateDirectory(SYS_STRING_VIEW path);
NTL_PATH_API KSTATUS NtlRemoveDirectory(SYS_STRING_VIEW path);
#undef NTL_PATH_API