From c487cd4633a98235359d6084383d8c7ea49600bc Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Tue, 5 Nov 2019 13:29:36 +0100 Subject: pkg/build: refactor Image function arguments Image takes too many arguments, so we need to do lots of forwarding, adding new argumnets is painful and most OSes are not interested in lots of arguments. Combine all arguments into a params struct. --- pkg/instance/instance.go | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'pkg/instance/instance.go') diff --git a/pkg/instance/instance.go b/pkg/instance/instance.go index b3e24aace..163ef285a 100644 --- a/pkg/instance/instance.go +++ b/pkg/instance/instance.go @@ -88,16 +88,25 @@ func (env *env) BuildSyzkaller(repo, commit string) error { return nil } -func (env *env) BuildKernel(compilerBin, userspaceDir, cmdlineFile, sysctlFile string, - kernelConfig []byte) (string, error) { - cfg := env.cfg - imageDir := filepath.Join(cfg.Workdir, "image") - if err := build.Image(cfg.TargetOS, cfg.TargetVMArch, cfg.Type, - cfg.KernelSrc, imageDir, compilerBin, userspaceDir, - cmdlineFile, sysctlFile, kernelConfig); err != nil { +func (env *env) BuildKernel(compilerBin, userspaceDir, cmdlineFile, sysctlFile string, kernelConfig []byte) ( + string, error) { + imageDir := filepath.Join(env.cfg.Workdir, "image") + params := &build.Params{ + TargetOS: env.cfg.TargetOS, + TargetArch: env.cfg.TargetVMArch, + VMType: env.cfg.Type, + KernelDir: env.cfg.KernelSrc, + OutputDir: imageDir, + Compiler: compilerBin, + UserspaceDir: userspaceDir, + CmdlineFile: cmdlineFile, + SysctlFile: sysctlFile, + Config: kernelConfig, + } + if err := build.Image(params); err != nil { return "", err } - if err := SetConfigImage(cfg, imageDir, true); err != nil { + if err := SetConfigImage(env.cfg, imageDir, true); err != nil { return "", err } kernelConfigFile := filepath.Join(imageDir, "kernel.config") -- cgit mrf-deployment