Files
cgofuse/filetime/filetime_windows.go
Matheus Sampaio Queiroga 9a774478a2
All checks were successful
Fuse test / go-test (push) Successful in 32s
Merge winfsp to fuse and update fs
Signed-off-by: Matheus Sampaio Queiroga <srherobrine20@gmail.com>
2025-08-18 19:07:05 -03:00

31 lines
553 B
Go

package filetime
import (
"sync"
"syscall"
"time"
"unsafe"
)
var pool = &sync.Pool{
New: func() interface{} {
return &syscall.Filetime{}
},
}
func uint64FromFiletime(filetime *syscall.Filetime) uint64 {
result := *(*uint64)(unsafe.Pointer(filetime))
return result
}
func Timestamp(t time.Time) uint64 {
filetime := pool.Get().(*syscall.Filetime)
defer pool.Put(filetime)
*filetime = syscall.NsecToFiletime(t.UnixNano())
return uint64FromFiletime(filetime)
}
func Filetime(t syscall.Filetime) uint64 {
return uint64FromFiletime(&t)
}