87 //sysnb InotifyInit() (fd int, err error) |
93 //sysnb InotifyInit() (fd int, err error) |
88 //sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 |
94 //sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 |
89 //sys Listen(s int, n int) (err error) |
95 //sys Listen(s int, n int) (err error) |
90 //sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 |
96 //sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 |
91 //sys Pause() (err error) |
97 //sys Pause() (err error) |
|
98 //sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) |
92 //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 |
99 //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 |
93 //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT |
100 //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT |
94 //sys Setfsgid(gid int) (err error) = SYS_SETFSGID32 |
101 //sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32 |
95 //sys Setfsuid(uid int) (err error) = SYS_SETFSUID32 |
102 //sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 |
96 //sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32 |
103 //sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32 |
97 //sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32 |
104 //sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32 |
98 //sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32 |
105 //sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32 |
99 //sysnb Setreuid(ruid int, euid int) (err error) = SYS_SETREUID32 |
106 //sysnb Setreuid(ruid int, euid int) (err error) = SYS_SETREUID32 |
100 //sys Shutdown(fd int, how int) (err error) |
107 //sys Shutdown(fd int, how int) (err error) |
243 |
250 |
244 func (msghdr *Msghdr) SetControllen(length int) { |
251 func (msghdr *Msghdr) SetControllen(length int) { |
245 msghdr.Controllen = uint32(length) |
252 msghdr.Controllen = uint32(length) |
246 } |
253 } |
247 |
254 |
|
255 func (msghdr *Msghdr) SetIovlen(length int) { |
|
256 msghdr.Iovlen = uint32(length) |
|
257 } |
|
258 |
248 func (cmsg *Cmsghdr) SetLen(length int) { |
259 func (cmsg *Cmsghdr) SetLen(length int) { |
249 cmsg.Len = uint32(length) |
260 cmsg.Len = uint32(length) |
250 } |
261 } |
251 |
262 |
252 //sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) |
263 //sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) |
255 if len(fds) == 0 { |
266 if len(fds) == 0 { |
256 return poll(nil, 0, timeout) |
267 return poll(nil, 0, timeout) |
257 } |
268 } |
258 return poll(&fds[0], len(fds), timeout) |
269 return poll(&fds[0], len(fds), timeout) |
259 } |
270 } |
|
271 |
|
272 //sys armSyncFileRange(fd int, flags int, off int64, n int64) (err error) = SYS_ARM_SYNC_FILE_RANGE |
|
273 |
|
274 func SyncFileRange(fd int, off int64, n int64, flags int) error { |
|
275 // The sync_file_range and arm_sync_file_range syscalls differ only in the |
|
276 // order of their arguments. |
|
277 return armSyncFileRange(fd, flags, off, n) |
|
278 } |
|
279 |
|
280 //sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) |
|
281 |
|
282 func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { |
|
283 cmdlineLen := len(cmdline) |
|
284 if cmdlineLen > 0 { |
|
285 // Account for the additional NULL byte added by |
|
286 // BytePtrFromString in kexecFileLoad. The kexec_file_load |
|
287 // syscall expects a NULL-terminated string. |
|
288 cmdlineLen++ |
|
289 } |
|
290 return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) |
|
291 } |