1
2
3
4
5
6
7 package unix
8
9
10
11
12
13
14 func setTimespec(sec, nsec int64) Timespec {
15 return Timespec{Sec: sec, Nsec: nsec}
16 }
17
18 func setTimeval(sec, usec int64) Timeval {
19 return Timeval{Sec: int64(sec), Usec: int32(usec)}
20 }
21
22 func (iov *Iovec) SetLen(length int) {
23 iov.Len = uint64(length)
24 }
25
26 func (msghdr *Msghdr) SetControllen(length int) {
27 msghdr.Controllen = uint32(length)
28 }
29
30 func (msghdr *Msghdr) SetIovlen(length int) {
31 msghdr.Iovlen = int32(length)
32 }
33
34 func (cmsg *Cmsghdr) SetLen(length int) {
35 cmsg.Len = uint32(length)
36 }
37
38
39
40
41
42
43 func fixStatTimFields(stat *Stat_t) {
44 stat.Atim.Nsec >>= 32
45 stat.Mtim.Nsec >>= 32
46 stat.Ctim.Nsec >>= 32
47 }
48
49 func Fstat(fd int, stat *Stat_t) error {
50 err := fstat(fd, stat)
51 if err != nil {
52 return err
53 }
54 fixStatTimFields(stat)
55 return nil
56 }
57
58 func Fstatat(dirfd int, path string, stat *Stat_t, flags int) error {
59 err := fstatat(dirfd, path, stat, flags)
60 if err != nil {
61 return err
62 }
63 fixStatTimFields(stat)
64 return nil
65 }
66
67 func Lstat(path string, stat *Stat_t) error {
68 err := lstat(path, stat)
69 if err != nil {
70 return err
71 }
72 fixStatTimFields(stat)
73 return nil
74 }
75
76 func Stat(path string, statptr *Stat_t) error {
77 err := stat(path, statptr)
78 if err != nil {
79 return err
80 }
81 fixStatTimFields(statptr)
82 return nil
83 }
84
View as plain text