// Native userspace path and filesystem base services. #pragma once #include #include #include #include #include #include #include #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