// 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 | |
} |