1 // Copyright 2021 The Go Authors. All rights reserved. |
1 // Copyright 2021 The Go Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style |
2 // Use of this source code is governed by a BSD-style |
3 // license that can be found in the LICENSE file. |
3 // license that can be found in the LICENSE file. |
4 |
4 |
5 //go:build linux && ppc |
5 //go:build linux && ppc |
6 // +build linux |
6 // +build linux,ppc |
7 // +build ppc |
|
8 |
7 |
9 package unix |
8 package unix |
10 |
9 |
11 import ( |
10 import ( |
12 "syscall" |
11 "syscall" |
13 "unsafe" |
12 "unsafe" |
14 ) |
13 ) |
15 |
14 |
16 //sys dup2(oldfd int, newfd int) (err error) |
|
17 //sysnb EpollCreate(size int) (fd int, err error) |
|
18 //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) |
15 //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) |
19 //sys Fchown(fd int, uid int, gid int) (err error) |
16 //sys Fchown(fd int, uid int, gid int) (err error) |
20 //sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 |
17 //sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 |
21 //sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 |
18 //sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 |
22 //sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 |
19 //sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 |
23 //sysnb Getegid() (egid int) |
20 //sysnb Getegid() (egid int) |
24 //sysnb Geteuid() (euid int) |
21 //sysnb Geteuid() (euid int) |
25 //sysnb Getgid() (gid int) |
22 //sysnb Getgid() (gid int) |
26 //sysnb Getuid() (uid int) |
23 //sysnb Getuid() (uid int) |
27 //sysnb InotifyInit() (fd int, err error) |
|
28 //sys Ioperm(from int, num int, on int) (err error) |
24 //sys Ioperm(from int, num int, on int) (err error) |
29 //sys Iopl(level int) (err error) |
25 //sys Iopl(level int) (err error) |
30 //sys Lchown(path string, uid int, gid int) (err error) |
26 //sys Lchown(path string, uid int, gid int) (err error) |
31 //sys Listen(s int, n int) (err error) |
27 //sys Listen(s int, n int) (err error) |
32 //sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 |
28 //sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 |
33 //sys Pause() (err error) |
29 //sys Pause() (err error) |
34 //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 |
30 //sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 |
35 //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 |
31 //sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 |
36 //sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) |
32 //sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) |
37 //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT |
33 //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT |
38 //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 |
34 //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 |
39 //sys setfsgid(gid int) (prev int, err error) |
35 //sys setfsgid(gid int) (prev int, err error) |
40 //sys setfsuid(uid int) (prev int, err error) |
36 //sys setfsuid(uid int) (prev int, err error) |
45 //sys Shutdown(fd int, how int) (err error) |
41 //sys Shutdown(fd int, how int) (err error) |
46 //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) |
42 //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) |
47 //sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 |
43 //sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 |
48 //sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 |
44 //sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 |
49 //sys Ustat(dev int, ubuf *Ustat_t) (err error) |
45 //sys Ustat(dev int, ubuf *Ustat_t) (err error) |
50 //sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) |
|
51 //sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) |
46 //sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) |
52 //sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) |
47 //sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) |
53 //sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) |
48 //sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) |
54 //sysnb getgroups(n int, list *_Gid_t) (nn int, err error) |
49 //sysnb getgroups(n int, list *_Gid_t) (nn int, err error) |
55 //sysnb setgroups(n int, list *_Gid_t) (err error) |
50 //sysnb setgroups(n int, list *_Gid_t) (err error) |
215 cmsg.Len = uint32(length) |
210 cmsg.Len = uint32(length) |
216 } |
211 } |
217 |
212 |
218 func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { |
213 func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { |
219 rsa.Service_name_len = uint32(length) |
214 rsa.Service_name_len = uint32(length) |
220 } |
|
221 |
|
222 //sysnb pipe(p *[2]_C_int) (err error) |
|
223 |
|
224 func Pipe(p []int) (err error) { |
|
225 if len(p) != 2 { |
|
226 return EINVAL |
|
227 } |
|
228 var pp [2]_C_int |
|
229 err = pipe(&pp) |
|
230 p[0] = int(pp[0]) |
|
231 p[1] = int(pp[1]) |
|
232 return |
|
233 } |
|
234 |
|
235 //sysnb pipe2(p *[2]_C_int, flags int) (err error) |
|
236 |
|
237 func Pipe2(p []int, flags int) (err error) { |
|
238 if len(p) != 2 { |
|
239 return EINVAL |
|
240 } |
|
241 var pp [2]_C_int |
|
242 err = pipe2(&pp, flags) |
|
243 p[0] = int(pp[0]) |
|
244 p[1] = int(pp[1]) |
|
245 return |
|
246 } |
|
247 |
|
248 //sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) |
|
249 |
|
250 func Poll(fds []PollFd, timeout int) (n int, err error) { |
|
251 if len(fds) == 0 { |
|
252 return poll(nil, 0, timeout) |
|
253 } |
|
254 return poll(&fds[0], len(fds), timeout) |
|
255 } |
215 } |
256 |
216 |
257 //sys syncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2 |
217 //sys syncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2 |
258 |
218 |
259 func SyncFileRange(fd int, off int64, n int64, flags int) error { |
219 func SyncFileRange(fd int, off int64, n int64, flags int) error { |