aboutsummaryrefslogtreecommitdiffstats
path: root/sys/targets
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2021-08-31 17:21:33 +0000
committerAleksandr Nogikh <wp32pw@gmail.com>2021-09-22 15:40:02 +0200
commit9e4e4272d3f686e750a13d2111b0fb7041db2f4a (patch)
tree288c3421a8da52fcb7e460247f9678fece2ed1c9 /sys/targets
parent169724fe58e8d7d0b4be6f59ca7c1e0f300399e1 (diff)
all: introduce a prog.Call constructor
Create a constructor for the prog.Call type. It allows to reduce the duplication of code now and during further changes.
Diffstat (limited to 'sys/targets')
-rw-r--r--sys/targets/common.go28
1 files changed, 10 insertions, 18 deletions
diff --git a/sys/targets/common.go b/sys/targets/common.go
index 193e9dca6..f55493256 100644
--- a/sys/targets/common.go
+++ b/sys/targets/common.go
@@ -21,25 +21,21 @@ func MakePosixMmap(target *prog.Target, exec, contain bool) func() []*prog.Call
size := target.NumPages * target.PageSize
const invalidFD = ^uint64(0)
makeMmap := func(addr, size, prot uint64) *prog.Call {
- args := []prog.Arg{
+ call := prog.MakeCall(meta, []prog.Arg{
prog.MakeVmaPointerArg(meta.Args[0].Type, prog.DirIn, addr, size),
prog.MakeConstArg(meta.Args[1].Type, prog.DirIn, size),
prog.MakeConstArg(meta.Args[2].Type, prog.DirIn, prot),
prog.MakeConstArg(meta.Args[3].Type, prog.DirIn, flags),
prog.MakeResultArg(meta.Args[4].Type, prog.DirIn, nil, invalidFD),
- }
- i := len(args)
+ })
+ i := len(call.Args)
// Some targets have a padding argument between fd and offset.
if len(meta.Args) > 6 {
- args = append(args, prog.MakeConstArg(meta.Args[i].Type, prog.DirIn, 0))
+ call.Args = append(call.Args, prog.MakeConstArg(meta.Args[i].Type, prog.DirIn, 0))
i++
}
- args = append(args, prog.MakeConstArg(meta.Args[i].Type, prog.DirIn, 0))
- return &prog.Call{
- Meta: meta,
- Args: args,
- Ret: prog.MakeReturnArg(meta.Ret),
- }
+ call.Args = append(call.Args, prog.MakeConstArg(meta.Args[i].Type, prog.DirIn, 0))
+ return call
}
return func() []*prog.Call {
if contain {
@@ -58,14 +54,10 @@ func MakeSyzMmap(target *prog.Target) func() []*prog.Call {
size := target.NumPages * target.PageSize
return func() []*prog.Call {
return []*prog.Call{
- {
- Meta: meta,
- Args: []prog.Arg{
- prog.MakeVmaPointerArg(meta.Args[0].Type, prog.DirIn, 0, size),
- prog.MakeConstArg(meta.Args[1].Type, prog.DirIn, size),
- },
- Ret: prog.MakeReturnArg(meta.Ret),
- },
+ prog.MakeCall(meta, []prog.Arg{
+ prog.MakeVmaPointerArg(meta.Args[0].Type, prog.DirIn, 0, size),
+ prog.MakeConstArg(meta.Args[1].Type, prog.DirIn, size),
+ }),
}
}
}