mirror of
https://github.com/rwinkhart/sys.git
synced 2026-08-31 06:16:41 -04:00
Make Madvice, Mlock, Mlockall, Mprotect, Msync, Munlock and Munlockall available equally on all BSD flavors. NetBSD was previously lacking SYS_MSYNC, so add it. Reorder the //sys function prototype alphabetically and clean up already implemented syscalls everywhere. Also add tests for Mprotect, Msync and Madvice - now that they're available on all unix platforms. Fixes golang/go#18513 Change-Id: I0eb502d72c7e991f191fb96225ef04e8297d8b8d Reviewed-on: https://go-review.googlesource.com/56172 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Ian Lance Taylor <iant@golang.org>
36 lines
829 B
Go
36 lines
829 B
Go
// Copyright 2014 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// +build darwin dragonfly freebsd linux netbsd openbsd solaris
|
|
|
|
package unix_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"golang.org/x/sys/unix"
|
|
)
|
|
|
|
func TestMmap(t *testing.T) {
|
|
b, err := unix.Mmap(-1, 0, unix.Getpagesize(), unix.PROT_NONE, unix.MAP_ANON|unix.MAP_PRIVATE)
|
|
if err != nil {
|
|
t.Fatalf("Mmap: %v", err)
|
|
}
|
|
if err := unix.Mprotect(b, unix.PROT_WRITE); err != nil {
|
|
t.Fatalf("Mprotect: %v", err)
|
|
}
|
|
|
|
b[0] = 42
|
|
|
|
if err := unix.Msync(b, unix.MS_SYNC); err != nil {
|
|
t.Fatalf("Msync: %v", err)
|
|
}
|
|
if err := unix.Madvise(b, unix.MADV_DONTNEED); err != nil {
|
|
t.Fatalf("Madvise: %v", err)
|
|
}
|
|
if err := unix.Munmap(b); err != nil {
|
|
t.Fatalf("Munmap: %v", err)
|
|
}
|
|
}
|