unix: added solaris mmap, munmap and madvise.

These are needed by boltdb.

Change-Id: Ie6afa51dbf6436bb014f53f6b56ee2de6a06827d
Reviewed-on: https://go-review.googlesource.com/13720
Reviewed-by: Aram Hăvărneanu <aram@mgk.ro>
This commit is contained in:
Ken Sedgwick
2015-08-20 11:07:44 +00:00
committed by Aram Hăvărneanu
parent 339fc2ca4b
commit 09d970dc3f
2 changed files with 30 additions and 0 deletions
+15
View File
@@ -44,6 +44,7 @@ import (
//go:cgo_import_dynamic libc_link link "libc.so"
//go:cgo_import_dynamic libsocket_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_mknod mknod "libc.so"
//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so"
@@ -125,6 +126,7 @@ import (
//go:linkname procLink libc_link
//go:linkname proclisten libsocket_listen
//go:linkname procLstat libc_lstat
//go:linkname procMadvise libc_madvise
//go:linkname procMkdir libc_mkdir
//go:linkname procMknod libc_mknod
//go:linkname procNanosleep libc_nanosleep
@@ -207,6 +209,7 @@ var (
procLink,
proclisten,
procLstat,
procMadvise,
procMkdir,
procMknod,
procNanosleep,
@@ -578,6 +581,18 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
func Madvise(b []byte, advice int) (err error) {
var _p0 *byte
if len(b) > 0 {
_p0 = &b[0]
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMadvise)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(advice), 0, 0, 0)
if e1 != 0 {
err = e1
}
return
}
func Mkdir(path string, mode uint32) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)