Restored the internal ops.

geesefs-0-30-9
Aaron Jacobs 2015-07-27 14:47:29 +10:00
parent 2f92789219
commit 8305caad55
1 changed files with 57 additions and 0 deletions

57
ops.go
View File

@ -146,3 +146,60 @@ func kernelResponse(
return
}
////////////////////////////////////////////////////////////////////////
// Internal
////////////////////////////////////////////////////////////////////////
// Common implementation for our "internal" ops that don't need to be pretty.
type internalOp struct {
}
func (o *internalOp) ShortDesc() string { return "<internalOp>" }
func (o *internalOp) DebugString() string { return "<internalOp>" }
type internalStatFSOp struct {
internalOp
}
func (o *internalStatFSOp) kernelResponse() (b buffer.OutMessage) {
b = buffer.NewOutMessage(unsafe.Sizeof(fusekernel.StatfsOut{}))
b.Grow(unsafe.Sizeof(fusekernel.StatfsOut{}))
return
}
type internalInterruptOp struct {
internalOp
FuseID uint64
}
func (o *internalInterruptOp) kernelResponse() (b buffer.OutMessage) {
panic("Shouldn't get here.")
}
type internalInitOp struct {
internalOp
// In
Kernel fusekernel.Protocol
// Out
Library fusekernel.Protocol
MaxReadahead uint32
Flags fusekernel.InitFlags
MaxWrite uint32
}
func (o *internalInitOp) kernelResponse() (b buffer.OutMessage) {
b = buffer.NewOutMessage(unsafe.Sizeof(fusekernel.InitOut{}))
out := (*fusekernel.InitOut)(b.Grow(unsafe.Sizeof(fusekernel.InitOut{})))
out.Major = o.Library.Major
out.Minor = o.Library.Minor
out.MaxReadahead = o.MaxReadahead
out.Flags = uint32(o.Flags)
out.MaxWrite = o.MaxWrite
return
}