github.com/tetratelabs/wazero@v1.2.1/internal/sysfs/stat.go (about) 1 package sysfs 2 3 import ( 4 "io/fs" 5 "os" 6 "syscall" 7 8 "github.com/tetratelabs/wazero/internal/fsapi" 9 "github.com/tetratelabs/wazero/internal/platform" 10 ) 11 12 func defaultStatFile(f *os.File) (fsapi.Stat_t, syscall.Errno) { 13 if t, err := f.Stat(); err != nil { 14 return fsapi.Stat_t{}, platform.UnwrapOSError(err) 15 } else { 16 return statFromFileInfo(t), 0 17 } 18 } 19 20 func StatFromDefaultFileInfo(t fs.FileInfo) fsapi.Stat_t { 21 st := fsapi.Stat_t{} 22 st.Ino = 0 23 st.Dev = 0 24 st.Mode = t.Mode() 25 st.Nlink = 1 26 st.Size = t.Size() 27 mtim := t.ModTime().UnixNano() // Set all times to the mod time 28 st.Atim = mtim 29 st.Mtim = mtim 30 st.Ctim = mtim 31 return st 32 }