Fuse test / go-test (push) Successful in 22s
- Update the FileSystemHost to remove functions SetCapCaseInsensitive, SetCapReaddirPlus, SetCapDeleteAccess, SetCapOpenTrunc, SetDirectIO, SetUseIno and expose CapCaseInsensitive, CapReaddirPlus, CapDeleteAccess, CapOpenTrunc, DirectIO, UseIno - Added `FileSystemLseek` interface to support Lseek operation in FUSE. - Implemented Lseek functionality in the host layer. - Refactored error handling in `ErrorToStatus` to improve clarity and coverage. - Enhanced `BasicStat` and `AppendDirEntry` functions to populate additional fields in the FUSE stat structure. - Created utility functions for managing FUSE flags and permissions. - fs: - Remove `Fd() uintptr` from base of File interface - Now fs use internal File Descriptor - Removed `FS() F` from `FileSystemMount[T, FileSystem[T]]` - Unix fs: - Merge `_fuse` to `_FileSystemMount` and rename to FuseFs - Add new `FileSystemStatFst` to use direct fuse Statfs struct - Utimens don't return -ENOSYS if FileSystemUtimens not implemented - Add `Lseek` function Signed-off-by: Matheus Sampaio Queiroga <srherobrine20@gmail.com>
31 lines
1.3 KiB
Go
31 lines
1.3 KiB
Go
// Package fuse allows the creation of user mode file systems in Go.
|
|
//
|
|
// This packages supports both FUSE2 and FUSE3 on Linux and FreeBSD FUSE2 MacOS, NetBSD and OpenBSD.
|
|
// By default, cgofuse will link with FUSE2. To link with FUSE3, simply add '-tags=fuse3'
|
|
// to your 'go build' flags.
|
|
//
|
|
// 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 note on thread-safety: In general FUSE file systems are expected to protect their
|
|
// own data structures. Many FUSE implementations provide a -s command line option that
|
|
// when used, it instructs the FUSE implementation to serialize requests. This option
|
|
// can be passed to the FileSystemHost Mount() method, when the file system is mounted.
|
|
package fuse
|
|
|
|
type FuseDriver uint8 // Fuse driver used in build stage
|
|
|
|
const (
|
|
None FuseDriver = iota
|
|
Winfsp
|
|
Fuse2
|
|
Fuse3
|
|
)
|