From: Cary Hull Date: Thu, 9 Oct 2008 07:15:37 +0000 (-0700) Subject: Adding Mkdir. X-Git-Tag: weekly.2009-11-06~3017 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=f960840a0e7a90e1dcb08dfaabf7722c353fe594;p=gostls13.git Adding Mkdir. R=rsc APPROVED=rsc DELTA=21 (21 added, 0 deleted, 0 changed) OCL=16794 CL=16803 --- diff --git a/src/lib/os/os_file.go b/src/lib/os/os_file.go index 3fa62ba7ca..ba71d836da 100644 --- a/src/lib/os/os_file.go +++ b/src/lib/os/os_file.go @@ -91,3 +91,8 @@ export func Pipe() (fd1 *FD, fd2 *FD, err *Error) { } return NewFD(p[0]), NewFD(p[1]), nil } + +export func Mkdir(name string, perm int) *Error { + r, e := syscall.mkdir(name, int64(perm)); + return ErrnoToError(e) +} diff --git a/src/lib/syscall/file_darwin.go b/src/lib/syscall/file_darwin.go index 120003b288..4a2072d4d5 100644 --- a/src/lib/syscall/file_darwin.go +++ b/src/lib/syscall/file_darwin.go @@ -86,3 +86,11 @@ export func fcntl(fd, cmd, arg int64) (ret int64, errno int64) { return r1, err } +export func mkdir(name string, perm int64) (ret int64, errno int64) { + var namebuf [NameBufsize]byte; + if !StringToBytes(&namebuf, name) { + return -1, ENAMETOOLONG + } + r1, r2, err := Syscall(SYS_MKDIR, BytePtr(&namebuf[0]), perm, 0); + return r1, err; +} diff --git a/src/lib/syscall/file_linux.go b/src/lib/syscall/file_linux.go index 09d5379c27..af7728a6b1 100644 --- a/src/lib/syscall/file_linux.go +++ b/src/lib/syscall/file_linux.go @@ -87,3 +87,11 @@ export func fcntl(fd, cmd, arg int64) (ret int64, errno int64) { return r1, err } +export func mkdir(name string, perm int64) (ret int64, errno int64) { + var namebuf [NameBufsize]byte; + if !StringToBytes(&namebuf, name) { + return -1, ENAMETOOLONG + } + r1, r2, err := Syscall(SYS_MKDIR, BytePtr(&namebuf[0]), perm, 0); + return r1, err; +}