summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/kernel/epoll
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/sentry/kernel/epoll')
-rw-r--r--pkg/sentry/kernel/epoll/BUILD15
-rw-r--r--pkg/sentry/kernel/epoll/epoll.go8
2 files changed, 15 insertions, 8 deletions
diff --git a/pkg/sentry/kernel/epoll/BUILD b/pkg/sentry/kernel/epoll/BUILD
index 5e8b36ed6..7d491efbc 100644
--- a/pkg/sentry/kernel/epoll/BUILD
+++ b/pkg/sentry/kernel/epoll/BUILD
@@ -1,11 +1,22 @@
package(licenses = ["notice"]) # Apache 2.0
-load("//tools/go_stateify:defs.bzl", "go_library", "go_test")
+load("//tools/go_stateify:defs.bzl", "go_library", "go_stateify", "go_test")
+
+go_stateify(
+ name = "epoll_autogen_state",
+ srcs = [
+ "epoll.go",
+ "epoll_state.go",
+ ],
+ out = "epoll_autogen_state.go",
+ package = "epoll",
+)
go_library(
name = "epoll",
srcs = [
"epoll.go",
+ "epoll_autogen_state.go",
"epoll_state.go",
],
importpath = "gvisor.googlesource.com/gvisor/pkg/sentry/kernel/epoll",
@@ -18,7 +29,9 @@ go_library(
"//pkg/sentry/fs/anon",
"//pkg/sentry/fs/fsutil",
"//pkg/sentry/kernel/kdefs",
+ "//pkg/sentry/kernel/time",
"//pkg/sentry/usermem",
+ "//pkg/state",
"//pkg/waiter",
],
)
diff --git a/pkg/sentry/kernel/epoll/epoll.go b/pkg/sentry/kernel/epoll/epoll.go
index d87e64a1c..b572fcd7e 100644
--- a/pkg/sentry/kernel/epoll/epoll.go
+++ b/pkg/sentry/kernel/epoll/epoll.go
@@ -58,8 +58,6 @@ const (
// potentially be reassigned. We also cannot use just the file pointer because
// it is possible to have multiple entries for the same file object as long as
// they are created with different FDs (i.e., the FDs point to the same file).
-//
-// +stateify savable
type FileIdentifier struct {
File *fs.File
Fd kdefs.FD
@@ -67,8 +65,6 @@ type FileIdentifier struct {
// pollEntry holds all the state associated with an event poll entry, that is,
// a file being observed by an event poll object.
-//
-// +stateify savable
type pollEntry struct {
ilist.Entry
file *refs.WeakRef `state:"manual"`
@@ -96,8 +92,6 @@ func (p *pollEntry) WeakRefGone() {
// EventPoll holds all the state associated with an event poll object, that is,
// collection of files to observe and their current state.
-//
-// +stateify savable
type EventPoll struct {
fsutil.PipeSeek `state:"zerovalue"`
fsutil.NotDirReaddir `state:"zerovalue"`
@@ -108,7 +102,7 @@ type EventPoll struct {
// Wait queue is used to notify interested parties when the event poll
// object itself becomes readable or writable.
- waiter.Queue `state:"zerovalue"`
+ waiter.Queue
// files is the map of all the files currently being observed, it is
// protected by mu.