summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/fs/proc/task.go
diff options
context:
space:
mode:
authorZhaozhong Ni <nzz@google.com>2018-08-02 10:41:44 -0700
committerShentubot <shentubot@google.com>2018-08-02 10:42:48 -0700
commit57d0fcbdbf7e9d2d573ce8d4ca2f72b82f778d63 (patch)
tree7d09abd7209c47ea68471588531bc06ff4f8655c /pkg/sentry/fs/proc/task.go
parentcf44aff6e08b0e19935d5cd98455b4af98fd8794 (diff)
Automated rollback of changelist 207037226
PiperOrigin-RevId: 207125440 Change-Id: I6c572afb4d693ee72a0c458a988b0e96d191cd49
Diffstat (limited to 'pkg/sentry/fs/proc/task.go')
-rw-r--r--pkg/sentry/fs/proc/task.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/pkg/sentry/fs/proc/task.go b/pkg/sentry/fs/proc/task.go
index efc635946..748ca4320 100644
--- a/pkg/sentry/fs/proc/task.go
+++ b/pkg/sentry/fs/proc/task.go
@@ -52,6 +52,8 @@ func getTaskMM(t *kernel.Task) (*mm.MemoryManager, error) {
}
// taskDir represents a task-level directory.
+//
+// +stateify savable
type taskDir struct {
ramfs.Dir
@@ -92,6 +94,8 @@ func newTaskDir(t *kernel.Task, msrc *fs.MountSource, pidns *kernel.PIDNamespace
}
// subtasks represents a /proc/TID/task directory.
+//
+// +stateify savable
type subtasks struct {
ramfs.Dir
@@ -167,6 +171,8 @@ func (s *subtasks) DeprecatedReaddir(ctx context.Context, dirCtx *fs.DirCtx, off
}
// exe is an fs.InodeOperations symlink for the /proc/PID/exe file.
+//
+// +stateify savable
type exe struct {
ramfs.Symlink
@@ -226,6 +232,8 @@ func (e *exe) Readlink(ctx context.Context, inode *fs.Inode) (string, error) {
// namespaceFile represents a file in the namespacefs, such as the files in
// /proc/<pid>/ns.
+//
+// +stateify savable
type namespaceFile struct {
ramfs.Symlink
@@ -274,6 +282,8 @@ func newNamespaceDir(t *kernel.Task, msrc *fs.MountSource) *fs.Inode {
}
// mapsData implements seqfile.SeqSource for /proc/[pid]/maps.
+//
+// +stateify savable
type mapsData struct {
t *kernel.Task
}
@@ -311,6 +321,7 @@ func (md *mapsData) ReadSeqFileData(ctx context.Context, h seqfile.SeqHandle) ([
return []seqfile.SeqData{}, 0
}
+// +stateify savable
type taskStatData struct {
t *kernel.Task
@@ -391,6 +402,8 @@ func (s *taskStatData) ReadSeqFileData(ctx context.Context, h seqfile.SeqHandle)
}
// statmData implements seqfile.SeqSource for /proc/[pid]/statm.
+//
+// +stateify savable
type statmData struct {
t *kernel.Task
}
@@ -425,6 +438,8 @@ func (s *statmData) ReadSeqFileData(ctx context.Context, h seqfile.SeqHandle) ([
}
// statusData implements seqfile.SeqSource for /proc/[pid]/status.
+//
+// +stateify savable
type statusData struct {
t *kernel.Task
pidns *kernel.PIDNamespace
@@ -490,6 +505,7 @@ type ioUsage interface {
IOUsage() *usage.IO
}
+// +stateify savable
type ioData struct {
ioUsage
}
@@ -530,6 +546,8 @@ func (i *ioData) ReadSeqFileData(ctx context.Context, h seqfile.SeqHandle) ([]se
// On Linux, /proc/[pid]/comm is writable, and writing to the comm file changes
// the thread name. We don't implement this yet as there are no known users of
// this feature.
+//
+// +stateify savable
type comm struct {
ramfs.Entry
@@ -559,6 +577,8 @@ func (c *comm) DeprecatedPreadv(ctx context.Context, dst usermem.IOSequence, off
}
// auxvec is a file containing the auxiliary vector for a task.
+//
+// +stateify savable
type auxvec struct {
ramfs.Entry