vendor: update cgofuse (because dep wanted to!)

This commit is contained in:
Nick Craig-Wood
2017-05-26 10:15:14 +01:00
parent 0f07b63fd1
commit 1ec0327ed7
6 changed files with 22 additions and 148 deletions
+15 -30
View File
@@ -12,15 +12,10 @@
// Package fuse allows the creation of user mode file systems in Go.
//
// A user mode file system is a user mode process that receives file system operations
// from the OS FUSE layer and satisfies them in user mode. A user mode file system
// implements the interface FileSystemInterface either directly or by embedding a
// FileSystemBase struct which provides a default (empty) implementation of all methods
// in FileSystemInterface.
//
// In order to expose the user mode file system to the OS, the file system must be hosted
// (mounted) by a FileSystemHost. The FileSystemHost Mount() method is used for this
// purpose.
// A user mode file system must implement the methods in FileSystemInterface
// and be hosted (mounted) by a FileSystemHost.
// Alternatively a user mode file system can use the FileSystemBase struct which
// provides default implementations of the methods in FileSystemInterface.
package fuse
/*
@@ -402,28 +397,18 @@ type Lock_t struct {
}
*/
// FileSystemInterface is the interface that a user mode interface must implement.
//
// The file system will receive an Init() call when the file system is created;
// the Init() call will happen prior to receiving any other file system calls.
// Note that there are no guarantees on the exact timing of when Init() is called.
// For example, it cannot be assumed that the file system is mounted at the time
// the Init() call is received.
//
// The file system will receive a Destroy() call when the file system is destroyed;
// the Destroy() call will always be the last call to be received by the file system.
// Note that depending on how the file system is terminated the file system may not
// receive the Destroy() call. For example, it will not receive the Destroy() call
// if the file system process is forcibly killed.
//
// Except for Init() and Destroy() all file system operations must return 0 on success
// or a FUSE error on failure. To return an error return the NEGATIVE value of a
// particular error. For example, to report "file not found" return -fuse.ENOENT.
// FileSystemInterface is the interface that all file systems must implement.
// The file system will receive an Init() call when it is mounted and a Destroy()
// call when it is unmounted (note that depending on how the file system is
// terminated the file system may not receive the Destroy() call). All other
// operations must return 0 on success or a FUSE error on failure. To return an
// error return the NEGATIVE value of a particular error. For example, to report
// "file not found" return -fuse.ENOENT.
type FileSystemInterface interface {
// Init is called when the file system is created.
// Init is called when the file system is mounted.
Init()
// Destroy is called when the file system is destroyed.
// Destroy is called when the file system is unmounted.
Destroy()
// Statfs gets file system statistics.
@@ -541,12 +526,12 @@ var _ error = (*Error)(nil)
type FileSystemBase struct {
}
// Init is called when the file system is created.
// Init is called when the file system is mounted.
// The FileSystemBase implementation does nothing.
func (*FileSystemBase) Init() {
}
// Destroy is called when the file system is destroyed.
// Destroy is called when the file system is unmounted.
// The FileSystemBase implementation does nothing.
func (*FileSystemBase) Destroy() {
}
+5 -6
View File
@@ -15,13 +15,9 @@ package fuse
/*
#cgo darwin CFLAGS: -DFUSE_USE_VERSION=28 -D_FILE_OFFSET_BITS=64 -I/usr/local/include/osxfuse/fuse
#cgo darwin LDFLAGS: -L/usr/local/lib -losxfuse
#cgo linux CFLAGS: -DFUSE_USE_VERSION=28 -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse
#cgo linux LDFLAGS: -lfuse
// Use `set CPATH=C:\Program Files (x86)\WinFsp\inc\fuse` on Windows.
// The flag `I/usr/local/include/winfsp` only works on xgo and docker.
#cgo windows CFLAGS: -D_WIN32_WINNT=0x0600 -DFUSE_USE_VERSION=28 -I/usr/local/include/winfsp
#cgo windows CFLAGS: -D_WIN32_WINNT=0x0600 -DFUSE_USE_VERSION=28
#if !(defined(__APPLE__) || defined(__linux__) || defined(_WIN32))
#error platform not supported
@@ -911,7 +907,7 @@ func hostInit(conn0 *C.struct_fuse_conn_info) (user_data unsafe.Pointer) {
C.bool(host.capCaseInsensitive),
C.bool(host.capReaddirPlus))
if nil != host.sigc {
signal.Notify(host.sigc, syscall.SIGINT, syscall.SIGTERM)
signal.Notify(host.sigc, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM)
}
host.fsop.Init()
return
@@ -1027,6 +1023,9 @@ func (host *FileSystemHost) SetCapReaddirPlus(value bool) {
// It is allowed for the mountpoint to be the empty string ("") in which case opts is assumed
// to contain the mountpoint. It is also allowed for opts to be nil, although in this case the
// mountpoint must be non-empty.
//
// The file system is considered mounted only after its Init() method has been called
// and before its Destroy() method has been called.
func (host *FileSystemHost) Mount(mountpoint string, opts []string) bool {
if 0 == C.hostInitializeFuse() {
panic("cgofuse: cannot find winfsp")