github.com/stackdocker/rkt@v0.10.1-0.20151109095037-1aa827478248/Godeps/_workspace/src/golang.org/x/sys/unix/flock.go (about) 1 // +build linux darwin freebsd openbsd netbsd dragonfly 2 3 // Copyright 2014 The Go Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file. 6 7 // +build darwin dragonfly freebsd linux netbsd openbsd 8 9 package unix 10 11 import "unsafe" 12 13 // fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux 14 // systems by flock_linux_32bit.go to be SYS_FCNTL64. 15 var fcntl64Syscall uintptr = SYS_FCNTL 16 17 // FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. 18 func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { 19 _, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk))) 20 if errno == 0 { 21 return nil 22 } 23 return errno 24 }