1 b1b8898e 2017-06-21 progrium package ufs
5 b1b8898e 2017-06-21 progrium "syscall"
7 b1b8898e 2017-06-21 progrium p9p "github.com/docker/go-p9p"
10 b1b8898e 2017-06-21 progrium func dirFromInfo(info os.FileInfo) p9p.Dir {
11 b1b8898e 2017-06-21 progrium dir := p9p.Dir{}
13 b1b8898e 2017-06-21 progrium dir.Qid.Path = info.Sys().(*syscall.Stat_t).Ino
14 b1b8898e 2017-06-21 progrium dir.Qid.Version = uint32(info.ModTime().UnixNano() / 1000000)
16 b1b8898e 2017-06-21 progrium dir.Name = info.Name()
17 b1b8898e 2017-06-21 progrium dir.Mode = uint32(info.Mode() & 0777)
18 b1b8898e 2017-06-21 progrium dir.Length = uint64(info.Size())
19 b1b8898e 2017-06-21 progrium dir.AccessTime = atime(info.Sys().(*syscall.Stat_t))
20 b1b8898e 2017-06-21 progrium dir.ModTime = info.ModTime()
21 b1b8898e 2017-06-21 progrium dir.MUID = "none"
23 b1b8898e 2017-06-21 progrium if info.IsDir() {
24 b1b8898e 2017-06-21 progrium dir.Qid.Type |= p9p.QTDIR
25 b1b8898e 2017-06-21 progrium dir.Mode |= p9p.DMDIR
28 b1b8898e 2017-06-21 progrium return dir
31 b1b8898e 2017-06-21 progrium func oflags(mode p9p.Flag) int {
32 b1b8898e 2017-06-21 progrium flags := 0
34 b1b8898e 2017-06-21 progrium switch mode & 3 {
35 b1b8898e 2017-06-21 progrium case p9p.OREAD:
36 b1b8898e 2017-06-21 progrium flags = os.O_RDONLY
39 b1b8898e 2017-06-21 progrium case p9p.ORDWR:
40 b1b8898e 2017-06-21 progrium flags = os.O_RDWR
43 b1b8898e 2017-06-21 progrium case p9p.OWRITE:
44 b1b8898e 2017-06-21 progrium flags = os.O_WRONLY
47 b1b8898e 2017-06-21 progrium case p9p.OEXEC:
48 b1b8898e 2017-06-21 progrium flags = os.O_RDONLY
52 b1b8898e 2017-06-21 progrium if mode&p9p.OTRUNC != 0 {
53 b1b8898e 2017-06-21 progrium flags |= os.O_TRUNC
56 b1b8898e 2017-06-21 progrium return flags