|
|
@@ -75,6 +75,7 @@ import (
|
|
|
//go:cgo_import_dynamic libc_mlock mlock "libc.so"
|
|
|
//go:cgo_import_dynamic libc_mlockall mlockall "libc.so"
|
|
|
//go:cgo_import_dynamic libc_mprotect mprotect "libc.so"
|
|
|
+//go:cgo_import_dynamic libc_msync msync "libc.so"
|
|
|
//go:cgo_import_dynamic libc_munlock munlock "libc.so"
|
|
|
//go:cgo_import_dynamic libc_munlockall munlockall "libc.so"
|
|
|
//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so"
|
|
|
@@ -195,6 +196,7 @@ import (
|
|
|
//go:linkname procMlock libc_mlock
|
|
|
//go:linkname procMlockall libc_mlockall
|
|
|
//go:linkname procMprotect libc_mprotect
|
|
|
+//go:linkname procMsync libc_msync
|
|
|
//go:linkname procMunlock libc_munlock
|
|
|
//go:linkname procMunlockall libc_munlockall
|
|
|
//go:linkname procNanosleep libc_nanosleep
|
|
|
@@ -316,6 +318,7 @@ var (
|
|
|
procMlock,
|
|
|
procMlockall,
|
|
|
procMprotect,
|
|
|
+ procMsync,
|
|
|
procMunlock,
|
|
|
procMunlockall,
|
|
|
procNanosleep,
|
|
|
@@ -1017,6 +1020,18 @@ func Mprotect(b []byte, prot int) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func Msync(b []byte, flags int) (err error) {
|
|
|
+ var _p0 *byte
|
|
|
+ if len(b) > 0 {
|
|
|
+ _p0 = &b[0]
|
|
|
+ }
|
|
|
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMsync)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(flags), 0, 0, 0)
|
|
|
+ if e1 != 0 {
|
|
|
+ err = e1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func Munlock(b []byte) (err error) {
|
|
|
var _p0 *byte
|
|
|
if len(b) > 0 {
|