Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
go-fuse
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Levin Zimmermann
go-fuse
Commits
05abe73d
Commit
05abe73d
authored
Apr 30, 2011
by
Han-Wen Nienhuys
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Stop exporting operation enum.
parent
e967133e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
178 additions
and
177 deletions
+178
-177
fuse/fuse.go
fuse/fuse.go
+1
-1
fuse/opcode.go
fuse/opcode.go
+175
-130
fuse/types.go
fuse/types.go
+2
-46
No files found.
fuse/fuse.go
View file @
05abe73d
...
...
@@ -288,7 +288,7 @@ func (me *MountState) handle(req *request) {
// If we try to write OK, nil, we will get
// error: writer: Writev [[16 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0]]
// failed, err: writev: no such file or directory
if
req
.
inHeader
.
opcode
!=
FUSE
_FORGET
{
if
req
.
inHeader
.
opcode
!=
_OP
_FORGET
{
serialize
(
req
,
handler
,
me
.
Debug
)
me
.
Write
(
req
)
}
...
...
fuse/opcode.go
View file @
05abe73d
...
...
@@ -9,6 +9,51 @@ import (
var
_
=
log
.
Printf
type
opcode
int
const
(
_OP_LOOKUP
=
opcode
(
1
)
_OP_FORGET
=
opcode
(
2
)
_OP_GETATTR
=
opcode
(
3
)
_OP_SETATTR
=
opcode
(
4
)
_OP_READLINK
=
opcode
(
5
)
_OP_SYMLINK
=
opcode
(
6
)
_OP_MKNOD
=
opcode
(
8
)
_OP_MKDIR
=
opcode
(
9
)
_OP_UNLINK
=
opcode
(
10
)
_OP_RMDIR
=
opcode
(
11
)
_OP_RENAME
=
opcode
(
12
)
_OP_LINK
=
opcode
(
13
)
_OP_OPEN
=
opcode
(
14
)
_OP_READ
=
opcode
(
15
)
_OP_WRITE
=
opcode
(
16
)
_OP_STATFS
=
opcode
(
17
)
_OP_RELEASE
=
opcode
(
18
)
_OP_FSYNC
=
opcode
(
20
)
_OP_SETXATTR
=
opcode
(
21
)
_OP_GETXATTR
=
opcode
(
22
)
_OP_LISTXATTR
=
opcode
(
23
)
_OP_REMOVEXATTR
=
opcode
(
24
)
_OP_FLUSH
=
opcode
(
25
)
_OP_INIT
=
opcode
(
26
)
_OP_OPENDIR
=
opcode
(
27
)
_OP_READDIR
=
opcode
(
28
)
_OP_RELEASEDIR
=
opcode
(
29
)
_OP_FSYNCDIR
=
opcode
(
30
)
_OP_GETLK
=
opcode
(
31
)
_OP_SETLK
=
opcode
(
32
)
_OP_SETLKW
=
opcode
(
33
)
_OP_ACCESS
=
opcode
(
34
)
_OP_CREATE
=
opcode
(
35
)
_OP_INTERRUPT
=
opcode
(
36
)
_OP_BMAP
=
opcode
(
37
)
_OP_DESTROY
=
opcode
(
38
)
_OP_IOCTL
=
opcode
(
39
)
_OP_POLL
=
opcode
(
40
)
OPCODE_COUNT
=
opcode
(
41
)
)
func
replyString
(
op
opcode
,
ptr
unsafe
.
Pointer
)
string
{
h
:=
getHandler
(
op
)
var
val
interface
{}
...
...
@@ -120,7 +165,7 @@ func doWrite(state *MountState, req *request) {
func
doGetXAttr
(
state
*
MountState
,
req
*
request
)
{
input
:=
(
*
GetXAttrIn
)(
req
.
inData
)
var
data
[]
byte
if
req
.
inHeader
.
opcode
==
FUSE
_GETXATTR
{
if
req
.
inHeader
.
opcode
==
_OP
_GETXATTR
{
data
,
req
.
status
=
state
.
fileSystem
.
GetXAttr
(
req
.
inHeader
,
req
.
filename
())
}
else
{
data
,
req
.
status
=
state
.
fileSystem
.
ListXAttr
(
req
.
inHeader
)
...
...
@@ -290,157 +335,157 @@ func init() {
operationHandlers
[
i
]
=
&
operationHandler
{
Name
:
"UNKNOWN"
}
}
for
op
,
sz
:=
range
map
[
int
]
int
{
FUSE
_FORGET
:
unsafe
.
Sizeof
(
ForgetIn
{}),
FUSE
_GETATTR
:
unsafe
.
Sizeof
(
GetAttrIn
{}),
FUSE
_SETATTR
:
unsafe
.
Sizeof
(
SetAttrIn
{}),
FUSE
_MKNOD
:
unsafe
.
Sizeof
(
MknodIn
{}),
FUSE
_MKDIR
:
unsafe
.
Sizeof
(
MkdirIn
{}),
FUSE
_RENAME
:
unsafe
.
Sizeof
(
RenameIn
{}),
FUSE
_LINK
:
unsafe
.
Sizeof
(
LinkIn
{}),
FUSE
_OPEN
:
unsafe
.
Sizeof
(
OpenIn
{}),
FUSE
_READ
:
unsafe
.
Sizeof
(
ReadIn
{}),
FUSE
_WRITE
:
unsafe
.
Sizeof
(
WriteIn
{}),
FUSE
_RELEASE
:
unsafe
.
Sizeof
(
ReleaseIn
{}),
FUSE
_FSYNC
:
unsafe
.
Sizeof
(
FsyncIn
{}),
FUSE
_SETXATTR
:
unsafe
.
Sizeof
(
SetXAttrIn
{}),
FUSE
_GETXATTR
:
unsafe
.
Sizeof
(
GetXAttrIn
{}),
FUSE
_LISTXATTR
:
unsafe
.
Sizeof
(
GetXAttrIn
{}),
FUSE
_FLUSH
:
unsafe
.
Sizeof
(
FlushIn
{}),
FUSE
_INIT
:
unsafe
.
Sizeof
(
InitIn
{}),
FUSE
_OPENDIR
:
unsafe
.
Sizeof
(
OpenIn
{}),
FUSE
_READDIR
:
unsafe
.
Sizeof
(
ReadIn
{}),
FUSE
_RELEASEDIR
:
unsafe
.
Sizeof
(
ReleaseIn
{}),
FUSE
_FSYNCDIR
:
unsafe
.
Sizeof
(
FsyncIn
{}),
FUSE
_ACCESS
:
unsafe
.
Sizeof
(
AccessIn
{}),
FUSE
_CREATE
:
unsafe
.
Sizeof
(
CreateIn
{}),
FUSE
_INTERRUPT
:
unsafe
.
Sizeof
(
InterruptIn
{}),
FUSE
_BMAP
:
unsafe
.
Sizeof
(
BmapIn
{}),
FUSE
_IOCTL
:
unsafe
.
Sizeof
(
IoctlIn
{}),
FUSE
_POLL
:
unsafe
.
Sizeof
(
PollIn
{}),
for
op
,
sz
:=
range
map
[
opcode
]
int
{
_OP
_FORGET
:
unsafe
.
Sizeof
(
ForgetIn
{}),
_OP
_GETATTR
:
unsafe
.
Sizeof
(
GetAttrIn
{}),
_OP
_SETATTR
:
unsafe
.
Sizeof
(
SetAttrIn
{}),
_OP
_MKNOD
:
unsafe
.
Sizeof
(
MknodIn
{}),
_OP
_MKDIR
:
unsafe
.
Sizeof
(
MkdirIn
{}),
_OP
_RENAME
:
unsafe
.
Sizeof
(
RenameIn
{}),
_OP
_LINK
:
unsafe
.
Sizeof
(
LinkIn
{}),
_OP
_OPEN
:
unsafe
.
Sizeof
(
OpenIn
{}),
_OP
_READ
:
unsafe
.
Sizeof
(
ReadIn
{}),
_OP
_WRITE
:
unsafe
.
Sizeof
(
WriteIn
{}),
_OP
_RELEASE
:
unsafe
.
Sizeof
(
ReleaseIn
{}),
_OP
_FSYNC
:
unsafe
.
Sizeof
(
FsyncIn
{}),
_OP
_SETXATTR
:
unsafe
.
Sizeof
(
SetXAttrIn
{}),
_OP
_GETXATTR
:
unsafe
.
Sizeof
(
GetXAttrIn
{}),
_OP
_LISTXATTR
:
unsafe
.
Sizeof
(
GetXAttrIn
{}),
_OP
_FLUSH
:
unsafe
.
Sizeof
(
FlushIn
{}),
_OP
_INIT
:
unsafe
.
Sizeof
(
InitIn
{}),
_OP
_OPENDIR
:
unsafe
.
Sizeof
(
OpenIn
{}),
_OP
_READDIR
:
unsafe
.
Sizeof
(
ReadIn
{}),
_OP
_RELEASEDIR
:
unsafe
.
Sizeof
(
ReleaseIn
{}),
_OP
_FSYNCDIR
:
unsafe
.
Sizeof
(
FsyncIn
{}),
_OP
_ACCESS
:
unsafe
.
Sizeof
(
AccessIn
{}),
_OP
_CREATE
:
unsafe
.
Sizeof
(
CreateIn
{}),
_OP
_INTERRUPT
:
unsafe
.
Sizeof
(
InterruptIn
{}),
_OP
_BMAP
:
unsafe
.
Sizeof
(
BmapIn
{}),
_OP
_IOCTL
:
unsafe
.
Sizeof
(
IoctlIn
{}),
_OP
_POLL
:
unsafe
.
Sizeof
(
PollIn
{}),
}
{
operationHandlers
[
op
]
.
InputSize
=
sz
}
for
op
,
sz
:=
range
map
[
int
]
int
{
FUSE
_LOOKUP
:
unsafe
.
Sizeof
(
EntryOut
{}),
FUSE
_GETATTR
:
unsafe
.
Sizeof
(
AttrOut
{}),
FUSE
_SETATTR
:
unsafe
.
Sizeof
(
AttrOut
{}),
FUSE
_SYMLINK
:
unsafe
.
Sizeof
(
EntryOut
{}),
FUSE
_MKNOD
:
unsafe
.
Sizeof
(
EntryOut
{}),
FUSE
_MKDIR
:
unsafe
.
Sizeof
(
EntryOut
{}),
FUSE
_LINK
:
unsafe
.
Sizeof
(
EntryOut
{}),
FUSE
_OPEN
:
unsafe
.
Sizeof
(
OpenOut
{}),
FUSE
_WRITE
:
unsafe
.
Sizeof
(
WriteOut
{}),
FUSE
_STATFS
:
unsafe
.
Sizeof
(
StatfsOut
{}),
FUSE
_GETXATTR
:
unsafe
.
Sizeof
(
GetXAttrOut
{}),
FUSE
_LISTXATTR
:
unsafe
.
Sizeof
(
GetXAttrOut
{}),
FUSE
_INIT
:
unsafe
.
Sizeof
(
InitOut
{}),
FUSE
_OPENDIR
:
unsafe
.
Sizeof
(
OpenOut
{}),
FUSE
_CREATE
:
unsafe
.
Sizeof
(
CreateOut
{}),
FUSE
_BMAP
:
unsafe
.
Sizeof
(
BmapOut
{}),
FUSE
_IOCTL
:
unsafe
.
Sizeof
(
IoctlOut
{}),
FUSE
_POLL
:
unsafe
.
Sizeof
(
PollOut
{}),
for
op
,
sz
:=
range
map
[
opcode
]
int
{
_OP
_LOOKUP
:
unsafe
.
Sizeof
(
EntryOut
{}),
_OP
_GETATTR
:
unsafe
.
Sizeof
(
AttrOut
{}),
_OP
_SETATTR
:
unsafe
.
Sizeof
(
AttrOut
{}),
_OP
_SYMLINK
:
unsafe
.
Sizeof
(
EntryOut
{}),
_OP
_MKNOD
:
unsafe
.
Sizeof
(
EntryOut
{}),
_OP
_MKDIR
:
unsafe
.
Sizeof
(
EntryOut
{}),
_OP
_LINK
:
unsafe
.
Sizeof
(
EntryOut
{}),
_OP
_OPEN
:
unsafe
.
Sizeof
(
OpenOut
{}),
_OP
_WRITE
:
unsafe
.
Sizeof
(
WriteOut
{}),
_OP
_STATFS
:
unsafe
.
Sizeof
(
StatfsOut
{}),
_OP
_GETXATTR
:
unsafe
.
Sizeof
(
GetXAttrOut
{}),
_OP
_LISTXATTR
:
unsafe
.
Sizeof
(
GetXAttrOut
{}),
_OP
_INIT
:
unsafe
.
Sizeof
(
InitOut
{}),
_OP
_OPENDIR
:
unsafe
.
Sizeof
(
OpenOut
{}),
_OP
_CREATE
:
unsafe
.
Sizeof
(
CreateOut
{}),
_OP
_BMAP
:
unsafe
.
Sizeof
(
BmapOut
{}),
_OP
_IOCTL
:
unsafe
.
Sizeof
(
IoctlOut
{}),
_OP
_POLL
:
unsafe
.
Sizeof
(
PollOut
{}),
}
{
operationHandlers
[
op
]
.
OutputSize
=
sz
}
for
op
,
v
:=
range
map
[
int
]
string
{
FUSE_LOOKUP
:
"FUSE_
LOOKUP"
,
FUSE_FORGET
:
"FUSE_
FORGET"
,
FUSE_GETATTR
:
"FUSE_
GETATTR"
,
FUSE_SETATTR
:
"FUSE_
SETATTR"
,
FUSE_READLINK
:
"FUSE_
READLINK"
,
FUSE_SYMLINK
:
"FUSE_
SYMLINK"
,
FUSE_MKNOD
:
"FUSE_
MKNOD"
,
FUSE_MKDIR
:
"FUSE_
MKDIR"
,
FUSE_UNLINK
:
"FUSE_
UNLINK"
,
FUSE_RMDIR
:
"FUSE_
RMDIR"
,
FUSE_RENAME
:
"FUSE_
RENAME"
,
FUSE_LINK
:
"FUSE_
LINK"
,
FUSE_OPEN
:
"FUSE_
OPEN"
,
FUSE_READ
:
"FUSE_
READ"
,
FUSE_WRITE
:
"FUSE_
WRITE"
,
FUSE_STATFS
:
"FUSE_
STATFS"
,
FUSE_RELEASE
:
"FUSE_
RELEASE"
,
FUSE_FSYNC
:
"FUSE_
FSYNC"
,
FUSE_SETXATTR
:
"FUSE_
SETXATTR"
,
FUSE_GETXATTR
:
"FUSE_
GETXATTR"
,
FUSE_LISTXATTR
:
"FUSE_
LISTXATTR"
,
FUSE_REMOVEXATTR
:
"FUSE_
REMOVEXATTR"
,
FUSE_FLUSH
:
"FUSE_
FLUSH"
,
FUSE_INIT
:
"FUSE_
INIT"
,
FUSE_OPENDIR
:
"FUSE_
OPENDIR"
,
FUSE_READDIR
:
"FUSE_
READDIR"
,
FUSE_RELEASEDIR
:
"FUSE_
RELEASEDIR"
,
FUSE_FSYNCDIR
:
"FUSE_
FSYNCDIR"
,
FUSE_GETLK
:
"FUSE_
GETLK"
,
FUSE_SETLK
:
"FUSE_
SETLK"
,
FUSE_SETLKW
:
"FUSE_
SETLKW"
,
FUSE_ACCESS
:
"FUSE_
ACCESS"
,
FUSE_CREATE
:
"FUSE_
CREATE"
,
FUSE_INTERRUPT
:
"FUSE_
INTERRUPT"
,
FUSE_BMAP
:
"FUSE_
BMAP"
,
FUSE_DESTROY
:
"FUSE_
DESTROY"
,
FUSE_IOCTL
:
"FUSE_
IOCTL"
,
FUSE_POLL
:
"FUSE_
POLL"
}
{
for
op
,
v
:=
range
map
[
opcode
]
string
{
_OP_LOOKUP
:
"
LOOKUP"
,
_OP_FORGET
:
"
FORGET"
,
_OP_GETATTR
:
"
GETATTR"
,
_OP_SETATTR
:
"
SETATTR"
,
_OP_READLINK
:
"
READLINK"
,
_OP_SYMLINK
:
"
SYMLINK"
,
_OP_MKNOD
:
"
MKNOD"
,
_OP_MKDIR
:
"
MKDIR"
,
_OP_UNLINK
:
"
UNLINK"
,
_OP_RMDIR
:
"
RMDIR"
,
_OP_RENAME
:
"
RENAME"
,
_OP_LINK
:
"
LINK"
,
_OP_OPEN
:
"
OPEN"
,
_OP_READ
:
"
READ"
,
_OP_WRITE
:
"
WRITE"
,
_OP_STATFS
:
"
STATFS"
,
_OP_RELEASE
:
"
RELEASE"
,
_OP_FSYNC
:
"
FSYNC"
,
_OP_SETXATTR
:
"
SETXATTR"
,
_OP_GETXATTR
:
"
GETXATTR"
,
_OP_LISTXATTR
:
"
LISTXATTR"
,
_OP_REMOVEXATTR
:
"
REMOVEXATTR"
,
_OP_FLUSH
:
"
FLUSH"
,
_OP_INIT
:
"
INIT"
,
_OP_OPENDIR
:
"
OPENDIR"
,
_OP_READDIR
:
"
READDIR"
,
_OP_RELEASEDIR
:
"
RELEASEDIR"
,
_OP_FSYNCDIR
:
"
FSYNCDIR"
,
_OP_GETLK
:
"
GETLK"
,
_OP_SETLK
:
"
SETLK"
,
_OP_SETLKW
:
"
SETLKW"
,
_OP_ACCESS
:
"
ACCESS"
,
_OP_CREATE
:
"
CREATE"
,
_OP_INTERRUPT
:
"
INTERRUPT"
,
_OP_BMAP
:
"
BMAP"
,
_OP_DESTROY
:
"
DESTROY"
,
_OP_IOCTL
:
"
IOCTL"
,
_OP_POLL
:
"
POLL"
}
{
operationHandlers
[
op
]
.
Name
=
v
}
for
op
,
v
:=
range
map
[
opcode
]
operationFunc
{
FUSE
_OPEN
:
doOpen
,
FUSE
_READDIR
:
doReadDir
,
FUSE
_WRITE
:
doWrite
,
FUSE
_OPENDIR
:
doOpenDir
,
FUSE
_CREATE
:
doCreate
,
FUSE
_SETATTR
:
doSetattr
,
FUSE
_GETXATTR
:
doGetXAttr
,
FUSE
_LISTXATTR
:
doGetXAttr
,
FUSE
_GETATTR
:
doGetAttr
,
FUSE
_FORGET
:
doForget
,
FUSE
_READLINK
:
doReadlink
,
FUSE
_INIT
:
doInit
,
FUSE
_DESTROY
:
doDestroy
,
FUSE
_LOOKUP
:
doLookup
,
FUSE
_MKNOD
:
doMknod
,
FUSE
_MKDIR
:
doMkdir
,
FUSE
_UNLINK
:
doUnlink
,
FUSE
_RMDIR
:
doRmdir
,
FUSE
_LINK
:
doLink
,
FUSE
_READ
:
doRead
,
FUSE
_FLUSH
:
doFlush
,
FUSE
_RELEASE
:
doRelease
,
FUSE
_FSYNC
:
doFsync
,
FUSE
_RELEASEDIR
:
doReleaseDir
,
FUSE
_FSYNCDIR
:
doFsyncDir
,
FUSE
_SETXATTR
:
doSetXAttr
,
FUSE
_REMOVEXATTR
:
doRemoveXAttr
,
FUSE
_ACCESS
:
doAccess
,
FUSE
_SYMLINK
:
doSymlink
,
FUSE
_RENAME
:
doRename
,
_OP
_OPEN
:
doOpen
,
_OP
_READDIR
:
doReadDir
,
_OP
_WRITE
:
doWrite
,
_OP
_OPENDIR
:
doOpenDir
,
_OP
_CREATE
:
doCreate
,
_OP
_SETATTR
:
doSetattr
,
_OP
_GETXATTR
:
doGetXAttr
,
_OP
_LISTXATTR
:
doGetXAttr
,
_OP
_GETATTR
:
doGetAttr
,
_OP
_FORGET
:
doForget
,
_OP
_READLINK
:
doReadlink
,
_OP
_INIT
:
doInit
,
_OP
_DESTROY
:
doDestroy
,
_OP
_LOOKUP
:
doLookup
,
_OP
_MKNOD
:
doMknod
,
_OP
_MKDIR
:
doMkdir
,
_OP
_UNLINK
:
doUnlink
,
_OP
_RMDIR
:
doRmdir
,
_OP
_LINK
:
doLink
,
_OP
_READ
:
doRead
,
_OP
_FLUSH
:
doFlush
,
_OP
_RELEASE
:
doRelease
,
_OP
_FSYNC
:
doFsync
,
_OP
_RELEASEDIR
:
doReleaseDir
,
_OP
_FSYNCDIR
:
doFsyncDir
,
_OP
_SETXATTR
:
doSetXAttr
,
_OP
_REMOVEXATTR
:
doRemoveXAttr
,
_OP
_ACCESS
:
doAccess
,
_OP
_SYMLINK
:
doSymlink
,
_OP
_RENAME
:
doRename
,
}
{
operationHandlers
[
op
]
.
Func
=
v
}
for
op
,
f
:=
range
map
[
opcode
]
castPointerFunc
{
FUSE
_LOOKUP
:
func
(
ptr
unsafe
.
Pointer
)
interface
{}
{
return
(
*
EntryOut
)(
ptr
)
},
FUSE
_OPEN
:
func
(
ptr
unsafe
.
Pointer
)
interface
{}
{
return
(
*
EntryOut
)(
ptr
)
},
FUSE
_GETATTR
:
func
(
ptr
unsafe
.
Pointer
)
interface
{}
{
return
(
*
AttrOut
)(
ptr
)
},
_OP
_LOOKUP
:
func
(
ptr
unsafe
.
Pointer
)
interface
{}
{
return
(
*
EntryOut
)(
ptr
)
},
_OP
_OPEN
:
func
(
ptr
unsafe
.
Pointer
)
interface
{}
{
return
(
*
EntryOut
)(
ptr
)
},
_OP
_GETATTR
:
func
(
ptr
unsafe
.
Pointer
)
interface
{}
{
return
(
*
AttrOut
)(
ptr
)
},
}
{
operationHandlers
[
op
]
.
DecodeOut
=
f
}
for
op
,
count
:=
range
map
[
opcode
]
int
{
FUSE
_LOOKUP
:
1
,
FUSE
_RENAME
:
2
,
FUSE
_SYMLINK
:
2
,
FUSE
_GETXATTR
:
1
,
FUSE
_CREATE
:
1
,
FUSE
_MKNOD
:
1
,
FUSE
_MKDIR
:
1
,
FUSE
_UNLINK
:
1
,
FUSE
_RMDIR
:
1
,
FUSE
_REMOVEXATTR
:
1
,
_OP
_LOOKUP
:
1
,
_OP
_RENAME
:
2
,
_OP
_SYMLINK
:
2
,
_OP
_GETXATTR
:
1
,
_OP
_CREATE
:
1
,
_OP
_MKNOD
:
1
,
_OP
_MKDIR
:
1
,
_OP
_UNLINK
:
1
,
_OP
_RMDIR
:
1
,
_OP
_REMOVEXATTR
:
1
,
}
{
operationHandlers
[
op
]
.
FileNames
=
count
}
...
...
fuse/types.go
View file @
05abe73d
...
...
@@ -74,6 +74,8 @@ const (
// TODO - get this from a canonical place.
PAGESIZE
=
4096
CUSE_INIT
=
4096
O_ANYWRITE
=
uint32
(
os
.
O_WRONLY
|
os
.
O_RDWR
|
os
.
O_APPEND
|
os
.
O_CREATE
|
os
.
O_TRUNC
)
)
...
...
@@ -98,52 +100,6 @@ const (
EXDEV
=
Status
(
syscall
.
EXDEV
)
)
type
opcode
int
const
(
FUSE_LOOKUP
=
1
FUSE_FORGET
=
2
FUSE_GETATTR
=
3
FUSE_SETATTR
=
4
FUSE_READLINK
=
5
FUSE_SYMLINK
=
6
FUSE_MKNOD
=
8
FUSE_MKDIR
=
9
FUSE_UNLINK
=
10
FUSE_RMDIR
=
11
FUSE_RENAME
=
12
FUSE_LINK
=
13
FUSE_OPEN
=
14
FUSE_READ
=
15
FUSE_WRITE
=
16
FUSE_STATFS
=
17
FUSE_RELEASE
=
18
FUSE_FSYNC
=
20
FUSE_SETXATTR
=
21
FUSE_GETXATTR
=
22
FUSE_LISTXATTR
=
23
FUSE_REMOVEXATTR
=
24
FUSE_FLUSH
=
25
FUSE_INIT
=
26
FUSE_OPENDIR
=
27
FUSE_READDIR
=
28
FUSE_RELEASEDIR
=
29
FUSE_FSYNCDIR
=
30
FUSE_GETLK
=
31
FUSE_SETLK
=
32
FUSE_SETLKW
=
33
FUSE_ACCESS
=
34
FUSE_CREATE
=
35
FUSE_INTERRUPT
=
36
FUSE_BMAP
=
37
FUSE_DESTROY
=
38
FUSE_IOCTL
=
39
FUSE_POLL
=
40
OPCODE_COUNT
=
41
CUSE_INIT
=
4096
)
type
NotifyCode
int
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment