From 94b38efc1d80ae2854d29af44c6d5918a2cb40cd Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 5 Jan 2017 14:16:07 +0100 Subject: sys: allow to specify number of pages for vma type Allows to write vma[4] or vma[5-10] to specify desired number of pages. --- sysgen/sysgen.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'sysgen') diff --git a/sysgen/sysgen.go b/sysgen/sysgen.go index 92258150d..d16841577 100644 --- a/sysgen/sysgen.go +++ b/sysgen/sysgen.go @@ -461,10 +461,15 @@ func generateArg( fmt.Fprintf(out, "&BufferType{%v, Kind: BufferAlgName}", common()) case "vma": canBeArg = true - if want := 0; len(a) != want { - failf("wrong number of arguments for %v arg %v, want %v, got %v", typ, name, want, len(a)) + begin, end := "0", "0" + switch len(a) { + case 0: + case 1: + begin, end = parseRange(a[0], consts) + default: + failf("wrong number of arguments for %v arg %v, want 0 or 1, got %v", typ, name, len(a)) } - fmt.Fprintf(out, "&VmaType{%v}", common()) + fmt.Fprintf(out, "&VmaType{%v, RangeBegin: %v, RangeEnd: %v}", common(), begin, end) case "len", "bytesize", "bytesize2", "bytesize4", "bytesize8": canBeArg = true size := uint64(ptrSize) -- cgit mrf-deployment