From 5166631830e78797b0546c9bec664574ccbf3879 Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Fri, 24 Jul 2015 14:09:11 +1000 Subject: [PATCH 1/3] Renamed to out_message.go. --- internal/buffer/{buffer.go => out_message.go} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename internal/buffer/{buffer.go => out_message.go} (100%) diff --git a/internal/buffer/buffer.go b/internal/buffer/out_message.go similarity index 100% rename from internal/buffer/buffer.go rename to internal/buffer/out_message.go From b3d13508fbb05cc7b7330e0f23d35ac7e2a73244 Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Fri, 24 Jul 2015 14:11:03 +1000 Subject: [PATCH 2/3] Renamed to OutMessage. --- internal/buffer/out_message.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/internal/buffer/out_message.go b/internal/buffer/out_message.go index fe69a79..123a141e 100644 --- a/internal/buffer/out_message.go +++ b/internal/buffer/out_message.go @@ -21,25 +21,25 @@ import ( "github.com/jacobsa/fuse/internal/fusekernel" ) -// Buffer provides a mechanism for constructing a single contiguous fuse +// OutMessage provides a mechanism for constructing a single contiguous fuse // message from multiple segments, where the first segment is always a // fusekernel.OutHeader message. // // Must be created with New. Exception: the zero value has Bytes() == nil. -type Buffer struct { +type OutMessage struct { slice []byte } // Create a new buffer whose initial contents are a zeroed fusekernel.OutHeader // message, and with room enough to grow by extra bytes. -func New(extra uintptr) (b Buffer) { +func NewOutMessage(extra uintptr) (b OutMessage) { const headerSize = unsafe.Sizeof(fusekernel.OutHeader{}) b.slice = make([]byte, headerSize, headerSize+extra) return } // Return a pointer to the header at the start of the buffer. -func (b *Buffer) OutHeader() (h *fusekernel.OutHeader) { +func (b *OutMessage) OutHeader() (h *fusekernel.OutHeader) { sh := (*reflect.SliceHeader)(unsafe.Pointer(&b.slice)) h = (*fusekernel.OutHeader)(unsafe.Pointer(sh.Data)) return @@ -48,7 +48,7 @@ func (b *Buffer) OutHeader() (h *fusekernel.OutHeader) { // Grow the buffer by the supplied number of bytes, returning a pointer to the // start of the new segment. The sum of the arguments given to Grow must not // exceed the argument given to New when creating the buffer. -func (b *Buffer) Grow(size uintptr) (p unsafe.Pointer) { +func (b *OutMessage) Grow(size uintptr) (p unsafe.Pointer) { sh := (*reflect.SliceHeader)(unsafe.Pointer(&b.slice)) p = unsafe.Pointer(sh.Data + uintptr(sh.Len)) b.slice = b.slice[:len(b.slice)+int(size)] @@ -56,7 +56,7 @@ func (b *Buffer) Grow(size uintptr) (p unsafe.Pointer) { } // Equivalent to growing by the length of p, then copying p into the new segment. -func (b *Buffer) Append(p []byte) { +func (b *OutMessage) Append(p []byte) { sh := reflect.SliceHeader{ Data: uintptr(b.Grow(uintptr(len(p)))), Len: len(p), @@ -67,7 +67,7 @@ func (b *Buffer) Append(p []byte) { } // Equivalent to growing by the length of s, then copying s into the new segment. -func (b *Buffer) AppendString(s string) { +func (b *OutMessage) AppendString(s string) { sh := reflect.SliceHeader{ Data: uintptr(b.Grow(uintptr(len(s)))), Len: len(s), @@ -78,6 +78,6 @@ func (b *Buffer) AppendString(s string) { } // Return a reference to the current contents of the buffer. -func (b *Buffer) Bytes() []byte { +func (b *OutMessage) Bytes() []byte { return b.slice } From 34bba99216ee90a864f81a907018b1e88821a6dc Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Fri, 24 Jul 2015 14:12:12 +1000 Subject: [PATCH 3/3] Fixed a bunch of build errors. --- fuseops/common_op.go | 6 ++-- fuseops/ops.go | 86 ++++++++++++++++++++++---------------------- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/fuseops/common_op.go b/fuseops/common_op.go index 203793c..fb3a224 100644 --- a/fuseops/common_op.go +++ b/fuseops/common_op.go @@ -36,7 +36,7 @@ type internalOp interface { // // Special case: a zero return value means that the kernel is not expecting a // response. - kernelResponse() (b buffer.Buffer) + kernelResponse() (b buffer.OutMessage) } // A function that sends a reply message back to the kernel for the request @@ -142,11 +142,11 @@ func (o *commonOp) Respond(err error) { // If successful, we ask the op for an appopriate response to the kernel, and // it is responsible for leaving room for the fusekernel.OutHeader struct. // Otherwise, create our own. - var b buffer.Buffer + var b buffer.OutMessage if err == nil { b = o.op.kernelResponse() } else { - b = buffer.New(0) + b = buffer.NewOutMessage(0) } // Fill in the header if a reply is needed. diff --git a/fuseops/ops.go b/fuseops/ops.go index 97cf058..65f951b 100644 --- a/fuseops/ops.go +++ b/fuseops/ops.go @@ -88,9 +88,9 @@ func (o *LookUpInodeOp) ShortDesc() (desc string) { return } -func (o *LookUpInodeOp) kernelResponse() (b buffer.Buffer) { +func (o *LookUpInodeOp) kernelResponse() (b buffer.OutMessage) { size := fusekernel.EntryOutSize(o.protocol) - b = buffer.New(size) + b = buffer.NewOutMessage(size) out := (*fusekernel.EntryOut)(b.Grow(size)) convertChildInodeEntry(&o.Entry, out) @@ -123,9 +123,9 @@ func (o *GetInodeAttributesOp) DebugString() string { o.Attributes.DebugString()) } -func (o *GetInodeAttributesOp) kernelResponse() (b buffer.Buffer) { +func (o *GetInodeAttributesOp) kernelResponse() (b buffer.OutMessage) { size := fusekernel.AttrOutSize(o.protocol) - b = buffer.New(size) + b = buffer.NewOutMessage(size) out := (*fusekernel.AttrOut)(b.Grow(size)) out.AttrValid, out.AttrValidNsec = convertExpirationTime(o.AttributesExpiration) convertAttributes(o.Inode, &o.Attributes, &out.Attr) @@ -157,9 +157,9 @@ type SetInodeAttributesOp struct { AttributesExpiration time.Time } -func (o *SetInodeAttributesOp) kernelResponse() (b buffer.Buffer) { +func (o *SetInodeAttributesOp) kernelResponse() (b buffer.OutMessage) { size := fusekernel.AttrOutSize(o.protocol) - b = buffer.New(size) + b = buffer.NewOutMessage(size) out := (*fusekernel.AttrOut)(b.Grow(size)) out.AttrValid, out.AttrValidNsec = convertExpirationTime(o.AttributesExpiration) convertAttributes(o.Inode, &o.Attributes, &out.Attr) @@ -216,7 +216,7 @@ type ForgetInodeOp struct { N uint64 } -func (o *ForgetInodeOp) kernelResponse() (b buffer.Buffer) { +func (o *ForgetInodeOp) kernelResponse() (b buffer.OutMessage) { // No response. return } @@ -259,9 +259,9 @@ func (o *MkDirOp) ShortDesc() (desc string) { return } -func (o *MkDirOp) kernelResponse() (b buffer.Buffer) { +func (o *MkDirOp) kernelResponse() (b buffer.OutMessage) { size := fusekernel.EntryOutSize(o.protocol) - b = buffer.New(size) + b = buffer.NewOutMessage(size) out := (*fusekernel.EntryOut)(b.Grow(size)) convertChildInodeEntry(&o.Entry, out) @@ -311,9 +311,9 @@ func (o *CreateFileOp) ShortDesc() (desc string) { return } -func (o *CreateFileOp) kernelResponse() (b buffer.Buffer) { +func (o *CreateFileOp) kernelResponse() (b buffer.OutMessage) { eSize := fusekernel.EntryOutSize(o.protocol) - b = buffer.New(eSize + unsafe.Sizeof(fusekernel.OpenOut{})) + b = buffer.NewOutMessage(eSize + unsafe.Sizeof(fusekernel.OpenOut{})) e := (*fusekernel.EntryOut)(b.Grow(eSize)) convertChildInodeEntry(&o.Entry, e) @@ -357,9 +357,9 @@ func (o *CreateSymlinkOp) ShortDesc() (desc string) { return } -func (o *CreateSymlinkOp) kernelResponse() (b buffer.Buffer) { +func (o *CreateSymlinkOp) kernelResponse() (b buffer.OutMessage) { size := fusekernel.EntryOutSize(o.protocol) - b = buffer.New(size) + b = buffer.NewOutMessage(size) out := (*fusekernel.EntryOut)(b.Grow(size)) convertChildInodeEntry(&o.Entry, out) @@ -418,8 +418,8 @@ type RenameOp struct { NewName string } -func (o *RenameOp) kernelResponse() (b buffer.Buffer) { - b = buffer.New(0) +func (o *RenameOp) kernelResponse() (b buffer.OutMessage) { + b = buffer.NewOutMessage(0) return } @@ -439,8 +439,8 @@ type RmDirOp struct { Name string } -func (o *RmDirOp) kernelResponse() (b buffer.Buffer) { - b = buffer.New(0) +func (o *RmDirOp) kernelResponse() (b buffer.OutMessage) { + b = buffer.NewOutMessage(0) return } @@ -459,8 +459,8 @@ type UnlinkOp struct { Name string } -func (o *UnlinkOp) kernelResponse() (b buffer.Buffer) { - b = buffer.New(0) +func (o *UnlinkOp) kernelResponse() (b buffer.OutMessage) { + b = buffer.NewOutMessage(0) return } @@ -491,8 +491,8 @@ type OpenDirOp struct { Handle HandleID } -func (o *OpenDirOp) kernelResponse() (b buffer.Buffer) { - b = buffer.New(unsafe.Sizeof(fusekernel.OpenOut{})) +func (o *OpenDirOp) kernelResponse() (b buffer.OutMessage) { + b = buffer.NewOutMessage(unsafe.Sizeof(fusekernel.OpenOut{})) out := (*fusekernel.OpenOut)(b.Grow(unsafe.Sizeof(fusekernel.OpenOut{}))) out.Fh = uint64(o.Handle) @@ -589,8 +589,8 @@ type ReadDirOp struct { Data []byte } -func (o *ReadDirOp) kernelResponse() (b buffer.Buffer) { - b = buffer.New(uintptr(len(o.Data))) +func (o *ReadDirOp) kernelResponse() (b buffer.OutMessage) { + b = buffer.NewOutMessage(uintptr(len(o.Data))) b.Append(o.Data) return } @@ -612,8 +612,8 @@ type ReleaseDirHandleOp struct { Handle HandleID } -func (o *ReleaseDirHandleOp) kernelResponse() (b buffer.Buffer) { - b = buffer.New(0) +func (o *ReleaseDirHandleOp) kernelResponse() (b buffer.OutMessage) { + b = buffer.NewOutMessage(0) return } @@ -643,8 +643,8 @@ type OpenFileOp struct { Handle HandleID } -func (o *OpenFileOp) kernelResponse() (b buffer.Buffer) { - b = buffer.New(unsafe.Sizeof(fusekernel.OpenOut{})) +func (o *OpenFileOp) kernelResponse() (b buffer.OutMessage) { + b = buffer.NewOutMessage(unsafe.Sizeof(fusekernel.OpenOut{})) out := (*fusekernel.OpenOut)(b.Grow(unsafe.Sizeof(fusekernel.OpenOut{}))) out.Fh = uint64(o.Handle) @@ -680,8 +680,8 @@ type ReadFileOp struct { Data []byte } -func (o *ReadFileOp) kernelResponse() (b buffer.Buffer) { - b = buffer.New(uintptr(len(o.Data))) +func (o *ReadFileOp) kernelResponse() (b buffer.OutMessage) { + b = buffer.NewOutMessage(uintptr(len(o.Data))) b.Append(o.Data) return } @@ -756,8 +756,8 @@ type WriteFileOp struct { Data []byte } -func (o *WriteFileOp) kernelResponse() (b buffer.Buffer) { - b = buffer.New(unsafe.Sizeof(fusekernel.WriteOut{})) +func (o *WriteFileOp) kernelResponse() (b buffer.OutMessage) { + b = buffer.NewOutMessage(unsafe.Sizeof(fusekernel.WriteOut{})) out := (*fusekernel.WriteOut)(b.Grow(unsafe.Sizeof(fusekernel.WriteOut{}))) out.Size = uint32(len(o.Data)) @@ -788,8 +788,8 @@ type SyncFileOp struct { Handle HandleID } -func (o *SyncFileOp) kernelResponse() (b buffer.Buffer) { - b = buffer.New(0) +func (o *SyncFileOp) kernelResponse() (b buffer.OutMessage) { + b = buffer.NewOutMessage(0) return } @@ -848,8 +848,8 @@ type FlushFileOp struct { Handle HandleID } -func (o *FlushFileOp) kernelResponse() (b buffer.Buffer) { - b = buffer.New(0) +func (o *FlushFileOp) kernelResponse() (b buffer.OutMessage) { + b = buffer.NewOutMessage(0) return } @@ -870,8 +870,8 @@ type ReleaseFileHandleOp struct { Handle HandleID } -func (o *ReleaseFileHandleOp) kernelResponse() (b buffer.Buffer) { - b = buffer.New(0) +func (o *ReleaseFileHandleOp) kernelResponse() (b buffer.OutMessage) { + b = buffer.NewOutMessage(0) return } @@ -888,7 +888,7 @@ func (o *unknownOp) ShortDesc() (desc string) { return } -func (o *unknownOp) kernelResponse() (b buffer.Buffer) { +func (o *unknownOp) kernelResponse() (b buffer.OutMessage) { panic(fmt.Sprintf("Should never get here for unknown op: %s", o.ShortDesc())) } @@ -907,8 +907,8 @@ type ReadSymlinkOp struct { Target string } -func (o *ReadSymlinkOp) kernelResponse() (b buffer.Buffer) { - b = buffer.New(uintptr(len(o.Target))) +func (o *ReadSymlinkOp) kernelResponse() (b buffer.OutMessage) { + b = buffer.NewOutMessage(uintptr(len(o.Target))) b.AppendString(o.Target) return } @@ -929,8 +929,8 @@ type InternalStatFSOp struct { commonOp } -func (o *InternalStatFSOp) kernelResponse() (b buffer.Buffer) { - b = buffer.New(unsafe.Sizeof(fusekernel.StatfsOut{})) +func (o *InternalStatFSOp) kernelResponse() (b buffer.OutMessage) { + b = buffer.NewOutMessage(unsafe.Sizeof(fusekernel.StatfsOut{})) b.Grow(unsafe.Sizeof(fusekernel.StatfsOut{})) return @@ -942,6 +942,6 @@ type InternalInterruptOp struct { FuseID uint64 } -func (o *InternalInterruptOp) kernelResponse() (b buffer.Buffer) { +func (o *InternalInterruptOp) kernelResponse() (b buffer.OutMessage) { panic("Shouldn't get here.") }