Source file src/pkg/cmd/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
1
2
3
4
5
6
7 package unix
8
9 import "unsafe"
10
11 func EpollCreate(size int) (fd int, err error) {
12 if size <= 0 {
13 return -1, EINVAL
14 }
15 return EpollCreate1(0)
16 }
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
37 var ts *Timespec
38 if timeout != nil {
39 ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}
40 }
41 return Pselect(nfd, r, w, e, ts, nil)
42 }
43
44
45
46
47
48
49
50
51
52
53
54
55 func Stat(path string, stat *Stat_t) (err error) {
56 return Fstatat(AT_FDCWD, path, stat, 0)
57 }
58
59 func Lchown(path string, uid int, gid int) (err error) {
60 return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW)
61 }
62
63 func Lstat(path string, stat *Stat_t) (err error) {
64 return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)
65 }
66
67
68
69
70
71 func Ustat(dev int, ubuf *Ustat_t) (err error) {
72 return ENOSYS
73 }
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95 func setTimespec(sec, nsec int64) Timespec {
96 return Timespec{Sec: sec, Nsec: nsec}
97 }
98
99 func setTimeval(sec, usec int64) Timeval {
100 return Timeval{Sec: sec, Usec: usec}
101 }
102
103 func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {
104 if tv == nil {
105 return utimensat(dirfd, path, nil, 0)
106 }
107
108 ts := []Timespec{
109 NsecToTimespec(TimevalToNsec(tv[0])),
110 NsecToTimespec(TimevalToNsec(tv[1])),
111 }
112 return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
113 }
114
115 func Time(t *Time_t) (Time_t, error) {
116 var tv Timeval
117 err := Gettimeofday(&tv)
118 if err != nil {
119 return 0, err
120 }
121 if t != nil {
122 *t = Time_t(tv.Sec)
123 }
124 return Time_t(tv.Sec), nil
125 }
126
127 func Utime(path string, buf *Utimbuf) error {
128 tv := []Timeval{
129 {Sec: buf.Actime},
130 {Sec: buf.Modtime},
131 }
132 return Utimes(path, tv)
133 }
134
135 func utimes(path string, tv *[2]Timeval) (err error) {
136 if tv == nil {
137 return utimensat(AT_FDCWD, path, nil, 0)
138 }
139
140 ts := []Timespec{
141 NsecToTimespec(TimevalToNsec(tv[0])),
142 NsecToTimespec(TimevalToNsec(tv[1])),
143 }
144 return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
145 }
146
147 func Pipe(p []int) (err error) {
148 if len(p) != 2 {
149 return EINVAL
150 }
151 var pp [2]_C_int
152 err = pipe2(&pp, 0)
153 p[0] = int(pp[0])
154 p[1] = int(pp[1])
155 return
156 }
157
158
159
160 func Pipe2(p []int, flags int) (err error) {
161 if len(p) != 2 {
162 return EINVAL
163 }
164 var pp [2]_C_int
165 err = pipe2(&pp, flags)
166 p[0] = int(pp[0])
167 p[1] = int(pp[1])
168 return
169 }
170
171 func (r *PtraceRegs) PC() uint64 { return r.Pc }
172
173 func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc }
174
175 func (iov *Iovec) SetLen(length int) {
176 iov.Len = uint64(length)
177 }
178
179 func (msghdr *Msghdr) SetControllen(length int) {
180 msghdr.Controllen = uint64(length)
181 }
182
183 func (cmsg *Cmsghdr) SetLen(length int) {
184 cmsg.Len = uint64(length)
185 }
186
187 func InotifyInit() (fd int, err error) {
188 return InotifyInit1(0)
189 }
190
191 func Dup2(oldfd int, newfd int) (err error) {
192 return Dup3(oldfd, newfd, 0)
193 }
194
195 func Pause() error {
196 _, err := ppoll(nil, 0, nil, nil)
197 return err
198 }
199
200 func Poll(fds []PollFd, timeout int) (n int, err error) {
201 var ts *Timespec
202 if timeout >= 0 {
203 ts = new(Timespec)
204 *ts = NsecToTimespec(int64(timeout) * 1e6)
205 }
206 if len(fds) == 0 {
207 return ppoll(nil, 0, ts, nil)
208 }
209 return ppoll(&fds[0], len(fds), ts, nil)
210 }
211
212
213
214 func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
215 cmdlineLen := len(cmdline)
216 if cmdlineLen > 0 {
217
218
219
220 cmdlineLen++
221 }
222 return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
223 }
224
View as plain text