org.catacombae.jfuse
Interface FUSE26Operations

All Superinterfaces:
FileModeFlags, FileStatusFlags, FUSEErrorValues, SystemConstants
All Known Subinterfaces:
FUSE26FileSystem, FUSEFileSystem
All Known Implementing Classes:
FUSE26FileSystemAdapter, FUSEFileSystemAdapter, HelloFS, MacFUSE20FileSystemAdapter, MacFUSEFileSystemAdapter, TestFS

public interface FUSE26Operations
extends SystemConstants

All methods that return an int must return a negated int value from FUSEErrorValues when an error condition occurs.

Author:
Erik Larsson

Field Summary
 
Fields inherited from interface org.catacombae.jfuse.types.system.FileStatusFlags
O_ACCMODE, O_APPEND, O_ASYNC, O_CREAT, O_DIRECTORY, O_EVTONLY, O_EXCL, O_EXLOCK, O_NOCTTY, O_NOFOLLOW, O_NONBLOCK, O_RDONLY, O_RDWR, O_SHLOCK, O_SYMLINK, O_SYNC, O_TRUNC, O_WRONLY
 
Fields inherited from interface org.catacombae.jfuse.types.system.FileModeFlags
S_IFBLK, S_IFCHR, S_IFDIR, S_IFIFO, S_IFLNK, S_IFMT, S_IFREG, S_IFSOCK, S_IRGRP, S_IROTH, S_IRUSR, S_IRWXG, S_IRWXO, S_IRWXU, S_ISGID, S_ISUID, S_ISVTX, S_IWGRP, S_IWOTH, S_IWUSR, S_IXGRP, S_IXOTH, S_IXUSR
 
Fields inherited from interface org.catacombae.jfuse.FUSEErrorValues
E2BIG, EACCES, EADDRINUSE, EADDRNOTAVAIL, EAFNOSUPPORT, EAGAIN, EALREADY, EBADF, EBADMSG, EBUSY, ECANCELED, ECHILD, ECONNABORTED, ECONNREFUSED, ECONNRESET, EDEADLK, EDESTADDRREQ, EDOM, EDQUOT, EEXIST, EFAULT, EFBIG, EHOSTDOWN, EHOSTUNREACH, EIDRM, EILSEQ, EINPROGRESS, EINTR, EINVAL, EIO, EISCONN, EISDIR, ELOOP, EMFILE, EMLINK, EMSGSIZE, EMULTIHOP, ENAMETOOLONG, ENETDOWN, ENETRESET, ENETUNREACH, ENFILE, ENOBUFS, ENODEV, ENOENT, ENOEXEC, ENOLCK, ENOLINK, ENOMEM, ENOMSG, ENOPROTOOPT, ENOSPC, ENOSYS, ENOTBLK, ENOTCONN, ENOTDIR, ENOTEMPTY, ENOTSOCK, ENOTSUP, ENOTTY, ENXIO, EOPNOTSUPP, EOVERFLOW, EPERM, EPFNOSUPPORT, EPIPE, EPROTO, EPROTONOSUPPORT, EPROTOTYPE, ERANGE, EREMOTE, EROFS, ESHUTDOWN, ESOCKTNOSUPPORT, ESPIPE, ESRCH, ESTALE, ETIMEDOUT, ETOOMANYREFS, ETXTBSY, EUSERS, EWOULDBLOCK, EXDEV
 
