aboutsummaryrefslogtreecommitdiffstats
path: root/vm/vmimpl/vmimpl.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2024-07-23 14:13:28 +0200
committerDmitry Vyukov <dvyukov@google.com>2024-07-23 13:30:23 +0000
commit53c2e8ad91fd5f64989a4e6a923926990130b5cd (patch)
treea4ba74c7dcaebf772436725f3ccf2e4e65baa659 /vm/vmimpl/vmimpl.go
parente50e8da5c493b37bff754d816c11218eba03d715 (diff)
vmimpl: refactor VM type registration
Pass Type struct directly during registration. This allows to add additional optional parameters to VM types without changing all VM implementations. We we will need to add SupportsSnapshots flag and one flag to resolve #5028. With this change it will be possible to add "SupportsSnapshots: true" to just one VM type implemenetation.
Diffstat (limited to 'vm/vmimpl/vmimpl.go')
-rw-r--r--vm/vmimpl/vmimpl.go11
1 files changed, 5 insertions, 6 deletions
diff --git a/vm/vmimpl/vmimpl.go b/vm/vmimpl/vmimpl.go
index ce2a0dfb6..ac38a6634 100644
--- a/vm/vmimpl/vmimpl.go
+++ b/vm/vmimpl/vmimpl.go
@@ -124,15 +124,14 @@ func (err InfraError) InfraError() (string, []byte) {
}
// Register registers a new VM type within the package.
-func Register(typ string, ctor ctorFunc, allowsOvercommit bool) {
- Types[typ] = Type{
- Ctor: ctor,
- Overcommit: allowsOvercommit,
- }
+func Register(typ string, desc Type) {
+ Types[typ] = desc
}
type Type struct {
- Ctor ctorFunc
+ Ctor ctorFunc
+ // It's possible to create out-of-thin-air instances of this type.
+ // Out-of-thin-air instances are used by syz-ci for image testing, patch testing, bisection, etc.
Overcommit bool
}