summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/platform/platform.go
diff options
context:
space:
mode:
authorAndrei Vagin <avagin@google.com>2020-08-07 22:47:55 -0700
committergVisor bot <gvisor-bot@google.com>2020-08-07 22:49:55 -0700
commit13a8ae81b2361cd32f8e73d14ca5b9bca9569b1a (patch)
tree4f0818e004568b5c877dfc9069965743019c0b7e /pkg/sentry/platform/platform.go
parent3be26a271cd0fc9618fbcb34e1a2a84c4f234c86 (diff)
Add context.FullStateChanged()
It indicates that the Sentry has changed the state of the thread and next calls of PullFullState() has to do nothing. PiperOrigin-RevId: 325567415
Diffstat (limited to 'pkg/sentry/platform/platform.go')
-rw-r--r--pkg/sentry/platform/platform.go14
1 files changed, 10 insertions, 4 deletions
diff --git a/pkg/sentry/platform/platform.go b/pkg/sentry/platform/platform.go
index 3f99afdd1..ba031516a 100644
--- a/pkg/sentry/platform/platform.go
+++ b/pkg/sentry/platform/platform.go
@@ -171,14 +171,20 @@ type Context interface {
// Preconditions: The caller must be running on the task goroutine.
PullFullState(as AddressSpace, ac arch.Context)
- // FloatingPointStateChanged forces restoring a full state of the application thread.
+ // FullStateChanged() indicates that a thread state has been changed by
+ // the Sentry. This happens in case of the rt_sigreturn, execve, etc.
//
- // A platform can support lazy loading/restoring of a thread state.
- // This means that if the Sentry has not changed a thread state,
+ // First, it indicates that the Sentry has the full state of the thread
+ // and PullFullState() has to do nothing if it is called after
+ // FullStateChanged().
+ //
+ // Second, it forces restoring the full state of the application
+ // thread. A platform can support lazy loading/restoring of a thread
+ // state. This means that if the Sentry has not changed a thread state,
// the platform may not restore it.
//
// Preconditions: The caller must be running on the task goroutine.
- FloatingPointStateChanged()
+ FullStateChanged()
// Interrupt interrupts a concurrent call to Switch(), causing it to return
// ErrContextInterrupt.