aboutsummaryrefslogtreecommitdiff
path: root/core/sys
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2020-09-25 20:20:53 +0100
committergingerBill <bill@gingerbill.org>2020-09-25 20:20:53 +0100
commit8cc5cd149489bc808c231cdc92e78011e49ce426 (patch)
tree68a308816e6c6c5f1dc76244017df7cb92ef7b0d /core/sys
parent6b634d5e4604af01c86155def315c43c251fa8db (diff)
Add `package path/filepath`; Add `os.stat` for windows (TODO: unix)
Diffstat (limited to 'core/sys')
-rw-r--r--core/sys/windows/kernel32.odin2
-rw-r--r--core/sys/windows/types.odin11
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