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
@@ -469,6 +469,7 @@ func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error)
//sys Link(path string, link string) (err error)
//sys Listen(s int, backlog int) (err error) = libsocket.listen
//sys Lstat(path string, stat *Stat_t) (err error)
//sys Madvise(b []byte, advice int) (err error)
//sys Mkdir(path string, mode uint32) (err error)
//sys Mknod(path string, mode uint32, dev int) (err error)
//sys Nanosleep(time *Timespec, leftover *Timespec) (err error)
@@ -533,3 +534,17 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
}
return
}
var mapper = &mmapper{
active: make(map[*byte][]byte),
mmap: mmap,
munmap: munmap,
}
func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {
return mapper.Mmap(fd, offset, length, prot, flags)
}
func Munmap(b []byte) (err error) {
return mapper.Munmap(b)
}