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
78e16260
Commit
78e16260
authored
Apr 22, 2011
by
Han-Wen Nienhuys
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Split out opcode related stuff into opcode.go.
parent
3173e6f3
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
202 additions
and
193 deletions
+202
-193
fuse/Makefile
fuse/Makefile
+2
-1
fuse/misc.go
fuse/misc.go
+0
-192
fuse/opcode.go
fuse/opcode.go
+200
-0
No files found.
fuse/Makefile
View file @
78e16260
...
...
@@ -19,7 +19,8 @@ GOFILES=misc.go\
timingrawfs.go
\
xattr.go
\
devnull.go
\
pathdebug.go
pathdebug.go
\
opcode.go
include
$(GOROOT)/src/Make.pkg
fuse/misc.go
View file @
78e16260
...
...
@@ -43,109 +43,6 @@ func OsErrorToErrno(err os.Error) Status {
return
OK
}
func
replyString
(
opcode
uint32
,
ptr
unsafe
.
Pointer
)
string
{
var
val
interface
{}
switch
opcode
{
case
FUSE_LOOKUP
:
val
=
(
*
EntryOut
)(
ptr
)
case
FUSE_OPEN
:
val
=
(
*
OpenOut
)(
ptr
)
}
if
val
!=
nil
{
return
fmt
.
Sprintf
(
"%v"
,
val
)
}
return
""
}
func
operationName
(
opcode
uint32
)
string
{
switch
opcode
{
case
FUSE_LOOKUP
:
return
"FUSE_LOOKUP"
case
FUSE_FORGET
:
return
"FUSE_FORGET"
case
FUSE_GETATTR
:
return
"FUSE_GETATTR"
case
FUSE_SETATTR
:
return
"FUSE_SETATTR"
case
FUSE_READLINK
:
return
"FUSE_READLINK"
case
FUSE_SYMLINK
:
return
"FUSE_SYMLINK"
case
FUSE_MKNOD
:
return
"FUSE_MKNOD"
case
FUSE_MKDIR
:
return
"FUSE_MKDIR"
case
FUSE_UNLINK
:
return
"FUSE_UNLINK"
case
FUSE_RMDIR
:
return
"FUSE_RMDIR"
case
FUSE_RENAME
:
return
"FUSE_RENAME"
case
FUSE_LINK
:
return
"FUSE_LINK"
case
FUSE_OPEN
:
return
"FUSE_OPEN"
case
FUSE_READ
:
return
"FUSE_READ"
case
FUSE_WRITE
:
return
"FUSE_WRITE"
case
FUSE_STATFS
:
return
"FUSE_STATFS"
case
FUSE_RELEASE
:
return
"FUSE_RELEASE"
case
FUSE_FSYNC
:
return
"FUSE_FSYNC"
case
FUSE_SETXATTR
:
return
"FUSE_SETXATTR"
case
FUSE_GETXATTR
:
return
"FUSE_GETXATTR"
case
FUSE_LISTXATTR
:
return
"FUSE_LISTXATTR"
case
FUSE_REMOVEXATTR
:
return
"FUSE_REMOVEXATTR"
case
FUSE_FLUSH
:
return
"FUSE_FLUSH"
case
FUSE_INIT
:
return
"FUSE_INIT"
case
FUSE_OPENDIR
:
return
"FUSE_OPENDIR"
case
FUSE_READDIR
:
return
"FUSE_READDIR"
case
FUSE_RELEASEDIR
:
return
"FUSE_RELEASEDIR"
case
FUSE_FSYNCDIR
:
return
"FUSE_FSYNCDIR"
case
FUSE_GETLK
:
return
"FUSE_GETLK"
case
FUSE_SETLK
:
return
"FUSE_SETLK"
case
FUSE_SETLKW
:
return
"FUSE_SETLKW"
case
FUSE_ACCESS
:
return
"FUSE_ACCESS"
case
FUSE_CREATE
:
return
"FUSE_CREATE"
case
FUSE_INTERRUPT
:
return
"FUSE_INTERRUPT"
case
FUSE_BMAP
:
return
"FUSE_BMAP"
case
FUSE_DESTROY
:
return
"FUSE_DESTROY"
case
FUSE_IOCTL
:
return
"FUSE_IOCTL"
case
FUSE_POLL
:
return
"FUSE_POLL"
}
return
"UNKNOWN"
}
func
(
code
Status
)
String
()
string
{
if
code
==
OK
{
return
"OK"
}
return
fmt
.
Sprintf
(
"%d=%v"
,
int
(
code
),
os
.
Errno
(
code
))
}
func
SplitNs
(
time
float64
,
secs
*
uint64
,
nsecs
*
uint32
)
{
*
nsecs
=
uint32
(
1e9
*
(
time
-
math
.
Trunc
(
time
)))
*
secs
=
uint64
(
math
.
Trunc
(
time
))
...
...
@@ -258,92 +155,3 @@ func MyPID() string {
v
,
_
:=
os
.
Readlink
(
"/proc/self"
)
return
v
}
var
inputSizeMap
map
[
int
]
int
var
outputSizeMap
map
[
int
]
int
func
init
()
{
inputSizeMap
=
map
[
int
]
int
{
FUSE_LOOKUP
:
0
,
FUSE_FORGET
:
unsafe
.
Sizeof
(
ForgetIn
{}),
FUSE_GETATTR
:
unsafe
.
Sizeof
(
GetAttrIn
{}),
FUSE_SETATTR
:
unsafe
.
Sizeof
(
SetAttrIn
{}),
FUSE_READLINK
:
0
,
FUSE_SYMLINK
:
0
,
FUSE_MKNOD
:
unsafe
.
Sizeof
(
MknodIn
{}),
FUSE_MKDIR
:
unsafe
.
Sizeof
(
MkdirIn
{}),
FUSE_UNLINK
:
0
,
FUSE_RMDIR
:
0
,
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_STATFS
:
0
,
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_REMOVEXATTR
:
0
,
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_GETLK
:
0
,
FUSE_SETLK
:
0
,
FUSE_SETLKW
:
0
,
FUSE_ACCESS
:
unsafe
.
Sizeof
(
AccessIn
{}),
FUSE_CREATE
:
unsafe
.
Sizeof
(
CreateIn
{}),
FUSE_INTERRUPT
:
unsafe
.
Sizeof
(
InterruptIn
{}),
FUSE_BMAP
:
unsafe
.
Sizeof
(
BmapIn
{}),
FUSE_DESTROY
:
0
,
FUSE_IOCTL
:
unsafe
.
Sizeof
(
IoctlIn
{}),
FUSE_POLL
:
unsafe
.
Sizeof
(
PollIn
{}),
}
outputSizeMap
=
map
[
int
]
int
{
FUSE_LOOKUP
:
unsafe
.
Sizeof
(
EntryOut
{}),
FUSE_FORGET
:
0
,
FUSE_GETATTR
:
unsafe
.
Sizeof
(
AttrOut
{}),
FUSE_SETATTR
:
unsafe
.
Sizeof
(
AttrOut
{}),
FUSE_READLINK
:
0
,
FUSE_SYMLINK
:
unsafe
.
Sizeof
(
EntryOut
{}),
FUSE_MKNOD
:
unsafe
.
Sizeof
(
EntryOut
{}),
FUSE_MKDIR
:
unsafe
.
Sizeof
(
EntryOut
{}),
FUSE_UNLINK
:
0
,
FUSE_RMDIR
:
0
,
FUSE_RENAME
:
0
,
FUSE_LINK
:
unsafe
.
Sizeof
(
EntryOut
{}),
FUSE_OPEN
:
unsafe
.
Sizeof
(
OpenOut
{}),
FUSE_READ
:
0
,
FUSE_WRITE
:
unsafe
.
Sizeof
(
WriteOut
{}),
FUSE_STATFS
:
unsafe
.
Sizeof
(
StatfsOut
{}),
FUSE_RELEASE
:
0
,
FUSE_FSYNC
:
0
,
FUSE_SETXATTR
:
0
,
FUSE_GETXATTR
:
unsafe
.
Sizeof
(
GetXAttrOut
{}),
FUSE_LISTXATTR
:
unsafe
.
Sizeof
(
GetXAttrOut
{}),
FUSE_REMOVEXATTR
:
0
,
FUSE_FLUSH
:
0
,
FUSE_INIT
:
unsafe
.
Sizeof
(
InitOut
{}),
FUSE_OPENDIR
:
unsafe
.
Sizeof
(
OpenOut
{}),
FUSE_READDIR
:
0
,
FUSE_RELEASEDIR
:
0
,
FUSE_FSYNCDIR
:
0
,
// TODO
FUSE_GETLK
:
0
,
FUSE_SETLK
:
0
,
FUSE_SETLKW
:
0
,
FUSE_ACCESS
:
0
,
FUSE_CREATE
:
unsafe
.
Sizeof
(
CreateOut
{}),
FUSE_INTERRUPT
:
0
,
FUSE_BMAP
:
unsafe
.
Sizeof
(
BmapOut
{}),
FUSE_DESTROY
:
0
,
FUSE_IOCTL
:
unsafe
.
Sizeof
(
IoctlOut
{}),
FUSE_POLL
:
unsafe
.
Sizeof
(
PollOut
{}),
}
}
fuse/opcode.go
0 → 100644
View file @
78e16260
package
fuse
import
(
"fmt"
"os"
"unsafe"
)
func
(
code
Status
)
String
()
string
{
if
code
==
OK
{
return
"OK"
}
return
fmt
.
Sprintf
(
"%d=%v"
,
int
(
code
),
os
.
Errno
(
code
))
}
func
replyString
(
opcode
uint32
,
ptr
unsafe
.
Pointer
)
string
{
var
val
interface
{}
switch
opcode
{
case
FUSE_LOOKUP
:
val
=
(
*
EntryOut
)(
ptr
)
case
FUSE_OPEN
:
val
=
(
*
OpenOut
)(
ptr
)
}
if
val
!=
nil
{
return
fmt
.
Sprintf
(
"%v"
,
val
)
}
return
""
}
func
operationName
(
opcode
uint32
)
string
{
switch
opcode
{
case
FUSE_LOOKUP
:
return
"FUSE_LOOKUP"
case
FUSE_FORGET
:
return
"FUSE_FORGET"
case
FUSE_GETATTR
:
return
"FUSE_GETATTR"
case
FUSE_SETATTR
:
return
"FUSE_SETATTR"
case
FUSE_READLINK
:
return
"FUSE_READLINK"
case
FUSE_SYMLINK
:
return
"FUSE_SYMLINK"
case
FUSE_MKNOD
:
return
"FUSE_MKNOD"
case
FUSE_MKDIR
:
return
"FUSE_MKDIR"
case
FUSE_UNLINK
:
return
"FUSE_UNLINK"
case
FUSE_RMDIR
:
return
"FUSE_RMDIR"
case
FUSE_RENAME
:
return
"FUSE_RENAME"
case
FUSE_LINK
:
return
"FUSE_LINK"
case
FUSE_OPEN
:
return
"FUSE_OPEN"
case
FUSE_READ
:
return
"FUSE_READ"
case
FUSE_WRITE
:
return
"FUSE_WRITE"
case
FUSE_STATFS
:
return
"FUSE_STATFS"
case
FUSE_RELEASE
:
return
"FUSE_RELEASE"
case
FUSE_FSYNC
:
return
"FUSE_FSYNC"
case
FUSE_SETXATTR
:
return
"FUSE_SETXATTR"
case
FUSE_GETXATTR
:
return
"FUSE_GETXATTR"
case
FUSE_LISTXATTR
:
return
"FUSE_LISTXATTR"
case
FUSE_REMOVEXATTR
:
return
"FUSE_REMOVEXATTR"
case
FUSE_FLUSH
:
return
"FUSE_FLUSH"
case
FUSE_INIT
:
return
"FUSE_INIT"
case
FUSE_OPENDIR
:
return
"FUSE_OPENDIR"
case
FUSE_READDIR
:
return
"FUSE_READDIR"
case
FUSE_RELEASEDIR
:
return
"FUSE_RELEASEDIR"
case
FUSE_FSYNCDIR
:
return
"FUSE_FSYNCDIR"
case
FUSE_GETLK
:
return
"FUSE_GETLK"
case
FUSE_SETLK
:
return
"FUSE_SETLK"
case
FUSE_SETLKW
:
return
"FUSE_SETLKW"
case
FUSE_ACCESS
:
return
"FUSE_ACCESS"
case
FUSE_CREATE
:
return
"FUSE_CREATE"
case
FUSE_INTERRUPT
:
return
"FUSE_INTERRUPT"
case
FUSE_BMAP
:
return
"FUSE_BMAP"
case
FUSE_DESTROY
:
return
"FUSE_DESTROY"
case
FUSE_IOCTL
:
return
"FUSE_IOCTL"
case
FUSE_POLL
:
return
"FUSE_POLL"
}
return
"UNKNOWN"
}
var
inputSizeMap
map
[
int
]
int
var
outputSizeMap
map
[
int
]
int
func
init
()
{
inputSizeMap
=
map
[
int
]
int
{
FUSE_LOOKUP
:
0
,
FUSE_FORGET
:
unsafe
.
Sizeof
(
ForgetIn
{}),
FUSE_GETATTR
:
unsafe
.
Sizeof
(
GetAttrIn
{}),
FUSE_SETATTR
:
unsafe
.
Sizeof
(
SetAttrIn
{}),
FUSE_READLINK
:
0
,
FUSE_SYMLINK
:
0
,
FUSE_MKNOD
:
unsafe
.
Sizeof
(
MknodIn
{}),
FUSE_MKDIR
:
unsafe
.
Sizeof
(
MkdirIn
{}),
FUSE_UNLINK
:
0
,
FUSE_RMDIR
:
0
,
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_STATFS
:
0
,
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_REMOVEXATTR
:
0
,
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_GETLK
:
0
,
FUSE_SETLK
:
0
,
FUSE_SETLKW
:
0
,
FUSE_ACCESS
:
unsafe
.
Sizeof
(
AccessIn
{}),
FUSE_CREATE
:
unsafe
.
Sizeof
(
CreateIn
{}),
FUSE_INTERRUPT
:
unsafe
.
Sizeof
(
InterruptIn
{}),
FUSE_BMAP
:
unsafe
.
Sizeof
(
BmapIn
{}),
FUSE_DESTROY
:
0
,
FUSE_IOCTL
:
unsafe
.
Sizeof
(
IoctlIn
{}),
FUSE_POLL
:
unsafe
.
Sizeof
(
PollIn
{}),
}
outputSizeMap
=
map
[
int
]
int
{
FUSE_LOOKUP
:
unsafe
.
Sizeof
(
EntryOut
{}),
FUSE_FORGET
:
0
,
FUSE_GETATTR
:
unsafe
.
Sizeof
(
AttrOut
{}),
FUSE_SETATTR
:
unsafe
.
Sizeof
(
AttrOut
{}),
FUSE_READLINK
:
0
,
FUSE_SYMLINK
:
unsafe
.
Sizeof
(
EntryOut
{}),
FUSE_MKNOD
:
unsafe
.
Sizeof
(
EntryOut
{}),
FUSE_MKDIR
:
unsafe
.
Sizeof
(
EntryOut
{}),
FUSE_UNLINK
:
0
,
FUSE_RMDIR
:
0
,
FUSE_RENAME
:
0
,
FUSE_LINK
:
unsafe
.
Sizeof
(
EntryOut
{}),
FUSE_OPEN
:
unsafe
.
Sizeof
(
OpenOut
{}),
FUSE_READ
:
0
,
FUSE_WRITE
:
unsafe
.
Sizeof
(
WriteOut
{}),
FUSE_STATFS
:
unsafe
.
Sizeof
(
StatfsOut
{}),
FUSE_RELEASE
:
0
,
FUSE_FSYNC
:
0
,
FUSE_SETXATTR
:
0
,
FUSE_GETXATTR
:
unsafe
.
Sizeof
(
GetXAttrOut
{}),
FUSE_LISTXATTR
:
unsafe
.
Sizeof
(
GetXAttrOut
{}),
FUSE_REMOVEXATTR
:
0
,
FUSE_FLUSH
:
0
,
FUSE_INIT
:
unsafe
.
Sizeof
(
InitOut
{}),
FUSE_OPENDIR
:
unsafe
.
Sizeof
(
OpenOut
{}),
FUSE_READDIR
:
0
,
FUSE_RELEASEDIR
:
0
,
FUSE_FSYNCDIR
:
0
,
// TODO
FUSE_GETLK
:
0
,
FUSE_SETLK
:
0
,
FUSE_SETLKW
:
0
,
FUSE_ACCESS
:
0
,
FUSE_CREATE
:
unsafe
.
Sizeof
(
CreateOut
{}),
FUSE_INTERRUPT
:
0
,
FUSE_BMAP
:
unsafe
.
Sizeof
(
BmapOut
{}),
FUSE_DESTROY
:
0
,
FUSE_IOCTL
:
unsafe
.
Sizeof
(
IoctlOut
{}),
FUSE_POLL
:
unsafe
.
Sizeof
(
PollOut
{}),
}
}
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