diff options
| author | Florent Revest <revest@chromium.org> | 2023-07-05 14:26:23 +0200 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2024-02-01 10:12:21 +0000 |
| commit | c40f278e4d854c3b6341ec272dd3eb9b84fcff54 (patch) | |
| tree | 0bc92397d6480c0f5d15e60f6e861adc3cea7019 /prog | |
| parent | 818c77dd7818d3c56513a0ef417fd61bb8bb5927 (diff) | |
sys/syz-sysgen: save flags's possible values
This extends Target to contain a map of possible values for each int
flag.
Diffstat (limited to 'prog')
| -rw-r--r-- | prog/target.go | 7 | ||||
| -rw-r--r-- | prog/types.go | 5 |
2 files changed, 12 insertions, 0 deletions
diff --git a/prog/target.go b/prog/target.go index 2889b8bf0..be2db51c5 100644 --- a/prog/target.go +++ b/prog/target.go @@ -26,6 +26,7 @@ type Target struct { Syscalls []*Syscall Resources []*ResourceDesc Consts []ConstValue + Flags []FlagDesc // MakeDataMmap creates calls that mmaps target data memory range. MakeDataMmap func() []*Call @@ -63,6 +64,7 @@ type Target struct { // Filled by prog package: SyscallMap map[string]*Syscall ConstMap map[string]uint64 + FlagsMap map[string][]string init sync.Once initArch func(target *Target) @@ -167,6 +169,11 @@ func (target *Target) initTarget() { target.SyscallMap[c.Name] = c } + target.FlagsMap = make(map[string][]string) + for _, c := range target.Flags { + target.FlagsMap[c.Name] = c.Values + } + target.populateResourceCtors() target.resourceCtors = make(map[string][]ResourceCtor) for _, res := range target.Resources { diff --git a/prog/types.go b/prog/types.go index 51f5e0cbe..ce02d2d21 100644 --- a/prog/types.go +++ b/prog/types.go @@ -241,6 +241,11 @@ func (t *TypeCommon) Alignment() uint64 { return t.TypeAlign } +type FlagDesc struct { + Name string + Values []string +} + type ResourceDesc struct { Name string Kind []string |
