28 //sys Listen(s int, n int) (err error) |
28 //sys Listen(s int, n 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) = SYS__NEWSELECT |
35 //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT |
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) |
134 func SyncFileRange(fd int, off int64, n int64, flags int) error { |
139 func SyncFileRange(fd int, off int64, n int64, flags int) error { |
135 // The sync_file_range and sync_file_range2 syscalls differ only in the |
140 // The sync_file_range and sync_file_range2 syscalls differ only in the |
136 // order of their arguments. |
141 // order of their arguments. |
137 return syncFileRange2(fd, flags, off, n) |
142 return syncFileRange2(fd, flags, off, n) |
138 } |
143 } |
|
144 |
|
145 //sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) |
|
146 |
|
147 func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { |
|
148 cmdlineLen := len(cmdline) |
|
149 if cmdlineLen > 0 { |
|
150 // Account for the additional NULL byte added by |
|
151 // BytePtrFromString in kexecFileLoad. The kexec_file_load |
|
152 // syscall expects a NULL-terminated string. |
|
153 cmdlineLen++ |
|
154 } |
|
155 return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) |
|
156 } |