|
|
@@ -10,11 +10,18 @@ import (
|
|
|
"unsafe"
|
|
|
)
|
|
|
|
|
|
+//go:cgo_import_dynamic libc_getsockname getsockname "libsocket.so"
|
|
|
+//go:cgo_import_dynamic libc_getcwd getcwd "libc.so"
|
|
|
//go:cgo_import_dynamic libc_getgroups getgroups "libc.so"
|
|
|
//go:cgo_import_dynamic libc_setgroups setgroups "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_utimes utimes "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_utimensat utimensat "libc.so"
|
|
|
//go:cgo_import_dynamic libc_fcntl fcntl "libc.so"
|
|
|
-//go:cgo_import_dynamic libsocket_accept accept "libsocket.so"
|
|
|
-//go:cgo_import_dynamic libsocket_sendmsg sendmsg "libsocket.so"
|
|
|
+//go:cgo_import_dynamic libc_futimesat futimesat "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_accept accept "libsocket.so"
|
|
|
+//go:cgo_import_dynamic libc_recvmsg recvmsg "libsocket.so"
|
|
|
+//go:cgo_import_dynamic libc_sendmsg sendmsg "libsocket.so"
|
|
|
+//go:cgo_import_dynamic libc_acct acct "libc.so"
|
|
|
//go:cgo_import_dynamic libc_access access "libc.so"
|
|
|
//go:cgo_import_dynamic libc_adjtime adjtime "libc.so"
|
|
|
//go:cgo_import_dynamic libc_chdir chdir "libc.so"
|
|
|
@@ -22,44 +29,65 @@ import (
|
|
|
//go:cgo_import_dynamic libc_chown chown "libc.so"
|
|
|
//go:cgo_import_dynamic libc_chroot chroot "libc.so"
|
|
|
//go:cgo_import_dynamic libc_close close "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_creat creat "libc.so"
|
|
|
//go:cgo_import_dynamic libc_dup dup "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_dup2 dup2 "libc.so"
|
|
|
//go:cgo_import_dynamic libc_exit exit "libc.so"
|
|
|
//go:cgo_import_dynamic libc_fchdir fchdir "libc.so"
|
|
|
//go:cgo_import_dynamic libc_fchmod fchmod "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so"
|
|
|
//go:cgo_import_dynamic libc_fchown fchown "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_fchownat fchownat "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_fdatasync fdatasync "libc.so"
|
|
|
//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so"
|
|
|
//go:cgo_import_dynamic libc_fstat fstat "libc.so"
|
|
|
//go:cgo_import_dynamic libc_getdents getdents "libc.so"
|
|
|
//go:cgo_import_dynamic libc_getgid getgid "libc.so"
|
|
|
//go:cgo_import_dynamic libc_getpid getpid "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_getpgid getpgid "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so"
|
|
|
//go:cgo_import_dynamic libc_geteuid geteuid "libc.so"
|
|
|
//go:cgo_import_dynamic libc_getegid getegid "libc.so"
|
|
|
//go:cgo_import_dynamic libc_getppid getppid "libc.so"
|
|
|
//go:cgo_import_dynamic libc_getpriority getpriority "libc.so"
|
|
|
//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_getrusage getrusage "libc.so"
|
|
|
//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so"
|
|
|
//go:cgo_import_dynamic libc_getuid getuid "libc.so"
|
|
|
//go:cgo_import_dynamic libc_kill kill "libc.so"
|
|
|
//go:cgo_import_dynamic libc_lchown lchown "libc.so"
|
|
|
//go:cgo_import_dynamic libc_link link "libc.so"
|
|
|
-//go:cgo_import_dynamic libsocket_listen listen "libsocket.so"
|
|
|
+//go:cgo_import_dynamic libc_listen listen "libsocket.so"
|
|
|
//go:cgo_import_dynamic libc_lstat lstat "libc.so"
|
|
|
//go:cgo_import_dynamic libc_madvise madvise "libc.so"
|
|
|
//go:cgo_import_dynamic libc_mkdir mkdir "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so"
|
|
|
//go:cgo_import_dynamic libc_mknod mknod "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_mknodat mknodat "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_mlock mlock "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_mlockall mlockall "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_mprotect mprotect "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_munlock munlock "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_munlockall munlockall "libc.so"
|
|
|
//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so"
|
|
|
//go:cgo_import_dynamic libc_open open "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_openat openat "libc.so"
|
|
|
//go:cgo_import_dynamic libc_pathconf pathconf "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_pause pause "libc.so"
|
|
|
//go:cgo_import_dynamic libc_pread pread "libc.so"
|
|
|
//go:cgo_import_dynamic libc_pwrite pwrite "libc.so"
|
|
|
//go:cgo_import_dynamic libc_read read "libc.so"
|
|
|
//go:cgo_import_dynamic libc_readlink readlink "libc.so"
|
|
|
//go:cgo_import_dynamic libc_rename rename "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_renameat renameat "libc.so"
|
|
|
//go:cgo_import_dynamic libc_rmdir rmdir "libc.so"
|
|
|
//go:cgo_import_dynamic libc_lseek lseek "libc.so"
|
|
|
//go:cgo_import_dynamic libc_setegid setegid "libc.so"
|
|
|
//go:cgo_import_dynamic libc_seteuid seteuid "libc.so"
|
|
|
//go:cgo_import_dynamic libc_setgid setgid "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_sethostname sethostname "libc.so"
|
|
|
//go:cgo_import_dynamic libc_setpgid setpgid "libc.so"
|
|
|
//go:cgo_import_dynamic libc_setpriority setpriority "libc.so"
|
|
|
//go:cgo_import_dynamic libc_setregid setregid "libc.so"
|
|
|
@@ -67,37 +95,47 @@ import (
|
|
|
//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so"
|
|
|
//go:cgo_import_dynamic libc_setsid setsid "libc.so"
|
|
|
//go:cgo_import_dynamic libc_setuid setuid "libc.so"
|
|
|
-//go:cgo_import_dynamic libsocket_shutdown shutdown "libsocket.so"
|
|
|
+//go:cgo_import_dynamic libc_shutdown shutdown "libsocket.so"
|
|
|
//go:cgo_import_dynamic libc_stat stat "libc.so"
|
|
|
//go:cgo_import_dynamic libc_symlink symlink "libc.so"
|
|
|
//go:cgo_import_dynamic libc_sync sync "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_times times "libc.so"
|
|
|
//go:cgo_import_dynamic libc_truncate truncate "libc.so"
|
|
|
//go:cgo_import_dynamic libc_fsync fsync "libc.so"
|
|
|
//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so"
|
|
|
//go:cgo_import_dynamic libc_umask umask "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_uname uname "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_umount umount "libc.so"
|
|
|
//go:cgo_import_dynamic libc_unlink unlink "libc.so"
|
|
|
-//go:cgo_import_dynamic libc_utimes utimes "libc.so"
|
|
|
-//go:cgo_import_dynamic libsocket_bind bind "libsocket.so"
|
|
|
-//go:cgo_import_dynamic libsocket_connect connect "libsocket.so"
|
|
|
+//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_ustat ustat "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_utime utime "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_bind bind "libsocket.so"
|
|
|
+//go:cgo_import_dynamic libc_connect connect "libsocket.so"
|
|
|
//go:cgo_import_dynamic libc_mmap mmap "libc.so"
|
|
|
//go:cgo_import_dynamic libc_munmap munmap "libc.so"
|
|
|
-//go:cgo_import_dynamic libsocket_sendto sendto "libsocket.so"
|
|
|
-//go:cgo_import_dynamic libsocket_socket socket "libsocket.so"
|
|
|
-//go:cgo_import_dynamic libsocket_socketpair socketpair "libsocket.so"
|
|
|
+//go:cgo_import_dynamic libc_sendto sendto "libsocket.so"
|
|
|
+//go:cgo_import_dynamic libc_socket socket "libsocket.so"
|
|
|
+//go:cgo_import_dynamic libc_socketpair socketpair "libsocket.so"
|
|
|
//go:cgo_import_dynamic libc_write write "libc.so"
|
|
|
-//go:cgo_import_dynamic libsocket_getsockopt getsockopt "libsocket.so"
|
|
|
-//go:cgo_import_dynamic libsocket_getpeername getpeername "libsocket.so"
|
|
|
-//go:cgo_import_dynamic libsocket_getsockname getsockname "libsocket.so"
|
|
|
-//go:cgo_import_dynamic libsocket_setsockopt setsockopt "libsocket.so"
|
|
|
-//go:cgo_import_dynamic libsocket_recvfrom recvfrom "libsocket.so"
|
|
|
-//go:cgo_import_dynamic libsocket_recvmsg recvmsg "libsocket.so"
|
|
|
+//go:cgo_import_dynamic libc_getsockopt getsockopt "libsocket.so"
|
|
|
+//go:cgo_import_dynamic libc_getpeername getpeername "libsocket.so"
|
|
|
+//go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so"
|
|
|
+//go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so"
|
|
|
//go:cgo_import_dynamic libc_sysconf sysconf "libc.so"
|
|
|
|
|
|
+//go:linkname procgetsockname libc_getsockname
|
|
|
+//go:linkname procGetcwd libc_getcwd
|
|
|
//go:linkname procgetgroups libc_getgroups
|
|
|
//go:linkname procsetgroups libc_setgroups
|
|
|
+//go:linkname procutimes libc_utimes
|
|
|
+//go:linkname procutimensat libc_utimensat
|
|
|
//go:linkname procfcntl libc_fcntl
|
|
|
-//go:linkname procaccept libsocket_accept
|
|
|
-//go:linkname procsendmsg libsocket_sendmsg
|
|
|
+//go:linkname procfutimesat libc_futimesat
|
|
|
+//go:linkname procaccept libc_accept
|
|
|
+//go:linkname procrecvmsg libc_recvmsg
|
|
|
+//go:linkname procsendmsg libc_sendmsg
|
|
|
+//go:linkname procacct libc_acct
|
|
|
//go:linkname procAccess libc_access
|
|
|
//go:linkname procAdjtime libc_adjtime
|
|
|
//go:linkname procChdir libc_chdir
|
|
|
@@ -105,44 +143,65 @@ import (
|
|
|
//go:linkname procChown libc_chown
|
|
|
//go:linkname procChroot libc_chroot
|
|
|
//go:linkname procClose libc_close
|
|
|
+//go:linkname procCreat libc_creat
|
|
|
//go:linkname procDup libc_dup
|
|
|
+//go:linkname procDup2 libc_dup2
|
|
|
//go:linkname procExit libc_exit
|
|
|
//go:linkname procFchdir libc_fchdir
|
|
|
//go:linkname procFchmod libc_fchmod
|
|
|
+//go:linkname procFchmodat libc_fchmodat
|
|
|
//go:linkname procFchown libc_fchown
|
|
|
+//go:linkname procFchownat libc_fchownat
|
|
|
+//go:linkname procFdatasync libc_fdatasync
|
|
|
//go:linkname procFpathconf libc_fpathconf
|
|
|
//go:linkname procFstat libc_fstat
|
|
|
//go:linkname procGetdents libc_getdents
|
|
|
//go:linkname procGetgid libc_getgid
|
|
|
//go:linkname procGetpid libc_getpid
|
|
|
+//go:linkname procGetpgid libc_getpgid
|
|
|
+//go:linkname procGetpgrp libc_getpgrp
|
|
|
//go:linkname procGeteuid libc_geteuid
|
|
|
//go:linkname procGetegid libc_getegid
|
|
|
//go:linkname procGetppid libc_getppid
|
|
|
//go:linkname procGetpriority libc_getpriority
|
|
|
//go:linkname procGetrlimit libc_getrlimit
|
|
|
+//go:linkname procGetrusage libc_getrusage
|
|
|
//go:linkname procGettimeofday libc_gettimeofday
|
|
|
//go:linkname procGetuid libc_getuid
|
|
|
//go:linkname procKill libc_kill
|
|
|
//go:linkname procLchown libc_lchown
|
|
|
//go:linkname procLink libc_link
|
|
|
-//go:linkname proclisten libsocket_listen
|
|
|
+//go:linkname proclisten libc_listen
|
|
|
//go:linkname procLstat libc_lstat
|
|
|
//go:linkname procMadvise libc_madvise
|
|
|
//go:linkname procMkdir libc_mkdir
|
|
|
+//go:linkname procMkdirat libc_mkdirat
|
|
|
+//go:linkname procMkfifo libc_mkfifo
|
|
|
+//go:linkname procMkfifoat libc_mkfifoat
|
|
|
//go:linkname procMknod libc_mknod
|
|
|
+//go:linkname procMknodat libc_mknodat
|
|
|
+//go:linkname procMlock libc_mlock
|
|
|
+//go:linkname procMlockall libc_mlockall
|
|
|
+//go:linkname procMprotect libc_mprotect
|
|
|
+//go:linkname procMunlock libc_munlock
|
|
|
+//go:linkname procMunlockall libc_munlockall
|
|
|
//go:linkname procNanosleep libc_nanosleep
|
|
|
//go:linkname procOpen libc_open
|
|
|
+//go:linkname procOpenat libc_openat
|
|
|
//go:linkname procPathconf libc_pathconf
|
|
|
+//go:linkname procPause libc_pause
|
|
|
//go:linkname procPread libc_pread
|
|
|
//go:linkname procPwrite libc_pwrite
|
|
|
//go:linkname procread libc_read
|
|
|
//go:linkname procReadlink libc_readlink
|
|
|
//go:linkname procRename libc_rename
|
|
|
+//go:linkname procRenameat libc_renameat
|
|
|
//go:linkname procRmdir libc_rmdir
|
|
|
//go:linkname proclseek libc_lseek
|
|
|
//go:linkname procSetegid libc_setegid
|
|
|
//go:linkname procSeteuid libc_seteuid
|
|
|
//go:linkname procSetgid libc_setgid
|
|
|
+//go:linkname procSethostname libc_sethostname
|
|
|
//go:linkname procSetpgid libc_setpgid
|
|
|
//go:linkname procSetpriority libc_setpriority
|
|
|
//go:linkname procSetregid libc_setregid
|
|
|
@@ -150,38 +209,48 @@ import (
|
|
|
//go:linkname procSetrlimit libc_setrlimit
|
|
|
//go:linkname procSetsid libc_setsid
|
|
|
//go:linkname procSetuid libc_setuid
|
|
|
-//go:linkname procshutdown libsocket_shutdown
|
|
|
+//go:linkname procshutdown libc_shutdown
|
|
|
//go:linkname procStat libc_stat
|
|
|
//go:linkname procSymlink libc_symlink
|
|
|
//go:linkname procSync libc_sync
|
|
|
+//go:linkname procTimes libc_times
|
|
|
//go:linkname procTruncate libc_truncate
|
|
|
//go:linkname procFsync libc_fsync
|
|
|
//go:linkname procFtruncate libc_ftruncate
|
|
|
//go:linkname procUmask libc_umask
|
|
|
+//go:linkname procUname libc_uname
|
|
|
+//go:linkname procumount libc_umount
|
|
|
//go:linkname procUnlink libc_unlink
|
|
|
-//go:linkname procUtimes libc_utimes
|
|
|
-//go:linkname procbind libsocket_bind
|
|
|
-//go:linkname procconnect libsocket_connect
|
|
|
+//go:linkname procUnlinkat libc_unlinkat
|
|
|
+//go:linkname procUstat libc_ustat
|
|
|
+//go:linkname procUtime libc_utime
|
|
|
+//go:linkname procbind libc_bind
|
|
|
+//go:linkname procconnect libc_connect
|
|
|
//go:linkname procmmap libc_mmap
|
|
|
//go:linkname procmunmap libc_munmap
|
|
|
-//go:linkname procsendto libsocket_sendto
|
|
|
-//go:linkname procsocket libsocket_socket
|
|
|
-//go:linkname procsocketpair libsocket_socketpair
|
|
|
+//go:linkname procsendto libc_sendto
|
|
|
+//go:linkname procsocket libc_socket
|
|
|
+//go:linkname procsocketpair libc_socketpair
|
|
|
//go:linkname procwrite libc_write
|
|
|
-//go:linkname procgetsockopt libsocket_getsockopt
|
|
|
-//go:linkname procgetpeername libsocket_getpeername
|
|
|
-//go:linkname procgetsockname libsocket_getsockname
|
|
|
-//go:linkname procsetsockopt libsocket_setsockopt
|
|
|
-//go:linkname procrecvfrom libsocket_recvfrom
|
|
|
-//go:linkname procrecvmsg libsocket_recvmsg
|
|
|
+//go:linkname procgetsockopt libc_getsockopt
|
|
|
+//go:linkname procgetpeername libc_getpeername
|
|
|
+//go:linkname procsetsockopt libc_setsockopt
|
|
|
+//go:linkname procrecvfrom libc_recvfrom
|
|
|
//go:linkname procsysconf libc_sysconf
|
|
|
|
|
|
var (
|
|
|
+ procgetsockname,
|
|
|
+ procGetcwd,
|
|
|
procgetgroups,
|
|
|
procsetgroups,
|
|
|
+ procutimes,
|
|
|
+ procutimensat,
|
|
|
procfcntl,
|
|
|
+ procfutimesat,
|
|
|
procaccept,
|
|
|
+ procrecvmsg,
|
|
|
procsendmsg,
|
|
|
+ procacct,
|
|
|
procAccess,
|
|
|
procAdjtime,
|
|
|
procChdir,
|
|
|
@@ -189,21 +258,29 @@ var (
|
|
|
procChown,
|
|
|
procChroot,
|
|
|
procClose,
|
|
|
+ procCreat,
|
|
|
procDup,
|
|
|
+ procDup2,
|
|
|
procExit,
|
|
|
procFchdir,
|
|
|
procFchmod,
|
|
|
+ procFchmodat,
|
|
|
procFchown,
|
|
|
+ procFchownat,
|
|
|
+ procFdatasync,
|
|
|
procFpathconf,
|
|
|
procFstat,
|
|
|
procGetdents,
|
|
|
procGetgid,
|
|
|
procGetpid,
|
|
|
+ procGetpgid,
|
|
|
+ procGetpgrp,
|
|
|
procGeteuid,
|
|
|
procGetegid,
|
|
|
procGetppid,
|
|
|
procGetpriority,
|
|
|
procGetrlimit,
|
|
|
+ procGetrusage,
|
|
|
procGettimeofday,
|
|
|
procGetuid,
|
|
|
procKill,
|
|
|
@@ -213,20 +290,33 @@ var (
|
|
|
procLstat,
|
|
|
procMadvise,
|
|
|
procMkdir,
|
|
|
+ procMkdirat,
|
|
|
+ procMkfifo,
|
|
|
+ procMkfifoat,
|
|
|
procMknod,
|
|
|
+ procMknodat,
|
|
|
+ procMlock,
|
|
|
+ procMlockall,
|
|
|
+ procMprotect,
|
|
|
+ procMunlock,
|
|
|
+ procMunlockall,
|
|
|
procNanosleep,
|
|
|
procOpen,
|
|
|
+ procOpenat,
|
|
|
procPathconf,
|
|
|
+ procPause,
|
|
|
procPread,
|
|
|
procPwrite,
|
|
|
procread,
|
|
|
procReadlink,
|
|
|
procRename,
|
|
|
+ procRenameat,
|
|
|
procRmdir,
|
|
|
proclseek,
|
|
|
procSetegid,
|
|
|
procSeteuid,
|
|
|
procSetgid,
|
|
|
+ procSethostname,
|
|
|
procSetpgid,
|
|
|
procSetpriority,
|
|
|
procSetregid,
|
|
|
@@ -238,12 +328,17 @@ var (
|
|
|
procStat,
|
|
|
procSymlink,
|
|
|
procSync,
|
|
|
+ procTimes,
|
|
|
procTruncate,
|
|
|
procFsync,
|
|
|
procFtruncate,
|
|
|
procUmask,
|
|
|
+ procUname,
|
|
|
+ procumount,
|
|
|
procUnlink,
|
|
|
- procUtimes,
|
|
|
+ procUnlinkat,
|
|
|
+ procUstat,
|
|
|
+ procUtime,
|
|
|
procbind,
|
|
|
procconnect,
|
|
|
procmmap,
|
|
|
@@ -254,13 +349,32 @@ var (
|
|
|
procwrite,
|
|
|
procgetsockopt,
|
|
|
procgetpeername,
|
|
|
- procgetsockname,
|
|
|
procsetsockopt,
|
|
|
procrecvfrom,
|
|
|
- procrecvmsg,
|
|
|
procsysconf syscallFunc
|
|
|
)
|
|
|
|
|
|
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func Getcwd(buf []byte) (n int, err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ if len(buf) > 0 {
|
|
|
+ _p0 = &buf[0]
|
|
|
+ }
|
|
|
+ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetcwd)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0)
|
|
|
+ n = int(r0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
|
|
|
r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0)
|
|
|
n = int(r0)
|
|
|
@@ -278,6 +392,34 @@ func setgroups(ngid int, gid *_Gid_t) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func utimes(path string, times *[2]Timeval) (err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ _p0, err = BytePtrFromString(path)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimes)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0, 0, 0, 0)
|
|
|
+ use(unsafe.Pointer(_p0))
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ _p0, err = BytePtrFromString(path)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimensat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flag), 0, 0)
|
|
|
+ use(unsafe.Pointer(_p0))
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func fcntl(fd int, cmd int, arg int) (val int, err error) {
|
|
|
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0)
|
|
|
val = int(r0)
|
|
|
@@ -287,6 +429,14 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func futimesat(fildes int, path *byte, times *[2]Timeval) (err error) {
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfutimesat)), 3, uintptr(fildes), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)), 0, 0, 0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
|
|
|
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept)), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
|
|
|
fd = int(r0)
|
|
|
@@ -296,6 +446,15 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
|
|
|
+ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procrecvmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
|
|
|
+ n = int(r0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
|
|
|
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsendmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
|
|
|
n = int(r0)
|
|
|
@@ -305,6 +464,14 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func acct(path *byte) (err error) {
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procacct)), 1, uintptr(unsafe.Pointer(path)), 0, 0, 0, 0, 0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func Access(path string, mode uint32) (err error) {
|
|
|
var _p0 *byte
|
|
|
_p0, err = BytePtrFromString(path)
|
|
|
@@ -391,6 +558,21 @@ func Close(fd int) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func Creat(path string, mode uint32) (fd int, err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ _p0, err = BytePtrFromString(path)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procCreat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)
|
|
|
+ use(unsafe.Pointer(_p0))
|
|
|
+ fd = int(r0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func Dup(fd int) (nfd int, err error) {
|
|
|
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup)), 1, uintptr(fd), 0, 0, 0, 0, 0)
|
|
|
nfd = int(r0)
|
|
|
@@ -400,6 +582,14 @@ func Dup(fd int) (nfd int, err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func Dup2(oldfd int, newfd int) (err error) {
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func Exit(code int) {
|
|
|
sysvicall6(uintptr(unsafe.Pointer(&procExit)), 1, uintptr(code), 0, 0, 0, 0, 0)
|
|
|
return
|
|
|
@@ -421,6 +611,20 @@ func Fchmod(fd int, mode uint32) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ _p0, err = BytePtrFromString(path)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
|
|
|
+ use(unsafe.Pointer(_p0))
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func Fchown(fd int, uid int, gid int) (err error) {
|
|
|
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0)
|
|
|
if e1 != 0 {
|
|
|
@@ -429,6 +633,28 @@ func Fchown(fd int, uid int, gid int) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ _p0, err = BytePtrFromString(path)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchownat)), 5, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
|
|
|
+ use(unsafe.Pointer(_p0))
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func Fdatasync(fd int) (err error) {
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func Fpathconf(fd int, name int) (val int, err error) {
|
|
|
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFpathconf)), 2, uintptr(fd), uintptr(name), 0, 0, 0, 0)
|
|
|
val = int(r0)
|
|
|
@@ -471,6 +697,24 @@ func Getpid() (pid int) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func Getpgid(pid int) (pgid int, err error) {
|
|
|
+ r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0)
|
|
|
+ pgid = int(r0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func Getpgrp() (pgid int, err error) {
|
|
|
+ r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgrp)), 0, 0, 0, 0, 0, 0, 0)
|
|
|
+ pgid = int(r0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func Geteuid() (euid int) {
|
|
|
r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGeteuid)), 0, 0, 0, 0, 0, 0, 0)
|
|
|
euid = int(r0)
|
|
|
@@ -506,6 +750,14 @@ func Getrlimit(which int, lim *Rlimit) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func Getrusage(who int, rusage *Rusage) (err error) {
|
|
|
+ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrusage)), 2, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0, 0, 0, 0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func Gettimeofday(tv *Timeval) (err error) {
|
|
|
_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGettimeofday)), 1, uintptr(unsafe.Pointer(tv)), 0, 0, 0, 0, 0)
|
|
|
if e1 != 0 {
|
|
|
@@ -610,6 +862,48 @@ func Mkdir(path string, mode uint32) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func Mkdirat(dirfd int, path string, mode uint32) (err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ _p0, err = BytePtrFromString(path)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdirat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0)
|
|
|
+ use(unsafe.Pointer(_p0))
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func Mkfifo(path string, mode uint32) (err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ _p0, err = BytePtrFromString(path)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifo)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)
|
|
|
+ use(unsafe.Pointer(_p0))
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ _p0, err = BytePtrFromString(path)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifoat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0)
|
|
|
+ use(unsafe.Pointer(_p0))
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func Mknod(path string, mode uint32, dev int) (err error) {
|
|
|
var _p0 *byte
|
|
|
_p0, err = BytePtrFromString(path)
|
|
|
@@ -624,6 +918,72 @@ func Mknod(path string, mode uint32, dev int) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ _p0, err = BytePtrFromString(path)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
|
|
|
+ use(unsafe.Pointer(_p0))
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func Mlock(b []byte) (err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ if len(b) > 0 {
|
|
|
+ _p0 = &b[0]
|
|
|
+ }
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func Mlockall(flags int) (err error) {
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func Mprotect(b []byte, prot int) (err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ if len(b) > 0 {
|
|
|
+ _p0 = &b[0]
|
|
|
+ }
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMprotect)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(prot), 0, 0, 0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func Munlock(b []byte) (err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ if len(b) > 0 {
|
|
|
+ _p0 = &b[0]
|
|
|
+ }
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func Munlockall() (err error) {
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlockall)), 0, 0, 0, 0, 0, 0, 0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
|
|
|
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procNanosleep)), 2, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0, 0, 0, 0)
|
|
|
if e1 != 0 {
|
|
|
@@ -647,6 +1007,21 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ _p0, err = BytePtrFromString(path)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpenat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
|
|
|
+ use(unsafe.Pointer(_p0))
|
|
|
+ fd = int(r0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func Pathconf(path string, name int) (val int, err error) {
|
|
|
var _p0 *byte
|
|
|
_p0, err = BytePtrFromString(path)
|
|
|
@@ -662,6 +1037,14 @@ func Pathconf(path string, name int) (val int, err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func Pause() (err error) {
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPause)), 0, 0, 0, 0, 0, 0, 0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func Pread(fd int, p []byte, offset int64) (n int, err error) {
|
|
|
var _p0 *byte
|
|
|
if len(p) > 0 {
|
|
|
@@ -740,6 +1123,26 @@ func Rename(from string, to string) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ _p0, err = BytePtrFromString(oldpath)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var _p1 *byte
|
|
|
+ _p1, err = BytePtrFromString(newpath)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRenameat)), 4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
|
|
|
+ use(unsafe.Pointer(_p0))
|
|
|
+ use(unsafe.Pointer(_p1))
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func Rmdir(path string) (err error) {
|
|
|
var _p0 *byte
|
|
|
_p0, err = BytePtrFromString(path)
|
|
|
@@ -787,6 +1190,18 @@ func Setgid(gid int) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func Sethostname(p []byte) (err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ if len(p) > 0 {
|
|
|
+ _p0 = &p[0]
|
|
|
+ }
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0, 0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func Setpgid(pid int, pgid int) (err error) {
|
|
|
_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0)
|
|
|
if e1 != 0 {
|
|
|
@@ -894,6 +1309,15 @@ func Sync() (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func Times(tms *Tms) (ticks uintptr, err error) {
|
|
|
+ r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 0, 0)
|
|
|
+ ticks = uintptr(r0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func Truncate(path string, length int64) (err error) {
|
|
|
var _p0 *byte
|
|
|
_p0, err = BytePtrFromString(path)
|
|
|
@@ -924,12 +1348,34 @@ func Ftruncate(fd int, length int64) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func Umask(newmask int) (oldmask int) {
|
|
|
- r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procUmask)), 1, uintptr(newmask), 0, 0, 0, 0, 0)
|
|
|
+func Umask(mask int) (oldmask int) {
|
|
|
+ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procUmask)), 1, uintptr(mask), 0, 0, 0, 0, 0)
|
|
|
oldmask = int(r0)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func Uname(buf *Utsname) (err error) {
|
|
|
+ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procUname)), 1, uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0, 0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func Unmount(target string, flags int) (err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ _p0, err = BytePtrFromString(target)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procumount)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0, 0)
|
|
|
+ use(unsafe.Pointer(_p0))
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func Unlink(path string) (err error) {
|
|
|
var _p0 *byte
|
|
|
_p0, err = BytePtrFromString(path)
|
|
|
@@ -944,13 +1390,35 @@ func Unlink(path string) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func Utimes(path string, times *[2]Timeval) (err error) {
|
|
|
+func Unlinkat(dirfd int, path string) (err error) {
|
|
|
var _p0 *byte
|
|
|
_p0, err = BytePtrFromString(path)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
- _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUtimes)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0, 0, 0, 0)
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0)
|
|
|
+ use(unsafe.Pointer(_p0))
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func Ustat(dev int, ubuf *Ustat_t) (err error) {
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUstat)), 2, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0, 0, 0, 0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func Utime(path string, buf *Utimbuf) (err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ _p0, err = BytePtrFromString(path)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUtime)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0)
|
|
|
use(unsafe.Pointer(_p0))
|
|
|
if e1 != 0 {
|
|
|
err = e1
|
|
|
@@ -1049,14 +1517,6 @@ func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
|
|
|
- _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
|
|
|
- if e1 != 0 {
|
|
|
- err = e1
|
|
|
- }
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
|
|
|
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsetsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
|
|
|
if e1 != 0 {
|
|
|
@@ -1078,15 +1538,6 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
|
|
|
- r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procrecvmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
|
|
|
- n = int(r0)
|
|
|
- if e1 != 0 {
|
|
|
- err = e1
|
|
|
- }
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
func sysconf(name int) (n int64, err error) {
|
|
|
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsysconf)), 1, uintptr(name), 0, 0, 0, 0, 0)
|
|
|
n = int64(r0)
|