summaryrefslogtreecommitdiff
path: root/vendor/modernc.org/libc/libc_windows_386.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2022-11-28 11:19:39 +0100
committerLibravatar GitHub <noreply@github.com>2022-11-28 11:19:39 +0100
commitdaf44ac2b709922512cfee3cde686b84b4868775 (patch)
tree2967df466f8d4515d32c05cf520ba3e7a19d4fae /vendor/modernc.org/libc/libc_windows_386.go
parent[chore]: Bump codeberg.org/gruf/go-store/v2 from 2.0.9 to 2.0.10 (#1160) (diff)
downloadgotosocial-daf44ac2b709922512cfee3cde686b84b4868775.tar.xz
[chore] Bump database dependencies (#1164)
github.com/uptrace/bun v1.1.8 -> v1.1.9 github.com/uptrace/bun/pgdialect v1.1.8 -> v1.1.9 github.com/uptrace/bun/sqlitedialect v1.1.8 -> v1.1.9 modernc.org/sqlite v1.18.2 -> v1.19.5
Diffstat (limited to 'vendor/modernc.org/libc/libc_windows_386.go')
-rw-r--r--vendor/modernc.org/libc/libc_windows_386.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/vendor/modernc.org/libc/libc_windows_386.go b/vendor/modernc.org/libc/libc_windows_386.go
index d50f05fa3..d48e6f65c 100644
--- a/vendor/modernc.org/libc/libc_windows_386.go
+++ b/vendor/modernc.org/libc/libc_windows_386.go
@@ -11,6 +11,7 @@ import (
"unsafe"
"modernc.org/libc/errno"
+ "modernc.org/libc/sys/stat"
"modernc.org/libc/sys/types"
)
@@ -546,3 +547,37 @@ func XDefWindowProcW(t *TLS, _ ...interface{}) int32 {
func XSendMessageTimeoutW(t *TLS, _ ...interface{}) int32 {
panic(todo(""))
}
+
+// int _fstat(
+//
+// int fd,
+// struct __stat *buffer
+//
+// );
+func X_fstat(t *TLS, fd int32, buffer uintptr) int32 {
+ f, ok := fdToFile(fd)
+ if !ok {
+ t.setErrno(EBADF)
+ return -1
+ }
+
+ var d syscall.ByHandleFileInformation
+ err := syscall.GetFileInformationByHandle(f.Handle, &d)
+ if err != nil {
+ t.setErrno(EBADF)
+ return -1
+ }
+
+ var bStat32 = (*stat.X_stat32)(unsafe.Pointer(buffer))
+ var accessTime = int64(d.LastAccessTime.HighDateTime)<<32 + int64(d.LastAccessTime.LowDateTime)
+ bStat32.Fst_atime = int32(WindowsTickToUnixSeconds(accessTime))
+ var modTime = int64(d.LastWriteTime.HighDateTime)<<32 + int64(d.LastWriteTime.LowDateTime)
+ bStat32.Fst_mtime = int32(WindowsTickToUnixSeconds(modTime))
+ var crTime = int64(d.CreationTime.HighDateTime)<<32 + int64(d.CreationTime.LowDateTime)
+ bStat32.Fst_ctime = int32(WindowsTickToUnixSeconds(crTime))
+ var fSz = int64(d.FileSizeHigh)<<32 + int64(d.FileSizeLow)
+ bStat32.Fst_size = int32(fSz)
+ bStat32.Fst_mode = WindowsAttrbiutesToStat(d.FileAttributes)
+
+ return 0
+}