Method Summary
 int access(ByteBuffer path, int mode)
           Check file access permissions.
 int bmap(ByteBuffer path, long blocksize, LongRef idx)
           Map block index within file to block index within device.
 int chmod(ByteBuffer path, short newMode)
           Change the permission bits of a file.
 int chown(ByteBuffer path, long userId, long groupId)
           Change the owner and group of a file
 int create(ByteBuffer path, short mode, FUSEFileInfo fi)
           Create and open a file.
 void destroy(Object o)
           Clean up filesystem.
 int fgetattr(ByteBuffer path, Stat stat, FUSEFileInfo fi)
           Get attributes from an open file.
 int flush(ByteBuffer path, FUSEFileInfo fi)
           Possibly flush cached data.
 int fsync(ByteBuffer path, boolean datasync, FUSEFileInfo fi)
           Synchronize file contents.
 int fsyncdir(ByteBuffer path, boolean datasync, FUSEFileInfo fi)
           Synchronize directory contents.
 int ftruncate(ByteBuffer path, long length, FUSEFileInfo fi)
           Change the size of an open file.
 int getattr(ByteBuffer path, Stat stat)
           Get file attributes.
 int getdir(ByteBuffer path, FUSEDirFil filler)
          Deprecated.  
 int getxattr_BSD(ByteBuffer path, ByteBuffer name, ByteBuffer value, int position)
           Get extended attributes.
 int getxattr(ByteBuffer path, ByteBuffer name, ByteBuffer value)
           Get extended attributes.
 Object init(FUSEConnInfo conn)
           Initialize filesystem.
 int link(ByteBuffer sourcePath, ByteBuffer destPath)
           Create a hard link to a file.
 int listxattr(ByteBuffer path, ByteBuffer namebuf)
           List extended attributes.
 int lock(ByteBuffer path, FUSEFileInfo fi, int cmd, Flock flock)
           Perform POSIX file locking operation.
 int mkdir(ByteBuffer path, short createMode)
           Create a directory.
 int mknod(ByteBuffer path, short fileMode, long deviceNumber)
           Create a file node.
 int open(ByteBuffer path, FUSEFileInfo fi)
           File open operation.
 int opendir(ByteBuffer path, FUSEFileInfo fi)
           Open directory.
 int read(ByteBuffer path, ByteBuffer dest, long off, FUSEFileInfo fi)
           Read data from an open file.
 int readdir(ByteBuffer path, FUSEFillDir filler, long offset, FUSEFileInfo fi)
           Read directory.
 int readlink(ByteBuffer path, ByteBuffer buffer)
           Read the target of a symbolic link.
 int release(ByteBuffer path, FUSEFileInfo fi)
           Release an open file.
 int releasedir(ByteBuffer path, FUSEFileInfo fi)
           Release directory.
 int removexattr(ByteBuffer path, ByteBuffer name)
           Remove extended attributes.
 int rename(ByteBuffer oldPath, ByteBuffer newPath)
           Rename a file.
 int rmdir(ByteBuffer path)
           Remove a directory.
 int setxattr_BSD(ByteBuffer path, ByteBuffer name, ByteBuffer value, int flags, int position)
           Set extended attributes.
 int setxattr(ByteBuffer path, ByteBuffer name, ByteBuffer value, int flags)
           Set extended attributes.
 int statfs(ByteBuffer path, StatVFS stat)
           Get file system statistics.
 int symlink(ByteBuffer sourcePath, ByteBuffer destPath)
           Create a symbolic link.
 int truncate(ByteBuffer path, long newSize)
           Change the size of a file.
 int unlink(ByteBuffer path)
           Remove a file.
 int utime(ByteBuffer path, Utimbuf time)
          Deprecated.  
 int utimens(ByteBuffer path, Timespec accessTime, Timespec modificationTime)
           Change the access and modification times of a file with nanosecond resolution.
 int write(ByteBuffer path, ByteBuffer src, long off, FUSEFileInfo fi)
           Write data to an open file.
 

Method Detail

getattr

int getattr(ByteBuffer path,
            Stat stat)
 Get file attributes.

 Similar to stat().  The 'st_dev' and 'st_blksize' fields are
 ignored.  The 'st_ino' field is ignored except if the 'use_ino'
 mount option is given.
 

