ashmem

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: 13 Imported by: 0

Documentation

Overview

Package ashmem implements Android ashmem module (Anonymus Shared Memory).

Index

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

func (a *Area) ConfigureMMap(ctx context.Context, file *fs.File, opts *memmap.MMapOpts) error

ConfigureMMap implements fs.FileOperations.ConfigureMMap.

func (*Area) Flush

func (a *Area) Flush(ctx context.Context, file *fs.File) error

Flush implements fs.FileOperations.Flush.

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.

func (*Area) Release

func (a *Area) Release()

Release implements fs.FileOperations.Release.

func (*Area) Seek

func (a *Area) Seek(ctx context.Context, file *fs.File, whence fs.SeekWhence, offset int64) (int64, error)

Seek implements fs.FileOperations.Seek.

func (*Area) Write

func (a *Area) Write(ctx context.Context, file *fs.File, src usermem.IOSequence, offset int64) (int64, error)

Write implements fs.FileOperations.Write.

type Device

Device implements fs.InodeOperations.

func NewDevice

func NewDevice(ctx context.Context, owner fs.FileOwner, fp fs.FilePermissions) *Device

NewDevice creates and intializes a Device structure.

func (ad *Device) AddLink()

AddLink implements fs.InodeOperations.AddLink.

Ashmem doesn't support links, no-op.

func (*Device) Check

func (ad *Device) Check(ctx context.Context, inode *fs.Inode, p fs.PermMask) bool

Check implements fs.InodeOperations.Check.

func (ad *Device) DropLink()

DropLink implements fs.InodeOperations.DropLink.

Ashmem doesn't support links, no-op.

func (*Device) GetFile

func (ad *Device) GetFile(ctx context.Context, d *fs.Dirent, flags fs.FileFlags) (*fs.File, error)

GetFile implements fs.InodeOperations.GetFile.

func (*Device) IsVirtual

func (ad *Device) IsVirtual() bool

IsVirtual implements fs.InodeOperations.IsVirtual.

Ashmem is virtual.

func (*Device) NotifyStatusChange

func (ad *Device) NotifyStatusChange(ctx context.Context)

NotifyStatusChange implements fs.InodeOperations.NotifyStatusChange.

func (*Device) Release

func (ad *Device) Release(context.Context)

Release implements fs.InodeOperations.Release.

func (*Device) SetOwner

func (ad *Device) SetOwner(ctx context.Context, inode *fs.Inode, owner fs.FileOwner) error

SetOwner implements fs.InodeOperations.SetOwner.

func (*Device) SetPermissions

func (ad *Device) SetPermissions(ctx context.Context, inode *fs.Inode, fp fs.FilePermissions) bool

SetPermissions implements fs.InodeOperations.SetPermissions.

func (*Device) SetTimestamps

func (ad *Device) SetTimestamps(ctx context.Context, inode *fs.Inode, ts fs.TimeSpec) error

SetTimestamps implements fs.InodeOperations.SetTimestamps.

func (*Device) StatFS

func (ad *Device) StatFS(context.Context) (fs.Info, error)

StatFS implements fs.InodeOperations.StatFS.

Ashmem doesn't support querying for filesystem info.

func (*Device) Truncate

func (ad *Device) Truncate(ctx context.Context, inode *fs.Inode, size int64) error

Truncate implements fs.InodeOperations.WriteOut.

Ignored by ashmem.

func (*Device) UnstableAttr

func (ad *Device) UnstableAttr(ctx context.Context, inode *fs.Inode) (fs.UnstableAttr, error)

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

func (pb *PinBoard) PinRange(r Range) bool

PinRange pins all pages in the specified range and returns true if there are any newly pinned pages.

func (*PinBoard) RangePinnedStatus

func (pb *PinBoard) RangePinnedStatus(r Range) bool

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.

Jump to

Keyboard shortcuts

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