filemem

package
v0.0.0-...-23e6066 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 3, 2018 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Overview

Package filemem provides a reusable implementation of platform.Memory.

It enables memory to be sourced from a memfd file.

Lock order:

filemem.FileMem.mu

filemem.FileMem.mappingsMu

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FileMem

type FileMem struct {
	// contains filtered or unexported fields
}

FileMem is a platform.Memory that allocates from a host file that it owns.

func New

func New(name string) (*FileMem, error)

New creates a FileMem backed by a memfd file.

func (*FileMem) Allocate

func (f *FileMem) Allocate(length uint64, kind usage.MemoryKind) (platform.FileRange, error)

Allocate implements platform.Memory.Allocate.

func (*FileMem) DecRef

func (f *FileMem) DecRef(fr platform.FileRange)

DecRef implements platform.File.DecRef.

func (*FileMem) Decommit

func (f *FileMem) Decommit(fr platform.FileRange) error

Decommit implements platform.Memory.Decommit.

func (*FileMem) Destroy

func (f *FileMem) Destroy()

Destroy implements platform.Memory.Destroy.

func (*FileMem) File

func (f *FileMem) File() *os.File

File returns the memory file used by f.

func (*FileMem) Flush

func (f *FileMem) Flush(ctx context.Context) error

Flush implements platform.Mappable.Flush.

func (*FileMem) IncRef

func (f *FileMem) IncRef(fr platform.FileRange)

IncRef implements platform.File.IncRef.

func (*FileMem) LoadFrom

func (f *FileMem) LoadFrom(r io.Reader) error

LoadFrom implements platform.Memory.LoadFrom.

func (*FileMem) MapInternal

func (f *FileMem) MapInternal(fr platform.FileRange, at usermem.AccessType) (safemem.BlockSeq, error)

MapInternal implements platform.File.MapInternal.

func (*FileMem) MapInto

func (f *FileMem) MapInto(as platform.AddressSpace, addr usermem.Addr, fr platform.FileRange, at usermem.AccessType, precommit bool) error

MapInto implements platform.File.MapInto.

func (*FileMem) SaveTo

func (f *FileMem) SaveTo(w io.Writer) error

SaveTo implements platform.Memory.SaveTo.

func (*FileMem) String

func (f *FileMem) String() string

String implements fmt.Stringer.String.

Note that because f.String locks f.mu, calling f.String internally (including indirectly through the fmt package) risks recursive locking. Within the filemem package, use f.usage directly instead.

func (*FileMem) TotalSize

func (f *FileMem) TotalSize() uint64

TotalSize implements platform.Memory.TotalSize.

func (*FileMem) TotalUsage

func (f *FileMem) TotalUsage() (uint64, error)

TotalUsage implements platform.Memory.TotalUsage.

func (*FileMem) UpdateUsage

func (f *FileMem) UpdateUsage() error

UpdateUsage implements platform.Memory.UpdateUsage.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL