aboutsummaryrefslogtreecommitdiffstats
path: root/prog/size.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-09-05 13:31:14 +0200
committerDmitry Vyukov <dvyukov@google.com>2017-09-05 15:52:42 +0200
commitffe7e17368d7ae6c2b40da2ce0703d8ad8a116ac (patch)
tree195b7c32977fdaab05acb1282a727fb480593431 /prog/size.go
parent4fc47026945ebec3fc81d0c897547670034cfb58 (diff)
prog, sys: move types to prog
Large overhaul moves syscalls and arg types from sys to prog. Sys package now depends on prog and contains only generated descriptions of syscalls. Introduce prog.Target type that encapsulates all targer properties, like syscall list, ptr/page size, etc. Also moves OS-dependent pieces like mmap call generation from prog to sys. Update #191
Diffstat (limited to 'prog/size.go')
-rw-r--r--prog/size.go14
1 files changed, 6 insertions, 8 deletions
diff --git a/prog/size.go b/prog/size.go
index b715f6f26..b9920c19b 100644
--- a/prog/size.go
+++ b/prog/size.go
@@ -5,32 +5,30 @@ package prog
import (
"fmt"
-
- . "github.com/google/syzkaller/sys"
)
func generateSize(arg Arg, lenType *LenType) Arg {
if arg == nil {
// Arg is an optional pointer, set size to 0.
- return constArg(lenType, 0)
+ return MakeConstArg(lenType, 0)
}
switch arg.Type().(type) {
case *VmaType:
a := arg.(*PointerArg)
- return constArg(lenType, a.PagesNum*pageSize)
+ return MakeConstArg(lenType, a.PagesNum*pageSize)
case *ArrayType:
a := arg.(*GroupArg)
if lenType.ByteSize != 0 {
- return constArg(lenType, a.Size()/lenType.ByteSize)
+ return MakeConstArg(lenType, a.Size()/lenType.ByteSize)
} else {
- return constArg(lenType, uint64(len(a.Inner)))
+ return MakeConstArg(lenType, uint64(len(a.Inner)))
}
default:
if lenType.ByteSize != 0 {
- return constArg(lenType, arg.Size()/lenType.ByteSize)
+ return MakeConstArg(lenType, arg.Size()/lenType.ByteSize)
} else {
- return constArg(lenType, arg.Size())
+ return MakeConstArg(lenType, arg.Size())
}
}
}