package proc

import "gvisor.dev/gvisor/pkg/sentry/fsimpl/proc"

Package proc implements a partial in-memory file system for procfs.

Index

Constants

const (
	// Name is the default filesystem name.
	Name = "proc"
)

Functions

func GetMetadata

func GetMetadata(ctx context.Context, mm *mm.MemoryManager, buf *bytes.Buffer, t MetadataType) error

GetMetadata fetches the process's metadata of type t and writes it into buf. The process is identified by mm.

func ParseInt32Vec

func ParseInt32Vec(ctx context.Context, src usermem.IOSequence, buf []int32) (int64, error)

ParseInt32Vec interprets src as string encoding slice of int32, and returns the parsed value and the number of bytes read.

The numbers of int32 will be populated even if an error is returned eventually.

Types

type ExtraInternalData

type ExtraInternalData struct{}

ExtraInternalData is an empty struct that could contain extra data for the procfs.

+stateify savable

type FilesystemType

type FilesystemType struct{}

FilesystemType is the factory class for procfs.

+stateify savable

func (FilesystemType) GetFilesystem

func (ft FilesystemType) GetFilesystem(ctx context.Context, vfsObj *vfs.VirtualFilesystem, creds *auth.Credentials, source string, opts vfs.GetFilesystemOptions) (*vfs.Filesystem, *vfs.Dentry, error)

GetFilesystem implements vfs.FilesystemType.GetFilesystem.

func (FilesystemType) Name

func (FilesystemType) Name() string

Name implements vfs.FilesystemType.Name.

func (FilesystemType) Release

func (FilesystemType) Release(ctx context.Context)

Release implements vfs.FilesystemType.Release.

type InternalData

type InternalData struct {
	ExtraInternalData

	// GVisorMarkerFile indicates whether a file named gvisor/kernel_is_gvisor
	// should exist in the procfs.
	GVisorMarkerFile bool

	// Cgroups-internal data.
	Cgroups map[string]string
}

InternalData contains internal data passed in to the procfs mount via vfs.GetFilesystemOptions.InternalData.

+stateify savable

type MetadataType

type MetadataType int

MetadataType enumerates the types of metadata that is exposed through proc.

const (
	// Cmdline represents /proc/[pid]/cmdline.
	Cmdline MetadataType = iota

	// Environ represents /proc/[pid]/environ.
	Environ
)

Source Files

filesystem.go proc_impl.go subtasks.go task.go task_fds.go task_files.go task_net.go tasks.go tasks_files.go tasks_sys.go yama.go

Version
v0.0.0-20250605235530-a6711d1e1dc6 (latest)
Published
Jun 5, 2025
Platform
linux/amd64
Imports
35 packages
Last checked
4 hours ago

Tools for package owners.