aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2015-12-23 13:38:31 +0100
committerDmitry Vyukov <dvyukov@google.com>2015-12-23 13:38:31 +0100
commite253cbc79fc20b65ce9dd965c6fe3adddac817ca (patch)
tree3a64c5a18d8b0a020c3cee24abbfe32fc468fc86 /tools
parent071ad4e91f95f115236a639e934181c7e596f337 (diff)
csource: new package
Move C source generation into a separate package. Prog is too bloated already.
Diffstat (limited to 'tools')
-rw-r--r--tools/syz-prog2c/prog2c.go20
1 files changed, 16 insertions, 4 deletions
diff --git a/tools/syz-prog2c/prog2c.go b/tools/syz-prog2c/prog2c.go
index 9b8e58efa..4b01fea3a 100644
--- a/tools/syz-prog2c/prog2c.go
+++ b/tools/syz-prog2c/prog2c.go
@@ -4,19 +4,27 @@
package main
import (
+ "flag"
"fmt"
"io/ioutil"
"os"
+ "github.com/google/syzkaller/csource"
"github.com/google/syzkaller/prog"
)
+var (
+ flagThreaded = flag.Bool("threaded", false, "create threaded program")
+ flagCollide = flag.Bool("collide", false, "create collide program")
+)
+
func main() {
- if len(os.Args) != 2 {
- fmt.Fprintf(os.Stderr, "usage: prog2c prog_file\n")
+ flag.Parse()
+ if len(flag.Args()) != 1 {
+ fmt.Fprintf(os.Stderr, "usage: prog2c [-threaded [-collide]] prog_file\n")
os.Exit(1)
}
- data, err := ioutil.ReadFile(os.Args[1])
+ data, err := ioutil.ReadFile(flag.Args()[0])
if err != nil {
fmt.Fprintf(os.Stderr, "failed to read prog file: %v\n", err)
os.Exit(1)
@@ -26,6 +34,10 @@ func main() {
fmt.Fprintf(os.Stderr, "failed to deserialize the program: %v\n", err)
os.Exit(1)
}
- src := p.WriteCSource()
+ opts := csource.Options{
+ Threaded: *flagThreaded,
+ Collide: *flagCollide,
+ }
+ src := csource.Write(p, opts)
os.Stdout.Write(src)
}