diff options
author | Milan Lenco <milan.lenco@pantheon.tech> | 2017-10-11 16:40:58 +0200 |
---|---|---|
committer | Milan Lenco <milan.lenco@pantheon.tech> | 2017-10-13 08:40:37 +0200 |
commit | 3f1edad4e6ba0a7876750aea55507fae14d8badf (patch) | |
tree | a473997249d9ba7deb70b1076d14e4c4ed029a43 /vendor/golang.org/x/sys/unix/openbsd_pledge.go | |
parent | 8b66677c2382a8e739d437621de4473d5ec0b9f1 (diff) |
ODPM 266: Go-libmemif + 2 examples.
Change-Id: Icdb9b9eb2314eff6c96afe7996fcf2728291de4a
Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>
Diffstat (limited to 'vendor/golang.org/x/sys/unix/openbsd_pledge.go')
-rw-r--r-- | vendor/golang.org/x/sys/unix/openbsd_pledge.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/vendor/golang.org/x/sys/unix/openbsd_pledge.go b/vendor/golang.org/x/sys/unix/openbsd_pledge.go new file mode 100644 index 0000000..db4f72e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/openbsd_pledge.go @@ -0,0 +1,38 @@ +// Copyright 2016 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 openbsd +// +build 386 amd64 arm + +package unix + +import ( + "syscall" + "unsafe" +) + +const ( + SYS_PLEDGE = 108 +) + +// Pledge implements the pledge syscall. For more information see pledge(2). +func Pledge(promises string, paths []string) error { + promisesPtr, err := syscall.BytePtrFromString(promises) + if err != nil { + return err + } + promisesUnsafe, pathsUnsafe := unsafe.Pointer(promisesPtr), unsafe.Pointer(nil) + if paths != nil { + var pathsPtr []*byte + if pathsPtr, err = syscall.SlicePtrFromStrings(paths); err != nil { + return err + } + pathsUnsafe = unsafe.Pointer(&pathsPtr[0]) + } + _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(promisesUnsafe), uintptr(pathsUnsafe), 0) + if e != 0 { + return e + } + return nil +} |