diff options
| author | gingerBill <bill@gingerbill.org> | 2020-09-25 20:20:53 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2020-09-25 20:20:53 +0100 |
| commit | 8cc5cd149489bc808c231cdc92e78011e49ce426 (patch) | |
| tree | 68a308816e6c6c5f1dc76244017df7cb92ef7b0d /core/sys | |
| parent | 6b634d5e4604af01c86155def315c43c251fa8db (diff) | |
Add `package path/filepath`; Add `os.stat` for windows (TODO: unix)
Diffstat (limited to 'core/sys')
| -rw-r--r-- | core/sys/windows/kernel32.odin | 2 | ||||
| -rw-r--r-- | core/sys/windows/types.odin | 11 |
2 files changed, 13 insertions, 0 deletions
diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin index f937f6e28..55244c943 100644 --- a/core/sys/windows/kernel32.odin +++ b/core/sys/windows/kernel32.odin @@ -273,4 +273,6 @@ foreign kernel32 { GetLongPathNameW :: proc(short, long: LPCWSTR, len: DWORD) -> DWORD --- GetShortPathNameW :: proc(long, short: LPCWSTR, len: DWORD) -> DWORD --- + GetFinalPathNameByHandleW :: proc(hFile: HANDLE, lpszFilePath: LPCWSTR, cchFilePath: DWORD, dwFlags: DWORD) -> DWORD --- + } diff --git a/core/sys/windows/types.odin b/core/sys/windows/types.odin index 0d8ed94aa..b1d594eff 100644 --- a/core/sys/windows/types.odin +++ b/core/sys/windows/types.odin @@ -83,6 +83,7 @@ FILE_ATTRIBUTE_NORMAL: DWORD : 0x00000080; FILE_ATTRIBUTE_TEMPORARY: DWORD : 0x00000100; FILE_ATTRIBUTE_SPARSE_FILE: DWORD : 0x00000200; FILE_ATTRIBUTE_REPARSE_Point: DWORD : 0x00000400; +FILE_ATTRIBUTE_REPARSE_POINT: DWORD : 0x00000400; FILE_ATTRIBUTE_COMPRESSED: DWORD : 0x00000800; FILE_ATTRIBUTE_OFFLINE: DWORD : 0x00001000; FILE_ATTRIBUTE_NOT_CONTENT_INDEXED: DWORD : 0x00002000; @@ -535,6 +536,11 @@ FILETIME :: struct { dwHighDateTime: DWORD, } +FILETIME_as_unix_nanoseconds :: proc "contextless" (ft: FILETIME) -> i64 { + t := i64(u64(ft.dwLowDateTime) | u64(ft.dwHighDateTime) << 32); + return (t - 0x019db1ded53e8000) * 100; +} + OVERLAPPED :: struct { Internal: ^c_ulong, InternalHigh: ^c_ulong, @@ -675,6 +681,11 @@ FILE_STANDARD_INFO :: struct { Directory: BOOLEAN, } +FILE_ATTRIBUTE_TAG_INFO :: struct { + FileAttributes: DWORD, + ReparseTag: DWORD, +} + // https://docs.microsoft.com/en-gb/windows/win32/api/sysinfoapi/ns-sysinfoapi-system_info |