aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/mgrconfig/load.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2025-11-24 08:04:21 +0100
committerDmitry Vyukov <dvyukov@google.com>2025-11-24 08:55:49 +0000
commitbf6fe8fef08f3e0d8c066121c66eaf37681e0de9 (patch)
tree15f9b4babeb34e47e530b1e3c1006b3d84156b75 /pkg/mgrconfig/load.go
parent9174555f6d933d77dace419771065710ef6df014 (diff)
pkg/mgrconfig: export SplitTarget function
It will be useful for new syz-agent binary in the future.
Diffstat (limited to 'pkg/mgrconfig/load.go')
-rw-r--r--pkg/mgrconfig/load.go42
1 files changed, 20 insertions, 22 deletions
diff --git a/pkg/mgrconfig/load.go b/pkg/mgrconfig/load.go
index 4e01cbd5f..0681915b3 100644
--- a/pkg/mgrconfig/load.go
+++ b/pkg/mgrconfig/load.go
@@ -130,19 +130,9 @@ var (
func SetTargets(cfg *Config) error {
var err error
- cfg.TargetOS, cfg.TargetVMArch, cfg.TargetArch, err = splitTarget(cfg.RawTarget)
- if err != nil {
- return err
- }
- cfg.Target, err = prog.GetTarget(cfg.TargetOS, cfg.TargetArch)
- if err != nil {
- return err
- }
- cfg.SysTarget = targets.Get(cfg.TargetOS, cfg.TargetVMArch)
- if cfg.SysTarget == nil {
- return fmt.Errorf("unsupported OS/arch: %v/%v", cfg.TargetOS, cfg.TargetVMArch)
- }
- return nil
+ cfg.TargetOS, cfg.TargetVMArch, cfg.TargetArch, cfg.Target, cfg.SysTarget,
+ err = SplitTarget(cfg.RawTarget)
+ return err
}
func Complete(cfg *Config) error {
@@ -402,21 +392,29 @@ func (cfg *Config) completeFocusAreas() error {
return nil
}
-func splitTarget(target string) (string, string, string, error) {
- if target == "" {
- return "", "", "", fmt.Errorf("target is empty")
+func SplitTarget(str string) (os, vmarch, arch string, target *prog.Target, sysTarget *targets.Target, err error) {
+ if str == "" {
+ err = fmt.Errorf("target is empty")
+ return
}
- targetParts := strings.Split(target, "/")
+ targetParts := strings.Split(str, "/")
if len(targetParts) != 2 && len(targetParts) != 3 {
- return "", "", "", fmt.Errorf("bad config param target")
+ err = fmt.Errorf("bad config param target")
+ return
}
- os := targetParts[0]
- vmarch := targetParts[1]
- arch := targetParts[1]
+ os = targetParts[0]
+ vmarch = targetParts[1]
+ arch = targetParts[1]
if len(targetParts) == 3 {
arch = targetParts[2]
}
- return os, vmarch, arch, nil
+ sysTarget = targets.Get(os, vmarch)
+ if sysTarget == nil {
+ err = fmt.Errorf("unsupported OS/arch: %v/%v", os, vmarch)
+ return
+ }
+ target, err = prog.GetTarget(os, arch)
+ return
}
func ParseEnabledSyscalls(target *prog.Target, enabled, disabled []string,