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