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 ¶
- type FileMem
- func (f *FileMem) Allocate(length uint64, kind usage.MemoryKind) (platform.FileRange, error)
- func (f *FileMem) DecRef(fr platform.FileRange)
- func (f *FileMem) Decommit(fr platform.FileRange) error
- func (f *FileMem) Destroy()
- func (f *FileMem) File() *os.File
- func (f *FileMem) Flush(ctx context.Context) error
- func (f *FileMem) IncRef(fr platform.FileRange)
- func (f *FileMem) LoadFrom(r io.Reader) error
- func (f *FileMem) MapInternal(fr platform.FileRange, at usermem.AccessType) (safemem.BlockSeq, error)
- func (f *FileMem) MapInto(as platform.AddressSpace, addr usermem.Addr, fr platform.FileRange, ...) error
- func (f *FileMem) SaveTo(w io.Writer) error
- func (f *FileMem) String() string
- func (f *FileMem) TotalSize() uint64
- func (f *FileMem) TotalUsage() (uint64, error)
- func (f *FileMem) UpdateUsage() error
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 (*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) 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) TotalUsage ¶
TotalUsage implements platform.Memory.TotalUsage.
func (*FileMem) UpdateUsage ¶
UpdateUsage implements platform.Memory.UpdateUsage.