mirror of
https://github.com/golang/sys.git
synced 2026-02-09 04:06:04 +03:00
Change-Id: Ibb1426ebd18d27ee9f144af0fd8c94b08c06f7d7 Reviewed-on: https://go-review.googlesource.com/47290 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
28 lines
614 B
Go
28 lines
614 B
Go
// Copyright 2017 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.
|
|
|
|
package unix
|
|
|
|
import (
|
|
"os"
|
|
"syscall"
|
|
)
|
|
|
|
// FIXME: unexported function from os
|
|
// syscallMode returns the syscall-specific mode bits from Go's portable mode bits.
|
|
func syscallMode(i os.FileMode) (o uint32) {
|
|
o |= uint32(i.Perm())
|
|
if i&os.ModeSetuid != 0 {
|
|
o |= syscall.S_ISUID
|
|
}
|
|
if i&os.ModeSetgid != 0 {
|
|
o |= syscall.S_ISGID
|
|
}
|
|
if i&os.ModeSticky != 0 {
|
|
o |= syscall.S_ISVTX
|
|
}
|
|
// No mapping for Go's ModeTemporary (plan9 only).
|
|
return
|
|
}
|