Source file
src/os/stat_wasip1.go
1
2
3
4
5
6
7 package os
8
9 import (
10 "internal/filepathlite"
11 "syscall"
12 "time"
13 )
14
15 func fillFileStatFromSys(fs *fileStat, name string) {
16 fs.name = filepathlite.Base(name)
17 fs.size = int64(fs.sys.Size)
18 fs.modTime = time.Unix(0, int64(fs.sys.Mtime))
19
20 switch fs.sys.Filetype {
21 case syscall.FILETYPE_BLOCK_DEVICE:
22 fs.mode |= ModeDevice
23 case syscall.FILETYPE_CHARACTER_DEVICE:
24 fs.mode |= ModeDevice | ModeCharDevice
25 case syscall.FILETYPE_DIRECTORY:
26 fs.mode |= ModeDir
27 case syscall.FILETYPE_SOCKET_DGRAM:
28 fs.mode |= ModeSocket
29 case syscall.FILETYPE_SOCKET_STREAM:
30 fs.mode |= ModeSocket
31 case syscall.FILETYPE_SYMBOLIC_LINK:
32 fs.mode |= ModeSymlink
33 }
34
35
36
37
38 if fs.sys.Filetype == syscall.FILETYPE_DIRECTORY {
39 fs.mode |= 0700
40 } else {
41 fs.mode |= 0600
42 }
43 }
44
45
46 func atime(fi FileInfo) time.Time {
47 st := fi.Sys().(*syscall.Stat_t)
48 return time.Unix(0, int64(st.Atime))
49 }
50
View as plain text