28 //sys Lchown(path string, uid int, gid int) (err error) |
28 //sys Lchown(path string, uid int, gid int) (err error) |
29 //sys Lstat(path string, stat *Stat_t) (err error) |
29 //sys Lstat(path string, stat *Stat_t) (err error) |
30 //sys Pause() (err error) |
30 //sys Pause() (err error) |
31 //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 |
31 //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 |
32 //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 |
32 //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 |
|
33 //sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) |
33 //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK |
34 //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK |
34 //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) |
35 //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) |
35 //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) |
36 //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) |
36 //sys Setfsgid(gid int) (err error) |
37 //sys setfsgid(gid int) (prev int, err error) |
37 //sys Setfsuid(uid int) (err error) |
38 //sys setfsuid(uid int) (prev int, err error) |
38 //sysnb Setregid(rgid int, egid int) (err error) |
39 //sysnb Setregid(rgid int, egid int) (err error) |
39 //sysnb Setresgid(rgid int, egid int, sgid int) (err error) |
40 //sysnb Setresgid(rgid int, egid int, sgid int) (err error) |
40 //sysnb Setresuid(ruid int, euid int, suid int) (err error) |
41 //sysnb Setresuid(ruid int, euid int, suid int) (err error) |
41 //sysnb Setrlimit(resource int, rlim *Rlimit) (err error) |
42 //sysnb Setrlimit(resource int, rlim *Rlimit) (err error) |
42 //sysnb Setreuid(ruid int, euid int) (err error) |
43 //sysnb Setreuid(ruid int, euid int) (err error) |
320 if len(fds) == 0 { |
325 if len(fds) == 0 { |
321 return poll(nil, 0, timeout) |
326 return poll(nil, 0, timeout) |
322 } |
327 } |
323 return poll(&fds[0], len(fds), timeout) |
328 return poll(&fds[0], len(fds), timeout) |
324 } |
329 } |
|
330 |
|
331 //sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) |
|
332 |
|
333 func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { |
|
334 cmdlineLen := len(cmdline) |
|
335 if cmdlineLen > 0 { |
|
336 // Account for the additional NULL byte added by |
|
337 // BytePtrFromString in kexecFileLoad. The kexec_file_load |
|
338 // syscall expects a NULL-terminated string. |
|
339 cmdlineLen++ |
|
340 } |
|
341 return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) |
|
342 } |