From 8305caad559ab9709cbfb11da659d633d46b05ee Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Mon, 27 Jul 2015 14:47:29 +1000 Subject: [PATCH] Restored the internal ops. --- ops.go | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/ops.go b/ops.go index 48cc6fb..50e7be7 100644 --- a/ops.go +++ b/ops.go @@ -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 "" } +func (o *internalOp) DebugString() string { return "" } + +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 +}