Skip to content

Commit b4bee18

Browse files
committed
pkg/mgrconfig: export SplitTarget function
It will be useful for new syz-agent binary in the future.
1 parent a90dd07 commit b4bee18

File tree

1 file changed

+20
-22
lines changed

1 file changed

+20
-22
lines changed

pkg/mgrconfig/load.go

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -130,19 +130,9 @@ var (
130130

131131
func SetTargets(cfg *Config) error {
132132
var err error
133-
cfg.TargetOS, cfg.TargetVMArch, cfg.TargetArch, err = splitTarget(cfg.RawTarget)
134-
if err != nil {
135-
return err
136-
}
137-
cfg.Target, err = prog.GetTarget(cfg.TargetOS, cfg.TargetArch)
138-
if err != nil {
139-
return err
140-
}
141-
cfg.SysTarget = targets.Get(cfg.TargetOS, cfg.TargetVMArch)
142-
if cfg.SysTarget == nil {
143-
return fmt.Errorf("unsupported OS/arch: %v/%v", cfg.TargetOS, cfg.TargetVMArch)
144-
}
145-
return nil
133+
cfg.TargetOS, cfg.TargetVMArch, cfg.TargetArch, cfg.Target, cfg.SysTarget,
134+
err = SplitTarget(cfg.RawTarget)
135+
return err
146136
}
147137

148138
func Complete(cfg *Config) error {
@@ -402,21 +392,29 @@ func (cfg *Config) completeFocusAreas() error {
402392
return nil
403393
}
404394

405-
func splitTarget(target string) (string, string, string, error) {
406-
if target == "" {
407-
return "", "", "", fmt.Errorf("target is empty")
395+
func SplitTarget(str string) (os, vmarch, arch string, target *prog.Target, sysTarget *targets.Target, err error) {
396+
if str == "" {
397+
err = fmt.Errorf("target is empty")
398+
return
408399
}
409-
targetParts := strings.Split(target, "/")
400+
targetParts := strings.Split(str, "/")
410401
if len(targetParts) != 2 && len(targetParts) != 3 {
411-
return "", "", "", fmt.Errorf("bad config param target")
402+
err = fmt.Errorf("bad config param target")
403+
return
412404
}
413-
os := targetParts[0]
414-
vmarch := targetParts[1]
415-
arch := targetParts[1]
405+
os = targetParts[0]
406+
vmarch = targetParts[1]
407+
arch = targetParts[1]
416408
if len(targetParts) == 3 {
417409
arch = targetParts[2]
418410
}
419-
return os, vmarch, arch, nil
411+
sysTarget = targets.Get(os, vmarch)
412+
if sysTarget == nil {
413+
err = fmt.Errorf("unsupported OS/arch: %v/%v", os, vmarch)
414+
return
415+
}
416+
target, err = prog.GetTarget(os, arch)
417+
return
420418
}
421419

422420
func ParseEnabledSyscalls(target *prog.Target, enabled, disabled []string,

0 commit comments

Comments
 (0)