Documentation ¶
Overview ¶
Package ashmem implements Android ashmem module (Anonymus Shared Memory).
Index ¶
- type Area
- func (a *Area) ConfigureMMap(ctx context.Context, file *fs.File, opts *memmap.MMapOpts) error
- func (a *Area) Flush(ctx context.Context, file *fs.File) error
- func (a *Area) Ioctl(ctx context.Context, io usermem.IO, args arch.SyscallArguments) (uintptr, error)
- func (a *Area) Read(ctx context.Context, file *fs.File, dst usermem.IOSequence, offset int64) (int64, error)
- func (a *Area) Release()
- func (a *Area) Seek(ctx context.Context, file *fs.File, whence fs.SeekWhence, offset int64) (int64, error)
- func (a *Area) Write(ctx context.Context, file *fs.File, src usermem.IOSequence, offset int64) (int64, error)
- type Device
- func (ad *Device) AddLink()
- func (ad *Device) Check(ctx context.Context, inode *fs.Inode, p fs.PermMask) bool
- func (ad *Device) DropLink()
- func (ad *Device) GetFile(ctx context.Context, d *fs.Dirent, flags fs.FileFlags) (*fs.File, error)
- func (ad *Device) IsVirtual() bool
- func (ad *Device) NotifyStatusChange(ctx context.Context)
- func (ad *Device) Release(context.Context)
- func (ad *Device) SetOwner(ctx context.Context, inode *fs.Inode, owner fs.FileOwner) error
- func (ad *Device) SetPermissions(ctx context.Context, inode *fs.Inode, fp fs.FilePermissions) bool
- func (ad *Device) SetTimestamps(ctx context.Context, inode *fs.Inode, ts fs.TimeSpec) error
- func (ad *Device) StatFS(context.Context) (fs.Info, error)
- func (ad *Device) Truncate(ctx context.Context, inode *fs.Inode, size int64) error
- func (ad *Device) UnstableAttr(ctx context.Context, inode *fs.Inode) (fs.UnstableAttr, error)
- type PinBoard
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Area ¶
type Area struct { fsutil.NoFsync fsutil.DeprecatedFileOperations fsutil.NotDirReaddir // contains filtered or unexported fields }
Area implements fs.FileOperations.
func (*Area) ConfigureMMap ¶
ConfigureMMap implements fs.FileOperations.ConfigureMMap.
func (*Area) Ioctl ¶
func (a *Area) Ioctl(ctx context.Context, io usermem.IO, args arch.SyscallArguments) (uintptr, error)
Ioctl implements fs.FileOperations.Ioctl.
func (*Area) Read ¶
func (a *Area) Read(ctx context.Context, file *fs.File, dst usermem.IOSequence, offset int64) (int64, error)
Read implements fs.FileOperations.Read.
type Device ¶
type Device struct { fsutil.DeprecatedFileOperations fsutil.InodeNoExtendedAttributes fsutil.InodeNotDirectory fsutil.InodeNotRenameable fsutil.InodeNotSocket fsutil.InodeNotSymlink fsutil.NoFsync fsutil.NoMappable fsutil.NoopWriteOut fsutil.NotDirReaddir // contains filtered or unexported fields }
Device implements fs.InodeOperations.
func (*Device) AddLink ¶
func (ad *Device) AddLink()
AddLink implements fs.InodeOperations.AddLink.
Ashmem doesn't support links, no-op.
func (*Device) DropLink ¶
func (ad *Device) DropLink()
DropLink implements fs.InodeOperations.DropLink.
Ashmem doesn't support links, no-op.
func (*Device) NotifyStatusChange ¶
NotifyStatusChange implements fs.InodeOperations.NotifyStatusChange.
func (*Device) SetPermissions ¶
SetPermissions implements fs.InodeOperations.SetPermissions.
func (*Device) SetTimestamps ¶
SetTimestamps implements fs.InodeOperations.SetTimestamps.
func (*Device) StatFS ¶
StatFS implements fs.InodeOperations.StatFS.
Ashmem doesn't support querying for filesystem info.
func (*Device) UnstableAttr ¶
UnstableAttr implements fs.InodeOperations.UnstableAttr.
type PinBoard ¶
type PinBoard struct {
Set
}
PinBoard represents a set of pinned ranges in ashmem.
segment.Set is used for implementation where segments represent ranges of pinned bytes, while gaps represent ranges of unpinned bytes. All ranges are page-aligned.
func NewPinBoard ¶
func NewPinBoard() *PinBoard
NewPinBoard creates a new pin board with all pages pinned.
func (*PinBoard) PinRange ¶
PinRange pins all pages in the specified range and returns true if there are any newly pinned pages.
func (*PinBoard) RangePinnedStatus ¶
RangePinnedStatus returns false if there's at least one unpinned page in the specified range.
func (*PinBoard) UnpinRange ¶
func (pb *PinBoard) UnpinRange(r Range)
UnpinRange unpins all pages in the specified range.