diff options
Diffstat (limited to 'src/lib/syscall')
| -rw-r--r-- | src/lib/syscall/file_darwin.go | 6 | ||||
| -rw-r--r-- | src/lib/syscall/file_linux.go | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/lib/syscall/file_darwin.go b/src/lib/syscall/file_darwin.go index 5d128f743c..b0777b5df4 100644 --- a/src/lib/syscall/file_darwin.go +++ b/src/lib/syscall/file_darwin.go @@ -98,3 +98,9 @@ func Getdirentries(fd int64, buf *byte, nbytes int64, basep *int64) (ret int64, r1, r2, err := Syscall6(SYS_GETDIRENTRIES64, fd, int64(uintptr(unsafe.Pointer(buf))), nbytes, int64(uintptr(unsafe.Pointer(basep))), 0, 0); return r1, err; } + +func Chdir(dir string) (ret int64, errno int64) { + namebuf := StringBytePtr(dir); + r1, r2, err := Syscall(SYS_CHDIR, int64(uintptr(unsafe.Pointer(namebuf))), 0, 0); + return r1, err; +} diff --git a/src/lib/syscall/file_linux.go b/src/lib/syscall/file_linux.go index ceb0a85d76..9bf4408846 100644 --- a/src/lib/syscall/file_linux.go +++ b/src/lib/syscall/file_linux.go @@ -100,3 +100,8 @@ func Getdents(fd int64, buf *Dirent, nbytes int64) (ret int64, errno int64) { return r1, err; } +func Chdir(dir string) (ret int64, errno int64) { + namebuf := StringBytePtr(dir); + r1, r2, err := Syscall(SYS_CHDIR, int64(uintptr(unsafe.Pointer(namebuf))), 0, 0); + return r1, err; +} |