Parameters:
path - (const char*)
stat - (struct stat*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

readlink

int readlink(ByteBuffer path,
             ByteBuffer buffer)
 Read the target of a symbolic link.

 The buffer should be filled with a null terminated string.  The
 buffer size argument includes the space for the terminating
 null character.  If the linkname is too long to fit in the
 buffer, it should be truncated.  The return value should be 0
 for success.
 
In jFUSE the buffer size argument has already been parsed when this method gets the buffer. The byte array passed to readlink has a size equal to the size of the native buffer.

Parameters:
path - (const char*)
buffer - (char*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

getdir

int getdir(ByteBuffer path,
           FUSEDirFil filler)
Deprecated. 

 Deprecated, use readdir() instead.
 

Parameters:
path - (const char*)
filler - (fuse_dirfil_t)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

mknod

int mknod(ByteBuffer path,
          short fileMode,
          long deviceNumber)
 Create a file node.

 This is called for creation of all non-directory, non-symlink
 nodes.  If the filesystem defines a create() method, then for
 regular files that will be called instead.
 

Parameters:
path - (const char*)
fileMode - (mode_t)
deviceNumber - (dev_t)
Returns:
0 if successful, an inverted error value from FUSEErrorValues otherwise.

mkdir

int mkdir(ByteBuffer path,
          short createMode)
 Create a directory.
 

Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
createMode - (mode_t)
Returns:
0 if successful, an inverted error value from FUSEErrorValues otherwise.

unlink

int unlink(ByteBuffer path)
 Remove a file.
 

Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
Returns:
0 if successful, an inverted error value from FUSEErrorValues otherwise.

rmdir

int rmdir(ByteBuffer path)
 Remove a directory.
 

Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
Returns:
0 if successful, an inverted error value from FUSEErrorValues otherwise.

symlink

int symlink(ByteBuffer sourcePath,
            ByteBuffer destPath)
 Create a symbolic link.
 

Parameters:
sourcePath - (const char*)
destPath - (const char*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

rename

int rename(ByteBuffer oldPath,
           ByteBuffer newPath)
 Rename a file.
 

Parameters:
oldPath - (const char*)
newPath - (const char*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

link

int link(ByteBuffer sourcePath,
         ByteBuffer destPath)
 Create a hard link to a file.
 

Parameters:
sourcePath - (const char*)
destPath - (const char*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

chmod

int chmod(ByteBuffer path,
          short newMode)
 Change the permission bits of a file.
 

Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
newMode - (mode_t)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

chown

int chown(ByteBuffer path,
          long userId,
          long groupId)
 Change the owner and group of a file
 

Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
userId - (uid_t)
groupId - (uid_t)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

truncate

int truncate(ByteBuffer path,
             long newSize)
 Change the size of a file.
 

Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
newSize - (off_t)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

utime

int utime(ByteBuffer path,
          Utimbuf time)
Deprecated. 

 Change the access and/or modification times of a file.

 Deprecated, use utimens() instead.
 

Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
time - (struct utimbuf*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

open

int open(ByteBuffer path,
         FUSEFileInfo fi)
 File open operation.

 No creation, or truncation flags (O_CREAT, O_EXCL, O_TRUNC)
 will be passed to open().  Open should check if the operation
 is permitted for the given flags.  Optionally open may also
 return an arbitrary filehandle in the fuse_file_info structure,
 which will be passed to all file operations.

 Changed in version 2.2
 

Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

read

int read(ByteBuffer path,
         ByteBuffer dest,
         long off,
         FUSEFileInfo fi)
 Read data from an open file.

 Read should return exactly the number of bytes requested except
 on EOF or error, otherwise the rest of the data will be
 substituted with zeroes.  An exception to this is when the
 'direct_io' mount option is specified, in which case the return
 value of the read system call will reflect the return value of
 this operation.

 Changed in version 2.2
 

Parameters:
path - (const char*) a path to the file to read from.
dest - (char*) the destination buffer.
off - (off_t) offset in file to start reading.
fi - (struct fuse_file_info*) file info.
Returns:
the number of bytes read (a positive number) if the operation completed successfully, or a negated value from FUSEErrorValues if an error occurred.
Typical error return values for read:

write

int write(ByteBuffer path,
          ByteBuffer src,
          long off,
          FUSEFileInfo fi)
 Write data to an open file.

 Write should return exactly the number of bytes requested
 except on error.  An exception to this is when the 'direct_io'
 mount option is specified (see read operation).

 Changed in version 2.2
 

Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
src - (const char*) the data to write.
off - (off_t) offset in file where data should be written.
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

statfs

int statfs(ByteBuffer path,
           StatVFS stat)
 Get file system statistics.

 The 'f_frsize', 'f_favail', 'f_fsid' and 'f_flag' fields are ignored

 Replaced 'struct statfs' parameter with 'struct statvfs' in
 version 2.5
 

Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
stat - (struct statvfs*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

flush

int flush(ByteBuffer path,
          FUSEFileInfo fi)
 Possibly flush cached data.

 BIG NOTE: This is not equivalent to fsync().  It's not a
 request to sync dirty data.

 Flush is called on each close() of a file descriptor.  So if a
 filesystem wants to return write errors in close() and the file
 has cached dirty data, this is a good place to write back data
 and return any errors.  Since many applications ignore close()
 errors this is not always useful.

 NOTE: The flush() method may be called more than once for each
 open().  This happens if more than one file descriptor refers
 to an opened file due to dup(), dup2() or fork() calls.  It is
 not possible to determine if a flush is final, so each flush
 should be treated equally.  Multiple write-flush sequences are
 relatively rare, so this shouldn't be a problem.

 Filesystems shouldn't assume that flush will always be called
 after some writes, or that if will be called at all.

 Changed in version 2.2
 

Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

release

int release(ByteBuffer path,
            FUSEFileInfo fi)
 Release an open file.

 Release is called when there are no more references to an open
 file: all file descriptors are closed and all memory mappings
 are unmapped.

 For every open() call there will be exactly one release() call
 with the same flags and file descriptor.  It is possible to
 have a file opened more than once, in which case only the last
 release will mean, that no more reads/writes will happen on the
 file.  The return value of release is ignored.

 Changed in version 2.2
 

Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise. (ignored)

fsync

int fsync(ByteBuffer path,
          boolean datasync,
          FUSEFileInfo fi)
 Synchronize file contents.

 If the datasync parameter is non-zero, then only the user data
 should be flushed, not the meta data.

 Changed in version 2.2
 

Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
datasync - (int) set to true if only the user data should be flushed, and not the meta-data.
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

setxattr_BSD

int setxattr_BSD(ByteBuffer path,
                 ByteBuffer name,
                 ByteBuffer value,
                 int flags,
                 int position)
 Set extended attributes.
 
This is the FreeBSD version of the callback. If you want your application to respond properly to the setxattr call on all platforms, you need to implement both setxattr and setxattr_BSD.

Parameters:
path - (const char*)
name - (const char*)
value - (const char*)
flags - (int)
position - (uint32_t)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

setxattr

int setxattr(ByteBuffer path,
             ByteBuffer name,
             ByteBuffer value,
             int flags)
 Set extended attributes.
 
This is the non-BSD version of the callback. If you want your application to respond properly to the setxattr call on all platforms, you need to implement both setxattr and setxattr_BSD.

Parameters:
path - (const char*)
name - (const char*)
value - (const char*)
flags - (int)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

getxattr_BSD

int getxattr_BSD(ByteBuffer path,
                 ByteBuffer name,
                 ByteBuffer value,
                 int position)
 Get extended attributes.
 
This is the FreeBSD version of the callback. If you want your application to respond properly to the getxattr call on all platforms, you need to implement both getxattr and getxattr_BSD.

Parameters:
path - (const char*)
name - (const char*)
value - (char*) (out)
position - (uint32_t)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

getxattr

int getxattr(ByteBuffer path,
             ByteBuffer name,
             ByteBuffer value)
 Get extended attributes.
 
This is the non-BSD version of the callback. If you want your application to respond properly to the getxattr call on all platforms, you need to implement both getxattr and getxattr_BSD.

Parameters:
path - (const char*)
name - (const char*)
value - (char*) (out)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

listxattr

int listxattr(ByteBuffer path,
              ByteBuffer namebuf)
 List extended attributes.
 

Parameters:
path - (const char*)
namebuf - (char*) the buffer where we store the result.
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

removexattr

int removexattr(ByteBuffer path,
                ByteBuffer name)
 Remove extended attributes.
 

Parameters:
path - (const char*)
name - (const char*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

opendir

int opendir(ByteBuffer path,
            FUSEFileInfo fi)
 Open directory.

 This method should check if the open operation is permitted for
 this  directory

 Introduced in version 2.3
 

Parameters:
path - (const char*)
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

readdir

int readdir(ByteBuffer path,
            FUSEFillDir filler,
            long offset,
            FUSEFileInfo fi)
 Read directory.

 This supersedes the old getdir() interface.  New applications
 should use this.

 The filesystem may choose between two modes of operation:

 1) The readdir implementation ignores the offset parameter, and
 passes zero to the filler function's offset.  The filler
 function will not return '1' (unless an error happens), so the
 whole directory is read in a single readdir operation.  This
 works just like the old getdir() method.

 2) The readdir implementation keeps track of the offsets of the
 directory entries.  It uses the offset parameter and always
 passes non-zero offset to the filler function.  When the buffer
 is full (or an error happens) the filler function will return
 '1'.

 Introduced in version 2.3
 

Parameters:
path - (const char*)
filler - (fuse_fill_dir_t)
offset - (off_t)
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

releasedir

int releasedir(ByteBuffer path,
               FUSEFileInfo fi)
 Release directory.

 Introduced in version 2.3
 

Parameters:
path - (const char*)
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

fsyncdir

int fsyncdir(ByteBuffer path,
             boolean datasync,
             FUSEFileInfo fi)
 Synchronize directory contents.

 If the datasync parameter is non-zero, then only the user data
 should be flushed, not the meta data

 Introduced in version 2.3
 

Parameters:
path - (const char*)
datasync - (int)
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

init

Object init(FUSEConnInfo conn)
 Initialize filesystem.

 The return value will passed in the private_data field of
 fuse_context to all file operations and as a parameter to the
 destroy() method.

 Introduced in version 2.3
 Changed in version 2.6
 

Parameters:
conn - (struct fuse_conn_info*)
Returns:
(optional) a return value that will be passed in the private_data field of fuse_context to all file operations and as a parameter to the destroy() method.

destroy

void destroy(Object o)
 Clean up filesystem.

 Called on filesystem exit.

 Introduced in version 2.3
 


access

int access(ByteBuffer path,
           int mode)
 Check file access permissions.

 This will be called for the access() system call.  If the
 'default_permissions' mount option is given, this method is not
 called.

 This method is not called under Linux kernel versions 2.4.x

 Introduced in version 2.5
 

Parameters:
path - (const char*)
mode - (int)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

create

int create(ByteBuffer path,
           short mode,
           FUSEFileInfo fi)
 Create and open a file.

 If the file does not exist, first create it with the specified
 mode, and then open it.

 If this method is not implemented or under Linux kernel
 versions earlier than 2.6.15, the mknod() and open() methods
 will be called instead.

 Introduced in version 2.5
 

Parameters:
path - (const char*) path to the newly created file.
mode - (mode_t) the mode flags for the created file.
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

ftruncate

int ftruncate(ByteBuffer path,
              long length,
              FUSEFileInfo fi)
 Change the size of an open file.

 This method is called instead of the truncate() method if the
 truncation was invoked from an ftruncate() system call.

 If this method is not implemented or under Linux kernel
 versions earlier than 2.6.15, the truncate() method will be
 called instead.

 Introduced in version 2.5
 

Parameters:
path - (const char*)
length - (off_t)
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

fgetattr

int fgetattr(ByteBuffer path,
             Stat stat,
             FUSEFileInfo fi)
 Get attributes from an open file.

 This method is called instead of the getattr() method if the
 file information is available.

 Currently this is only called after the create() method if that
 is implemented (see above).  Later it may be called for
 invocations of fstat() too.

 Introduced in version 2.5
 

Parameters:
path - (const char*)
stat - (struct stat*)
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

lock

int lock(ByteBuffer path,
         FUSEFileInfo fi,
         int cmd,
         Flock flock)
 Perform POSIX file locking operation.

 The cmd argument will be either F_GETLK, F_SETLK or F_SETLKW.

 For the meaning of fields in 'struct flock' see the man page
 for fcntl(2).  The l_whence field will always be set to
 SEEK_SET.

 For checking lock ownership, the 'fuse_file_info->owner'
 argument must be used.

 For F_GETLK operation, the library will first check currently
 held locks, and if a conflicting lock is found it will return
 information without calling this method.  This ensures, that
 for local locks the l_pid field is correctly filled in.  The
 results may not be accurate in case of race conditions and in
 the presence of hard links, but it's unlikly that an
 application would rely on accurate GETLK results in these
 cases.  If a conflicting lock is not found, this method will be
 called, and the filesystem may fill out l_pid by a meaningful
 value, or it may leave this field zero.

 For F_SETLK and F_SETLKW the l_pid field will be set to the pid
 of the process performing the locking operation.

 Note: if this method is not implemented, the kernel will still
 allow file locking to work locally.  Hence it is only
 interesting for network filesystems and similar.

 Introduced in version 2.6
 

Parameters:
path - (const char*)
fi - (struct fuse_file_info*)
cmd - (int)
flock - (struct flock*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

utimens

int utimens(ByteBuffer path,
            Timespec accessTime,
            Timespec modificationTime)
 Change the access and modification times of a file with
 nanosecond resolution.

 Introduced in version 2.6
 

Parameters:
path - (const char*)
accessTime - (const struct timespec)
modificationTime - (const struct timespec)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

bmap

int bmap(ByteBuffer path,
         long blocksize,
         LongRef idx)
 Map block index within file to block index within device.

 Note: This makes sense only for block device backed filesystems
 mounted with the 'blkdev' option

 Introduced in version 2.6
 

Parameters:
path - (const char*)
blocksize - (size_t)
idx - (uint64_t*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.